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

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=55397</id>
		<title>IMA4 2017/2018 P35</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=55397"/>
				<updated>2018-05-05T20:27:04Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : /* Programmation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Présentation générale: Manette modulable&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Description&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Tout le monde joue aux jeux vidéo cependant, les manettes ne sont pas adaptées aux personnes ayant un handicap pouvant toucher les bras ou les mains.&lt;br /&gt;
C’est le cas, de plusieurs patients dans les centres de soins et de rééducation.&lt;br /&gt;
&lt;br /&gt;
Pour ce projet IMA4, nous travaillerons avec le centre SSR (soin de suite et de réadaptation) Marc Sautelet de Villeneuve d’Ascq.&lt;br /&gt;
Un adolescent, patient de Marc Sautelet, est passionné par les jeux vidéo. En effet, ayant perdu la motricité d’une partie de son corps, il ne peut pas jouer à deux mains. Pour cela, il bloque la manette entre son épaule et son coude, usant de la mâchoire et des doigts pour contrôler les&lt;br /&gt;
joysticks et les boutons. Cet exercice peut s’avérer fatiguant et pénible.&lt;br /&gt;
&lt;br /&gt;
Ainsi, nous chercherons à concevoir une manette PS4 adaptée au handicap de l’adolescent. &lt;br /&gt;
Cette manette devra aussi être adaptée pour d’autres patients présentant également des handicaps moteurs. Ainsi nous prendrons pour cibles: tous les patients du centre voulant jouer; et non pas que les enfants et adolescents.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Membre du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Transley Gracias et Camille Saad&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Cible&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Patient présentant un handicap moteur&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Période du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
janvier 2018 - mai 2018&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Partenaire/Client&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Centre SSR Marc Sautelet à Villeneuve d'Ascq&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Objectifs&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ce projet a pour objectif de créer un prototype de manette qui puisse interagir avec la console PS4 et dont le paramétrage se fait à l’aide d’une application mobile et/ou web. Cette manette devra suivre les demandes du patient ainsi que des aides-soignantes du centre, dans la mesure du possible.&lt;br /&gt;
&lt;br /&gt;
Plus précisément, pour le premier prototype, nous mettrons en œuvre l'utilisation de quelques boutons spécifiques: &lt;br /&gt;
&lt;br /&gt;
* Un joystick (type L/R)&lt;br /&gt;
* Quelques boutons poussoirs (type Croix/Triangle/Carré/Rond/R1/L1/Start/...)&lt;br /&gt;
* Des boutons gâchettes progressives (type L2/R2).&lt;br /&gt;
&lt;br /&gt;
Le but serait donc dans un premier temps de rendre fonctionnel un bouton de chaque type, puis de les multiplier une fois cela fait. Tous ces boutons réunis constituent une manette fonctionnelle.Ainsi, la manette sera ajustable, c’est à dire qu’elle devra s’adapter aux différents handicaps moteurs possibles.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Analyse du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Positionnement par rapport à l'existant&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre prototype aura une présentation unique par rapport à l’existant. En effet, les concurrents et produits existants ciblent pour la majorité un seul handicap. Cela&lt;br /&gt;
engendre une solution fermée à beaucoup de patients. Notre projet propose une mobilité des mouvements et également un choix large dans la composition et le&lt;br /&gt;
design de notre manette.&lt;br /&gt;
Le patient n’est pas retreint à jouer à une seule main, à utiliser beaucoup de force...Il y a moins de technique dans la manipulation et on ne joue pas avec une&lt;br /&gt;
manette adaptée uniquement pour un droitier ou un gaucher. Cependant, cela nous limitera peut-être dans le choix possible des types de jeux. Tout comme les autres&lt;br /&gt;
manettes adapté, l’utilisateur nécessitera un peu d’entrainement.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du premier concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Jouer aux jeux vidéo à une main n’est pas une idée d’aujourd’hui. En 1990, Nintendo propose le Power Glove. Mais il tombe très rapidement aux oubliettes suite à des problèmes techniques.&lt;br /&gt;
&lt;br /&gt;
Un autre gant a fait son apparition quelques années plus tard. Celui-ci, plus technique, il faut office de manette Play Station: le Reality Quest Power Glove.Cette idée de manette-gant, permet de jouer à la PS avec une seule main, elle a était conçue et présentée pour les E3, un salon d’exposition de gaming.Le gant est conçu pour contrôler l’équivalent des 14 boutons et 2 joysticks à l’aide d’une seule main. La « manette » est fixée dans la pomme de la main. L’utilisateur contrôle les mouvements verticaux et horizontaux en pivotant le poignet, et utilisent les 4 boutons d’action principaux et L1/R1 avec les doigts. Les autres boutons sont accessibles par un seul bouton rond contrôlé par le pouce.&lt;br /&gt;
La manette est adaptée pour beaucoup de jeux vidéo, dont les plus simples sont les jeux de voitures et de combats (arcade).&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec ce gant&lt;br /&gt;
*Design obligatoirement droitier&lt;br /&gt;
*Les boutons de contrôle sont peu sensibles et peuvent nécessiter de la force&lt;br /&gt;
*Design compliqué et nécessitant beaucoup d’entrainement.&lt;br /&gt;
&lt;br /&gt;
;Lien : https://www.youtube.com/watch?v=qV0SxSJDCYg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du second concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ben Heck, de son vrai nom Benjamin J.Heckendorn, est un concepteur de mods de consoles (mods pour modification, soit « manettes modifiées ») et une star&lt;br /&gt;
du net grâce à ses vidéos tutoriels.Il propose alors énormément de produits adaptés ou dérivés en guise de manettes.&lt;br /&gt;
Parmi les mods qu’il a réalisé, il a modifié une manette de PS4 afin de la rendre accessible à une personne ne pouvant jouer qu’à une main. Pour cela, il a déplacé les boutons en respectant l’ergonomie de la main valide et modifie les connexions. Il peut lui arriver de rajouter des boutons pour en remplacer un autre. Il réalise également le même système avec la Xbox. Sur la photo ci-dessous, il a adapté la manette pour un droitier.&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec cette ma&lt;br /&gt;
*Design obligatoirement droitier ou gaucher, une modification = une manette= une personne&lt;br /&gt;
*Besoin obligé du pouce et de l’index, même si avantage : 3 doigts nécessaire.&lt;br /&gt;
&lt;br /&gt;
;Lien :: https://www.youtube.com/watch?v=LieHIscadjk&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Scénario d'usage du produit ou du concept envisagé&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
La technologie est ,aujourd’hui, omniprésente dans notre vie. Les consoles de jeux ont envahies les maisons avec plus de 7 personnes sur 10 jouant aux jeux vidéos sur consoles en France (chiffre de l’Express). 0,18% des français sont handicapés cela représente 12 millions de français. Dans ce chiffre, 13,4% des personnes ont un handicap moteur. En 2017, les grands groupes comme Sony ou Microsoft avec respectivement PlayStation et Xbox ne permettent pas à tout le monde de jouer avec une manette. Les manettes sont prévues pour des personnes ayant leurs membres valides, plus précisément les mains et les bras.&lt;br /&gt;
&lt;br /&gt;
Après un accident de voiture, un jeune garçon a perdu la motricité d’un côté du corps. Passionné de jeux vidéo, il se retrouve avec des difficultés à jouer sur sa console PS4. Ingénieux, il utilise la manette en la coinçant entre son épaule et le creux du cou. Usant de la mâchoire et de sa main valide pour contrôler les joysticks et les boutons. L'exercice étant inconfortable et fatiguant il eu l’idée de proposer à des futurs ingénieurs de lui proposer une manette adaptée à son handicap. &lt;br /&gt;
&lt;br /&gt;
Les deux pré-ingénieurs ,avec leur tuteur, ont une idée révolutionnaire : La manette modulable ! Elle permettrait au jeune garçon, ainsi que d’autres joueurs, de pouvoir continuer de s’amuser ou même de commencer à jouer au jeux sur console. &lt;br /&gt;
Cette manette aidera fortement dans les centre de rééducation pour faire passer le temps et donner du plaisir à des personnes qui ne peuvent plus s’amuser avec leur console traditionnelle. Elle pourra aussi ouvrir de nouvelles possibilités pour certaines personnes qui n’auraient jamais essayé jusqu'à présent.   &lt;br /&gt;
Comme son nom l'indique, elle sera modulaire et s'adaptera à différents handicaps. Accompagnée de son application d’initialisation, elle sera accessible aussi bien aux enfants, patients, parents et aides soignantes.&lt;br /&gt;
&lt;br /&gt;
Quelques mois plus tard...Le jeune patient fan de Need For Speed, peut maintenant piloter sa voiture comme un vrai professionnel grâce à l'un des joysticks qu'il utilisera avec sa main valide et il pourra accélérer à des vitesses folles à l'aide de boutons poussoirs au niveau de son pied valide et gagner la partie. Son ami venu lui rendre visite, pourra en lieu et place des aides soignantes configurer à l'aide de la tablette (portable) la manette du patient. &lt;br /&gt;
Si le patient change de jeu pour Tekken et que la configuration des modules ne lui convient plus, il peut interchanger les éléments de la manette selon son envie et son confort. Ainsi il peut faire sauter son personnage, il utilisera un module bouton supplémentaire, qu'il actionnera avec le poing.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Fonctionnement&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Suite à une analyse fonctionnelle et à la formulation de notre projet, nous avons pu définir le fonctionnement de notre système. Notre produit, la manette, doit être accessible d’après nos objectifs à différents types de handicaps moteurs. Ainsi, l’idéal serait de concevoir une manette modulable afin qu’elle puisse s’adapter à toutes les situations. Ce n’est plus au patient de s’adapter à la manette mais à la manette de s’adapter au patient.&lt;br /&gt;
Cela signifie que la manette sera, dans la limite du possible et de la sensibilité du corps du patient, composée de plusieurs parties dites « modules » comportant un ou plusieurs actionneurs (boutons, joysticks, gâchettes...). Ces modules seront déplaçables afin d’être utilisé avec différents membres du corps : un doigt, une main,&lt;br /&gt;
une jambe ou même un pied. Il suffira de les connectés entre eux suivant l’organisation souhaitée, le Gameplay du jeu ou en fonction du handicap. Le tout sera relié à une application.&lt;br /&gt;
L’application sera alors mise en place pour connecter les différentes parties du point de vue software pour prérégler la manette en fonction du patient. Il pourra alors choisir les boutons en fonction du jeu, de ses mouvements mais aussi choisir la sensibilité.&lt;br /&gt;
&lt;br /&gt;
L’application et les modules devront être intuitifs et faciles d’utilisation. De cette manière des utilisateurs non avertis dans le domaine informatique ou jeunes pourront eux-mêmes gérer les connexions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Réponse à la question difficile&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
'''Question : Comment interconnecter les différents modules de la manette ?'''&lt;br /&gt;
&lt;br /&gt;
Il nous faut pour ce projet interconnecter les modules modélisant la manette qui seront connectés à la consoles PS4 via une Raspberry Pi 3.&lt;br /&gt;
Le choix de la Raspberry Pi 3 nous permet d'utiliser son module Bluetooth pour communiquer avec la PS4, ce choix est plus adaptée au projet que du filaire.&lt;br /&gt;
Concernant l'interconnexion des modules, nous travaillerons en deux étapes &amp;quot;preuves concept&amp;quot; : filaire et sans fils (Bluetooth).&lt;br /&gt;
&lt;br /&gt;
'''Objectif 1 : Preuve concept filaire'''&lt;br /&gt;
&lt;br /&gt;
Dans cette première partie de projet, nous souhaitons avoir une 1ère preuve de prototype rapidement. Nous nous concentrerons alors sur la communication entre la RPi3 et la PS4 ainsi que sur la conception des modules. Pour les modules, nous réaliserons des cartes électronique pour chaque module avec un micro-contrôleur. La communication filaire nous permettra d'interconnecter les modules à la RPi3 avec un bus SPI.&lt;br /&gt;
&lt;br /&gt;
'''Objectif 2: preuve concept sans fils'''&lt;br /&gt;
&lt;br /&gt;
Une deuxième étape du projet est la réalisation de la solution idéale sans fils. Celle-ci pourra commencer à être développée petit à petit en parallèle avec l'objectif 1. Le but ici, est d'interconnecter les modules en Bluetooth. Nous avons choisi le Bluetooth pour garder une connexion commune sur toute la chaîne. &lt;br /&gt;
Nous rajouterons alors un module bluetooth à chaque module de la manette. &lt;br /&gt;
&lt;br /&gt;
'''Objectif 3: possibilité d'adapter les boutons (capuchon en 3D)'''&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Préparation du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Cahier des charges&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
''Chef de projet:'' Alexandre Boé  &amp;lt;br&amp;gt;&lt;br /&gt;
''Responsables:'' Xavier Redon, Thomas Vantroys &amp;lt;br&amp;gt;&lt;br /&gt;
''Partenariat:'' Marc Sautelet (non etablie) &amp;lt;br&amp;gt;&lt;br /&gt;
''Elèves-ingénieurs:'' Camille Saâd, Transley Gracias &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Sujet :''' Manette modulable pour personne à déficience moteur compatible PlayStation 4 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objectifs principal (1er POC) : ===&lt;br /&gt;
Faire transmettre des informations issus des actionneurs (ex:boutons poussoires) via des arduinos jusqu’à la Raspberry Pi 3 en SPI.&amp;lt;br&amp;gt;&lt;br /&gt;
Envoyer les données reçues vers la PS4 en USB  &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objectifs secondaire (2e POC):===&lt;br /&gt;
Créer des modules avec un microcontrôleur et une puce bluetooth pour permettre une meilleurs flexibilité (c-àd pouvoirs avoir une meilleure ergonomie et une connexion sans fil) &amp;lt;br&amp;gt;&lt;br /&gt;
Connecter la Raspberry Pi 3 en Bluetooth à la PS4 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier: beteacorne.jpg||middle|600px|Bete a corne manette]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Choix techniques : matériel et logiciel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Liste de matériel :===&lt;br /&gt;
&lt;br /&gt;
'''Modules boutons/joysticks/gachettes'''&lt;br /&gt;
&lt;br /&gt;
3  Push buttons :&amp;lt;br&amp;gt;&lt;br /&gt;
- O X Y Carré R3 L3 &amp;lt;br&amp;gt;&lt;br /&gt;
- Guide PS &amp;lt;br&amp;gt;&lt;br /&gt;
- start/back &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 0,45€/unité TTC [https://www.gotronic.fr/art-bp-miniature-krs1273-16976.htm] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1  Thumbstick original: &amp;lt;br&amp;gt;&lt;br /&gt;
Joystick analogique 4 directions --&amp;gt; 4,25€/unité TTC [https://www.gotronic.fr/art-joystick-analogique-4-directions-19063.htm] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1 buttons trigger L1 L2 =&amp;gt; 1x Thumbstick original''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Cartes Atmega328p /connexion spi/'''&lt;br /&gt;
&lt;br /&gt;
3   Arduino UNO &amp;lt;br&amp;gt;&lt;br /&gt;
1   Arduino UNO atmega328p retirable &amp;lt;br&amp;gt;&lt;br /&gt;
4   capacite 22pF traversantes &amp;lt;br&amp;gt;&lt;br /&gt;
2   resistances 10 kOhm traversantes (à récupérer) &amp;lt;br&amp;gt;&lt;br /&gt;
2   oscillateurs quartz 16MHz traversante &amp;lt;br&amp;gt;&lt;br /&gt;
2   atmega328p-pu et support &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cartes module bluetooth nrf52810 '''&lt;br /&gt;
&lt;br /&gt;
6   capacités 100nF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
6   capacités 12pF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 4,7pF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 1µF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 100pF=0,1nF 0603 (à récupérer) &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 0,8pF 0603 (a acheter, commande en cours) &amp;lt;br&amp;gt;&lt;br /&gt;
2   inductance 3,9nH 0603 (a acheter, commande en cours) &amp;lt;br&amp;gt;&lt;br /&gt;
2   oscillateur quartz 32 MHz &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''' Connexions et autres '''&lt;br /&gt;
&lt;br /&gt;
1 Led RGB neopixel [https://www.adafruit.com/product/1734] &amp;lt;br&amp;gt;&lt;br /&gt;
1 Raspberry Pi 3 &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; ~36,23€/unité TTC [https://fr.rs-online.com/web/p/processor-microcontroller-development-kits/8968660/?src=raspberrypi] &amp;lt;br&amp;gt;&lt;br /&gt;
1 Raspberry Pi Zero W (commandée) [https://www.raspberrypi.org/products/raspberry-pi-zero-w/] &amp;lt;br&amp;gt;&lt;br /&gt;
6 Alimentations 5V ou 3,3V &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
par exemple, 12 piles de type CR2016 3V rechargeables ou 24 piles AAA 1,5 V rechargeables  &lt;br /&gt;
5 modules Bluetooth nrf de Nordic : nRF52810-QFAA-R &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 3,17€/unité + frais expédition  [https://www.mouser.fr/productdetail/nordic-semiconductor/nrf52810-qfaa-r?qs=sGAEpiMZZMve4%2FbfQkoj%252bG%2FosjLoe2oghFQwQllMrQ4%3D]&lt;br /&gt;
5 Lignes broches mâles &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logiciels:===&lt;br /&gt;
&lt;br /&gt;
- IDE arduino&lt;br /&gt;
- Altium&lt;br /&gt;
- FreeCAD ou Inkscape&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Liste des tâches à effectuer&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 1 : Gestion du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Définition des cahiers des charges fonctionnel et technique, choix d'orientation...&lt;br /&gt;
* Recherche techniques sur les différentes connexions possibles entre les modules, la RPi 3 et la console PS4&lt;br /&gt;
#Recherche connexion SPI entre les modules et la RPi3&lt;br /&gt;
# Recherche connexion bluetooth entre la RPi3 et la PS4&lt;br /&gt;
# Recherche connexion bluetooth pour les modules&lt;br /&gt;
# Recherche carte avec montage Atmega328P-PU et anticipation module bluetooth&lt;br /&gt;
* Détermination du matériel nécessaire&lt;br /&gt;
* Réflexion sur l'application&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 2: Réalisation du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Partie 1: Preuve concept manette en filaire'''&lt;br /&gt;
&lt;br /&gt;
* Conception de cartes électroniques pour 2 modules (/!\ prévoir modules bluetooth)&lt;br /&gt;
* Réalisation connexion SPI avec 2 modules : programmation des Atmega328p en liaison série. &lt;br /&gt;
* Si tests concluant, ajouter des modules jusqu'à en avoir 5 (1 pour chaque type de boutons) &lt;br /&gt;
* Connexion bluetooth entre la PS4 et la RPi3&lt;br /&gt;
* Réalisation du support des modules avec fixations possibles (imprimante 3D)&lt;br /&gt;
&lt;br /&gt;
'''Partie 2: Preuve concept manette en bluetooth'''&lt;br /&gt;
&lt;br /&gt;
* Ajout des modules bluetooth aux cartes électroniques&lt;br /&gt;
* Connexion bluetooth entre les modules&lt;br /&gt;
&lt;br /&gt;
'''Partie 3: Application Android : paramétrage de la manette'''&lt;br /&gt;
&lt;br /&gt;
* Créer une application sur tablette ou smartphone (Android) afin de configurer la manette aux besoins (inter-connexion des modules et console)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Calendrier prévisionnel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Date'''&amp;lt;/u&amp;gt;&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Tache à réaliser''' &amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
17/01/18-24/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Faire des recherches sur les différentes interconnexions du système : Bluetooth, RPi-Atmega328 (SPI), RPi-PS4&lt;br /&gt;
Continuer liste des taches, matériel, Début recherches + réflexion fixation support des modules&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Recherche technique connexion PS4-RPi3 et connexion SPI RPi3-Module + code&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18-07/03/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Réalisation 1er prototype (+ début prototype 2)&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
07/03/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Seance 7 :  Test prototype filaire&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
07/03/18-09/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Réalisation 2eme prototype + application Android&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
09/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Seance 14 :  Test prototype Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
14/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Video projet&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
15/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Finalisation projet et Rapport&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
16/05/18-17/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Soutenances Projet&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Réalisation du Projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Feuille d'heures &amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Voici le tableau d'heures du binôme:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Heures S11 !! Heures S12 !! Heures S13et+ !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 10&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 20min&lt;br /&gt;
|&lt;br /&gt;
| 15h20&lt;br /&gt;
|-&lt;br /&gt;
| Cherches techniques &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 18&lt;br /&gt;
|-&lt;br /&gt;
| Rédaction du wiki et rapport de projet&lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 30min&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| 30min&lt;br /&gt;
| 30min&lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
| 10h30&lt;br /&gt;
|-&lt;br /&gt;
| Programmation&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 3&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 7&lt;br /&gt;
| 8&lt;br /&gt;
| 6&lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
| 43&lt;br /&gt;
|-&lt;br /&gt;
| Cartes électroniques&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 6&lt;br /&gt;
| 8&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| 31&lt;br /&gt;
|-&lt;br /&gt;
| Application&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| Total Semaine&lt;br /&gt;
| 10&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 7&lt;br /&gt;
| 10h30&lt;br /&gt;
| 13&lt;br /&gt;
| 9&lt;br /&gt;
| 12&lt;br /&gt;
| 9h30&lt;br /&gt;
| 10h30&lt;br /&gt;
| 9&lt;br /&gt;
| 9h20&lt;br /&gt;
| &lt;br /&gt;
| '''117h50'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Prologue&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Avant la réalisation et conception d'un projet, il est important d'analyser celui-ci. Nous avons allons consacré le prologue à l'analyse fonctionnelle de la manette. Nous avons également eu une réflexion sur l'analyse technique, cela nous a permis de réaliser une liste de matériel. Il est important de définir les objectifs ainsi que les besoins afin de ne rien oublier. (Voir ci-dessus Analyse projet) &lt;br /&gt;
Nous avons également organisé notre travail, pour le partage de documents de recherches et la rédaction de compte-rendu final nous avons réalisé un google drive. Par la suite, nous créerons un projet Git. &lt;br /&gt;
&lt;br /&gt;
Durant ce temps, nous avons décidé de réaliser 5 modules. Les modules sont les différents boutons de la manettes qui nous pourrons placer selon nos choix (boutons modulaires) pour notre prototype projet pour chaque type des boutons d'une manette PS4. Ces modules devrons être connectés à la console et interconnectés. Le tout sera lié à une application Android. Suite à quelques recherches et nos analyses, nous avons décidé les points suivants :&lt;br /&gt;
&lt;br /&gt;
- On commencera avec 2 modules et on les multipliera par la suite. &lt;br /&gt;
- Les premiers tests sont réalisés avec des boutons petits pour assurer leur caractéristique &amp;quot;modulaires&amp;quot;, par la suite nous pourrons ajouter des capuchons de taille plus importante (imprimante 3D ou achat)&lt;br /&gt;
- Conception modules : réalisation de carte avec un microcontrôleur atmega328 programmable pour chaque module (anticiper le module Bluetooth) &lt;br /&gt;
- Projet en 2 parties : prototype filaire et prototype Bluetooth&lt;br /&gt;
# Prototype filaire : connexions entre les modules et la RPi3 en SPI, connexion Rpi3-PS4 en Bluetooth, avec l'application en filaire à la RPi3&lt;br /&gt;
# Prototype Bluetooth: connexion Bluetooth entre modules-RPi3-PS4-apllication&lt;br /&gt;
&lt;br /&gt;
[[Fichier: structuremanette.png||center|400px|Concept manette modulable]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 1&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous nous sommes concentrés les recherches afin de définir clairement le cahier des charges technique. Il s'agit des réalisations à mettre en œuvre pour les inter-connexions des éléments de la manette.&lt;br /&gt;
Ainsi, nous avons fait des recherches sur :&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI entre les modules (Atmega328p) et la RPi3===&lt;br /&gt;
&lt;br /&gt;
SPI: Serial périphérique interface BUS&lt;br /&gt;
&lt;br /&gt;
[[Fichier: yWGmW.png||right|200px|Concept manette modulable]]&lt;br /&gt;
Comme indiqué sur l'image ci-dessus, la Raspberry pi 3  peut communiquer en SPI avec ses broches CS0 (24), CS1 (26), SCLK (23), MISO (21), MOSI (19). Celles-ci permettent de communiquer avec un ou plusieurs esclaves (dans notre cas, des Atmega328p) en reliant directement les broches concernées de la RPi3 à celles des composants esclaves.&lt;br /&gt;
Chaque broche CS0 (24) ou CS1 (26) ne peut être connectée qu'à l'entrée SS (aussi appelé CS) d'un seul esclave.&lt;br /&gt;
C'est a dire que chaque CS est lié à un esclave afin de choisir avec lequel la communication est établie à un moment donné, et les MISO sont reliées entre elles en cascade, de même pour les SCLK et les MOSI. On peut noter que le maître impose la fréquence d’horloge et sélectionne l’esclave auquel les données sont envoyées.  8 MHz est le plus rapide supportable a 3,3V&lt;br /&gt;
&lt;br /&gt;
[[Fichier: fonctionnementSPI.png||right|200px|Connexion SPI multi-esclaves]]&lt;br /&gt;
&lt;br /&gt;
Voici un schéma du fonctionnement souhaité : &lt;br /&gt;
&lt;br /&gt;
Comme nous souhaitons avoir 5 modules environ il nous faudra rajouter un composant en plus afin d'augmenter les possibilités de sélection, par exemple des démultiplexeurs.&lt;br /&gt;
Dans un premier temps nous essaierons avec 2 esclaves, puis on augmentera le nombre. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Connexion Bluetooth PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Les recherches portent également sur la connexion entre la manette PS4 et la console. Elles concernent le protocole de communication via Bluetooth&lt;br /&gt;
&lt;br /&gt;
Caracteristique pour la PS4:  Bluetooth®v4.0, Qualcomm Atheros AR3002 Buetooth LE: 2,4-2,5 GHz  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caracteristique de la connexion : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Vitesse de transmission &amp;gt;&amp;gt; 3 Mbit/s   8N1 &lt;br /&gt;
*Relevé tous les 1.3 millisecond (peut-être) &lt;br /&gt;
*Chaque manette à une adresse unique BD_ADDR qui correspond à l’adresse MAC de la carte Réseau&lt;br /&gt;
*Protocole de détection est le SDP basé sur une emission reception PDU&lt;br /&gt;
*L’Attribut ID est representer en TLV Type Length Value &lt;br /&gt;
*Communication HCI ACL Data Packet &lt;br /&gt;
&lt;br /&gt;
===Rélisation des cartes électroniques===&lt;br /&gt;
&lt;br /&gt;
matériel nécessaire pour un PCB : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*breadboard&lt;br /&gt;
*câbles&lt;br /&gt;
*1 x 10k Ohm résistance&lt;br /&gt;
*Quartz 16Mhz clock crystal&lt;br /&gt;
*2 x 22 pF capaciteurs&lt;br /&gt;
*Atmega328P-PU&lt;br /&gt;
&lt;br /&gt;
Ressources: &lt;br /&gt;
[[https://www.arduino.cc/en/Main/Standalone]]&lt;br /&gt;
[[http://www.eprojectszone.com/atmega-328-pu-standalone/]]&lt;br /&gt;
[[https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 2&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la semaine deux et durant la séance, nous avons continué et approfondie nos recherches sur le projet. Nous avons pu ainsi affiner nos taches de réalisation et donc notre cahier des charges.&lt;br /&gt;
&lt;br /&gt;
===Connexion aux modules: SPI et Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Green&amp;quot;&amp;gt; CORRIGER&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
voir https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018#Configuration_du_syst.C3.A8me_embarqu.C3.A9&lt;br /&gt;
&lt;br /&gt;
(sudo apt-get install pi-bluetooth)&lt;br /&gt;
&lt;br /&gt;
''connexion sur la raspberry par ssh:''&lt;br /&gt;
 su&lt;br /&gt;
 update-rc.d ssh enable&lt;br /&gt;
 invoke-rc.d ssh start &lt;br /&gt;
 ssh pi@172.26.79.1XX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''bluetooth''&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
 agent on&lt;br /&gt;
 default-agent&lt;br /&gt;
 scan on&lt;br /&gt;
 pair [device Bluetooth address]  (exemple: pair XX:XX:XX:XX:XX:XX )&lt;br /&gt;
&lt;br /&gt;
''NOUVELLE REFLEXION : Connexion SPI entre les modules (Atmega328p) et la RPi3 --&amp;gt; MODULES BLUETOOTH''&lt;br /&gt;
&lt;br /&gt;
Si multi-esclaves= plusieurs modules : &lt;br /&gt;
Il faut ajouter des sélections pour les SPI → démultiplexeurs OU ne pas utiliser les CS0 et CS1, et plutôt des pins entrée/sortie de la RPi3 lié au SS comme ça on choisit direct le module esclave voulu.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' Nous avons étudié à nouveau la datasheet de notre module bluetooth nrf de Nordik. Le module bluetooth comporte  déjà un microprocesseur !&lt;br /&gt;
Un module plutôt peut donc jouer le rôle de notre atmega328p. Il n'y a alors pas besoin de réaliser des cartes électroniques de type arduino standalone. Nos PCB regrouperont alors uniquement l'alimentation, un actionneur (bouton, joystick), le module bluetooth et les broches de connexion si besoin... &lt;br /&gt;
&lt;br /&gt;
Cette séance nous a alors permise de revoir entièrement le matériel nécessaire. Notre liste de matériel nous semble alors plus réfléchie et limitée au nécessaire. &lt;br /&gt;
&lt;br /&gt;
===Connexion Bluetooth PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Suite à nos recherches de la semaine précédente, nous avons sélectionné deux sites bien renseignés : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;SITES&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ils nous ont permis de comprendre la communication entre la manette et la console. En effet, ils nous expliquent les échanges de trames Bluetooth. &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;EXPLICATIONS 1 exemple &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 3 : Début premier prototype&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI RPi3-Arduino===&lt;br /&gt;
&lt;br /&gt;
Comme vu durant les semaines précédentes, nous souhaitons réaliser une connexion Multi-esclaves en SPI entre la Raspberry pi et plusieurs modules.&lt;br /&gt;
Cette semaine nous avons vu que la réalisation de notre premier prototype doit aller vite. Il ne nous est pas nécessaire d’attendre les modules bluetooth si il nous faut dans cette partie uniquement utiliser son microprocesseur. Ainsi pour chaque module nous utilisons une arduino UNO. Nous réaliserons les programmes en C afin de pouvoir les réutiliser avec les modules bluetooth par la suite. &lt;br /&gt;
Une fois la connexion réalisable nous adapterons les programmes aux modules bluetooth Nordik. En effet, ceux-ci comporte déjà un microprocesseur, le module peut jouer le rôle de notre atmega328p. Il n'y a aurait alors pas besoin de réaliser des cartes électroniques arduino standalone sur PCB, mais directement des cartes électronique avec le module et le module voulu (bouton, joystick...) et l'alimentation. &lt;br /&gt;
Durant la séance nous avons alors revu la liste de matériel nécessaire. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: prototype1.jpeg||center|600px|connexion filaire prototype 1 filaire arduino]]&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous avons recherches des exemples de codes et de librairies pour Arduino SPI et RaspberryPI SPI. &lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé le programme de la connexion SPI pour l'arduino et récupéré les bibliothéques SPI.h avec SPI.c. Nous nous sommes alors concentrer à les comprendre, pour pouvoir l'utiliser. &lt;br /&gt;
&lt;br /&gt;
===Réalisation du projet Git===&lt;br /&gt;
&lt;br /&gt;
Création du projet IMA4_Projet35_ManetteModulable sur Git et partage de celui-ci. &lt;br /&gt;
Les premiers dossier crées cette la séance :&lt;br /&gt;
-Arduino (connexion SPI arduino) : ProtoSpi.c + dossier librairie SPI + Makefile&lt;br /&gt;
-RPI (dossier codes pour Rpi) &lt;br /&gt;
-Readme.md&lt;br /&gt;
Ces dossiers seront amenés à être modifiés au cours des séances. &lt;br /&gt;
&lt;br /&gt;
===Protocole Bluetooth PS4===&lt;br /&gt;
&lt;br /&gt;
Suite à l'étude des trames Bluetooth, on a pu voir que ces dernières étaient incomplètes. Le modèle de communication étant propriétaire, on n'y a pas accès directement. Cela nous empêche donc de mettre en oeuvre cette communication. &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt; Déveloper&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On a décidé de commencer par une connexion USB (pour laquelle on dispose de toutes les informations) celle-ci étant plus complète.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 4&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Pour le prototype 1 FILAIRE nous réaliserons les étapes suivantes :&lt;br /&gt;
&lt;br /&gt;
#Réalisation du programme SPI pour arduino&lt;br /&gt;
#Réalisation du programme SPI pour la RPi&lt;br /&gt;
#Connexion USB avec la PS4 ou ordinateur&lt;br /&gt;
#Réalisation de cartes électroniques atmega328p-pu standalone (remplacer les Arduinos) &lt;br /&gt;
#Remplacer les &amp;quot;PCB arduino&amp;quot; par le module bluetooth et adapter la connexion&lt;br /&gt;
#Conception 3D de la délimitation 1 axe pour le joystick &amp;quot;gâchette&amp;quot;&lt;br /&gt;
#Réalisation de l'application Androïde.&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées nous auront alors une preuve de concept filaire et nous pourrons alors passer à une connexion bluetooth. &lt;br /&gt;
Le passage à la connexion bluetooth sera le deuxième prototype et le cas idéal de la réalisation de la manette modulable. &lt;br /&gt;
&lt;br /&gt;
===Mise à jour Matériel===&lt;br /&gt;
&lt;br /&gt;
- Modéliser les boutons gâchettes L1/2 R1/2 de la manette PS4 (boutons sensibles à la pression) --&amp;gt; un joystick dont nous bloquerons un axe (imprimante 3D)&lt;br /&gt;
- Remplacer la RPi 3 par une Rpi zero W qui nous permettrait de réaliser plus facilement une connexion USB tout en gardant l'avantage du bluetooth. &lt;br /&gt;
- Choix de l’alimentation pour les 5 modules Bluetooth: nécessitent 3V --&amp;gt;  utiliser des piles rechargeables 1,2V AAA plutôt que piles rondes 3V.&lt;br /&gt;
&lt;br /&gt;
Nous avons également besoin du matériel cité en semaine 1 pour réaliser des cartes électroniques atmega328p-pu standalone. ( nous revenons alors sur les décisions de la semaine 3)&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI RPi3-Arduino===&lt;br /&gt;
 &lt;br /&gt;
Montage Raspberrypi et 1 arduino en PSI + 1 bouton + 1 led.&lt;br /&gt;
Voici le choix des branchements :&lt;br /&gt;
&lt;br /&gt;
 MASTER = RPi   &lt;br /&gt;
 SLAVE= Arduino&lt;br /&gt;
&lt;br /&gt;
'''SPI sur Arduino:'''&lt;br /&gt;
 MOSI -&amp;gt; GPIO11 //PB3  //master OUT to the slave IN&lt;br /&gt;
 MISO -&amp;gt; GPIO12 //PB4 //slave OUT to the master IN&lt;br /&gt;
 SCLK -&amp;gt; GPIO13 //PB5 //serial clock&lt;br /&gt;
 SS -&amp;gt; GPIO10   //PB2  //slave select&lt;br /&gt;
'''Led, bouton et autre...'''&lt;br /&gt;
 LED --&amp;gt; GPIO6  //PD6&lt;br /&gt;
 GND&lt;br /&gt;
 +5V (if required)&lt;br /&gt;
'''SPI sur la Raspberry Pi'''&lt;br /&gt;
 SPIO MOSI -&amp;gt; PIN19 &lt;br /&gt;
 SPIO MISO -&amp;gt; PIN21&lt;br /&gt;
 SCLK -&amp;gt; PIN23&lt;br /&gt;
 SPIO CS0 -&amp;gt; PIN24&lt;br /&gt;
&lt;br /&gt;
Continuation du code pour faire clignoter Led branchée à une arduino depuis la Rpi, en connexion SPI.&lt;br /&gt;
&lt;br /&gt;
===Connexion USB PS4-RPi3===&lt;br /&gt;
Durant cette, nous avons regardé comment faire cohabiter bluetooth, Application Androïd, USB, PS4, SPI et les module. &lt;br /&gt;
&lt;br /&gt;
Il est alors important de savoir comment utiliser le port série sur la RPi3, soit utiliser les UART. &lt;br /&gt;
&lt;br /&gt;
Nous avons réaliser qu'il n'était pas aussi simple d'utiliser le port serie USB de la Raspberry Pi 3, en effet le SoC est un BCM2837 . &lt;br /&gt;
De plus nous ne pouvons pas utiliser le même port pour l'alimentation et la connexion. &lt;br /&gt;
&lt;br /&gt;
Il nous faut alors trouver une alternative ou une solution à ce problème.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 5&amp;lt;/span&amp;gt;==&lt;br /&gt;
 &lt;br /&gt;
===Programmation: Réflexion définitives prototypes filaire ===&lt;br /&gt;
&lt;br /&gt;
La semaine dernière, nous avons rencontré une difficulté liée aux ports séries UART. &lt;br /&gt;
Une des solutions à cette difficulté serait d'utiliser une RPi ZERO W à défaut d'une RPi 3. On pourrait alors avoir un port d'alimentation avec connexion USB mais également retrouver la connexion Bluetooth dont nous avons besoin.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous avons continué la réalisation du prototype filaire par l'avancé du code SPI ainsi que les recherches concernant le protocole PS4. &lt;br /&gt;
&lt;br /&gt;
La Raspberry Pi zero W peut également être utile pour la connexion entre la PS4 et les différents modules en jouant le rôle d'intermédiaire. Nous avons alors commandé une Rpi zero W pour notre projet. &lt;br /&gt;
En attendant la réception de la commande, nous nous sommes penché sur les recherches pour les programmes et la configuration nécessaire à l'utilisation de la RPi zero W.&lt;br /&gt;
&lt;br /&gt;
===Electronique===&lt;br /&gt;
&lt;br /&gt;
[[Fichier: bouton_c1.jpg|100px|thumb|left|PCB bouton]]&lt;br /&gt;
[[Fichier: arduinobb.jpg|200px|thumb|right|atmega328p-pu branchement test]]&lt;br /&gt;
&lt;br /&gt;
Du coté électronique, nous avons réalisé sur fritzing certaines cartes électroniques. Les Arduino Uno servant actuellement de test, seront remplacées par des PCB atmega328p-pu standalone avec des broches permettant les branchements nécessaires SPI ou encore aux modules &amp;quot;boutons/joystick&amp;quot;. Pour les boutons, nous avons également réalisé un pcb afin de faciliter les branchements.  &lt;br /&gt;
&lt;br /&gt;
Il nous faut alors également une 3eme carte qui nous sera nécessaire pour la réalisation du prototype sans fil. Dans notre liste de matériel, nous avons des composants nrf52810 bluetooth, ceci doivent être soudé avec les capacités de protection mais également des broches de communication. Nous avons alors commencé cette carte électronique sur Altium avec le fichier  projet PCB du distributeur à modifier.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: Arduino_c1.jpg|100px|thumb|center|PCB atmega328p-pu]]&lt;br /&gt;
&lt;br /&gt;
=== Construction 3D ===&lt;br /&gt;
&lt;br /&gt;
Enfin, nous avons commencé à réaliser des boîtiers 3D pour certains modules. Par exemple, comme nous l'avions vu précédemment, un des joysticks servira de bouton-gâchette en utilisant un seul de ses axes. Il nous faut alors réaliser un boitier qui bloque l'un des axes, mais également une tige qui nous permettra de pousser le joystick de manière simplifiée.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 6&amp;lt;/span&amp;gt;==&lt;br /&gt;
 &lt;br /&gt;
===Programmation: configuration RPi Zero W ===&lt;br /&gt;
&lt;br /&gt;
Ayant reçu la Raspberry Pi zero W en début de semaine, nous nous sommes concentrés sur la programmation et la configuration de celle-ci.&lt;br /&gt;
Cette partie étant compliquée, elle nous a pris du temps. En effet, il était difficile de connecter la RPi en SSH car il n'est pas possible d'y connecter un clavier directement et on avait besoin de la prise OTG pour &amp;quot;interfacer&amp;quot; la manette.&lt;br /&gt;
&lt;br /&gt;
===Electronique: PCB nrf52810===&lt;br /&gt;
&lt;br /&gt;
Les cartes réalisées en semaine 5 sont validées et en attente de réalisation. &lt;br /&gt;
&lt;br /&gt;
Cette semaine a permis la réalisation et la finalisation de la carte électronique nrf52810. Il nous a fallu recommencé cette carte deux fois. En effet, une fois finie sur Altium nous avons réalisé que les empreintes des CMS sur PCB fourni par le constructeur ne correspondent pas au matériel CMS de l'école. Face à cette inattention de notre part, nous avons décidé de refaire entièrement la carte électronique sur fritzing. Ayant la datasheet et des plans d'inspiration PCB, nous avons pu refaire la carte entièrement. &lt;br /&gt;
Sur celle-ci nous avons ajouté des broches de connexion au besoin, un branchement Jtag et ICSP pour la programmation et la connexion SPI. &lt;br /&gt;
La carte est en attente de validation, puis validation.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: nrf52810_circuit2.jpg||center|400px|PCB carte nrf52810]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Révision matériel ===&lt;br /&gt;
&lt;br /&gt;
Pour la réalisation de nos composants électroniques, il nous a fallu faire une révision des composants disponibles à l'école:&lt;br /&gt;
(les quantités indiquées ci-dessous pourront être augmentée si nécessaire,pour avoir dans l'idéal un module de chaque type de la manette, ici on se concentre sur BOUTON et JOYSTICK)&lt;br /&gt;
&lt;br /&gt;
'''Cartes Arduino:'''&lt;br /&gt;
* 4 capacite 22pF traversantes&lt;br /&gt;
* 2 resistances 10 kOhm traversantes (à récupérer)&lt;br /&gt;
* 2 oscillateurs quartz 16MHz traversante&lt;br /&gt;
* 2 atmega328p-pu et support&lt;br /&gt;
&lt;br /&gt;
'''Cartes nrf52810'''&lt;br /&gt;
* 6 capacités 100nF 0603&lt;br /&gt;
* 6 capacités 12pF 0603&lt;br /&gt;
* 2 capacités 4,7pF 0603&lt;br /&gt;
* 2 capacités 1µF 0603&lt;br /&gt;
* 2 capacités 100pF=0,1nF 0603 (à récupérer)&lt;br /&gt;
* 2 capacités 0,8pF 0603 (commande en cours)&lt;br /&gt;
* 2 inductance 3,9nH 0603 (commande en cours)&lt;br /&gt;
* 2 oscillateur quartz 32 MHz &lt;br /&gt;
&lt;br /&gt;
'''Cartes modules Boutons'''&lt;br /&gt;
* un sachet de broches mâles (qu'on utilisera également pour les autres cartes, à récupérer/acheté) &lt;br /&gt;
&lt;br /&gt;
Nous avons alors mis-à-jour la liste de composant située plus haut, ainsi que celle de la page IMA4 2017/2018 [https://projets-ima.plil.fr/mediawiki/index.php/Projets_IMA4_SC_%26_SA_2017/2018]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 7&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Programmation: connexion wifi RPi Zero W et Bootloader sur Atmega328p-pu ===&lt;br /&gt;
&lt;br /&gt;
Pendant cette semaine, nous avons continué la programmation et la configuration des Raspberry Pi 3 et Zero W. Concernant la configuration ssh, nous avons utilisé un téléphone en guise de point d’accès à la RPi Zero W en wifi.&lt;br /&gt;
Nous avons aussi directement configurer l'OS Jessie, utilisé pour la RPi Zero. On a modifié le fichier cmd.txt et ...pour pouvoir programmer un USB gadget sur le port OTG.&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;Ci-dessus expliquer fichiers&amp;lt;/span&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Nous avons également continuer les programmes de récupération de données : état des boutons et du joystick. Ces programmes sont appliqué sur l'atmega328p-pu standalone sur la plaque d'essai en attendant que le PCB soit opérationnel.&lt;br /&gt;
Pour pouvoir programmer l'atemega328p-pu comme une arduino UNO, il nous faut suivre plusieurs étapes :&lt;br /&gt;
&lt;br /&gt;
'''1.Flasher le Bootloader'''&lt;br /&gt;
Nous avons 2 Atmega328p-pu neufs, ainsi il nous faut flasher le bootloader sur chacun d'eux afin de pouvoir les utiliser et les programmer sur une breadboard dans un montage minimaliste arduino-standalone. &lt;br /&gt;
Pour cela, on peut utiliser une carte arduino UNO. On vérifie le port et le type de carte sélectionnés dans le menu &amp;gt;Outils. Sur cette carte on téléverse le fichier arduinoISP.ino qui se trouve dans les exemples en étant en progrmamateur AVr ISP mkll (&amp;gt;outils&amp;gt;programmateur) &lt;br /&gt;
Puis on met l'atmega328p-pu qui nous intéresse sur le suppor socket de la carte. On change de nouveau le programmateur pour Arduino as ISP et on fait &amp;gt;tools&amp;gt;burn bootloader, soit &amp;gt;graver la sequence d'initialisation.&lt;br /&gt;
Ces étapes faites, on peut retirer notre microcontroleur et le replacer correctement dans le montage. &lt;br /&gt;
&lt;br /&gt;
'''2.Programmation atmega328 sur breadboard'''&lt;br /&gt;
Une fois l'atmega328p-pu préparé, on peut le programmer. On peut le faire simplement à l'aide de la carte arduino UNO utilisée précédemment.On branche les Tx et Rx en commun ainsi que le reset, le GND et le VCC.&lt;br /&gt;
&lt;br /&gt;
Nous avons réaliser des codes basiques tels que le clignotement d'une led rouge ou encore l'affichage de &amp;quot;hello world&amp;quot; sur le moniteur série pour vérifier la bonne fonctionnalité du montage. Cela fait nous avons pu écrire sous Arduino IDE le code de lecture des états.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: montage_BB_test.jpg||left|200px|programmation modules arduino sur breadboard]]&lt;br /&gt;
&lt;br /&gt;
===Electronique : soudure carte de test modules ===&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons déja vu lors de la réalisation des PCB, si l'on souhaite programmer un atmega328p-pu en bootloader, le montage est simple. Il peut être minimaliste en utilisant une arduino UNO, un atmega328, une breadboard et 3 composants: 1 quartz 16MHZ crystal, 1 résistance 10kOhm et 2 capacitors céramiques de 22pF.&lt;br /&gt;
Durant la semaine 7, nous avons soudé les composants traversants de la carte électronique correspondant à ce montage ainsi que le PCB du bouton.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 8&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Programmation ===&lt;br /&gt;
Après moult recherche sur les différents site web bien fournis pour le coups on as pu trouvé une amorce à la programmation de l'OTG via un script qui agit au niveau du kernel dans le sous dossier usg_gadget. Ce script donne les informations nécessaires pour pouvoirs échangé les données.&lt;br /&gt;
Avec le script trouvé et les informations des sites web décryptant les trames de la manette, on a toujours pas réussit à faire passer notre RPi Zero W pour une manette de PS4. Néanmoins il nous manque la trame HID complète de la manette pour avoir un test effectif.&lt;br /&gt;
&lt;br /&gt;
===Electronique : Correction soudure et soudure CMS===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avions souhaité programmer la carte électronique atmega328p-pu. Cependant, nous avons réaliser que nous avions fait une erreur lors de l'envoie du PCB à la production. En effet, celui-ci avait été fait en Top sur le logiciel Fritzing et non en Bottom. Hors nous avions soudé les composants (durant la semaine 7) comme pour un circuit imprimé en bottom, l'atmega328p-pu se retrouve alors inversé par rapport aux pistes. &lt;br /&gt;
Comme solution, nous avons choisi de souder un deuxième support pour l'atmega328 de l'autre coté de la carte avant de la refaire au propre. En effet, avant de la refaire il nous faut vérifier si la carte est bien programmable. &lt;br /&gt;
Une fois cela fait nous avions pu programmer la carte mais, nous avions également réalisé la pin 2 de l'atmega328 était prise par le bouton poussoir. Or, nous avons besoin des pin 2 et 3 pour le RX et TX permettant la programmation de l'atmega à partir d'une arduino, les pistes branchement RX-TX n'ont également pas été prévus pour le téléversement des programmes sur la carte. Il nous faut alors couper une piste et souder des câbles pour utiliser toutes les pistes souhaitées. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: correction_proto_PCB.jpg||right|300px|PCB arduino correction]]&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons également souhaité souder les CMS et le composant bluetooth nrf52810 sur la carte imprimé et reçu lors de la semaine 7. Pour cela, nous avons convenu de travailler dans la C202 durant la séance du mercredi. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: PCB_nrf52810.jpg||left|400px|carte electroniques imprimées]]&lt;br /&gt;
&lt;br /&gt;
====Comment souder des CMS ?====&lt;br /&gt;
&lt;br /&gt;
les CMS sont des composants montés en surface c'est à dire qu'ils sont montés du même côté que les pistes cuivrées (à l'opposé des composants traversants) et sont de petite tailles souvent de l'ordre du millimètre. La taille est déterminée par 4 chiffres : les 2 premiers pour la longueur et les 2 derniers pour la largeur. On a du 1206,0805,0603 ou encore 0402. Il est même possible de trouver plus petit. A l'école nous utilisons souvent du 0603, c'est le cas de nos composants.&lt;br /&gt;
Pour souder des CMS 0603, il nous faut utiliser une autre méthode qui n'est pas le fer à souder :&lt;br /&gt;
# Préparer la veille la pâte à braser la veille (dans une seringue)&lt;br /&gt;
# Gommer la carte pour éviter l'oxydation (attention à ne pas retirer les miettes de gomme en soufflant dessus) &lt;br /&gt;
# Appliquer avec la seringue la pâte sur les empreintes et piste souhaitées. Pour les endroits difficile à atteindre ou avec 2 pistes proches les unes des autres, il est possible de mettre la même goutte de pâte sur les 2 pistes. Cela de causera pas de court-circuit par la suite. En effet, la pâte est composée d’alliage qui sous la chaleur va se fluidifier et se coller uniquement aux pistes métallique. Le reste fondera sous la chaleur du four.&lt;br /&gt;
# Appliquer les CMS sur la pâte au fur et à mesure (attention ! ne jamais toucher les CMS avec les doigts, tjrs utiliser une pince)&lt;br /&gt;
# Mettre au four&lt;br /&gt;
&lt;br /&gt;
====Bilan soudure nrf52810====&lt;br /&gt;
&lt;br /&gt;
Cependant, une fois le matériel nécessaire préparé, et la pâte mise sur les pistes souhaitées, au moment de déposer le composant, nous avons réalisé que celui-ci était beaucoup plus petit que l'empreinte sur le PCB. Il s'agit d'un composant boitier QFN48. Fritzing ne proposant au plus proche des boitiers QFN24 ou LQFP48, celui-ci a basculé automatiquement pour un boitier LQFN48, de dimension plus grande. Face à ce manque de vigilance, nous avions cependant commencer par le nrf52810 (composant concerné) évitant ainsi de gaspiller d'autres CMS. &lt;br /&gt;
Nous avons souhaité refaire la carte sous Altium à partir des fichiers fournis par le concepteur (chose que nous avons commencé à faire aux alentours de la semaine 5) &lt;br /&gt;
Après la réalisation du schématic, et de la modification des empreintes de capacités, inductances et autres composants de 0402 à 0603. Notre matériel ne permettant que des empreintes 0603.&lt;br /&gt;
 &lt;br /&gt;
Lors du routage, une erreur de chevauchement des pistes est notifiée par Altium au niveau du nrf52810. Celles-ci ne présentent pas d'angles et sont déjà de taille 8mil, il nous faut alors passer les pistes en 6mil. Mais 8mil est la taille minimale pour la production à Polytech, nous avons regardé pour envoyer les cartes à faire ailleurs mais le 6mil n'est pas beaucoup conseillé. De plus, il n'est peut-être pas judicieux de continuer avec le composant microcontrôleur-bluetooth Nrf52810 qui prend du temps, donc la carte est difficilement réalisable et peut-être très long à programmer. &lt;br /&gt;
&lt;br /&gt;
Ainsi en cette fin de semaine, nous avons décider face à l'avancer du projet de laisser les nrf52810 de coté et de les remplacer par des modules sans fils plus simples d'utilisation et complets. Ainsi nous aurions plus de chance d'avoir une connexion sans fils entre les modules. Nous pourrions par exemples utiliser des Xbee, des modules Rf...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 9&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation: PS4 et 1er Test SPI sur atmega328p====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
Les premiers tests sur Windows ne nous donner pas satisfaction. En effet, l'ordinateur détectait bien le nouvel appareil avec son nom mais l'origine rester inconnue. &lt;br /&gt;
&lt;br /&gt;
Lors des tests sur Linux on a pu voir des erreurs via la commande 'dmesg' :&lt;br /&gt;
&lt;br /&gt;
 [193229.758782] usb 4-1.2: new high-speed USB device number 6 using ehci-pci&lt;br /&gt;
 [193230.270780] usb 4-1.2: new high-speed USB device number 7 using ehci-pci&lt;br /&gt;
 [193235.510842] usb 4-1.2: device descriptor read/64, error -110&lt;br /&gt;
 [193251.127043] usb 4-1.2: device descriptor read/64, error -110&lt;br /&gt;
 [193251.315043] usb 4-1.2: new high-speed USB device number 8 using ehci-pci&lt;br /&gt;
 [193256.503135] usb 4-1.2: device descriptor read/64, error -110&lt;br /&gt;
 [193272.119331] usb 4-1.2: device descriptor read/64, error -110&lt;br /&gt;
 [193272.307331] usb 4-1.2: new high-speed USB device number 9 using ehci-pci&lt;br /&gt;
 [193282.999473] usb 4-1.2: device not accepting address 9, error -110&lt;br /&gt;
 [193283.079485] usb 4-1.2: new high-speed USB device number 10 using ehci-pci&lt;br /&gt;
 [193293.751588] usb 4-1.2: device not accepting address 10, error -110&lt;br /&gt;
 [193293.751771] usb 4-1-port2: unable to enumerate USB device&lt;br /&gt;
 [193387.196861] usb 4-1.2: new high-speed USB device number 11 using ehci-pci&lt;br /&gt;
 [193392.440941] usb 4-1.2: device descriptor read/64, error -110&lt;br /&gt;
 [193407.933152] usb 4-1.1: new high-speed USB device number 12 using ehci-pci&lt;br /&gt;
 [193413.177227] usb 4-1.1: device descriptor read/64, error -110&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Modules Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
Une carte PCB arduino fonctionnant, nous pouvons la programme pour simuler un module. Celle-ci a été designée afin de s'adapter au module que l'on souhaite. Il suffit de brancher le bouton, le joystick ou autre élèment de manette souhaité.&lt;br /&gt;
Cette semaine ci, nous avons alors configurer la partie communication SPI pour l'arduino.&lt;br /&gt;
&lt;br /&gt;
'''Que voulons-nous faire avec les atmegas ?''' &lt;br /&gt;
Les cartes électroniques atmega328p vont nous permettre de recevoir les requêtes SPI envoyées par la raspberry pi et d'y répondre. La Raspberry enverra un message, par exemple &amp;quot;1&amp;quot;, et l'Arduino lira alors l'état du module qui lui est connecté. Une fois l'état récupéré elle le renvoie à la raspberry pi.&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons programmé l'atmega afin qu'il soit en esclave, qu'il reçoive un de la RPi &amp;quot;1&amp;quot; et retourne une valeur sauvegardé &amp;quot;int envoi&amp;quot;. Nous avons également commencé les tests pour la lecture de l'état d'un bouton (d'après les tests réalisés les semaines précédentes).&lt;br /&gt;
&lt;br /&gt;
'''Code'''&lt;br /&gt;
Comme nous l'avons vu précedement lors de nos recherches (semaines 1 à 4) : &lt;br /&gt;
La communication SPI nécessite l'utilisation des pins: &lt;br /&gt;
&lt;br /&gt;
MOSI -&amp;gt; GPIO11 //PB3  //master OUT to the slave IN&lt;br /&gt;
MISO -&amp;gt; GPIO12 //PB4 //slave OUT to the master IN&lt;br /&gt;
SCLK -&amp;gt; GPIO13 //PB5 //serial clock&lt;br /&gt;
SS -&amp;gt; GPIO10   //PB2  //slave select&lt;br /&gt;
&lt;br /&gt;
Il faut également paramétrer l'atmega328p en Slave. On note que dans un premier temps, le programme sera codé avec l'arduino IDE (fichiers .ino). Une fois l'ensemble SPI RaspberryPi-Arduino fonctionnant, on remplacera ces codes par du langage C ou C++.&lt;br /&gt;
&lt;br /&gt;
Pour faire la connexion SPI sur l'atmega328p,  on utilise la librairie arduino SPI.h, on a alors directement les fonctions nécessaires intervenant sur les registres souhaités : SPCR (spi control register), SPSR (spi status register) et SPDR (spi data register). &lt;br /&gt;
 &lt;br /&gt;
  #include &amp;lt;SPI.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il est important d'initialise d'abord le setup et on active le port série pour pourvoir utiliser le moniteur série. (Cela servira à verifier la valeur envoyée par la RPi) &lt;br /&gt;
&lt;br /&gt;
 void setup (void)&lt;br /&gt;
 {&lt;br /&gt;
   Serial.begin (9600);  &lt;br /&gt;
   pinMode(MISO, OUTPUT);  //configuration en esclave *master in slave out*&lt;br /&gt;
   pinMode(buttonPin,INPUT);  //config pin bouton&lt;br /&gt;
   // turn on SPI in slave mode&lt;br /&gt;
   SPCR |= _BV(SPE);&lt;br /&gt;
   // preparation interruptions&lt;br /&gt;
   pos = 0;   // buffer empty&lt;br /&gt;
   process_it = false;&lt;br /&gt;
   // activation interruptions&lt;br /&gt;
   SPI.attachInterrupt();&lt;br /&gt;
 }  &lt;br /&gt;
 &lt;br /&gt;
On oublie pas de déclarer les interruptions afin de bien lire la requête reçue. &lt;br /&gt;
 &lt;br /&gt;
// SPI interrupt routine&lt;br /&gt;
ISR (SPI_STC_vect)&lt;br /&gt;
{&lt;br /&gt;
  byte c = SPDR;  // grab byte from SPI Data Register&lt;br /&gt;
  // add to buffer if room&lt;br /&gt;
  if (pos &amp;lt; sizeof buf)&lt;br /&gt;
    {&lt;br /&gt;
    buf [pos++] = c;&lt;br /&gt;
    // example: newline means time to process buffer&lt;br /&gt;
    if (c == '\n')&lt;br /&gt;
      process_it = true;&lt;br /&gt;
    }  // end of room available&lt;br /&gt;
}  // end of interrupt routine SPI_STC_vect&lt;br /&gt;
&lt;br /&gt;
Dans la loop main, on traite la requête et on utilise '''SPI.transfer(envoi);''' pour transferer à la RPi les données souhaitées. &lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons également commencé des programmes de test SPI pour la RPi. Il s'agit principalement de programmes de tests tout faits permettant de vérifier la connexion entre cette dernière et l'arduino. Par exemple, la RPI envoie &amp;quot;bonjour&amp;quot; et l'arduino lui retourne ce qu'elle reçoit, soit &amp;quot;bonjour&amp;quot;. Sans succés alors.&lt;br /&gt;
&lt;br /&gt;
====Electronique : Fritzing révision====&lt;br /&gt;
&lt;br /&gt;
Lors de la semaine, le modèle PCB de la carte arduino a été réalisé de nouveau sous fritzing avec les broches et connections manquantes. Nous avons également revu la configuration du bouton reset  et ajouté une led d'état de l'alimentation. Nous avons ainsi envoyé deux cartes identiques à la réalisation.&lt;br /&gt;
La carte déjà soudée lors des derniers jours fonctionnant, elle nous sert de prototype de programmation. Nous pouvons ainsi avancer à la fois sur la programmation des modules mais aussi sur leur réalisation. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 10&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation : PS4 et SPI sur RPi====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
Cette semaine, pour tester la prise OTG nous avons décider de lancer un script qui est habituellement utilisé. Nous avons choisi le script Serial Adapter qui est censé permettre de se connecter à la RPi Zero W en SSH via ce port. &lt;br /&gt;
Après quelque modifications et plusieurs petits bugs, nous avons réussir à faire fonctionner le ssh via le port OTG. Donc le problème était le même, notre script mélangé avec les informations sur la PS4 n'était toujours pas fonctionnel.&lt;br /&gt;
&lt;br /&gt;
Pour faire la liaison entre les deux parties nous avons aussi commencé à programmer une application qui permet de configurer les modules au niveau de la RPi Zero W.    &lt;br /&gt;
&lt;br /&gt;
'''Modules Raspberry PI et SPI'''&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, pour la partie Atmega328p-Modules, nous nous sommes concentrés sur la programmation de la communication SPI avec la raspberry pi. Cette semaine a permis une étude plus approfondit sur le fonctionnement pour la RPi. &lt;br /&gt;
&lt;br /&gt;
On rappelle, comme vu des semaines 1 à 4, pour la RPI3 (tout comme la RPi Zero W) utilise les broches : SCLK (23), MISO(21), MOSI (19) et SPI CS0 (24), SPI CS1 (26). &lt;br /&gt;
On la programme en Master. A l'aide des fichiers tests d'inspiration, on pourra directement programmer la RPi en C. Lors de la réalisation du code, il y a 3 étapes : l'initialisation/parametrage en SPI pour être maître, l'envoie de la requête puis la réception de données en retour. &lt;br /&gt;
&lt;br /&gt;
Programmant en C, il ne faut pas oublier les librairies suivantes :&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;getopt.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;sys/ioctl.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/types.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/spi/spidev.h&amp;gt;   //pour SPI&lt;br /&gt;
&lt;br /&gt;
On va déclarer des variables globales permettant le paramétrage :&lt;br /&gt;
&lt;br /&gt;
 static const char *device = &amp;quot;/dev/spidev0.0&amp;quot;;  //si on veut CS0 pour atteindre notre SS&lt;br /&gt;
 static uint8_t mode;       //mode est par défaut à 0&lt;br /&gt;
 static uint8_t bits = 8;    //bits par mot échangé&lt;br /&gt;
 static uint32_t speed = 500000;  &lt;br /&gt;
 static uint16_t delay;&lt;br /&gt;
&lt;br /&gt;
Dans notre main, on ouvre le port (la connexion) au device souhaité,  on vérifie les paramètres (registres, connexions...) puis exécute la fonction transfer(fd). transfer(fd) transmet la requête et s'occupe de la réception. &lt;br /&gt;
&lt;br /&gt;
 fd = open(device, O_RDWR);&lt;br /&gt;
 transfer(fd);&lt;br /&gt;
 close(fd);&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 11&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation: PS4, SSH et tests SPI (RPi3&amp;amp;Atemga328p)====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
Lors de recherche supplémentaire, nous avons essayer de voir s'il un pilote de gestion du périphérique serait nécessaire à la connexion de notre pseudo manette. &lt;br /&gt;
  &lt;br /&gt;
'''Raspberry PI, Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
Afin de facilité la programmation en utilisant Ethernet, nous avons installer et configuré la RPi pour l'utiliser en SSH depuis les ordinateurs de la E306. En effet, SSH permet de se connecter à distance sur une machine en utilisant un compte utilisateur de la dite machine. En mettant ssh, on pourra directement agir sur les fichiers de la raspberry depuis un terminal de notre PC. Pour cela, on a d'abord vérifier l'adresse IP de notre raspberry pi : 172.26.145.106 avec un écran mais on peut aussi utiliser les commandes ip a et ifconfig. Puis activer le ssh sur la raspberry pi. &lt;br /&gt;
On modifie alors le fichier config.txt mais également etc/network/interfaces pour configurer la bonne interface Ethernet sur la raspberry pi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: configSSH_raspi.png||left|300px|config ssh ethernet]]&lt;br /&gt;
&lt;br /&gt;
Il nous suffit alors de taper la commande : ssh pi@172.26.145.106  pour accéder à notre RPi. &lt;br /&gt;
&lt;br /&gt;
Nous avons continué à réaliser la communication SPI avec des tests entre une arduino UNO et la RPI3. Nous avons commencé par des tests simples inspirés des études de deux semaines précédentes et modulés selon notre utilité.  &lt;br /&gt;
Nous arrivons alors à lire l'état envoyer &amp;quot;bonjour&amp;quot; et recevoir &amp;quot;ça va&amp;quot; ou encore &amp;quot;1&amp;quot; et recevoir &amp;quot;3&amp;quot;. Il faut noter que le SPI échange des trames, la RPI reçoit alors des hexadécimaux. &lt;br /&gt;
Nous avons alors continué pour recevoir l'état du bouton ou du joystick lors de l'envoie de &amp;quot;1&amp;quot; sur l'Arduino328p. La semaine prochaine nous testerons ces même codes fonctionnels sur les cartes atmeg327p. &lt;br /&gt;
&lt;br /&gt;
A la fin de cette semaine, nous avons alors des codes Arduino-SPI (.ino) et des codes Raspberry-SPI (.c) permettant l'échange de données. Le but est maintenant de l'adapter aux cartes imprimées et de le rendre pleinement fonctionnel pour plusieurs cartes à la fois, puis ajouter une boucle de vérification en continue jusqu'à une deuxième requête de la RPi.&lt;br /&gt;
&lt;br /&gt;
====Electronique: réalisation au propres des PCB modules====&lt;br /&gt;
&lt;br /&gt;
Suite à une nouvelle erreur de réalisation cartes électronique, nous avons  refait et renvoyé à nouveau les cartes imprimées atmega328p.&lt;br /&gt;
Nous les souhaitons au propre pour une version finale. Une fois celle-ci imprimées nous pourrons en avoir 3 , un pour chaque module. Les cartes étaient bien imprimées en bottom mais lors du passage des traversants de bottom à top, le logiciel ne les a pas fait miroiter. Par manque d'attention nous avons alors envoyé les fichiers gerber pour des cartes ayant les composants du même coté que la couche de cuivre. &lt;br /&gt;
Les cartes électroniques actuelles sont alors correctes et fonctionnelles mais difficile à souder. Pour eviter les erreurs et continuer sur des prototypes de carte nous préférons attendre en nous concentrant sur la programmation PSI de la Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 12&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous avons décidé de prendre un cap temporaire. On a utiliser un script pour faire un pseudo clavier/souris pour essayer d'envoyer nos données puis modifier petit à petit jusqu'a avoir un script/programme compatible PC. Il devra ce faire passer pour un Joystick donc une manette classique.  &lt;br /&gt;
&lt;br /&gt;
'''Raspberry PI, Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
-  réflexion: penser à faire boucler sur l'arduino une fois la requête reçu, ça veut dire que la manette est ON et donc vérifier continuellement les modules sur chaque atmega.&lt;br /&gt;
- SPI raspberry pi - arduino recuperation état du bouton avec les cartes modules  (/!\ récuperation à faire dans une variable) &lt;br /&gt;
&lt;br /&gt;
-SSH perso &lt;br /&gt;
adresse Rasppi: 192.168.137.10&lt;br /&gt;
&lt;br /&gt;
====Electronique: Finalisation soudure Modules====&lt;br /&gt;
&lt;br /&gt;
Soudure au propre et finale d'une carte atmega328p et donc envoie pour la réalisation de 2 autres cartes similaires et récupération de matériel&lt;br /&gt;
Soudure des 2 autres cartes, + tests sur les états = fonctionnelles.&lt;br /&gt;
On a donc bien 3 cartes pour les 3 modules de types différents (1 bouton, 1 joystick, 1 gachette)&lt;br /&gt;
PCB pour les 2 joysticks (qui serviront de thumbstick et gachette)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 13 et plus&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette dernière semaine étant donc de faire une POC sur PC puis migrer doucement vers un usb_gadget compatible PS4 sachant que les clavier sont déjà utiliser par les PS4 (pas forcément pour jouer).   &lt;br /&gt;
&lt;br /&gt;
'''Modules Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
====Electronique====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
(à mettre rapport + git + drive)&lt;br /&gt;
&lt;br /&gt;
=Datasheets=&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=55396</id>
		<title>IMA4 2017/2018 P35</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=55396"/>
				<updated>2018-05-05T20:25:10Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : /* Programmation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Présentation générale: Manette modulable&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Description&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Tout le monde joue aux jeux vidéo cependant, les manettes ne sont pas adaptées aux personnes ayant un handicap pouvant toucher les bras ou les mains.&lt;br /&gt;
C’est le cas, de plusieurs patients dans les centres de soins et de rééducation.&lt;br /&gt;
&lt;br /&gt;
Pour ce projet IMA4, nous travaillerons avec le centre SSR (soin de suite et de réadaptation) Marc Sautelet de Villeneuve d’Ascq.&lt;br /&gt;
Un adolescent, patient de Marc Sautelet, est passionné par les jeux vidéo. En effet, ayant perdu la motricité d’une partie de son corps, il ne peut pas jouer à deux mains. Pour cela, il bloque la manette entre son épaule et son coude, usant de la mâchoire et des doigts pour contrôler les&lt;br /&gt;
joysticks et les boutons. Cet exercice peut s’avérer fatiguant et pénible.&lt;br /&gt;
&lt;br /&gt;
Ainsi, nous chercherons à concevoir une manette PS4 adaptée au handicap de l’adolescent. &lt;br /&gt;
Cette manette devra aussi être adaptée pour d’autres patients présentant également des handicaps moteurs. Ainsi nous prendrons pour cibles: tous les patients du centre voulant jouer; et non pas que les enfants et adolescents.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Membre du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Transley Gracias et Camille Saad&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Cible&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Patient présentant un handicap moteur&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Période du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
janvier 2018 - mai 2018&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Partenaire/Client&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Centre SSR Marc Sautelet à Villeneuve d'Ascq&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Objectifs&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ce projet a pour objectif de créer un prototype de manette qui puisse interagir avec la console PS4 et dont le paramétrage se fait à l’aide d’une application mobile et/ou web. Cette manette devra suivre les demandes du patient ainsi que des aides-soignantes du centre, dans la mesure du possible.&lt;br /&gt;
&lt;br /&gt;
Plus précisément, pour le premier prototype, nous mettrons en œuvre l'utilisation de quelques boutons spécifiques: &lt;br /&gt;
&lt;br /&gt;
* Un joystick (type L/R)&lt;br /&gt;
* Quelques boutons poussoirs (type Croix/Triangle/Carré/Rond/R1/L1/Start/...)&lt;br /&gt;
* Des boutons gâchettes progressives (type L2/R2).&lt;br /&gt;
&lt;br /&gt;
Le but serait donc dans un premier temps de rendre fonctionnel un bouton de chaque type, puis de les multiplier une fois cela fait. Tous ces boutons réunis constituent une manette fonctionnelle.Ainsi, la manette sera ajustable, c’est à dire qu’elle devra s’adapter aux différents handicaps moteurs possibles.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Analyse du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Positionnement par rapport à l'existant&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre prototype aura une présentation unique par rapport à l’existant. En effet, les concurrents et produits existants ciblent pour la majorité un seul handicap. Cela&lt;br /&gt;
engendre une solution fermée à beaucoup de patients. Notre projet propose une mobilité des mouvements et également un choix large dans la composition et le&lt;br /&gt;
design de notre manette.&lt;br /&gt;
Le patient n’est pas retreint à jouer à une seule main, à utiliser beaucoup de force...Il y a moins de technique dans la manipulation et on ne joue pas avec une&lt;br /&gt;
manette adaptée uniquement pour un droitier ou un gaucher. Cependant, cela nous limitera peut-être dans le choix possible des types de jeux. Tout comme les autres&lt;br /&gt;
manettes adapté, l’utilisateur nécessitera un peu d’entrainement.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du premier concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Jouer aux jeux vidéo à une main n’est pas une idée d’aujourd’hui. En 1990, Nintendo propose le Power Glove. Mais il tombe très rapidement aux oubliettes suite à des problèmes techniques.&lt;br /&gt;
&lt;br /&gt;
Un autre gant a fait son apparition quelques années plus tard. Celui-ci, plus technique, il faut office de manette Play Station: le Reality Quest Power Glove.Cette idée de manette-gant, permet de jouer à la PS avec une seule main, elle a était conçue et présentée pour les E3, un salon d’exposition de gaming.Le gant est conçu pour contrôler l’équivalent des 14 boutons et 2 joysticks à l’aide d’une seule main. La « manette » est fixée dans la pomme de la main. L’utilisateur contrôle les mouvements verticaux et horizontaux en pivotant le poignet, et utilisent les 4 boutons d’action principaux et L1/R1 avec les doigts. Les autres boutons sont accessibles par un seul bouton rond contrôlé par le pouce.&lt;br /&gt;
La manette est adaptée pour beaucoup de jeux vidéo, dont les plus simples sont les jeux de voitures et de combats (arcade).&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec ce gant&lt;br /&gt;
*Design obligatoirement droitier&lt;br /&gt;
*Les boutons de contrôle sont peu sensibles et peuvent nécessiter de la force&lt;br /&gt;
*Design compliqué et nécessitant beaucoup d’entrainement.&lt;br /&gt;
&lt;br /&gt;
;Lien : https://www.youtube.com/watch?v=qV0SxSJDCYg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du second concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ben Heck, de son vrai nom Benjamin J.Heckendorn, est un concepteur de mods de consoles (mods pour modification, soit « manettes modifiées ») et une star&lt;br /&gt;
du net grâce à ses vidéos tutoriels.Il propose alors énormément de produits adaptés ou dérivés en guise de manettes.&lt;br /&gt;
Parmi les mods qu’il a réalisé, il a modifié une manette de PS4 afin de la rendre accessible à une personne ne pouvant jouer qu’à une main. Pour cela, il a déplacé les boutons en respectant l’ergonomie de la main valide et modifie les connexions. Il peut lui arriver de rajouter des boutons pour en remplacer un autre. Il réalise également le même système avec la Xbox. Sur la photo ci-dessous, il a adapté la manette pour un droitier.&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec cette ma&lt;br /&gt;
*Design obligatoirement droitier ou gaucher, une modification = une manette= une personne&lt;br /&gt;
*Besoin obligé du pouce et de l’index, même si avantage : 3 doigts nécessaire.&lt;br /&gt;
&lt;br /&gt;
;Lien :: https://www.youtube.com/watch?v=LieHIscadjk&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Scénario d'usage du produit ou du concept envisagé&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
La technologie est ,aujourd’hui, omniprésente dans notre vie. Les consoles de jeux ont envahies les maisons avec plus de 7 personnes sur 10 jouant aux jeux vidéos sur consoles en France (chiffre de l’Express). 0,18% des français sont handicapés cela représente 12 millions de français. Dans ce chiffre, 13,4% des personnes ont un handicap moteur. En 2017, les grands groupes comme Sony ou Microsoft avec respectivement PlayStation et Xbox ne permettent pas à tout le monde de jouer avec une manette. Les manettes sont prévues pour des personnes ayant leurs membres valides, plus précisément les mains et les bras.&lt;br /&gt;
&lt;br /&gt;
Après un accident de voiture, un jeune garçon a perdu la motricité d’un côté du corps. Passionné de jeux vidéo, il se retrouve avec des difficultés à jouer sur sa console PS4. Ingénieux, il utilise la manette en la coinçant entre son épaule et le creux du cou. Usant de la mâchoire et de sa main valide pour contrôler les joysticks et les boutons. L'exercice étant inconfortable et fatiguant il eu l’idée de proposer à des futurs ingénieurs de lui proposer une manette adaptée à son handicap. &lt;br /&gt;
&lt;br /&gt;
Les deux pré-ingénieurs ,avec leur tuteur, ont une idée révolutionnaire : La manette modulable ! Elle permettrait au jeune garçon, ainsi que d’autres joueurs, de pouvoir continuer de s’amuser ou même de commencer à jouer au jeux sur console. &lt;br /&gt;
Cette manette aidera fortement dans les centre de rééducation pour faire passer le temps et donner du plaisir à des personnes qui ne peuvent plus s’amuser avec leur console traditionnelle. Elle pourra aussi ouvrir de nouvelles possibilités pour certaines personnes qui n’auraient jamais essayé jusqu'à présent.   &lt;br /&gt;
Comme son nom l'indique, elle sera modulaire et s'adaptera à différents handicaps. Accompagnée de son application d’initialisation, elle sera accessible aussi bien aux enfants, patients, parents et aides soignantes.&lt;br /&gt;
&lt;br /&gt;
Quelques mois plus tard...Le jeune patient fan de Need For Speed, peut maintenant piloter sa voiture comme un vrai professionnel grâce à l'un des joysticks qu'il utilisera avec sa main valide et il pourra accélérer à des vitesses folles à l'aide de boutons poussoirs au niveau de son pied valide et gagner la partie. Son ami venu lui rendre visite, pourra en lieu et place des aides soignantes configurer à l'aide de la tablette (portable) la manette du patient. &lt;br /&gt;
Si le patient change de jeu pour Tekken et que la configuration des modules ne lui convient plus, il peut interchanger les éléments de la manette selon son envie et son confort. Ainsi il peut faire sauter son personnage, il utilisera un module bouton supplémentaire, qu'il actionnera avec le poing.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Fonctionnement&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Suite à une analyse fonctionnelle et à la formulation de notre projet, nous avons pu définir le fonctionnement de notre système. Notre produit, la manette, doit être accessible d’après nos objectifs à différents types de handicaps moteurs. Ainsi, l’idéal serait de concevoir une manette modulable afin qu’elle puisse s’adapter à toutes les situations. Ce n’est plus au patient de s’adapter à la manette mais à la manette de s’adapter au patient.&lt;br /&gt;
Cela signifie que la manette sera, dans la limite du possible et de la sensibilité du corps du patient, composée de plusieurs parties dites « modules » comportant un ou plusieurs actionneurs (boutons, joysticks, gâchettes...). Ces modules seront déplaçables afin d’être utilisé avec différents membres du corps : un doigt, une main,&lt;br /&gt;
une jambe ou même un pied. Il suffira de les connectés entre eux suivant l’organisation souhaitée, le Gameplay du jeu ou en fonction du handicap. Le tout sera relié à une application.&lt;br /&gt;
L’application sera alors mise en place pour connecter les différentes parties du point de vue software pour prérégler la manette en fonction du patient. Il pourra alors choisir les boutons en fonction du jeu, de ses mouvements mais aussi choisir la sensibilité.&lt;br /&gt;
&lt;br /&gt;
L’application et les modules devront être intuitifs et faciles d’utilisation. De cette manière des utilisateurs non avertis dans le domaine informatique ou jeunes pourront eux-mêmes gérer les connexions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Réponse à la question difficile&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
'''Question : Comment interconnecter les différents modules de la manette ?'''&lt;br /&gt;
&lt;br /&gt;
Il nous faut pour ce projet interconnecter les modules modélisant la manette qui seront connectés à la consoles PS4 via une Raspberry Pi 3.&lt;br /&gt;
Le choix de la Raspberry Pi 3 nous permet d'utiliser son module Bluetooth pour communiquer avec la PS4, ce choix est plus adaptée au projet que du filaire.&lt;br /&gt;
Concernant l'interconnexion des modules, nous travaillerons en deux étapes &amp;quot;preuves concept&amp;quot; : filaire et sans fils (Bluetooth).&lt;br /&gt;
&lt;br /&gt;
'''Objectif 1 : Preuve concept filaire'''&lt;br /&gt;
&lt;br /&gt;
Dans cette première partie de projet, nous souhaitons avoir une 1ère preuve de prototype rapidement. Nous nous concentrerons alors sur la communication entre la RPi3 et la PS4 ainsi que sur la conception des modules. Pour les modules, nous réaliserons des cartes électronique pour chaque module avec un micro-contrôleur. La communication filaire nous permettra d'interconnecter les modules à la RPi3 avec un bus SPI.&lt;br /&gt;
&lt;br /&gt;
'''Objectif 2: preuve concept sans fils'''&lt;br /&gt;
&lt;br /&gt;
Une deuxième étape du projet est la réalisation de la solution idéale sans fils. Celle-ci pourra commencer à être développée petit à petit en parallèle avec l'objectif 1. Le but ici, est d'interconnecter les modules en Bluetooth. Nous avons choisi le Bluetooth pour garder une connexion commune sur toute la chaîne. &lt;br /&gt;
Nous rajouterons alors un module bluetooth à chaque module de la manette. &lt;br /&gt;
&lt;br /&gt;
'''Objectif 3: possibilité d'adapter les boutons (capuchon en 3D)'''&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Préparation du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Cahier des charges&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
''Chef de projet:'' Alexandre Boé  &amp;lt;br&amp;gt;&lt;br /&gt;
''Responsables:'' Xavier Redon, Thomas Vantroys &amp;lt;br&amp;gt;&lt;br /&gt;
''Partenariat:'' Marc Sautelet (non etablie) &amp;lt;br&amp;gt;&lt;br /&gt;
''Elèves-ingénieurs:'' Camille Saâd, Transley Gracias &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Sujet :''' Manette modulable pour personne à déficience moteur compatible PlayStation 4 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objectifs principal (1er POC) : ===&lt;br /&gt;
Faire transmettre des informations issus des actionneurs (ex:boutons poussoires) via des arduinos jusqu’à la Raspberry Pi 3 en SPI.&amp;lt;br&amp;gt;&lt;br /&gt;
Envoyer les données reçues vers la PS4 en USB  &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objectifs secondaire (2e POC):===&lt;br /&gt;
Créer des modules avec un microcontrôleur et une puce bluetooth pour permettre une meilleurs flexibilité (c-àd pouvoirs avoir une meilleure ergonomie et une connexion sans fil) &amp;lt;br&amp;gt;&lt;br /&gt;
Connecter la Raspberry Pi 3 en Bluetooth à la PS4 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier: beteacorne.jpg||middle|600px|Bete a corne manette]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Choix techniques : matériel et logiciel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Liste de matériel :===&lt;br /&gt;
&lt;br /&gt;
'''Modules boutons/joysticks/gachettes'''&lt;br /&gt;
&lt;br /&gt;
3  Push buttons :&amp;lt;br&amp;gt;&lt;br /&gt;
- O X Y Carré R3 L3 &amp;lt;br&amp;gt;&lt;br /&gt;
- Guide PS &amp;lt;br&amp;gt;&lt;br /&gt;
- start/back &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 0,45€/unité TTC [https://www.gotronic.fr/art-bp-miniature-krs1273-16976.htm] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1  Thumbstick original: &amp;lt;br&amp;gt;&lt;br /&gt;
Joystick analogique 4 directions --&amp;gt; 4,25€/unité TTC [https://www.gotronic.fr/art-joystick-analogique-4-directions-19063.htm] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1 buttons trigger L1 L2 =&amp;gt; 1x Thumbstick original''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Cartes Atmega328p /connexion spi/'''&lt;br /&gt;
&lt;br /&gt;
3   Arduino UNO &amp;lt;br&amp;gt;&lt;br /&gt;
1   Arduino UNO atmega328p retirable &amp;lt;br&amp;gt;&lt;br /&gt;
4   capacite 22pF traversantes &amp;lt;br&amp;gt;&lt;br /&gt;
2   resistances 10 kOhm traversantes (à récupérer) &amp;lt;br&amp;gt;&lt;br /&gt;
2   oscillateurs quartz 16MHz traversante &amp;lt;br&amp;gt;&lt;br /&gt;
2   atmega328p-pu et support &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cartes module bluetooth nrf52810 '''&lt;br /&gt;
&lt;br /&gt;
6   capacités 100nF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
6   capacités 12pF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 4,7pF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 1µF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 100pF=0,1nF 0603 (à récupérer) &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 0,8pF 0603 (a acheter, commande en cours) &amp;lt;br&amp;gt;&lt;br /&gt;
2   inductance 3,9nH 0603 (a acheter, commande en cours) &amp;lt;br&amp;gt;&lt;br /&gt;
2   oscillateur quartz 32 MHz &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''' Connexions et autres '''&lt;br /&gt;
&lt;br /&gt;
1 Led RGB neopixel [https://www.adafruit.com/product/1734] &amp;lt;br&amp;gt;&lt;br /&gt;
1 Raspberry Pi 3 &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; ~36,23€/unité TTC [https://fr.rs-online.com/web/p/processor-microcontroller-development-kits/8968660/?src=raspberrypi] &amp;lt;br&amp;gt;&lt;br /&gt;
1 Raspberry Pi Zero W (commandée) [https://www.raspberrypi.org/products/raspberry-pi-zero-w/] &amp;lt;br&amp;gt;&lt;br /&gt;
6 Alimentations 5V ou 3,3V &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
par exemple, 12 piles de type CR2016 3V rechargeables ou 24 piles AAA 1,5 V rechargeables  &lt;br /&gt;
5 modules Bluetooth nrf de Nordic : nRF52810-QFAA-R &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 3,17€/unité + frais expédition  [https://www.mouser.fr/productdetail/nordic-semiconductor/nrf52810-qfaa-r?qs=sGAEpiMZZMve4%2FbfQkoj%252bG%2FosjLoe2oghFQwQllMrQ4%3D]&lt;br /&gt;
5 Lignes broches mâles &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logiciels:===&lt;br /&gt;
&lt;br /&gt;
- IDE arduino&lt;br /&gt;
- Altium&lt;br /&gt;
- FreeCAD ou Inkscape&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Liste des tâches à effectuer&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 1 : Gestion du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Définition des cahiers des charges fonctionnel et technique, choix d'orientation...&lt;br /&gt;
* Recherche techniques sur les différentes connexions possibles entre les modules, la RPi 3 et la console PS4&lt;br /&gt;
#Recherche connexion SPI entre les modules et la RPi3&lt;br /&gt;
# Recherche connexion bluetooth entre la RPi3 et la PS4&lt;br /&gt;
# Recherche connexion bluetooth pour les modules&lt;br /&gt;
# Recherche carte avec montage Atmega328P-PU et anticipation module bluetooth&lt;br /&gt;
* Détermination du matériel nécessaire&lt;br /&gt;
* Réflexion sur l'application&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 2: Réalisation du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Partie 1: Preuve concept manette en filaire'''&lt;br /&gt;
&lt;br /&gt;
* Conception de cartes électroniques pour 2 modules (/!\ prévoir modules bluetooth)&lt;br /&gt;
* Réalisation connexion SPI avec 2 modules : programmation des Atmega328p en liaison série. &lt;br /&gt;
* Si tests concluant, ajouter des modules jusqu'à en avoir 5 (1 pour chaque type de boutons) &lt;br /&gt;
* Connexion bluetooth entre la PS4 et la RPi3&lt;br /&gt;
* Réalisation du support des modules avec fixations possibles (imprimante 3D)&lt;br /&gt;
&lt;br /&gt;
'''Partie 2: Preuve concept manette en bluetooth'''&lt;br /&gt;
&lt;br /&gt;
* Ajout des modules bluetooth aux cartes électroniques&lt;br /&gt;
* Connexion bluetooth entre les modules&lt;br /&gt;
&lt;br /&gt;
'''Partie 3: Application Android : paramétrage de la manette'''&lt;br /&gt;
&lt;br /&gt;
* Créer une application sur tablette ou smartphone (Android) afin de configurer la manette aux besoins (inter-connexion des modules et console)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Calendrier prévisionnel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Date'''&amp;lt;/u&amp;gt;&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Tache à réaliser''' &amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
17/01/18-24/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Faire des recherches sur les différentes interconnexions du système : Bluetooth, RPi-Atmega328 (SPI), RPi-PS4&lt;br /&gt;
Continuer liste des taches, matériel, Début recherches + réflexion fixation support des modules&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Recherche technique connexion PS4-RPi3 et connexion SPI RPi3-Module + code&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18-07/03/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Réalisation 1er prototype (+ début prototype 2)&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
07/03/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Seance 7 :  Test prototype filaire&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
07/03/18-09/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Réalisation 2eme prototype + application Android&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
09/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Seance 14 :  Test prototype Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
14/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Video projet&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
15/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Finalisation projet et Rapport&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
16/05/18-17/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Soutenances Projet&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Réalisation du Projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Feuille d'heures &amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Voici le tableau d'heures du binôme:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Heures S11 !! Heures S12 !! Heures S13et+ !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 10&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 20min&lt;br /&gt;
|&lt;br /&gt;
| 15h20&lt;br /&gt;
|-&lt;br /&gt;
| Cherches techniques &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 18&lt;br /&gt;
|-&lt;br /&gt;
| Rédaction du wiki et rapport de projet&lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 30min&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| 30min&lt;br /&gt;
| 30min&lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
| 10h30&lt;br /&gt;
|-&lt;br /&gt;
| Programmation&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 3&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 7&lt;br /&gt;
| 8&lt;br /&gt;
| 6&lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
| 43&lt;br /&gt;
|-&lt;br /&gt;
| Cartes électroniques&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 6&lt;br /&gt;
| 8&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| 31&lt;br /&gt;
|-&lt;br /&gt;
| Application&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| Total Semaine&lt;br /&gt;
| 10&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 7&lt;br /&gt;
| 10h30&lt;br /&gt;
| 13&lt;br /&gt;
| 9&lt;br /&gt;
| 12&lt;br /&gt;
| 9h30&lt;br /&gt;
| 10h30&lt;br /&gt;
| 9&lt;br /&gt;
| 9h20&lt;br /&gt;
| &lt;br /&gt;
| '''117h50'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Prologue&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Avant la réalisation et conception d'un projet, il est important d'analyser celui-ci. Nous avons allons consacré le prologue à l'analyse fonctionnelle de la manette. Nous avons également eu une réflexion sur l'analyse technique, cela nous a permis de réaliser une liste de matériel. Il est important de définir les objectifs ainsi que les besoins afin de ne rien oublier. (Voir ci-dessus Analyse projet) &lt;br /&gt;
Nous avons également organisé notre travail, pour le partage de documents de recherches et la rédaction de compte-rendu final nous avons réalisé un google drive. Par la suite, nous créerons un projet Git. &lt;br /&gt;
&lt;br /&gt;
Durant ce temps, nous avons décidé de réaliser 5 modules. Les modules sont les différents boutons de la manettes qui nous pourrons placer selon nos choix (boutons modulaires) pour notre prototype projet pour chaque type des boutons d'une manette PS4. Ces modules devrons être connectés à la console et interconnectés. Le tout sera lié à une application Android. Suite à quelques recherches et nos analyses, nous avons décidé les points suivants :&lt;br /&gt;
&lt;br /&gt;
- On commencera avec 2 modules et on les multipliera par la suite. &lt;br /&gt;
- Les premiers tests sont réalisés avec des boutons petits pour assurer leur caractéristique &amp;quot;modulaires&amp;quot;, par la suite nous pourrons ajouter des capuchons de taille plus importante (imprimante 3D ou achat)&lt;br /&gt;
- Conception modules : réalisation de carte avec un microcontrôleur atmega328 programmable pour chaque module (anticiper le module Bluetooth) &lt;br /&gt;
- Projet en 2 parties : prototype filaire et prototype Bluetooth&lt;br /&gt;
# Prototype filaire : connexions entre les modules et la RPi3 en SPI, connexion Rpi3-PS4 en Bluetooth, avec l'application en filaire à la RPi3&lt;br /&gt;
# Prototype Bluetooth: connexion Bluetooth entre modules-RPi3-PS4-apllication&lt;br /&gt;
&lt;br /&gt;
[[Fichier: structuremanette.png||center|400px|Concept manette modulable]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 1&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous nous sommes concentrés les recherches afin de définir clairement le cahier des charges technique. Il s'agit des réalisations à mettre en œuvre pour les inter-connexions des éléments de la manette.&lt;br /&gt;
Ainsi, nous avons fait des recherches sur :&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI entre les modules (Atmega328p) et la RPi3===&lt;br /&gt;
&lt;br /&gt;
SPI: Serial périphérique interface BUS&lt;br /&gt;
&lt;br /&gt;
[[Fichier: yWGmW.png||right|200px|Concept manette modulable]]&lt;br /&gt;
Comme indiqué sur l'image ci-dessus, la Raspberry pi 3  peut communiquer en SPI avec ses broches CS0 (24), CS1 (26), SCLK (23), MISO (21), MOSI (19). Celles-ci permettent de communiquer avec un ou plusieurs esclaves (dans notre cas, des Atmega328p) en reliant directement les broches concernées de la RPi3 à celles des composants esclaves.&lt;br /&gt;
Chaque broche CS0 (24) ou CS1 (26) ne peut être connectée qu'à l'entrée SS (aussi appelé CS) d'un seul esclave.&lt;br /&gt;
C'est a dire que chaque CS est lié à un esclave afin de choisir avec lequel la communication est établie à un moment donné, et les MISO sont reliées entre elles en cascade, de même pour les SCLK et les MOSI. On peut noter que le maître impose la fréquence d’horloge et sélectionne l’esclave auquel les données sont envoyées.  8 MHz est le plus rapide supportable a 3,3V&lt;br /&gt;
&lt;br /&gt;
[[Fichier: fonctionnementSPI.png||right|200px|Connexion SPI multi-esclaves]]&lt;br /&gt;
&lt;br /&gt;
Voici un schéma du fonctionnement souhaité : &lt;br /&gt;
&lt;br /&gt;
Comme nous souhaitons avoir 5 modules environ il nous faudra rajouter un composant en plus afin d'augmenter les possibilités de sélection, par exemple des démultiplexeurs.&lt;br /&gt;
Dans un premier temps nous essaierons avec 2 esclaves, puis on augmentera le nombre. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Connexion Bluetooth PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Les recherches portent également sur la connexion entre la manette PS4 et la console. Elles concernent le protocole de communication via Bluetooth&lt;br /&gt;
&lt;br /&gt;
Caracteristique pour la PS4:  Bluetooth®v4.0, Qualcomm Atheros AR3002 Buetooth LE: 2,4-2,5 GHz  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caracteristique de la connexion : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Vitesse de transmission &amp;gt;&amp;gt; 3 Mbit/s   8N1 &lt;br /&gt;
*Relevé tous les 1.3 millisecond (peut-être) &lt;br /&gt;
*Chaque manette à une adresse unique BD_ADDR qui correspond à l’adresse MAC de la carte Réseau&lt;br /&gt;
*Protocole de détection est le SDP basé sur une emission reception PDU&lt;br /&gt;
*L’Attribut ID est representer en TLV Type Length Value &lt;br /&gt;
*Communication HCI ACL Data Packet &lt;br /&gt;
&lt;br /&gt;
===Rélisation des cartes électroniques===&lt;br /&gt;
&lt;br /&gt;
matériel nécessaire pour un PCB : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*breadboard&lt;br /&gt;
*câbles&lt;br /&gt;
*1 x 10k Ohm résistance&lt;br /&gt;
*Quartz 16Mhz clock crystal&lt;br /&gt;
*2 x 22 pF capaciteurs&lt;br /&gt;
*Atmega328P-PU&lt;br /&gt;
&lt;br /&gt;
Ressources: &lt;br /&gt;
[[https://www.arduino.cc/en/Main/Standalone]]&lt;br /&gt;
[[http://www.eprojectszone.com/atmega-328-pu-standalone/]]&lt;br /&gt;
[[https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 2&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la semaine deux et durant la séance, nous avons continué et approfondie nos recherches sur le projet. Nous avons pu ainsi affiner nos taches de réalisation et donc notre cahier des charges.&lt;br /&gt;
&lt;br /&gt;
===Connexion aux modules: SPI et Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Green&amp;quot;&amp;gt; CORRIGER&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
voir https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018#Configuration_du_syst.C3.A8me_embarqu.C3.A9&lt;br /&gt;
&lt;br /&gt;
(sudo apt-get install pi-bluetooth)&lt;br /&gt;
&lt;br /&gt;
''connexion sur la raspberry par ssh:''&lt;br /&gt;
 su&lt;br /&gt;
 update-rc.d ssh enable&lt;br /&gt;
 invoke-rc.d ssh start &lt;br /&gt;
 ssh pi@172.26.79.1XX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''bluetooth''&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
 agent on&lt;br /&gt;
 default-agent&lt;br /&gt;
 scan on&lt;br /&gt;
 pair [device Bluetooth address]  (exemple: pair XX:XX:XX:XX:XX:XX )&lt;br /&gt;
&lt;br /&gt;
''NOUVELLE REFLEXION : Connexion SPI entre les modules (Atmega328p) et la RPi3 --&amp;gt; MODULES BLUETOOTH''&lt;br /&gt;
&lt;br /&gt;
Si multi-esclaves= plusieurs modules : &lt;br /&gt;
Il faut ajouter des sélections pour les SPI → démultiplexeurs OU ne pas utiliser les CS0 et CS1, et plutôt des pins entrée/sortie de la RPi3 lié au SS comme ça on choisit direct le module esclave voulu.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' Nous avons étudié à nouveau la datasheet de notre module bluetooth nrf de Nordik. Le module bluetooth comporte  déjà un microprocesseur !&lt;br /&gt;
Un module plutôt peut donc jouer le rôle de notre atmega328p. Il n'y a alors pas besoin de réaliser des cartes électroniques de type arduino standalone. Nos PCB regrouperont alors uniquement l'alimentation, un actionneur (bouton, joystick), le module bluetooth et les broches de connexion si besoin... &lt;br /&gt;
&lt;br /&gt;
Cette séance nous a alors permise de revoir entièrement le matériel nécessaire. Notre liste de matériel nous semble alors plus réfléchie et limitée au nécessaire. &lt;br /&gt;
&lt;br /&gt;
===Connexion Bluetooth PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Suite à nos recherches de la semaine précédente, nous avons sélectionné deux sites bien renseignés : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;SITES&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ils nous ont permis de comprendre la communication entre la manette et la console. En effet, ils nous expliquent les échanges de trames Bluetooth. &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;EXPLICATIONS 1 exemple &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 3 : Début premier prototype&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI RPi3-Arduino===&lt;br /&gt;
&lt;br /&gt;
Comme vu durant les semaines précédentes, nous souhaitons réaliser une connexion Multi-esclaves en SPI entre la Raspberry pi et plusieurs modules.&lt;br /&gt;
Cette semaine nous avons vu que la réalisation de notre premier prototype doit aller vite. Il ne nous est pas nécessaire d’attendre les modules bluetooth si il nous faut dans cette partie uniquement utiliser son microprocesseur. Ainsi pour chaque module nous utilisons une arduino UNO. Nous réaliserons les programmes en C afin de pouvoir les réutiliser avec les modules bluetooth par la suite. &lt;br /&gt;
Une fois la connexion réalisable nous adapterons les programmes aux modules bluetooth Nordik. En effet, ceux-ci comporte déjà un microprocesseur, le module peut jouer le rôle de notre atmega328p. Il n'y a aurait alors pas besoin de réaliser des cartes électroniques arduino standalone sur PCB, mais directement des cartes électronique avec le module et le module voulu (bouton, joystick...) et l'alimentation. &lt;br /&gt;
Durant la séance nous avons alors revu la liste de matériel nécessaire. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: prototype1.jpeg||center|600px|connexion filaire prototype 1 filaire arduino]]&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous avons recherches des exemples de codes et de librairies pour Arduino SPI et RaspberryPI SPI. &lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé le programme de la connexion SPI pour l'arduino et récupéré les bibliothéques SPI.h avec SPI.c. Nous nous sommes alors concentrer à les comprendre, pour pouvoir l'utiliser. &lt;br /&gt;
&lt;br /&gt;
===Réalisation du projet Git===&lt;br /&gt;
&lt;br /&gt;
Création du projet IMA4_Projet35_ManetteModulable sur Git et partage de celui-ci. &lt;br /&gt;
Les premiers dossier crées cette la séance :&lt;br /&gt;
-Arduino (connexion SPI arduino) : ProtoSpi.c + dossier librairie SPI + Makefile&lt;br /&gt;
-RPI (dossier codes pour Rpi) &lt;br /&gt;
-Readme.md&lt;br /&gt;
Ces dossiers seront amenés à être modifiés au cours des séances. &lt;br /&gt;
&lt;br /&gt;
===Protocole Bluetooth PS4===&lt;br /&gt;
&lt;br /&gt;
Suite à l'étude des trames Bluetooth, on a pu voir que ces dernières étaient incomplètes. Le modèle de communication étant propriétaire, on n'y a pas accès directement. Cela nous empêche donc de mettre en oeuvre cette communication. &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt; Déveloper&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On a décidé de commencer par une connexion USB (pour laquelle on dispose de toutes les informations) celle-ci étant plus complète.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 4&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Pour le prototype 1 FILAIRE nous réaliserons les étapes suivantes :&lt;br /&gt;
&lt;br /&gt;
#Réalisation du programme SPI pour arduino&lt;br /&gt;
#Réalisation du programme SPI pour la RPi&lt;br /&gt;
#Connexion USB avec la PS4 ou ordinateur&lt;br /&gt;
#Réalisation de cartes électroniques atmega328p-pu standalone (remplacer les Arduinos) &lt;br /&gt;
#Remplacer les &amp;quot;PCB arduino&amp;quot; par le module bluetooth et adapter la connexion&lt;br /&gt;
#Conception 3D de la délimitation 1 axe pour le joystick &amp;quot;gâchette&amp;quot;&lt;br /&gt;
#Réalisation de l'application Androïde.&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées nous auront alors une preuve de concept filaire et nous pourrons alors passer à une connexion bluetooth. &lt;br /&gt;
Le passage à la connexion bluetooth sera le deuxième prototype et le cas idéal de la réalisation de la manette modulable. &lt;br /&gt;
&lt;br /&gt;
===Mise à jour Matériel===&lt;br /&gt;
&lt;br /&gt;
- Modéliser les boutons gâchettes L1/2 R1/2 de la manette PS4 (boutons sensibles à la pression) --&amp;gt; un joystick dont nous bloquerons un axe (imprimante 3D)&lt;br /&gt;
- Remplacer la RPi 3 par une Rpi zero W qui nous permettrait de réaliser plus facilement une connexion USB tout en gardant l'avantage du bluetooth. &lt;br /&gt;
- Choix de l’alimentation pour les 5 modules Bluetooth: nécessitent 3V --&amp;gt;  utiliser des piles rechargeables 1,2V AAA plutôt que piles rondes 3V.&lt;br /&gt;
&lt;br /&gt;
Nous avons également besoin du matériel cité en semaine 1 pour réaliser des cartes électroniques atmega328p-pu standalone. ( nous revenons alors sur les décisions de la semaine 3)&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI RPi3-Arduino===&lt;br /&gt;
 &lt;br /&gt;
Montage Raspberrypi et 1 arduino en PSI + 1 bouton + 1 led.&lt;br /&gt;
Voici le choix des branchements :&lt;br /&gt;
&lt;br /&gt;
 MASTER = RPi   &lt;br /&gt;
 SLAVE= Arduino&lt;br /&gt;
&lt;br /&gt;
'''SPI sur Arduino:'''&lt;br /&gt;
 MOSI -&amp;gt; GPIO11 //PB3  //master OUT to the slave IN&lt;br /&gt;
 MISO -&amp;gt; GPIO12 //PB4 //slave OUT to the master IN&lt;br /&gt;
 SCLK -&amp;gt; GPIO13 //PB5 //serial clock&lt;br /&gt;
 SS -&amp;gt; GPIO10   //PB2  //slave select&lt;br /&gt;
'''Led, bouton et autre...'''&lt;br /&gt;
 LED --&amp;gt; GPIO6  //PD6&lt;br /&gt;
 GND&lt;br /&gt;
 +5V (if required)&lt;br /&gt;
'''SPI sur la Raspberry Pi'''&lt;br /&gt;
 SPIO MOSI -&amp;gt; PIN19 &lt;br /&gt;
 SPIO MISO -&amp;gt; PIN21&lt;br /&gt;
 SCLK -&amp;gt; PIN23&lt;br /&gt;
 SPIO CS0 -&amp;gt; PIN24&lt;br /&gt;
&lt;br /&gt;
Continuation du code pour faire clignoter Led branchée à une arduino depuis la Rpi, en connexion SPI.&lt;br /&gt;
&lt;br /&gt;
===Connexion USB PS4-RPi3===&lt;br /&gt;
Durant cette, nous avons regardé comment faire cohabiter bluetooth, Application Androïd, USB, PS4, SPI et les module. &lt;br /&gt;
&lt;br /&gt;
Il est alors important de savoir comment utiliser le port série sur la RPi3, soit utiliser les UART. &lt;br /&gt;
&lt;br /&gt;
Nous avons réaliser qu'il n'était pas aussi simple d'utiliser le port serie USB de la Raspberry Pi 3, en effet le SoC est un BCM2837 . &lt;br /&gt;
De plus nous ne pouvons pas utiliser le même port pour l'alimentation et la connexion. &lt;br /&gt;
&lt;br /&gt;
Il nous faut alors trouver une alternative ou une solution à ce problème.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 5&amp;lt;/span&amp;gt;==&lt;br /&gt;
 &lt;br /&gt;
===Programmation: Réflexion définitives prototypes filaire ===&lt;br /&gt;
&lt;br /&gt;
La semaine dernière, nous avons rencontré une difficulté liée aux ports séries UART. &lt;br /&gt;
Une des solutions à cette difficulté serait d'utiliser une RPi ZERO W à défaut d'une RPi 3. On pourrait alors avoir un port d'alimentation avec connexion USB mais également retrouver la connexion Bluetooth dont nous avons besoin.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous avons continué la réalisation du prototype filaire par l'avancé du code SPI ainsi que les recherches concernant le protocole PS4. &lt;br /&gt;
&lt;br /&gt;
La Raspberry Pi zero W peut également être utile pour la connexion entre la PS4 et les différents modules en jouant le rôle d'intermédiaire. Nous avons alors commandé une Rpi zero W pour notre projet. &lt;br /&gt;
En attendant la réception de la commande, nous nous sommes penché sur les recherches pour les programmes et la configuration nécessaire à l'utilisation de la RPi zero W.&lt;br /&gt;
&lt;br /&gt;
===Electronique===&lt;br /&gt;
&lt;br /&gt;
[[Fichier: bouton_c1.jpg|100px|thumb|left|PCB bouton]]&lt;br /&gt;
[[Fichier: arduinobb.jpg|200px|thumb|right|atmega328p-pu branchement test]]&lt;br /&gt;
&lt;br /&gt;
Du coté électronique, nous avons réalisé sur fritzing certaines cartes électroniques. Les Arduino Uno servant actuellement de test, seront remplacées par des PCB atmega328p-pu standalone avec des broches permettant les branchements nécessaires SPI ou encore aux modules &amp;quot;boutons/joystick&amp;quot;. Pour les boutons, nous avons également réalisé un pcb afin de faciliter les branchements.  &lt;br /&gt;
&lt;br /&gt;
Il nous faut alors également une 3eme carte qui nous sera nécessaire pour la réalisation du prototype sans fil. Dans notre liste de matériel, nous avons des composants nrf52810 bluetooth, ceci doivent être soudé avec les capacités de protection mais également des broches de communication. Nous avons alors commencé cette carte électronique sur Altium avec le fichier  projet PCB du distributeur à modifier.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: Arduino_c1.jpg|100px|thumb|center|PCB atmega328p-pu]]&lt;br /&gt;
&lt;br /&gt;
=== Construction 3D ===&lt;br /&gt;
&lt;br /&gt;
Enfin, nous avons commencé à réaliser des boîtiers 3D pour certains modules. Par exemple, comme nous l'avions vu précédemment, un des joysticks servira de bouton-gâchette en utilisant un seul de ses axes. Il nous faut alors réaliser un boitier qui bloque l'un des axes, mais également une tige qui nous permettra de pousser le joystick de manière simplifiée.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 6&amp;lt;/span&amp;gt;==&lt;br /&gt;
 &lt;br /&gt;
===Programmation: configuration RPi Zero W ===&lt;br /&gt;
&lt;br /&gt;
Ayant reçu la Raspberry Pi zero W en début de semaine, nous nous sommes concentrés sur la programmation et la configuration de celle-ci.&lt;br /&gt;
Cette partie étant compliquée, elle nous a pris du temps. En effet, il était difficile de connecter la RPi en SSH car il n'est pas possible d'y connecter un clavier directement et on avait besoin de la prise OTG pour &amp;quot;interfacer&amp;quot; la manette.&lt;br /&gt;
&lt;br /&gt;
===Electronique: PCB nrf52810===&lt;br /&gt;
&lt;br /&gt;
Les cartes réalisées en semaine 5 sont validées et en attente de réalisation. &lt;br /&gt;
&lt;br /&gt;
Cette semaine a permis la réalisation et la finalisation de la carte électronique nrf52810. Il nous a fallu recommencé cette carte deux fois. En effet, une fois finie sur Altium nous avons réalisé que les empreintes des CMS sur PCB fourni par le constructeur ne correspondent pas au matériel CMS de l'école. Face à cette inattention de notre part, nous avons décidé de refaire entièrement la carte électronique sur fritzing. Ayant la datasheet et des plans d'inspiration PCB, nous avons pu refaire la carte entièrement. &lt;br /&gt;
Sur celle-ci nous avons ajouté des broches de connexion au besoin, un branchement Jtag et ICSP pour la programmation et la connexion SPI. &lt;br /&gt;
La carte est en attente de validation, puis validation.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: nrf52810_circuit2.jpg||center|400px|PCB carte nrf52810]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Révision matériel ===&lt;br /&gt;
&lt;br /&gt;
Pour la réalisation de nos composants électroniques, il nous a fallu faire une révision des composants disponibles à l'école:&lt;br /&gt;
(les quantités indiquées ci-dessous pourront être augmentée si nécessaire,pour avoir dans l'idéal un module de chaque type de la manette, ici on se concentre sur BOUTON et JOYSTICK)&lt;br /&gt;
&lt;br /&gt;
'''Cartes Arduino:'''&lt;br /&gt;
* 4 capacite 22pF traversantes&lt;br /&gt;
* 2 resistances 10 kOhm traversantes (à récupérer)&lt;br /&gt;
* 2 oscillateurs quartz 16MHz traversante&lt;br /&gt;
* 2 atmega328p-pu et support&lt;br /&gt;
&lt;br /&gt;
'''Cartes nrf52810'''&lt;br /&gt;
* 6 capacités 100nF 0603&lt;br /&gt;
* 6 capacités 12pF 0603&lt;br /&gt;
* 2 capacités 4,7pF 0603&lt;br /&gt;
* 2 capacités 1µF 0603&lt;br /&gt;
* 2 capacités 100pF=0,1nF 0603 (à récupérer)&lt;br /&gt;
* 2 capacités 0,8pF 0603 (commande en cours)&lt;br /&gt;
* 2 inductance 3,9nH 0603 (commande en cours)&lt;br /&gt;
* 2 oscillateur quartz 32 MHz &lt;br /&gt;
&lt;br /&gt;
'''Cartes modules Boutons'''&lt;br /&gt;
* un sachet de broches mâles (qu'on utilisera également pour les autres cartes, à récupérer/acheté) &lt;br /&gt;
&lt;br /&gt;
Nous avons alors mis-à-jour la liste de composant située plus haut, ainsi que celle de la page IMA4 2017/2018 [https://projets-ima.plil.fr/mediawiki/index.php/Projets_IMA4_SC_%26_SA_2017/2018]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 7&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Programmation: connexion wifi RPi Zero W et Bootloader sur Atmega328p-pu ===&lt;br /&gt;
&lt;br /&gt;
Pendant cette semaine, nous avons continué la programmation et la configuration des Raspberry Pi 3 et Zero W. Concernant la configuration ssh, nous avons utilisé un téléphone en guise de point d’accès à la RPi Zero W en wifi.&lt;br /&gt;
Nous avons aussi directement configurer l'OS Jessie, utilisé pour la RPi Zero. On a modifié le fichier cmd.txt et ...pour pouvoir programmer un USB gadget sur le port OTG.&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;Ci-dessus expliquer fichiers&amp;lt;/span&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Nous avons également continuer les programmes de récupération de données : état des boutons et du joystick. Ces programmes sont appliqué sur l'atmega328p-pu standalone sur la plaque d'essai en attendant que le PCB soit opérationnel.&lt;br /&gt;
Pour pouvoir programmer l'atemega328p-pu comme une arduino UNO, il nous faut suivre plusieurs étapes :&lt;br /&gt;
&lt;br /&gt;
'''1.Flasher le Bootloader'''&lt;br /&gt;
Nous avons 2 Atmega328p-pu neufs, ainsi il nous faut flasher le bootloader sur chacun d'eux afin de pouvoir les utiliser et les programmer sur une breadboard dans un montage minimaliste arduino-standalone. &lt;br /&gt;
Pour cela, on peut utiliser une carte arduino UNO. On vérifie le port et le type de carte sélectionnés dans le menu &amp;gt;Outils. Sur cette carte on téléverse le fichier arduinoISP.ino qui se trouve dans les exemples en étant en progrmamateur AVr ISP mkll (&amp;gt;outils&amp;gt;programmateur) &lt;br /&gt;
Puis on met l'atmega328p-pu qui nous intéresse sur le suppor socket de la carte. On change de nouveau le programmateur pour Arduino as ISP et on fait &amp;gt;tools&amp;gt;burn bootloader, soit &amp;gt;graver la sequence d'initialisation.&lt;br /&gt;
Ces étapes faites, on peut retirer notre microcontroleur et le replacer correctement dans le montage. &lt;br /&gt;
&lt;br /&gt;
'''2.Programmation atmega328 sur breadboard'''&lt;br /&gt;
Une fois l'atmega328p-pu préparé, on peut le programmer. On peut le faire simplement à l'aide de la carte arduino UNO utilisée précédemment.On branche les Tx et Rx en commun ainsi que le reset, le GND et le VCC.&lt;br /&gt;
&lt;br /&gt;
Nous avons réaliser des codes basiques tels que le clignotement d'une led rouge ou encore l'affichage de &amp;quot;hello world&amp;quot; sur le moniteur série pour vérifier la bonne fonctionnalité du montage. Cela fait nous avons pu écrire sous Arduino IDE le code de lecture des états.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: montage_BB_test.jpg||left|200px|programmation modules arduino sur breadboard]]&lt;br /&gt;
&lt;br /&gt;
===Electronique : soudure carte de test modules ===&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons déja vu lors de la réalisation des PCB, si l'on souhaite programmer un atmega328p-pu en bootloader, le montage est simple. Il peut être minimaliste en utilisant une arduino UNO, un atmega328, une breadboard et 3 composants: 1 quartz 16MHZ crystal, 1 résistance 10kOhm et 2 capacitors céramiques de 22pF.&lt;br /&gt;
Durant la semaine 7, nous avons soudé les composants traversants de la carte électronique correspondant à ce montage ainsi que le PCB du bouton.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 8&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Programmation ===&lt;br /&gt;
Après moult recherche sur les différents site web bien fournis pour le coups on as pu trouvé une amorce à la programmation de l'OTG via un script qui agit au niveau du kernel dans le sous dossier usg_gadget. Ce script donne les informations nécessaires pour pouvoirs échangé les données.&lt;br /&gt;
Avec le script trouvé et les informations des sites web décryptant les trames de la manette, on a toujours pas réussit à faire passer notre RPi Zero W pour une manette de PS4. Néanmoins il nous manque la trame HID complète de la manette pour avoir un test effectif.&lt;br /&gt;
&lt;br /&gt;
===Electronique : Correction soudure et soudure CMS===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avions souhaité programmer la carte électronique atmega328p-pu. Cependant, nous avons réaliser que nous avions fait une erreur lors de l'envoie du PCB à la production. En effet, celui-ci avait été fait en Top sur le logiciel Fritzing et non en Bottom. Hors nous avions soudé les composants (durant la semaine 7) comme pour un circuit imprimé en bottom, l'atmega328p-pu se retrouve alors inversé par rapport aux pistes. &lt;br /&gt;
Comme solution, nous avons choisi de souder un deuxième support pour l'atmega328 de l'autre coté de la carte avant de la refaire au propre. En effet, avant de la refaire il nous faut vérifier si la carte est bien programmable. &lt;br /&gt;
Une fois cela fait nous avions pu programmer la carte mais, nous avions également réalisé la pin 2 de l'atmega328 était prise par le bouton poussoir. Or, nous avons besoin des pin 2 et 3 pour le RX et TX permettant la programmation de l'atmega à partir d'une arduino, les pistes branchement RX-TX n'ont également pas été prévus pour le téléversement des programmes sur la carte. Il nous faut alors couper une piste et souder des câbles pour utiliser toutes les pistes souhaitées. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: correction_proto_PCB.jpg||right|300px|PCB arduino correction]]&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons également souhaité souder les CMS et le composant bluetooth nrf52810 sur la carte imprimé et reçu lors de la semaine 7. Pour cela, nous avons convenu de travailler dans la C202 durant la séance du mercredi. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: PCB_nrf52810.jpg||left|400px|carte electroniques imprimées]]&lt;br /&gt;
&lt;br /&gt;
====Comment souder des CMS ?====&lt;br /&gt;
&lt;br /&gt;
les CMS sont des composants montés en surface c'est à dire qu'ils sont montés du même côté que les pistes cuivrées (à l'opposé des composants traversants) et sont de petite tailles souvent de l'ordre du millimètre. La taille est déterminée par 4 chiffres : les 2 premiers pour la longueur et les 2 derniers pour la largeur. On a du 1206,0805,0603 ou encore 0402. Il est même possible de trouver plus petit. A l'école nous utilisons souvent du 0603, c'est le cas de nos composants.&lt;br /&gt;
Pour souder des CMS 0603, il nous faut utiliser une autre méthode qui n'est pas le fer à souder :&lt;br /&gt;
# Préparer la veille la pâte à braser la veille (dans une seringue)&lt;br /&gt;
# Gommer la carte pour éviter l'oxydation (attention à ne pas retirer les miettes de gomme en soufflant dessus) &lt;br /&gt;
# Appliquer avec la seringue la pâte sur les empreintes et piste souhaitées. Pour les endroits difficile à atteindre ou avec 2 pistes proches les unes des autres, il est possible de mettre la même goutte de pâte sur les 2 pistes. Cela de causera pas de court-circuit par la suite. En effet, la pâte est composée d’alliage qui sous la chaleur va se fluidifier et se coller uniquement aux pistes métallique. Le reste fondera sous la chaleur du four.&lt;br /&gt;
# Appliquer les CMS sur la pâte au fur et à mesure (attention ! ne jamais toucher les CMS avec les doigts, tjrs utiliser une pince)&lt;br /&gt;
# Mettre au four&lt;br /&gt;
&lt;br /&gt;
====Bilan soudure nrf52810====&lt;br /&gt;
&lt;br /&gt;
Cependant, une fois le matériel nécessaire préparé, et la pâte mise sur les pistes souhaitées, au moment de déposer le composant, nous avons réalisé que celui-ci était beaucoup plus petit que l'empreinte sur le PCB. Il s'agit d'un composant boitier QFN48. Fritzing ne proposant au plus proche des boitiers QFN24 ou LQFP48, celui-ci a basculé automatiquement pour un boitier LQFN48, de dimension plus grande. Face à ce manque de vigilance, nous avions cependant commencer par le nrf52810 (composant concerné) évitant ainsi de gaspiller d'autres CMS. &lt;br /&gt;
Nous avons souhaité refaire la carte sous Altium à partir des fichiers fournis par le concepteur (chose que nous avons commencé à faire aux alentours de la semaine 5) &lt;br /&gt;
Après la réalisation du schématic, et de la modification des empreintes de capacités, inductances et autres composants de 0402 à 0603. Notre matériel ne permettant que des empreintes 0603.&lt;br /&gt;
 &lt;br /&gt;
Lors du routage, une erreur de chevauchement des pistes est notifiée par Altium au niveau du nrf52810. Celles-ci ne présentent pas d'angles et sont déjà de taille 8mil, il nous faut alors passer les pistes en 6mil. Mais 8mil est la taille minimale pour la production à Polytech, nous avons regardé pour envoyer les cartes à faire ailleurs mais le 6mil n'est pas beaucoup conseillé. De plus, il n'est peut-être pas judicieux de continuer avec le composant microcontrôleur-bluetooth Nrf52810 qui prend du temps, donc la carte est difficilement réalisable et peut-être très long à programmer. &lt;br /&gt;
&lt;br /&gt;
Ainsi en cette fin de semaine, nous avons décider face à l'avancer du projet de laisser les nrf52810 de coté et de les remplacer par des modules sans fils plus simples d'utilisation et complets. Ainsi nous aurions plus de chance d'avoir une connexion sans fils entre les modules. Nous pourrions par exemples utiliser des Xbee, des modules Rf...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 9&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation: PS4 et 1er Test SPI sur atmega328p====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
Les premiers tests sur Windows ne nous donner pas satisfaction. En effet, l'ordinateur détectait bien le nouvel appareil avec son nom mais l'origine rester inconnue. &lt;br /&gt;
&lt;br /&gt;
Lors des tests sur Linux on a pu voir des erreurs via la commande 'dmesg' :&lt;br /&gt;
&lt;br /&gt;
 [193229.758782] usb 4-1.2: new high-speed USB device number 6 using ehci-pci&lt;br /&gt;
 [193230.270780] usb 4-1.2: new high-speed USB device number 7 using ehci-pci&lt;br /&gt;
 [193235.510842] usb 4-1.2: device descriptor read/64, error -110&lt;br /&gt;
 [193251.127043] usb 4-1.2: device descriptor read/64, error -110&lt;br /&gt;
 [193251.315043] usb 4-1.2: new high-speed USB device number 8 using ehci-pci&lt;br /&gt;
 [193256.503135] usb 4-1.2: device descriptor read/64, error -110&lt;br /&gt;
 [193272.119331] usb 4-1.2: device descriptor read/64, error -110&lt;br /&gt;
 [193272.307331] usb 4-1.2: new high-speed USB device number 9 using ehci-pci&lt;br /&gt;
 [193282.999473] usb 4-1.2: device not accepting address 9, error -110&lt;br /&gt;
 [193283.079485] usb 4-1.2: new high-speed USB device number 10 using ehci-pci&lt;br /&gt;
 [193293.751588] usb 4-1.2: device not accepting address 10, error -110&lt;br /&gt;
 [193293.751771] usb 4-1-port2: unable to enumerate USB device&lt;br /&gt;
 [193387.196861] usb 4-1.2: new high-speed USB device number 11 using ehci-pci&lt;br /&gt;
 [193392.440941] usb 4-1.2: device descriptor read/64, error -110&lt;br /&gt;
 [193407.933152] usb 4-1.1: new high-speed USB device number 12 using ehci-pci&lt;br /&gt;
 [193413.177227] usb 4-1.1: device descriptor read/64, error -110&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Modules Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
Une carte PCB arduino fonctionnant, nous pouvons la programme pour simuler un module. Celle-ci a été designée afin de s'adapter au module que l'on souhaite. Il suffit de brancher le bouton, le joystick ou autre élèment de manette souhaité.&lt;br /&gt;
Cette semaine ci, nous avons alors configurer la partie communication SPI pour l'arduino.&lt;br /&gt;
&lt;br /&gt;
'''Que voulons-nous faire avec les atmegas ?''' &lt;br /&gt;
Les cartes électroniques atmega328p vont nous permettre de recevoir les requêtes SPI envoyées par la raspberry pi et d'y répondre. La Raspberry enverra un message, par exemple &amp;quot;1&amp;quot;, et l'Arduino lira alors l'état du module qui lui est connecté. Une fois l'état récupéré elle le renvoie à la raspberry pi.&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons programmé l'atmega afin qu'il soit en esclave, qu'il reçoive un de la RPi &amp;quot;1&amp;quot; et retourne une valeur sauvegardé &amp;quot;int envoi&amp;quot;. Nous avons également commencé les tests pour la lecture de l'état d'un bouton (d'après les tests réalisés les semaines précédentes).&lt;br /&gt;
&lt;br /&gt;
'''Code'''&lt;br /&gt;
Comme nous l'avons vu précedement lors de nos recherches (semaines 1 à 4) : &lt;br /&gt;
La communication SPI nécessite l'utilisation des pins: &lt;br /&gt;
&lt;br /&gt;
MOSI -&amp;gt; GPIO11 //PB3  //master OUT to the slave IN&lt;br /&gt;
MISO -&amp;gt; GPIO12 //PB4 //slave OUT to the master IN&lt;br /&gt;
SCLK -&amp;gt; GPIO13 //PB5 //serial clock&lt;br /&gt;
SS -&amp;gt; GPIO10   //PB2  //slave select&lt;br /&gt;
&lt;br /&gt;
Il faut également paramétrer l'atmega328p en Slave. On note que dans un premier temps, le programme sera codé avec l'arduino IDE (fichiers .ino). Une fois l'ensemble SPI RaspberryPi-Arduino fonctionnant, on remplacera ces codes par du langage C ou C++.&lt;br /&gt;
&lt;br /&gt;
Pour faire la connexion SPI sur l'atmega328p,  on utilise la librairie arduino SPI.h, on a alors directement les fonctions nécessaires intervenant sur les registres souhaités : SPCR (spi control register), SPSR (spi status register) et SPDR (spi data register). &lt;br /&gt;
 &lt;br /&gt;
  #include &amp;lt;SPI.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il est important d'initialise d'abord le setup et on active le port série pour pourvoir utiliser le moniteur série. (Cela servira à verifier la valeur envoyée par la RPi) &lt;br /&gt;
&lt;br /&gt;
 void setup (void)&lt;br /&gt;
 {&lt;br /&gt;
   Serial.begin (9600);  &lt;br /&gt;
   pinMode(MISO, OUTPUT);  //configuration en esclave *master in slave out*&lt;br /&gt;
   pinMode(buttonPin,INPUT);  //config pin bouton&lt;br /&gt;
   // turn on SPI in slave mode&lt;br /&gt;
   SPCR |= _BV(SPE);&lt;br /&gt;
   // preparation interruptions&lt;br /&gt;
   pos = 0;   // buffer empty&lt;br /&gt;
   process_it = false;&lt;br /&gt;
   // activation interruptions&lt;br /&gt;
   SPI.attachInterrupt();&lt;br /&gt;
 }  &lt;br /&gt;
 &lt;br /&gt;
On oublie pas de déclarer les interruptions afin de bien lire la requête reçue. &lt;br /&gt;
 &lt;br /&gt;
// SPI interrupt routine&lt;br /&gt;
ISR (SPI_STC_vect)&lt;br /&gt;
{&lt;br /&gt;
  byte c = SPDR;  // grab byte from SPI Data Register&lt;br /&gt;
  // add to buffer if room&lt;br /&gt;
  if (pos &amp;lt; sizeof buf)&lt;br /&gt;
    {&lt;br /&gt;
    buf [pos++] = c;&lt;br /&gt;
    // example: newline means time to process buffer&lt;br /&gt;
    if (c == '\n')&lt;br /&gt;
      process_it = true;&lt;br /&gt;
    }  // end of room available&lt;br /&gt;
}  // end of interrupt routine SPI_STC_vect&lt;br /&gt;
&lt;br /&gt;
Dans la loop main, on traite la requête et on utilise '''SPI.transfer(envoi);''' pour transferer à la RPi les données souhaitées. &lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons également commencé des programmes de test SPI pour la RPi. Il s'agit principalement de programmes de tests tout faits permettant de vérifier la connexion entre cette dernière et l'arduino. Par exemple, la RPI envoie &amp;quot;bonjour&amp;quot; et l'arduino lui retourne ce qu'elle reçoit, soit &amp;quot;bonjour&amp;quot;. Sans succés alors.&lt;br /&gt;
&lt;br /&gt;
====Electronique : Fritzing révision====&lt;br /&gt;
&lt;br /&gt;
Lors de la semaine, le modèle PCB de la carte arduino a été réalisé de nouveau sous fritzing avec les broches et connections manquantes. Nous avons également revu la configuration du bouton reset  et ajouté une led d'état de l'alimentation. Nous avons ainsi envoyé deux cartes identiques à la réalisation.&lt;br /&gt;
La carte déjà soudée lors des derniers jours fonctionnant, elle nous sert de prototype de programmation. Nous pouvons ainsi avancer à la fois sur la programmation des modules mais aussi sur leur réalisation. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 10&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation : PS4 et SPI sur RPi====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
Cette semaine, pour tester la prise OTG nous avons décider de lancer un script qui est habituellement utilisé. Nous avons choisi le script Serial Adapter qui est censé permettre de se connecter à la RPi Zero W en SSH via ce port. &lt;br /&gt;
Après quelque modifications et plusieurs petits bugs, nous avons réussir à faire fonctionner le ssh via le port OTG. Donc le problème était le même, notre script mélangé avec les informations sur la PS4 n'était toujours pas fonctionnel.&lt;br /&gt;
&lt;br /&gt;
Pour faire la liaison entre les deux parties nous avons aussi commencé à programmer une application qui permet de configurer les modules au niveau de la RPi Zero W.    &lt;br /&gt;
&lt;br /&gt;
'''Modules Raspberry PI et SPI'''&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, pour la partie Atmega328p-Modules, nous nous sommes concentrés sur la programmation de la communication SPI avec la raspberry pi. Cette semaine a permis une étude plus approfondit sur le fonctionnement pour la RPi. &lt;br /&gt;
&lt;br /&gt;
On rappelle, comme vu des semaines 1 à 4, pour la RPI3 (tout comme la RPi Zero W) utilise les broches : SCLK (23), MISO(21), MOSI (19) et SPI CS0 (24), SPI CS1 (26). &lt;br /&gt;
On la programme en Master. A l'aide des fichiers tests d'inspiration, on pourra directement programmer la RPi en C. Lors de la réalisation du code, il y a 3 étapes : l'initialisation/parametrage en SPI pour être maître, l'envoie de la requête puis la réception de données en retour. &lt;br /&gt;
&lt;br /&gt;
Programmant en C, il ne faut pas oublier les librairies suivantes :&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;getopt.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;sys/ioctl.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/types.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/spi/spidev.h&amp;gt;   //pour SPI&lt;br /&gt;
&lt;br /&gt;
On va déclarer des variables globales permettant le paramétrage :&lt;br /&gt;
&lt;br /&gt;
 static const char *device = &amp;quot;/dev/spidev0.0&amp;quot;;  //si on veut CS0 pour atteindre notre SS&lt;br /&gt;
 static uint8_t mode;       //mode est par défaut à 0&lt;br /&gt;
 static uint8_t bits = 8;    //bits par mot échangé&lt;br /&gt;
 static uint32_t speed = 500000;  &lt;br /&gt;
 static uint16_t delay;&lt;br /&gt;
&lt;br /&gt;
Dans notre main, on ouvre le port (la connexion) au device souhaité,  on vérifie les paramètres (registres, connexions...) puis exécute la fonction transfer(fd). transfer(fd) transmet la requête et s'occupe de la réception. &lt;br /&gt;
&lt;br /&gt;
 fd = open(device, O_RDWR);&lt;br /&gt;
 transfer(fd);&lt;br /&gt;
 close(fd);&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 11&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation: PS4, SSH et tests SPI (RPi3&amp;amp;Atemga328p)====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
Lors de recherche supplémentaire, nous avons essayer de voir s'il un pilote de gestion du périphérique serait nécessaire à la connexion de notre pseudo manette. &lt;br /&gt;
  &lt;br /&gt;
'''Raspberry PI, Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
Afin de facilité la programmation en utilisant Ethernet, nous avons installer et configuré la RPi pour l'utiliser en SSH depuis les ordinateurs de la E306. En effet, SSH permet de se connecter à distance sur une machine en utilisant un compte utilisateur de la dite machine. En mettant ssh, on pourra directement agir sur les fichiers de la raspberry depuis un terminal de notre PC. Pour cela, on a d'abord vérifier l'adresse IP de notre raspberry pi : 172.26.145.106 avec un écran mais on peut aussi utiliser les commandes ip a et ifconfig. Puis activer le ssh sur la raspberry pi. &lt;br /&gt;
On modifie alors le fichier config.txt mais également etc/network/interfaces pour configurer la bonne interface Ethernet sur la raspberry pi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: configSSH_raspi.png||left|300px|config ssh ethernet]]&lt;br /&gt;
&lt;br /&gt;
Il nous suffit alors de taper la commande : ssh pi@172.26.145.106  pour accéder à notre RPi. &lt;br /&gt;
&lt;br /&gt;
Nous avons continué à réaliser la communication SPI avec des tests entre une arduino UNO et la RPI3. Nous avons commencé par des tests simples inspirés des études de deux semaines précédentes et modulés selon notre utilité.  &lt;br /&gt;
Nous arrivons alors à lire l'état envoyer &amp;quot;bonjour&amp;quot; et recevoir &amp;quot;ça va&amp;quot; ou encore &amp;quot;1&amp;quot; et recevoir &amp;quot;3&amp;quot;. Il faut noter que le SPI échange des trames, la RPI reçoit alors des hexadécimaux. &lt;br /&gt;
Nous avons alors continué pour recevoir l'état du bouton ou du joystick lors de l'envoie de &amp;quot;1&amp;quot; sur l'Arduino328p. La semaine prochaine nous testerons ces même codes fonctionnels sur les cartes atmeg327p. &lt;br /&gt;
&lt;br /&gt;
A la fin de cette semaine, nous avons alors des codes Arduino-SPI (.ino) et des codes Raspberry-SPI (.c) permettant l'échange de données. Le but est maintenant de l'adapter aux cartes imprimées et de le rendre pleinement fonctionnel pour plusieurs cartes à la fois, puis ajouter une boucle de vérification en continue jusqu'à une deuxième requête de la RPi.&lt;br /&gt;
&lt;br /&gt;
====Electronique: réalisation au propres des PCB modules====&lt;br /&gt;
&lt;br /&gt;
Suite à une nouvelle erreur de réalisation cartes électronique, nous avons  refait et renvoyé à nouveau les cartes imprimées atmega328p.&lt;br /&gt;
Nous les souhaitons au propre pour une version finale. Une fois celle-ci imprimées nous pourrons en avoir 3 , un pour chaque module. Les cartes étaient bien imprimées en bottom mais lors du passage des traversants de bottom à top, le logiciel ne les a pas fait miroiter. Par manque d'attention nous avons alors envoyé les fichiers gerber pour des cartes ayant les composants du même coté que la couche de cuivre. &lt;br /&gt;
Les cartes électroniques actuelles sont alors correctes et fonctionnelles mais difficile à souder. Pour eviter les erreurs et continuer sur des prototypes de carte nous préférons attendre en nous concentrant sur la programmation PSI de la Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 12&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous avons décidé de prendre un cap temporaire. On a utiliser un script pour faire un pseudo clavier/souris pour essayer d'envoyer nos données puis modifier petit à petit jusqu'a avoir un script/programme compatible PC. Il devra ce faire passer pour un Joystick donc une manette classique.  &lt;br /&gt;
&lt;br /&gt;
'''Raspberry PI, Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
-  réflexion: penser à faire boucler sur l'arduino une fois la requête reçu, ça veut dire que la manette est ON et donc vérifier continuellement les modules sur chaque atmega.&lt;br /&gt;
- SPI raspberry pi - arduino recuperation état du bouton avec les cartes modules  (/!\ récuperation à faire dans une variable) &lt;br /&gt;
&lt;br /&gt;
-SSH perso &lt;br /&gt;
adresse Rasppi: 192.168.137.10&lt;br /&gt;
&lt;br /&gt;
====Electronique: Finalisation soudure Modules====&lt;br /&gt;
&lt;br /&gt;
Soudure au propre et finale d'une carte atmega328p et donc envoie pour la réalisation de 2 autres cartes similaires et récupération de matériel&lt;br /&gt;
Soudure des 2 autres cartes, + tests sur les états = fonctionnelles.&lt;br /&gt;
On a donc bien 3 cartes pour les 3 modules de types différents (1 bouton, 1 joystick, 1 gachette)&lt;br /&gt;
PCB pour les 2 joysticks (qui serviront de thumbstick et gachette)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 13 et plus&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
====Electronique====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
(à mettre rapport + git + drive)&lt;br /&gt;
&lt;br /&gt;
=Datasheets=&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=55395</id>
		<title>IMA4 2017/2018 P35</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=55395"/>
				<updated>2018-05-05T20:21:12Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : /* Programmation: PS4, SSH et tests SPI (RPi3&amp;amp;Atemga328p) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Présentation générale: Manette modulable&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Description&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Tout le monde joue aux jeux vidéo cependant, les manettes ne sont pas adaptées aux personnes ayant un handicap pouvant toucher les bras ou les mains.&lt;br /&gt;
C’est le cas, de plusieurs patients dans les centres de soins et de rééducation.&lt;br /&gt;
&lt;br /&gt;
Pour ce projet IMA4, nous travaillerons avec le centre SSR (soin de suite et de réadaptation) Marc Sautelet de Villeneuve d’Ascq.&lt;br /&gt;
Un adolescent, patient de Marc Sautelet, est passionné par les jeux vidéo. En effet, ayant perdu la motricité d’une partie de son corps, il ne peut pas jouer à deux mains. Pour cela, il bloque la manette entre son épaule et son coude, usant de la mâchoire et des doigts pour contrôler les&lt;br /&gt;
joysticks et les boutons. Cet exercice peut s’avérer fatiguant et pénible.&lt;br /&gt;
&lt;br /&gt;
Ainsi, nous chercherons à concevoir une manette PS4 adaptée au handicap de l’adolescent. &lt;br /&gt;
Cette manette devra aussi être adaptée pour d’autres patients présentant également des handicaps moteurs. Ainsi nous prendrons pour cibles: tous les patients du centre voulant jouer; et non pas que les enfants et adolescents.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Membre du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Transley Gracias et Camille Saad&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Cible&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Patient présentant un handicap moteur&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Période du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
janvier 2018 - mai 2018&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Partenaire/Client&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Centre SSR Marc Sautelet à Villeneuve d'Ascq&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Objectifs&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ce projet a pour objectif de créer un prototype de manette qui puisse interagir avec la console PS4 et dont le paramétrage se fait à l’aide d’une application mobile et/ou web. Cette manette devra suivre les demandes du patient ainsi que des aides-soignantes du centre, dans la mesure du possible.&lt;br /&gt;
&lt;br /&gt;
Plus précisément, pour le premier prototype, nous mettrons en œuvre l'utilisation de quelques boutons spécifiques: &lt;br /&gt;
&lt;br /&gt;
* Un joystick (type L/R)&lt;br /&gt;
* Quelques boutons poussoirs (type Croix/Triangle/Carré/Rond/R1/L1/Start/...)&lt;br /&gt;
* Des boutons gâchettes progressives (type L2/R2).&lt;br /&gt;
&lt;br /&gt;
Le but serait donc dans un premier temps de rendre fonctionnel un bouton de chaque type, puis de les multiplier une fois cela fait. Tous ces boutons réunis constituent une manette fonctionnelle.Ainsi, la manette sera ajustable, c’est à dire qu’elle devra s’adapter aux différents handicaps moteurs possibles.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Analyse du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Positionnement par rapport à l'existant&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre prototype aura une présentation unique par rapport à l’existant. En effet, les concurrents et produits existants ciblent pour la majorité un seul handicap. Cela&lt;br /&gt;
engendre une solution fermée à beaucoup de patients. Notre projet propose une mobilité des mouvements et également un choix large dans la composition et le&lt;br /&gt;
design de notre manette.&lt;br /&gt;
Le patient n’est pas retreint à jouer à une seule main, à utiliser beaucoup de force...Il y a moins de technique dans la manipulation et on ne joue pas avec une&lt;br /&gt;
manette adaptée uniquement pour un droitier ou un gaucher. Cependant, cela nous limitera peut-être dans le choix possible des types de jeux. Tout comme les autres&lt;br /&gt;
manettes adapté, l’utilisateur nécessitera un peu d’entrainement.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du premier concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Jouer aux jeux vidéo à une main n’est pas une idée d’aujourd’hui. En 1990, Nintendo propose le Power Glove. Mais il tombe très rapidement aux oubliettes suite à des problèmes techniques.&lt;br /&gt;
&lt;br /&gt;
Un autre gant a fait son apparition quelques années plus tard. Celui-ci, plus technique, il faut office de manette Play Station: le Reality Quest Power Glove.Cette idée de manette-gant, permet de jouer à la PS avec une seule main, elle a était conçue et présentée pour les E3, un salon d’exposition de gaming.Le gant est conçu pour contrôler l’équivalent des 14 boutons et 2 joysticks à l’aide d’une seule main. La « manette » est fixée dans la pomme de la main. L’utilisateur contrôle les mouvements verticaux et horizontaux en pivotant le poignet, et utilisent les 4 boutons d’action principaux et L1/R1 avec les doigts. Les autres boutons sont accessibles par un seul bouton rond contrôlé par le pouce.&lt;br /&gt;
La manette est adaptée pour beaucoup de jeux vidéo, dont les plus simples sont les jeux de voitures et de combats (arcade).&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec ce gant&lt;br /&gt;
*Design obligatoirement droitier&lt;br /&gt;
*Les boutons de contrôle sont peu sensibles et peuvent nécessiter de la force&lt;br /&gt;
*Design compliqué et nécessitant beaucoup d’entrainement.&lt;br /&gt;
&lt;br /&gt;
;Lien : https://www.youtube.com/watch?v=qV0SxSJDCYg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du second concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ben Heck, de son vrai nom Benjamin J.Heckendorn, est un concepteur de mods de consoles (mods pour modification, soit « manettes modifiées ») et une star&lt;br /&gt;
du net grâce à ses vidéos tutoriels.Il propose alors énormément de produits adaptés ou dérivés en guise de manettes.&lt;br /&gt;
Parmi les mods qu’il a réalisé, il a modifié une manette de PS4 afin de la rendre accessible à une personne ne pouvant jouer qu’à une main. Pour cela, il a déplacé les boutons en respectant l’ergonomie de la main valide et modifie les connexions. Il peut lui arriver de rajouter des boutons pour en remplacer un autre. Il réalise également le même système avec la Xbox. Sur la photo ci-dessous, il a adapté la manette pour un droitier.&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec cette ma&lt;br /&gt;
*Design obligatoirement droitier ou gaucher, une modification = une manette= une personne&lt;br /&gt;
*Besoin obligé du pouce et de l’index, même si avantage : 3 doigts nécessaire.&lt;br /&gt;
&lt;br /&gt;
;Lien :: https://www.youtube.com/watch?v=LieHIscadjk&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Scénario d'usage du produit ou du concept envisagé&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
La technologie est ,aujourd’hui, omniprésente dans notre vie. Les consoles de jeux ont envahies les maisons avec plus de 7 personnes sur 10 jouant aux jeux vidéos sur consoles en France (chiffre de l’Express). 0,18% des français sont handicapés cela représente 12 millions de français. Dans ce chiffre, 13,4% des personnes ont un handicap moteur. En 2017, les grands groupes comme Sony ou Microsoft avec respectivement PlayStation et Xbox ne permettent pas à tout le monde de jouer avec une manette. Les manettes sont prévues pour des personnes ayant leurs membres valides, plus précisément les mains et les bras.&lt;br /&gt;
&lt;br /&gt;
Après un accident de voiture, un jeune garçon a perdu la motricité d’un côté du corps. Passionné de jeux vidéo, il se retrouve avec des difficultés à jouer sur sa console PS4. Ingénieux, il utilise la manette en la coinçant entre son épaule et le creux du cou. Usant de la mâchoire et de sa main valide pour contrôler les joysticks et les boutons. L'exercice étant inconfortable et fatiguant il eu l’idée de proposer à des futurs ingénieurs de lui proposer une manette adaptée à son handicap. &lt;br /&gt;
&lt;br /&gt;
Les deux pré-ingénieurs ,avec leur tuteur, ont une idée révolutionnaire : La manette modulable ! Elle permettrait au jeune garçon, ainsi que d’autres joueurs, de pouvoir continuer de s’amuser ou même de commencer à jouer au jeux sur console. &lt;br /&gt;
Cette manette aidera fortement dans les centre de rééducation pour faire passer le temps et donner du plaisir à des personnes qui ne peuvent plus s’amuser avec leur console traditionnelle. Elle pourra aussi ouvrir de nouvelles possibilités pour certaines personnes qui n’auraient jamais essayé jusqu'à présent.   &lt;br /&gt;
Comme son nom l'indique, elle sera modulaire et s'adaptera à différents handicaps. Accompagnée de son application d’initialisation, elle sera accessible aussi bien aux enfants, patients, parents et aides soignantes.&lt;br /&gt;
&lt;br /&gt;
Quelques mois plus tard...Le jeune patient fan de Need For Speed, peut maintenant piloter sa voiture comme un vrai professionnel grâce à l'un des joysticks qu'il utilisera avec sa main valide et il pourra accélérer à des vitesses folles à l'aide de boutons poussoirs au niveau de son pied valide et gagner la partie. Son ami venu lui rendre visite, pourra en lieu et place des aides soignantes configurer à l'aide de la tablette (portable) la manette du patient. &lt;br /&gt;
Si le patient change de jeu pour Tekken et que la configuration des modules ne lui convient plus, il peut interchanger les éléments de la manette selon son envie et son confort. Ainsi il peut faire sauter son personnage, il utilisera un module bouton supplémentaire, qu'il actionnera avec le poing.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Fonctionnement&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Suite à une analyse fonctionnelle et à la formulation de notre projet, nous avons pu définir le fonctionnement de notre système. Notre produit, la manette, doit être accessible d’après nos objectifs à différents types de handicaps moteurs. Ainsi, l’idéal serait de concevoir une manette modulable afin qu’elle puisse s’adapter à toutes les situations. Ce n’est plus au patient de s’adapter à la manette mais à la manette de s’adapter au patient.&lt;br /&gt;
Cela signifie que la manette sera, dans la limite du possible et de la sensibilité du corps du patient, composée de plusieurs parties dites « modules » comportant un ou plusieurs actionneurs (boutons, joysticks, gâchettes...). Ces modules seront déplaçables afin d’être utilisé avec différents membres du corps : un doigt, une main,&lt;br /&gt;
une jambe ou même un pied. Il suffira de les connectés entre eux suivant l’organisation souhaitée, le Gameplay du jeu ou en fonction du handicap. Le tout sera relié à une application.&lt;br /&gt;
L’application sera alors mise en place pour connecter les différentes parties du point de vue software pour prérégler la manette en fonction du patient. Il pourra alors choisir les boutons en fonction du jeu, de ses mouvements mais aussi choisir la sensibilité.&lt;br /&gt;
&lt;br /&gt;
L’application et les modules devront être intuitifs et faciles d’utilisation. De cette manière des utilisateurs non avertis dans le domaine informatique ou jeunes pourront eux-mêmes gérer les connexions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Réponse à la question difficile&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
'''Question : Comment interconnecter les différents modules de la manette ?'''&lt;br /&gt;
&lt;br /&gt;
Il nous faut pour ce projet interconnecter les modules modélisant la manette qui seront connectés à la consoles PS4 via une Raspberry Pi 3.&lt;br /&gt;
Le choix de la Raspberry Pi 3 nous permet d'utiliser son module Bluetooth pour communiquer avec la PS4, ce choix est plus adaptée au projet que du filaire.&lt;br /&gt;
Concernant l'interconnexion des modules, nous travaillerons en deux étapes &amp;quot;preuves concept&amp;quot; : filaire et sans fils (Bluetooth).&lt;br /&gt;
&lt;br /&gt;
'''Objectif 1 : Preuve concept filaire'''&lt;br /&gt;
&lt;br /&gt;
Dans cette première partie de projet, nous souhaitons avoir une 1ère preuve de prototype rapidement. Nous nous concentrerons alors sur la communication entre la RPi3 et la PS4 ainsi que sur la conception des modules. Pour les modules, nous réaliserons des cartes électronique pour chaque module avec un micro-contrôleur. La communication filaire nous permettra d'interconnecter les modules à la RPi3 avec un bus SPI.&lt;br /&gt;
&lt;br /&gt;
'''Objectif 2: preuve concept sans fils'''&lt;br /&gt;
&lt;br /&gt;
Une deuxième étape du projet est la réalisation de la solution idéale sans fils. Celle-ci pourra commencer à être développée petit à petit en parallèle avec l'objectif 1. Le but ici, est d'interconnecter les modules en Bluetooth. Nous avons choisi le Bluetooth pour garder une connexion commune sur toute la chaîne. &lt;br /&gt;
Nous rajouterons alors un module bluetooth à chaque module de la manette. &lt;br /&gt;
&lt;br /&gt;
'''Objectif 3: possibilité d'adapter les boutons (capuchon en 3D)'''&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Préparation du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Cahier des charges&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
''Chef de projet:'' Alexandre Boé  &amp;lt;br&amp;gt;&lt;br /&gt;
''Responsables:'' Xavier Redon, Thomas Vantroys &amp;lt;br&amp;gt;&lt;br /&gt;
''Partenariat:'' Marc Sautelet (non etablie) &amp;lt;br&amp;gt;&lt;br /&gt;
''Elèves-ingénieurs:'' Camille Saâd, Transley Gracias &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Sujet :''' Manette modulable pour personne à déficience moteur compatible PlayStation 4 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objectifs principal (1er POC) : ===&lt;br /&gt;
Faire transmettre des informations issus des actionneurs (ex:boutons poussoires) via des arduinos jusqu’à la Raspberry Pi 3 en SPI.&amp;lt;br&amp;gt;&lt;br /&gt;
Envoyer les données reçues vers la PS4 en USB  &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objectifs secondaire (2e POC):===&lt;br /&gt;
Créer des modules avec un microcontrôleur et une puce bluetooth pour permettre une meilleurs flexibilité (c-àd pouvoirs avoir une meilleure ergonomie et une connexion sans fil) &amp;lt;br&amp;gt;&lt;br /&gt;
Connecter la Raspberry Pi 3 en Bluetooth à la PS4 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier: beteacorne.jpg||middle|600px|Bete a corne manette]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Choix techniques : matériel et logiciel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Liste de matériel :===&lt;br /&gt;
&lt;br /&gt;
'''Modules boutons/joysticks/gachettes'''&lt;br /&gt;
&lt;br /&gt;
3  Push buttons :&amp;lt;br&amp;gt;&lt;br /&gt;
- O X Y Carré R3 L3 &amp;lt;br&amp;gt;&lt;br /&gt;
- Guide PS &amp;lt;br&amp;gt;&lt;br /&gt;
- start/back &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 0,45€/unité TTC [https://www.gotronic.fr/art-bp-miniature-krs1273-16976.htm] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1  Thumbstick original: &amp;lt;br&amp;gt;&lt;br /&gt;
Joystick analogique 4 directions --&amp;gt; 4,25€/unité TTC [https://www.gotronic.fr/art-joystick-analogique-4-directions-19063.htm] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1 buttons trigger L1 L2 =&amp;gt; 1x Thumbstick original''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Cartes Atmega328p /connexion spi/'''&lt;br /&gt;
&lt;br /&gt;
3   Arduino UNO &amp;lt;br&amp;gt;&lt;br /&gt;
1   Arduino UNO atmega328p retirable &amp;lt;br&amp;gt;&lt;br /&gt;
4   capacite 22pF traversantes &amp;lt;br&amp;gt;&lt;br /&gt;
2   resistances 10 kOhm traversantes (à récupérer) &amp;lt;br&amp;gt;&lt;br /&gt;
2   oscillateurs quartz 16MHz traversante &amp;lt;br&amp;gt;&lt;br /&gt;
2   atmega328p-pu et support &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cartes module bluetooth nrf52810 '''&lt;br /&gt;
&lt;br /&gt;
6   capacités 100nF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
6   capacités 12pF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 4,7pF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 1µF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 100pF=0,1nF 0603 (à récupérer) &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 0,8pF 0603 (a acheter, commande en cours) &amp;lt;br&amp;gt;&lt;br /&gt;
2   inductance 3,9nH 0603 (a acheter, commande en cours) &amp;lt;br&amp;gt;&lt;br /&gt;
2   oscillateur quartz 32 MHz &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''' Connexions et autres '''&lt;br /&gt;
&lt;br /&gt;
1 Led RGB neopixel [https://www.adafruit.com/product/1734] &amp;lt;br&amp;gt;&lt;br /&gt;
1 Raspberry Pi 3 &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; ~36,23€/unité TTC [https://fr.rs-online.com/web/p/processor-microcontroller-development-kits/8968660/?src=raspberrypi] &amp;lt;br&amp;gt;&lt;br /&gt;
1 Raspberry Pi Zero W (commandée) [https://www.raspberrypi.org/products/raspberry-pi-zero-w/] &amp;lt;br&amp;gt;&lt;br /&gt;
6 Alimentations 5V ou 3,3V &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
par exemple, 12 piles de type CR2016 3V rechargeables ou 24 piles AAA 1,5 V rechargeables  &lt;br /&gt;
5 modules Bluetooth nrf de Nordic : nRF52810-QFAA-R &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 3,17€/unité + frais expédition  [https://www.mouser.fr/productdetail/nordic-semiconductor/nrf52810-qfaa-r?qs=sGAEpiMZZMve4%2FbfQkoj%252bG%2FosjLoe2oghFQwQllMrQ4%3D]&lt;br /&gt;
5 Lignes broches mâles &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logiciels:===&lt;br /&gt;
&lt;br /&gt;
- IDE arduino&lt;br /&gt;
- Altium&lt;br /&gt;
- FreeCAD ou Inkscape&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Liste des tâches à effectuer&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 1 : Gestion du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Définition des cahiers des charges fonctionnel et technique, choix d'orientation...&lt;br /&gt;
* Recherche techniques sur les différentes connexions possibles entre les modules, la RPi 3 et la console PS4&lt;br /&gt;
#Recherche connexion SPI entre les modules et la RPi3&lt;br /&gt;
# Recherche connexion bluetooth entre la RPi3 et la PS4&lt;br /&gt;
# Recherche connexion bluetooth pour les modules&lt;br /&gt;
# Recherche carte avec montage Atmega328P-PU et anticipation module bluetooth&lt;br /&gt;
* Détermination du matériel nécessaire&lt;br /&gt;
* Réflexion sur l'application&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 2: Réalisation du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Partie 1: Preuve concept manette en filaire'''&lt;br /&gt;
&lt;br /&gt;
* Conception de cartes électroniques pour 2 modules (/!\ prévoir modules bluetooth)&lt;br /&gt;
* Réalisation connexion SPI avec 2 modules : programmation des Atmega328p en liaison série. &lt;br /&gt;
* Si tests concluant, ajouter des modules jusqu'à en avoir 5 (1 pour chaque type de boutons) &lt;br /&gt;
* Connexion bluetooth entre la PS4 et la RPi3&lt;br /&gt;
* Réalisation du support des modules avec fixations possibles (imprimante 3D)&lt;br /&gt;
&lt;br /&gt;
'''Partie 2: Preuve concept manette en bluetooth'''&lt;br /&gt;
&lt;br /&gt;
* Ajout des modules bluetooth aux cartes électroniques&lt;br /&gt;
* Connexion bluetooth entre les modules&lt;br /&gt;
&lt;br /&gt;
'''Partie 3: Application Android : paramétrage de la manette'''&lt;br /&gt;
&lt;br /&gt;
* Créer une application sur tablette ou smartphone (Android) afin de configurer la manette aux besoins (inter-connexion des modules et console)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Calendrier prévisionnel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Date'''&amp;lt;/u&amp;gt;&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Tache à réaliser''' &amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
17/01/18-24/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Faire des recherches sur les différentes interconnexions du système : Bluetooth, RPi-Atmega328 (SPI), RPi-PS4&lt;br /&gt;
Continuer liste des taches, matériel, Début recherches + réflexion fixation support des modules&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Recherche technique connexion PS4-RPi3 et connexion SPI RPi3-Module + code&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18-07/03/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Réalisation 1er prototype (+ début prototype 2)&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
07/03/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Seance 7 :  Test prototype filaire&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
07/03/18-09/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Réalisation 2eme prototype + application Android&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
09/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Seance 14 :  Test prototype Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
14/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Video projet&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
15/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Finalisation projet et Rapport&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
16/05/18-17/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Soutenances Projet&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Réalisation du Projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Feuille d'heures &amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Voici le tableau d'heures du binôme:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Heures S11 !! Heures S12 !! Heures S13et+ !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 10&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 20min&lt;br /&gt;
|&lt;br /&gt;
| 15h20&lt;br /&gt;
|-&lt;br /&gt;
| Cherches techniques &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 18&lt;br /&gt;
|-&lt;br /&gt;
| Rédaction du wiki et rapport de projet&lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 30min&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| 30min&lt;br /&gt;
| 30min&lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
| 10h30&lt;br /&gt;
|-&lt;br /&gt;
| Programmation&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 3&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 7&lt;br /&gt;
| 8&lt;br /&gt;
| 6&lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
| 43&lt;br /&gt;
|-&lt;br /&gt;
| Cartes électroniques&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 6&lt;br /&gt;
| 8&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| 31&lt;br /&gt;
|-&lt;br /&gt;
| Application&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| Total Semaine&lt;br /&gt;
| 10&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 7&lt;br /&gt;
| 10h30&lt;br /&gt;
| 13&lt;br /&gt;
| 9&lt;br /&gt;
| 12&lt;br /&gt;
| 9h30&lt;br /&gt;
| 10h30&lt;br /&gt;
| 9&lt;br /&gt;
| 9h20&lt;br /&gt;
| &lt;br /&gt;
| '''117h50'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Prologue&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Avant la réalisation et conception d'un projet, il est important d'analyser celui-ci. Nous avons allons consacré le prologue à l'analyse fonctionnelle de la manette. Nous avons également eu une réflexion sur l'analyse technique, cela nous a permis de réaliser une liste de matériel. Il est important de définir les objectifs ainsi que les besoins afin de ne rien oublier. (Voir ci-dessus Analyse projet) &lt;br /&gt;
Nous avons également organisé notre travail, pour le partage de documents de recherches et la rédaction de compte-rendu final nous avons réalisé un google drive. Par la suite, nous créerons un projet Git. &lt;br /&gt;
&lt;br /&gt;
Durant ce temps, nous avons décidé de réaliser 5 modules. Les modules sont les différents boutons de la manettes qui nous pourrons placer selon nos choix (boutons modulaires) pour notre prototype projet pour chaque type des boutons d'une manette PS4. Ces modules devrons être connectés à la console et interconnectés. Le tout sera lié à une application Android. Suite à quelques recherches et nos analyses, nous avons décidé les points suivants :&lt;br /&gt;
&lt;br /&gt;
- On commencera avec 2 modules et on les multipliera par la suite. &lt;br /&gt;
- Les premiers tests sont réalisés avec des boutons petits pour assurer leur caractéristique &amp;quot;modulaires&amp;quot;, par la suite nous pourrons ajouter des capuchons de taille plus importante (imprimante 3D ou achat)&lt;br /&gt;
- Conception modules : réalisation de carte avec un microcontrôleur atmega328 programmable pour chaque module (anticiper le module Bluetooth) &lt;br /&gt;
- Projet en 2 parties : prototype filaire et prototype Bluetooth&lt;br /&gt;
# Prototype filaire : connexions entre les modules et la RPi3 en SPI, connexion Rpi3-PS4 en Bluetooth, avec l'application en filaire à la RPi3&lt;br /&gt;
# Prototype Bluetooth: connexion Bluetooth entre modules-RPi3-PS4-apllication&lt;br /&gt;
&lt;br /&gt;
[[Fichier: structuremanette.png||center|400px|Concept manette modulable]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 1&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous nous sommes concentrés les recherches afin de définir clairement le cahier des charges technique. Il s'agit des réalisations à mettre en œuvre pour les inter-connexions des éléments de la manette.&lt;br /&gt;
Ainsi, nous avons fait des recherches sur :&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI entre les modules (Atmega328p) et la RPi3===&lt;br /&gt;
&lt;br /&gt;
SPI: Serial périphérique interface BUS&lt;br /&gt;
&lt;br /&gt;
[[Fichier: yWGmW.png||right|200px|Concept manette modulable]]&lt;br /&gt;
Comme indiqué sur l'image ci-dessus, la Raspberry pi 3  peut communiquer en SPI avec ses broches CS0 (24), CS1 (26), SCLK (23), MISO (21), MOSI (19). Celles-ci permettent de communiquer avec un ou plusieurs esclaves (dans notre cas, des Atmega328p) en reliant directement les broches concernées de la RPi3 à celles des composants esclaves.&lt;br /&gt;
Chaque broche CS0 (24) ou CS1 (26) ne peut être connectée qu'à l'entrée SS (aussi appelé CS) d'un seul esclave.&lt;br /&gt;
C'est a dire que chaque CS est lié à un esclave afin de choisir avec lequel la communication est établie à un moment donné, et les MISO sont reliées entre elles en cascade, de même pour les SCLK et les MOSI. On peut noter que le maître impose la fréquence d’horloge et sélectionne l’esclave auquel les données sont envoyées.  8 MHz est le plus rapide supportable a 3,3V&lt;br /&gt;
&lt;br /&gt;
[[Fichier: fonctionnementSPI.png||right|200px|Connexion SPI multi-esclaves]]&lt;br /&gt;
&lt;br /&gt;
Voici un schéma du fonctionnement souhaité : &lt;br /&gt;
&lt;br /&gt;
Comme nous souhaitons avoir 5 modules environ il nous faudra rajouter un composant en plus afin d'augmenter les possibilités de sélection, par exemple des démultiplexeurs.&lt;br /&gt;
Dans un premier temps nous essaierons avec 2 esclaves, puis on augmentera le nombre. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Connexion Bluetooth PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Les recherches portent également sur la connexion entre la manette PS4 et la console. Elles concernent le protocole de communication via Bluetooth&lt;br /&gt;
&lt;br /&gt;
Caracteristique pour la PS4:  Bluetooth®v4.0, Qualcomm Atheros AR3002 Buetooth LE: 2,4-2,5 GHz  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caracteristique de la connexion : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Vitesse de transmission &amp;gt;&amp;gt; 3 Mbit/s   8N1 &lt;br /&gt;
*Relevé tous les 1.3 millisecond (peut-être) &lt;br /&gt;
*Chaque manette à une adresse unique BD_ADDR qui correspond à l’adresse MAC de la carte Réseau&lt;br /&gt;
*Protocole de détection est le SDP basé sur une emission reception PDU&lt;br /&gt;
*L’Attribut ID est representer en TLV Type Length Value &lt;br /&gt;
*Communication HCI ACL Data Packet &lt;br /&gt;
&lt;br /&gt;
===Rélisation des cartes électroniques===&lt;br /&gt;
&lt;br /&gt;
matériel nécessaire pour un PCB : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*breadboard&lt;br /&gt;
*câbles&lt;br /&gt;
*1 x 10k Ohm résistance&lt;br /&gt;
*Quartz 16Mhz clock crystal&lt;br /&gt;
*2 x 22 pF capaciteurs&lt;br /&gt;
*Atmega328P-PU&lt;br /&gt;
&lt;br /&gt;
Ressources: &lt;br /&gt;
[[https://www.arduino.cc/en/Main/Standalone]]&lt;br /&gt;
[[http://www.eprojectszone.com/atmega-328-pu-standalone/]]&lt;br /&gt;
[[https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 2&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la semaine deux et durant la séance, nous avons continué et approfondie nos recherches sur le projet. Nous avons pu ainsi affiner nos taches de réalisation et donc notre cahier des charges.&lt;br /&gt;
&lt;br /&gt;
===Connexion aux modules: SPI et Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Green&amp;quot;&amp;gt; CORRIGER&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
voir https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018#Configuration_du_syst.C3.A8me_embarqu.C3.A9&lt;br /&gt;
&lt;br /&gt;
(sudo apt-get install pi-bluetooth)&lt;br /&gt;
&lt;br /&gt;
''connexion sur la raspberry par ssh:''&lt;br /&gt;
 su&lt;br /&gt;
 update-rc.d ssh enable&lt;br /&gt;
 invoke-rc.d ssh start &lt;br /&gt;
 ssh pi@172.26.79.1XX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''bluetooth''&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
 agent on&lt;br /&gt;
 default-agent&lt;br /&gt;
 scan on&lt;br /&gt;
 pair [device Bluetooth address]  (exemple: pair XX:XX:XX:XX:XX:XX )&lt;br /&gt;
&lt;br /&gt;
''NOUVELLE REFLEXION : Connexion SPI entre les modules (Atmega328p) et la RPi3 --&amp;gt; MODULES BLUETOOTH''&lt;br /&gt;
&lt;br /&gt;
Si multi-esclaves= plusieurs modules : &lt;br /&gt;
Il faut ajouter des sélections pour les SPI → démultiplexeurs OU ne pas utiliser les CS0 et CS1, et plutôt des pins entrée/sortie de la RPi3 lié au SS comme ça on choisit direct le module esclave voulu.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' Nous avons étudié à nouveau la datasheet de notre module bluetooth nrf de Nordik. Le module bluetooth comporte  déjà un microprocesseur !&lt;br /&gt;
Un module plutôt peut donc jouer le rôle de notre atmega328p. Il n'y a alors pas besoin de réaliser des cartes électroniques de type arduino standalone. Nos PCB regrouperont alors uniquement l'alimentation, un actionneur (bouton, joystick), le module bluetooth et les broches de connexion si besoin... &lt;br /&gt;
&lt;br /&gt;
Cette séance nous a alors permise de revoir entièrement le matériel nécessaire. Notre liste de matériel nous semble alors plus réfléchie et limitée au nécessaire. &lt;br /&gt;
&lt;br /&gt;
===Connexion Bluetooth PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Suite à nos recherches de la semaine précédente, nous avons sélectionné deux sites bien renseignés : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;SITES&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ils nous ont permis de comprendre la communication entre la manette et la console. En effet, ils nous expliquent les échanges de trames Bluetooth. &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;EXPLICATIONS 1 exemple &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 3 : Début premier prototype&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI RPi3-Arduino===&lt;br /&gt;
&lt;br /&gt;
Comme vu durant les semaines précédentes, nous souhaitons réaliser une connexion Multi-esclaves en SPI entre la Raspberry pi et plusieurs modules.&lt;br /&gt;
Cette semaine nous avons vu que la réalisation de notre premier prototype doit aller vite. Il ne nous est pas nécessaire d’attendre les modules bluetooth si il nous faut dans cette partie uniquement utiliser son microprocesseur. Ainsi pour chaque module nous utilisons une arduino UNO. Nous réaliserons les programmes en C afin de pouvoir les réutiliser avec les modules bluetooth par la suite. &lt;br /&gt;
Une fois la connexion réalisable nous adapterons les programmes aux modules bluetooth Nordik. En effet, ceux-ci comporte déjà un microprocesseur, le module peut jouer le rôle de notre atmega328p. Il n'y a aurait alors pas besoin de réaliser des cartes électroniques arduino standalone sur PCB, mais directement des cartes électronique avec le module et le module voulu (bouton, joystick...) et l'alimentation. &lt;br /&gt;
Durant la séance nous avons alors revu la liste de matériel nécessaire. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: prototype1.jpeg||center|600px|connexion filaire prototype 1 filaire arduino]]&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous avons recherches des exemples de codes et de librairies pour Arduino SPI et RaspberryPI SPI. &lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé le programme de la connexion SPI pour l'arduino et récupéré les bibliothéques SPI.h avec SPI.c. Nous nous sommes alors concentrer à les comprendre, pour pouvoir l'utiliser. &lt;br /&gt;
&lt;br /&gt;
===Réalisation du projet Git===&lt;br /&gt;
&lt;br /&gt;
Création du projet IMA4_Projet35_ManetteModulable sur Git et partage de celui-ci. &lt;br /&gt;
Les premiers dossier crées cette la séance :&lt;br /&gt;
-Arduino (connexion SPI arduino) : ProtoSpi.c + dossier librairie SPI + Makefile&lt;br /&gt;
-RPI (dossier codes pour Rpi) &lt;br /&gt;
-Readme.md&lt;br /&gt;
Ces dossiers seront amenés à être modifiés au cours des séances. &lt;br /&gt;
&lt;br /&gt;
===Protocole Bluetooth PS4===&lt;br /&gt;
&lt;br /&gt;
Suite à l'étude des trames Bluetooth, on a pu voir que ces dernières étaient incomplètes. Le modèle de communication étant propriétaire, on n'y a pas accès directement. Cela nous empêche donc de mettre en oeuvre cette communication. &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt; Déveloper&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On a décidé de commencer par une connexion USB (pour laquelle on dispose de toutes les informations) celle-ci étant plus complète.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 4&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Pour le prototype 1 FILAIRE nous réaliserons les étapes suivantes :&lt;br /&gt;
&lt;br /&gt;
#Réalisation du programme SPI pour arduino&lt;br /&gt;
#Réalisation du programme SPI pour la RPi&lt;br /&gt;
#Connexion USB avec la PS4 ou ordinateur&lt;br /&gt;
#Réalisation de cartes électroniques atmega328p-pu standalone (remplacer les Arduinos) &lt;br /&gt;
#Remplacer les &amp;quot;PCB arduino&amp;quot; par le module bluetooth et adapter la connexion&lt;br /&gt;
#Conception 3D de la délimitation 1 axe pour le joystick &amp;quot;gâchette&amp;quot;&lt;br /&gt;
#Réalisation de l'application Androïde.&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées nous auront alors une preuve de concept filaire et nous pourrons alors passer à une connexion bluetooth. &lt;br /&gt;
Le passage à la connexion bluetooth sera le deuxième prototype et le cas idéal de la réalisation de la manette modulable. &lt;br /&gt;
&lt;br /&gt;
===Mise à jour Matériel===&lt;br /&gt;
&lt;br /&gt;
- Modéliser les boutons gâchettes L1/2 R1/2 de la manette PS4 (boutons sensibles à la pression) --&amp;gt; un joystick dont nous bloquerons un axe (imprimante 3D)&lt;br /&gt;
- Remplacer la RPi 3 par une Rpi zero W qui nous permettrait de réaliser plus facilement une connexion USB tout en gardant l'avantage du bluetooth. &lt;br /&gt;
- Choix de l’alimentation pour les 5 modules Bluetooth: nécessitent 3V --&amp;gt;  utiliser des piles rechargeables 1,2V AAA plutôt que piles rondes 3V.&lt;br /&gt;
&lt;br /&gt;
Nous avons également besoin du matériel cité en semaine 1 pour réaliser des cartes électroniques atmega328p-pu standalone. ( nous revenons alors sur les décisions de la semaine 3)&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI RPi3-Arduino===&lt;br /&gt;
 &lt;br /&gt;
Montage Raspberrypi et 1 arduino en PSI + 1 bouton + 1 led.&lt;br /&gt;
Voici le choix des branchements :&lt;br /&gt;
&lt;br /&gt;
 MASTER = RPi   &lt;br /&gt;
 SLAVE= Arduino&lt;br /&gt;
&lt;br /&gt;
'''SPI sur Arduino:'''&lt;br /&gt;
 MOSI -&amp;gt; GPIO11 //PB3  //master OUT to the slave IN&lt;br /&gt;
 MISO -&amp;gt; GPIO12 //PB4 //slave OUT to the master IN&lt;br /&gt;
 SCLK -&amp;gt; GPIO13 //PB5 //serial clock&lt;br /&gt;
 SS -&amp;gt; GPIO10   //PB2  //slave select&lt;br /&gt;
'''Led, bouton et autre...'''&lt;br /&gt;
 LED --&amp;gt; GPIO6  //PD6&lt;br /&gt;
 GND&lt;br /&gt;
 +5V (if required)&lt;br /&gt;
'''SPI sur la Raspberry Pi'''&lt;br /&gt;
 SPIO MOSI -&amp;gt; PIN19 &lt;br /&gt;
 SPIO MISO -&amp;gt; PIN21&lt;br /&gt;
 SCLK -&amp;gt; PIN23&lt;br /&gt;
 SPIO CS0 -&amp;gt; PIN24&lt;br /&gt;
&lt;br /&gt;
Continuation du code pour faire clignoter Led branchée à une arduino depuis la Rpi, en connexion SPI.&lt;br /&gt;
&lt;br /&gt;
===Connexion USB PS4-RPi3===&lt;br /&gt;
Durant cette, nous avons regardé comment faire cohabiter bluetooth, Application Androïd, USB, PS4, SPI et les module. &lt;br /&gt;
&lt;br /&gt;
Il est alors important de savoir comment utiliser le port série sur la RPi3, soit utiliser les UART. &lt;br /&gt;
&lt;br /&gt;
Nous avons réaliser qu'il n'était pas aussi simple d'utiliser le port serie USB de la Raspberry Pi 3, en effet le SoC est un BCM2837 . &lt;br /&gt;
De plus nous ne pouvons pas utiliser le même port pour l'alimentation et la connexion. &lt;br /&gt;
&lt;br /&gt;
Il nous faut alors trouver une alternative ou une solution à ce problème.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 5&amp;lt;/span&amp;gt;==&lt;br /&gt;
 &lt;br /&gt;
===Programmation: Réflexion définitives prototypes filaire ===&lt;br /&gt;
&lt;br /&gt;
La semaine dernière, nous avons rencontré une difficulté liée aux ports séries UART. &lt;br /&gt;
Une des solutions à cette difficulté serait d'utiliser une RPi ZERO W à défaut d'une RPi 3. On pourrait alors avoir un port d'alimentation avec connexion USB mais également retrouver la connexion Bluetooth dont nous avons besoin.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous avons continué la réalisation du prototype filaire par l'avancé du code SPI ainsi que les recherches concernant le protocole PS4. &lt;br /&gt;
&lt;br /&gt;
La Raspberry Pi zero W peut également être utile pour la connexion entre la PS4 et les différents modules en jouant le rôle d'intermédiaire. Nous avons alors commandé une Rpi zero W pour notre projet. &lt;br /&gt;
En attendant la réception de la commande, nous nous sommes penché sur les recherches pour les programmes et la configuration nécessaire à l'utilisation de la RPi zero W.&lt;br /&gt;
&lt;br /&gt;
===Electronique===&lt;br /&gt;
&lt;br /&gt;
[[Fichier: bouton_c1.jpg|100px|thumb|left|PCB bouton]]&lt;br /&gt;
[[Fichier: arduinobb.jpg|200px|thumb|right|atmega328p-pu branchement test]]&lt;br /&gt;
&lt;br /&gt;
Du coté électronique, nous avons réalisé sur fritzing certaines cartes électroniques. Les Arduino Uno servant actuellement de test, seront remplacées par des PCB atmega328p-pu standalone avec des broches permettant les branchements nécessaires SPI ou encore aux modules &amp;quot;boutons/joystick&amp;quot;. Pour les boutons, nous avons également réalisé un pcb afin de faciliter les branchements.  &lt;br /&gt;
&lt;br /&gt;
Il nous faut alors également une 3eme carte qui nous sera nécessaire pour la réalisation du prototype sans fil. Dans notre liste de matériel, nous avons des composants nrf52810 bluetooth, ceci doivent être soudé avec les capacités de protection mais également des broches de communication. Nous avons alors commencé cette carte électronique sur Altium avec le fichier  projet PCB du distributeur à modifier.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: Arduino_c1.jpg|100px|thumb|center|PCB atmega328p-pu]]&lt;br /&gt;
&lt;br /&gt;
=== Construction 3D ===&lt;br /&gt;
&lt;br /&gt;
Enfin, nous avons commencé à réaliser des boîtiers 3D pour certains modules. Par exemple, comme nous l'avions vu précédemment, un des joysticks servira de bouton-gâchette en utilisant un seul de ses axes. Il nous faut alors réaliser un boitier qui bloque l'un des axes, mais également une tige qui nous permettra de pousser le joystick de manière simplifiée.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 6&amp;lt;/span&amp;gt;==&lt;br /&gt;
 &lt;br /&gt;
===Programmation: configuration RPi Zero W ===&lt;br /&gt;
&lt;br /&gt;
Ayant reçu la Raspberry Pi zero W en début de semaine, nous nous sommes concentrés sur la programmation et la configuration de celle-ci.&lt;br /&gt;
Cette partie étant compliquée, elle nous a pris du temps. En effet, il était difficile de connecter la RPi en SSH car il n'est pas possible d'y connecter un clavier directement et on avait besoin de la prise OTG pour &amp;quot;interfacer&amp;quot; la manette.&lt;br /&gt;
&lt;br /&gt;
===Electronique: PCB nrf52810===&lt;br /&gt;
&lt;br /&gt;
Les cartes réalisées en semaine 5 sont validées et en attente de réalisation. &lt;br /&gt;
&lt;br /&gt;
Cette semaine a permis la réalisation et la finalisation de la carte électronique nrf52810. Il nous a fallu recommencé cette carte deux fois. En effet, une fois finie sur Altium nous avons réalisé que les empreintes des CMS sur PCB fourni par le constructeur ne correspondent pas au matériel CMS de l'école. Face à cette inattention de notre part, nous avons décidé de refaire entièrement la carte électronique sur fritzing. Ayant la datasheet et des plans d'inspiration PCB, nous avons pu refaire la carte entièrement. &lt;br /&gt;
Sur celle-ci nous avons ajouté des broches de connexion au besoin, un branchement Jtag et ICSP pour la programmation et la connexion SPI. &lt;br /&gt;
La carte est en attente de validation, puis validation.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: nrf52810_circuit2.jpg||center|400px|PCB carte nrf52810]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Révision matériel ===&lt;br /&gt;
&lt;br /&gt;
Pour la réalisation de nos composants électroniques, il nous a fallu faire une révision des composants disponibles à l'école:&lt;br /&gt;
(les quantités indiquées ci-dessous pourront être augmentée si nécessaire,pour avoir dans l'idéal un module de chaque type de la manette, ici on se concentre sur BOUTON et JOYSTICK)&lt;br /&gt;
&lt;br /&gt;
'''Cartes Arduino:'''&lt;br /&gt;
* 4 capacite 22pF traversantes&lt;br /&gt;
* 2 resistances 10 kOhm traversantes (à récupérer)&lt;br /&gt;
* 2 oscillateurs quartz 16MHz traversante&lt;br /&gt;
* 2 atmega328p-pu et support&lt;br /&gt;
&lt;br /&gt;
'''Cartes nrf52810'''&lt;br /&gt;
* 6 capacités 100nF 0603&lt;br /&gt;
* 6 capacités 12pF 0603&lt;br /&gt;
* 2 capacités 4,7pF 0603&lt;br /&gt;
* 2 capacités 1µF 0603&lt;br /&gt;
* 2 capacités 100pF=0,1nF 0603 (à récupérer)&lt;br /&gt;
* 2 capacités 0,8pF 0603 (commande en cours)&lt;br /&gt;
* 2 inductance 3,9nH 0603 (commande en cours)&lt;br /&gt;
* 2 oscillateur quartz 32 MHz &lt;br /&gt;
&lt;br /&gt;
'''Cartes modules Boutons'''&lt;br /&gt;
* un sachet de broches mâles (qu'on utilisera également pour les autres cartes, à récupérer/acheté) &lt;br /&gt;
&lt;br /&gt;
Nous avons alors mis-à-jour la liste de composant située plus haut, ainsi que celle de la page IMA4 2017/2018 [https://projets-ima.plil.fr/mediawiki/index.php/Projets_IMA4_SC_%26_SA_2017/2018]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 7&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Programmation: connexion wifi RPi Zero W et Bootloader sur Atmega328p-pu ===&lt;br /&gt;
&lt;br /&gt;
Pendant cette semaine, nous avons continué la programmation et la configuration des Raspberry Pi 3 et Zero W. Concernant la configuration ssh, nous avons utilisé un téléphone en guise de point d’accès à la RPi Zero W en wifi.&lt;br /&gt;
Nous avons aussi directement configurer l'OS Jessie, utilisé pour la RPi Zero. On a modifié le fichier cmd.txt et ...pour pouvoir programmer un USB gadget sur le port OTG.&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;Ci-dessus expliquer fichiers&amp;lt;/span&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Nous avons également continuer les programmes de récupération de données : état des boutons et du joystick. Ces programmes sont appliqué sur l'atmega328p-pu standalone sur la plaque d'essai en attendant que le PCB soit opérationnel.&lt;br /&gt;
Pour pouvoir programmer l'atemega328p-pu comme une arduino UNO, il nous faut suivre plusieurs étapes :&lt;br /&gt;
&lt;br /&gt;
'''1.Flasher le Bootloader'''&lt;br /&gt;
Nous avons 2 Atmega328p-pu neufs, ainsi il nous faut flasher le bootloader sur chacun d'eux afin de pouvoir les utiliser et les programmer sur une breadboard dans un montage minimaliste arduino-standalone. &lt;br /&gt;
Pour cela, on peut utiliser une carte arduino UNO. On vérifie le port et le type de carte sélectionnés dans le menu &amp;gt;Outils. Sur cette carte on téléverse le fichier arduinoISP.ino qui se trouve dans les exemples en étant en progrmamateur AVr ISP mkll (&amp;gt;outils&amp;gt;programmateur) &lt;br /&gt;
Puis on met l'atmega328p-pu qui nous intéresse sur le suppor socket de la carte. On change de nouveau le programmateur pour Arduino as ISP et on fait &amp;gt;tools&amp;gt;burn bootloader, soit &amp;gt;graver la sequence d'initialisation.&lt;br /&gt;
Ces étapes faites, on peut retirer notre microcontroleur et le replacer correctement dans le montage. &lt;br /&gt;
&lt;br /&gt;
'''2.Programmation atmega328 sur breadboard'''&lt;br /&gt;
Une fois l'atmega328p-pu préparé, on peut le programmer. On peut le faire simplement à l'aide de la carte arduino UNO utilisée précédemment.On branche les Tx et Rx en commun ainsi que le reset, le GND et le VCC.&lt;br /&gt;
&lt;br /&gt;
Nous avons réaliser des codes basiques tels que le clignotement d'une led rouge ou encore l'affichage de &amp;quot;hello world&amp;quot; sur le moniteur série pour vérifier la bonne fonctionnalité du montage. Cela fait nous avons pu écrire sous Arduino IDE le code de lecture des états.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: montage_BB_test.jpg||left|200px|programmation modules arduino sur breadboard]]&lt;br /&gt;
&lt;br /&gt;
===Electronique : soudure carte de test modules ===&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons déja vu lors de la réalisation des PCB, si l'on souhaite programmer un atmega328p-pu en bootloader, le montage est simple. Il peut être minimaliste en utilisant une arduino UNO, un atmega328, une breadboard et 3 composants: 1 quartz 16MHZ crystal, 1 résistance 10kOhm et 2 capacitors céramiques de 22pF.&lt;br /&gt;
Durant la semaine 7, nous avons soudé les composants traversants de la carte électronique correspondant à ce montage ainsi que le PCB du bouton.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 8&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Programmation ===&lt;br /&gt;
Après moult recherche sur les différents site web bien fournis pour le coups on as pu trouvé une amorce à la programmation de l'OTG via un script qui agit au niveau du kernel dans le sous dossier usg_gadget. Ce script donne les informations nécessaires pour pouvoirs échangé les données.&lt;br /&gt;
Avec le script trouvé et les informations des sites web décryptant les trames de la manette, on a toujours pas réussit à faire passer notre RPi Zero W pour une manette de PS4. Néanmoins il nous manque la trame HID complète de la manette pour avoir un test effectif.&lt;br /&gt;
&lt;br /&gt;
===Electronique : Correction soudure et soudure CMS===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avions souhaité programmer la carte électronique atmega328p-pu. Cependant, nous avons réaliser que nous avions fait une erreur lors de l'envoie du PCB à la production. En effet, celui-ci avait été fait en Top sur le logiciel Fritzing et non en Bottom. Hors nous avions soudé les composants (durant la semaine 7) comme pour un circuit imprimé en bottom, l'atmega328p-pu se retrouve alors inversé par rapport aux pistes. &lt;br /&gt;
Comme solution, nous avons choisi de souder un deuxième support pour l'atmega328 de l'autre coté de la carte avant de la refaire au propre. En effet, avant de la refaire il nous faut vérifier si la carte est bien programmable. &lt;br /&gt;
Une fois cela fait nous avions pu programmer la carte mais, nous avions également réalisé la pin 2 de l'atmega328 était prise par le bouton poussoir. Or, nous avons besoin des pin 2 et 3 pour le RX et TX permettant la programmation de l'atmega à partir d'une arduino, les pistes branchement RX-TX n'ont également pas été prévus pour le téléversement des programmes sur la carte. Il nous faut alors couper une piste et souder des câbles pour utiliser toutes les pistes souhaitées. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: correction_proto_PCB.jpg||right|300px|PCB arduino correction]]&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons également souhaité souder les CMS et le composant bluetooth nrf52810 sur la carte imprimé et reçu lors de la semaine 7. Pour cela, nous avons convenu de travailler dans la C202 durant la séance du mercredi. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: PCB_nrf52810.jpg||left|400px|carte electroniques imprimées]]&lt;br /&gt;
&lt;br /&gt;
====Comment souder des CMS ?====&lt;br /&gt;
&lt;br /&gt;
les CMS sont des composants montés en surface c'est à dire qu'ils sont montés du même côté que les pistes cuivrées (à l'opposé des composants traversants) et sont de petite tailles souvent de l'ordre du millimètre. La taille est déterminée par 4 chiffres : les 2 premiers pour la longueur et les 2 derniers pour la largeur. On a du 1206,0805,0603 ou encore 0402. Il est même possible de trouver plus petit. A l'école nous utilisons souvent du 0603, c'est le cas de nos composants.&lt;br /&gt;
Pour souder des CMS 0603, il nous faut utiliser une autre méthode qui n'est pas le fer à souder :&lt;br /&gt;
# Préparer la veille la pâte à braser la veille (dans une seringue)&lt;br /&gt;
# Gommer la carte pour éviter l'oxydation (attention à ne pas retirer les miettes de gomme en soufflant dessus) &lt;br /&gt;
# Appliquer avec la seringue la pâte sur les empreintes et piste souhaitées. Pour les endroits difficile à atteindre ou avec 2 pistes proches les unes des autres, il est possible de mettre la même goutte de pâte sur les 2 pistes. Cela de causera pas de court-circuit par la suite. En effet, la pâte est composée d’alliage qui sous la chaleur va se fluidifier et se coller uniquement aux pistes métallique. Le reste fondera sous la chaleur du four.&lt;br /&gt;
# Appliquer les CMS sur la pâte au fur et à mesure (attention ! ne jamais toucher les CMS avec les doigts, tjrs utiliser une pince)&lt;br /&gt;
# Mettre au four&lt;br /&gt;
&lt;br /&gt;
====Bilan soudure nrf52810====&lt;br /&gt;
&lt;br /&gt;
Cependant, une fois le matériel nécessaire préparé, et la pâte mise sur les pistes souhaitées, au moment de déposer le composant, nous avons réalisé que celui-ci était beaucoup plus petit que l'empreinte sur le PCB. Il s'agit d'un composant boitier QFN48. Fritzing ne proposant au plus proche des boitiers QFN24 ou LQFP48, celui-ci a basculé automatiquement pour un boitier LQFN48, de dimension plus grande. Face à ce manque de vigilance, nous avions cependant commencer par le nrf52810 (composant concerné) évitant ainsi de gaspiller d'autres CMS. &lt;br /&gt;
Nous avons souhaité refaire la carte sous Altium à partir des fichiers fournis par le concepteur (chose que nous avons commencé à faire aux alentours de la semaine 5) &lt;br /&gt;
Après la réalisation du schématic, et de la modification des empreintes de capacités, inductances et autres composants de 0402 à 0603. Notre matériel ne permettant que des empreintes 0603.&lt;br /&gt;
 &lt;br /&gt;
Lors du routage, une erreur de chevauchement des pistes est notifiée par Altium au niveau du nrf52810. Celles-ci ne présentent pas d'angles et sont déjà de taille 8mil, il nous faut alors passer les pistes en 6mil. Mais 8mil est la taille minimale pour la production à Polytech, nous avons regardé pour envoyer les cartes à faire ailleurs mais le 6mil n'est pas beaucoup conseillé. De plus, il n'est peut-être pas judicieux de continuer avec le composant microcontrôleur-bluetooth Nrf52810 qui prend du temps, donc la carte est difficilement réalisable et peut-être très long à programmer. &lt;br /&gt;
&lt;br /&gt;
Ainsi en cette fin de semaine, nous avons décider face à l'avancer du projet de laisser les nrf52810 de coté et de les remplacer par des modules sans fils plus simples d'utilisation et complets. Ainsi nous aurions plus de chance d'avoir une connexion sans fils entre les modules. Nous pourrions par exemples utiliser des Xbee, des modules Rf...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 9&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation: PS4 et 1er Test SPI sur atmega328p====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
Les premiers tests sur Windows ne nous donner pas satisfaction. En effet, l'ordinateur détectait bien le nouvel appareil avec son nom mais l'origine rester inconnue. &lt;br /&gt;
&lt;br /&gt;
Lors des tests sur Linux on a pu voir des erreurs via la commande 'dmesg' :&lt;br /&gt;
&lt;br /&gt;
 [193229.758782] usb 4-1.2: new high-speed USB device number 6 using ehci-pci&lt;br /&gt;
 [193230.270780] usb 4-1.2: new high-speed USB device number 7 using ehci-pci&lt;br /&gt;
 [193235.510842] usb 4-1.2: device descriptor read/64, error -110&lt;br /&gt;
 [193251.127043] usb 4-1.2: device descriptor read/64, error -110&lt;br /&gt;
 [193251.315043] usb 4-1.2: new high-speed USB device number 8 using ehci-pci&lt;br /&gt;
 [193256.503135] usb 4-1.2: device descriptor read/64, error -110&lt;br /&gt;
 [193272.119331] usb 4-1.2: device descriptor read/64, error -110&lt;br /&gt;
 [193272.307331] usb 4-1.2: new high-speed USB device number 9 using ehci-pci&lt;br /&gt;
 [193282.999473] usb 4-1.2: device not accepting address 9, error -110&lt;br /&gt;
 [193283.079485] usb 4-1.2: new high-speed USB device number 10 using ehci-pci&lt;br /&gt;
 [193293.751588] usb 4-1.2: device not accepting address 10, error -110&lt;br /&gt;
 [193293.751771] usb 4-1-port2: unable to enumerate USB device&lt;br /&gt;
 [193387.196861] usb 4-1.2: new high-speed USB device number 11 using ehci-pci&lt;br /&gt;
 [193392.440941] usb 4-1.2: device descriptor read/64, error -110&lt;br /&gt;
 [193407.933152] usb 4-1.1: new high-speed USB device number 12 using ehci-pci&lt;br /&gt;
 [193413.177227] usb 4-1.1: device descriptor read/64, error -110&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Modules Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
Une carte PCB arduino fonctionnant, nous pouvons la programme pour simuler un module. Celle-ci a été designée afin de s'adapter au module que l'on souhaite. Il suffit de brancher le bouton, le joystick ou autre élèment de manette souhaité.&lt;br /&gt;
Cette semaine ci, nous avons alors configurer la partie communication SPI pour l'arduino.&lt;br /&gt;
&lt;br /&gt;
'''Que voulons-nous faire avec les atmegas ?''' &lt;br /&gt;
Les cartes électroniques atmega328p vont nous permettre de recevoir les requêtes SPI envoyées par la raspberry pi et d'y répondre. La Raspberry enverra un message, par exemple &amp;quot;1&amp;quot;, et l'Arduino lira alors l'état du module qui lui est connecté. Une fois l'état récupéré elle le renvoie à la raspberry pi.&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons programmé l'atmega afin qu'il soit en esclave, qu'il reçoive un de la RPi &amp;quot;1&amp;quot; et retourne une valeur sauvegardé &amp;quot;int envoi&amp;quot;. Nous avons également commencé les tests pour la lecture de l'état d'un bouton (d'après les tests réalisés les semaines précédentes).&lt;br /&gt;
&lt;br /&gt;
'''Code'''&lt;br /&gt;
Comme nous l'avons vu précedement lors de nos recherches (semaines 1 à 4) : &lt;br /&gt;
La communication SPI nécessite l'utilisation des pins: &lt;br /&gt;
&lt;br /&gt;
MOSI -&amp;gt; GPIO11 //PB3  //master OUT to the slave IN&lt;br /&gt;
MISO -&amp;gt; GPIO12 //PB4 //slave OUT to the master IN&lt;br /&gt;
SCLK -&amp;gt; GPIO13 //PB5 //serial clock&lt;br /&gt;
SS -&amp;gt; GPIO10   //PB2  //slave select&lt;br /&gt;
&lt;br /&gt;
Il faut également paramétrer l'atmega328p en Slave. On note que dans un premier temps, le programme sera codé avec l'arduino IDE (fichiers .ino). Une fois l'ensemble SPI RaspberryPi-Arduino fonctionnant, on remplacera ces codes par du langage C ou C++.&lt;br /&gt;
&lt;br /&gt;
Pour faire la connexion SPI sur l'atmega328p,  on utilise la librairie arduino SPI.h, on a alors directement les fonctions nécessaires intervenant sur les registres souhaités : SPCR (spi control register), SPSR (spi status register) et SPDR (spi data register). &lt;br /&gt;
 &lt;br /&gt;
  #include &amp;lt;SPI.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il est important d'initialise d'abord le setup et on active le port série pour pourvoir utiliser le moniteur série. (Cela servira à verifier la valeur envoyée par la RPi) &lt;br /&gt;
&lt;br /&gt;
 void setup (void)&lt;br /&gt;
 {&lt;br /&gt;
   Serial.begin (9600);  &lt;br /&gt;
   pinMode(MISO, OUTPUT);  //configuration en esclave *master in slave out*&lt;br /&gt;
   pinMode(buttonPin,INPUT);  //config pin bouton&lt;br /&gt;
   // turn on SPI in slave mode&lt;br /&gt;
   SPCR |= _BV(SPE);&lt;br /&gt;
   // preparation interruptions&lt;br /&gt;
   pos = 0;   // buffer empty&lt;br /&gt;
   process_it = false;&lt;br /&gt;
   // activation interruptions&lt;br /&gt;
   SPI.attachInterrupt();&lt;br /&gt;
 }  &lt;br /&gt;
 &lt;br /&gt;
On oublie pas de déclarer les interruptions afin de bien lire la requête reçue. &lt;br /&gt;
 &lt;br /&gt;
// SPI interrupt routine&lt;br /&gt;
ISR (SPI_STC_vect)&lt;br /&gt;
{&lt;br /&gt;
  byte c = SPDR;  // grab byte from SPI Data Register&lt;br /&gt;
  // add to buffer if room&lt;br /&gt;
  if (pos &amp;lt; sizeof buf)&lt;br /&gt;
    {&lt;br /&gt;
    buf [pos++] = c;&lt;br /&gt;
    // example: newline means time to process buffer&lt;br /&gt;
    if (c == '\n')&lt;br /&gt;
      process_it = true;&lt;br /&gt;
    }  // end of room available&lt;br /&gt;
}  // end of interrupt routine SPI_STC_vect&lt;br /&gt;
&lt;br /&gt;
Dans la loop main, on traite la requête et on utilise '''SPI.transfer(envoi);''' pour transferer à la RPi les données souhaitées. &lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons également commencé des programmes de test SPI pour la RPi. Il s'agit principalement de programmes de tests tout faits permettant de vérifier la connexion entre cette dernière et l'arduino. Par exemple, la RPI envoie &amp;quot;bonjour&amp;quot; et l'arduino lui retourne ce qu'elle reçoit, soit &amp;quot;bonjour&amp;quot;. Sans succés alors.&lt;br /&gt;
&lt;br /&gt;
====Electronique : Fritzing révision====&lt;br /&gt;
&lt;br /&gt;
Lors de la semaine, le modèle PCB de la carte arduino a été réalisé de nouveau sous fritzing avec les broches et connections manquantes. Nous avons également revu la configuration du bouton reset  et ajouté une led d'état de l'alimentation. Nous avons ainsi envoyé deux cartes identiques à la réalisation.&lt;br /&gt;
La carte déjà soudée lors des derniers jours fonctionnant, elle nous sert de prototype de programmation. Nous pouvons ainsi avancer à la fois sur la programmation des modules mais aussi sur leur réalisation. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 10&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation : PS4 et SPI sur RPi====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
Cette semaine, pour tester la prise OTG nous avons décider de lancer un script qui est habituellement utilisé. Nous avons choisi le script Serial Adapter qui est censé permettre de se connecter à la RPi Zero W en SSH via ce port. &lt;br /&gt;
Après quelque modifications et plusieurs petits bugs, nous avons réussir à faire fonctionner le ssh via le port OTG. Donc le problème était le même, notre script mélangé avec les informations sur la PS4 n'était toujours pas fonctionnel.&lt;br /&gt;
&lt;br /&gt;
Pour faire la liaison entre les deux parties nous avons aussi commencé à programmer une application qui permet de configurer les modules au niveau de la RPi Zero W.    &lt;br /&gt;
&lt;br /&gt;
'''Modules Raspberry PI et SPI'''&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, pour la partie Atmega328p-Modules, nous nous sommes concentrés sur la programmation de la communication SPI avec la raspberry pi. Cette semaine a permis une étude plus approfondit sur le fonctionnement pour la RPi. &lt;br /&gt;
&lt;br /&gt;
On rappelle, comme vu des semaines 1 à 4, pour la RPI3 (tout comme la RPi Zero W) utilise les broches : SCLK (23), MISO(21), MOSI (19) et SPI CS0 (24), SPI CS1 (26). &lt;br /&gt;
On la programme en Master. A l'aide des fichiers tests d'inspiration, on pourra directement programmer la RPi en C. Lors de la réalisation du code, il y a 3 étapes : l'initialisation/parametrage en SPI pour être maître, l'envoie de la requête puis la réception de données en retour. &lt;br /&gt;
&lt;br /&gt;
Programmant en C, il ne faut pas oublier les librairies suivantes :&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;getopt.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;sys/ioctl.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/types.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/spi/spidev.h&amp;gt;   //pour SPI&lt;br /&gt;
&lt;br /&gt;
On va déclarer des variables globales permettant le paramétrage :&lt;br /&gt;
&lt;br /&gt;
 static const char *device = &amp;quot;/dev/spidev0.0&amp;quot;;  //si on veut CS0 pour atteindre notre SS&lt;br /&gt;
 static uint8_t mode;       //mode est par défaut à 0&lt;br /&gt;
 static uint8_t bits = 8;    //bits par mot échangé&lt;br /&gt;
 static uint32_t speed = 500000;  &lt;br /&gt;
 static uint16_t delay;&lt;br /&gt;
&lt;br /&gt;
Dans notre main, on ouvre le port (la connexion) au device souhaité,  on vérifie les paramètres (registres, connexions...) puis exécute la fonction transfer(fd). transfer(fd) transmet la requête et s'occupe de la réception. &lt;br /&gt;
&lt;br /&gt;
 fd = open(device, O_RDWR);&lt;br /&gt;
 transfer(fd);&lt;br /&gt;
 close(fd);&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 11&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation: PS4, SSH et tests SPI (RPi3&amp;amp;Atemga328p)====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
Lors de recherche supplémentaire, nous avons essayer de voir s'il un pilote de gestion du périphérique serait nécessaire à la connexion de notre pseudo manette. &lt;br /&gt;
  &lt;br /&gt;
'''Raspberry PI, Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
Afin de facilité la programmation en utilisant Ethernet, nous avons installer et configuré la RPi pour l'utiliser en SSH depuis les ordinateurs de la E306. En effet, SSH permet de se connecter à distance sur une machine en utilisant un compte utilisateur de la dite machine. En mettant ssh, on pourra directement agir sur les fichiers de la raspberry depuis un terminal de notre PC. Pour cela, on a d'abord vérifier l'adresse IP de notre raspberry pi : 172.26.145.106 avec un écran mais on peut aussi utiliser les commandes ip a et ifconfig. Puis activer le ssh sur la raspberry pi. &lt;br /&gt;
On modifie alors le fichier config.txt mais également etc/network/interfaces pour configurer la bonne interface Ethernet sur la raspberry pi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: configSSH_raspi.png||left|300px|config ssh ethernet]]&lt;br /&gt;
&lt;br /&gt;
Il nous suffit alors de taper la commande : ssh pi@172.26.145.106  pour accéder à notre RPi. &lt;br /&gt;
&lt;br /&gt;
Nous avons continué à réaliser la communication SPI avec des tests entre une arduino UNO et la RPI3. Nous avons commencé par des tests simples inspirés des études de deux semaines précédentes et modulés selon notre utilité.  &lt;br /&gt;
Nous arrivons alors à lire l'état envoyer &amp;quot;bonjour&amp;quot; et recevoir &amp;quot;ça va&amp;quot; ou encore &amp;quot;1&amp;quot; et recevoir &amp;quot;3&amp;quot;. Il faut noter que le SPI échange des trames, la RPI reçoit alors des hexadécimaux. &lt;br /&gt;
Nous avons alors continué pour recevoir l'état du bouton ou du joystick lors de l'envoie de &amp;quot;1&amp;quot; sur l'Arduino328p. La semaine prochaine nous testerons ces même codes fonctionnels sur les cartes atmeg327p. &lt;br /&gt;
&lt;br /&gt;
A la fin de cette semaine, nous avons alors des codes Arduino-SPI (.ino) et des codes Raspberry-SPI (.c) permettant l'échange de données. Le but est maintenant de l'adapter aux cartes imprimées et de le rendre pleinement fonctionnel pour plusieurs cartes à la fois, puis ajouter une boucle de vérification en continue jusqu'à une deuxième requête de la RPi.&lt;br /&gt;
&lt;br /&gt;
====Electronique: réalisation au propres des PCB modules====&lt;br /&gt;
&lt;br /&gt;
Suite à une nouvelle erreur de réalisation cartes électronique, nous avons  refait et renvoyé à nouveau les cartes imprimées atmega328p.&lt;br /&gt;
Nous les souhaitons au propre pour une version finale. Une fois celle-ci imprimées nous pourrons en avoir 3 , un pour chaque module. Les cartes étaient bien imprimées en bottom mais lors du passage des traversants de bottom à top, le logiciel ne les a pas fait miroiter. Par manque d'attention nous avons alors envoyé les fichiers gerber pour des cartes ayant les composants du même coté que la couche de cuivre. &lt;br /&gt;
Les cartes électroniques actuelles sont alors correctes et fonctionnelles mais difficile à souder. Pour eviter les erreurs et continuer sur des prototypes de carte nous préférons attendre en nous concentrant sur la programmation PSI de la Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 12&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Raspberry PI, Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
-  réflexion: penser à faire boucler sur l'arduino une fois la requête reçu, ça veut dire que la manette est ON et donc vérifier continuellement les modules sur chaque atmega.&lt;br /&gt;
- SPI raspberry pi - arduino recuperation état du bouton avec les cartes modules  (/!\ récuperation à faire dans une variable) &lt;br /&gt;
&lt;br /&gt;
-SSH perso &lt;br /&gt;
adresse Rasppi: 192.168.137.10&lt;br /&gt;
&lt;br /&gt;
====Electronique: Finalisation soudure Modules====&lt;br /&gt;
&lt;br /&gt;
Soudure au propre et finale d'une carte atmega328p et donc envoie pour la réalisation de 2 autres cartes similaires et récupération de matériel&lt;br /&gt;
Soudure des 2 autres cartes, + tests sur les états = fonctionnelles.&lt;br /&gt;
On a donc bien 3 cartes pour les 3 modules de types différents (1 bouton, 1 joystick, 1 gachette)&lt;br /&gt;
PCB pour les 2 joysticks (qui serviront de thumbstick et gachette)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 13 et plus&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
====Electronique====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
(à mettre rapport + git + drive)&lt;br /&gt;
&lt;br /&gt;
=Datasheets=&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=55394</id>
		<title>IMA4 2017/2018 P35</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=55394"/>
				<updated>2018-05-05T20:17:18Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : /* Programmation : PS4 et SPI sur RPi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Présentation générale: Manette modulable&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Description&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Tout le monde joue aux jeux vidéo cependant, les manettes ne sont pas adaptées aux personnes ayant un handicap pouvant toucher les bras ou les mains.&lt;br /&gt;
C’est le cas, de plusieurs patients dans les centres de soins et de rééducation.&lt;br /&gt;
&lt;br /&gt;
Pour ce projet IMA4, nous travaillerons avec le centre SSR (soin de suite et de réadaptation) Marc Sautelet de Villeneuve d’Ascq.&lt;br /&gt;
Un adolescent, patient de Marc Sautelet, est passionné par les jeux vidéo. En effet, ayant perdu la motricité d’une partie de son corps, il ne peut pas jouer à deux mains. Pour cela, il bloque la manette entre son épaule et son coude, usant de la mâchoire et des doigts pour contrôler les&lt;br /&gt;
joysticks et les boutons. Cet exercice peut s’avérer fatiguant et pénible.&lt;br /&gt;
&lt;br /&gt;
Ainsi, nous chercherons à concevoir une manette PS4 adaptée au handicap de l’adolescent. &lt;br /&gt;
Cette manette devra aussi être adaptée pour d’autres patients présentant également des handicaps moteurs. Ainsi nous prendrons pour cibles: tous les patients du centre voulant jouer; et non pas que les enfants et adolescents.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Membre du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Transley Gracias et Camille Saad&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Cible&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Patient présentant un handicap moteur&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Période du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
janvier 2018 - mai 2018&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Partenaire/Client&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Centre SSR Marc Sautelet à Villeneuve d'Ascq&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Objectifs&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ce projet a pour objectif de créer un prototype de manette qui puisse interagir avec la console PS4 et dont le paramétrage se fait à l’aide d’une application mobile et/ou web. Cette manette devra suivre les demandes du patient ainsi que des aides-soignantes du centre, dans la mesure du possible.&lt;br /&gt;
&lt;br /&gt;
Plus précisément, pour le premier prototype, nous mettrons en œuvre l'utilisation de quelques boutons spécifiques: &lt;br /&gt;
&lt;br /&gt;
* Un joystick (type L/R)&lt;br /&gt;
* Quelques boutons poussoirs (type Croix/Triangle/Carré/Rond/R1/L1/Start/...)&lt;br /&gt;
* Des boutons gâchettes progressives (type L2/R2).&lt;br /&gt;
&lt;br /&gt;
Le but serait donc dans un premier temps de rendre fonctionnel un bouton de chaque type, puis de les multiplier une fois cela fait. Tous ces boutons réunis constituent une manette fonctionnelle.Ainsi, la manette sera ajustable, c’est à dire qu’elle devra s’adapter aux différents handicaps moteurs possibles.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Analyse du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Positionnement par rapport à l'existant&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre prototype aura une présentation unique par rapport à l’existant. En effet, les concurrents et produits existants ciblent pour la majorité un seul handicap. Cela&lt;br /&gt;
engendre une solution fermée à beaucoup de patients. Notre projet propose une mobilité des mouvements et également un choix large dans la composition et le&lt;br /&gt;
design de notre manette.&lt;br /&gt;
Le patient n’est pas retreint à jouer à une seule main, à utiliser beaucoup de force...Il y a moins de technique dans la manipulation et on ne joue pas avec une&lt;br /&gt;
manette adaptée uniquement pour un droitier ou un gaucher. Cependant, cela nous limitera peut-être dans le choix possible des types de jeux. Tout comme les autres&lt;br /&gt;
manettes adapté, l’utilisateur nécessitera un peu d’entrainement.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du premier concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Jouer aux jeux vidéo à une main n’est pas une idée d’aujourd’hui. En 1990, Nintendo propose le Power Glove. Mais il tombe très rapidement aux oubliettes suite à des problèmes techniques.&lt;br /&gt;
&lt;br /&gt;
Un autre gant a fait son apparition quelques années plus tard. Celui-ci, plus technique, il faut office de manette Play Station: le Reality Quest Power Glove.Cette idée de manette-gant, permet de jouer à la PS avec une seule main, elle a était conçue et présentée pour les E3, un salon d’exposition de gaming.Le gant est conçu pour contrôler l’équivalent des 14 boutons et 2 joysticks à l’aide d’une seule main. La « manette » est fixée dans la pomme de la main. L’utilisateur contrôle les mouvements verticaux et horizontaux en pivotant le poignet, et utilisent les 4 boutons d’action principaux et L1/R1 avec les doigts. Les autres boutons sont accessibles par un seul bouton rond contrôlé par le pouce.&lt;br /&gt;
La manette est adaptée pour beaucoup de jeux vidéo, dont les plus simples sont les jeux de voitures et de combats (arcade).&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec ce gant&lt;br /&gt;
*Design obligatoirement droitier&lt;br /&gt;
*Les boutons de contrôle sont peu sensibles et peuvent nécessiter de la force&lt;br /&gt;
*Design compliqué et nécessitant beaucoup d’entrainement.&lt;br /&gt;
&lt;br /&gt;
;Lien : https://www.youtube.com/watch?v=qV0SxSJDCYg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du second concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ben Heck, de son vrai nom Benjamin J.Heckendorn, est un concepteur de mods de consoles (mods pour modification, soit « manettes modifiées ») et une star&lt;br /&gt;
du net grâce à ses vidéos tutoriels.Il propose alors énormément de produits adaptés ou dérivés en guise de manettes.&lt;br /&gt;
Parmi les mods qu’il a réalisé, il a modifié une manette de PS4 afin de la rendre accessible à une personne ne pouvant jouer qu’à une main. Pour cela, il a déplacé les boutons en respectant l’ergonomie de la main valide et modifie les connexions. Il peut lui arriver de rajouter des boutons pour en remplacer un autre. Il réalise également le même système avec la Xbox. Sur la photo ci-dessous, il a adapté la manette pour un droitier.&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec cette ma&lt;br /&gt;
*Design obligatoirement droitier ou gaucher, une modification = une manette= une personne&lt;br /&gt;
*Besoin obligé du pouce et de l’index, même si avantage : 3 doigts nécessaire.&lt;br /&gt;
&lt;br /&gt;
;Lien :: https://www.youtube.com/watch?v=LieHIscadjk&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Scénario d'usage du produit ou du concept envisagé&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
La technologie est ,aujourd’hui, omniprésente dans notre vie. Les consoles de jeux ont envahies les maisons avec plus de 7 personnes sur 10 jouant aux jeux vidéos sur consoles en France (chiffre de l’Express). 0,18% des français sont handicapés cela représente 12 millions de français. Dans ce chiffre, 13,4% des personnes ont un handicap moteur. En 2017, les grands groupes comme Sony ou Microsoft avec respectivement PlayStation et Xbox ne permettent pas à tout le monde de jouer avec une manette. Les manettes sont prévues pour des personnes ayant leurs membres valides, plus précisément les mains et les bras.&lt;br /&gt;
&lt;br /&gt;
Après un accident de voiture, un jeune garçon a perdu la motricité d’un côté du corps. Passionné de jeux vidéo, il se retrouve avec des difficultés à jouer sur sa console PS4. Ingénieux, il utilise la manette en la coinçant entre son épaule et le creux du cou. Usant de la mâchoire et de sa main valide pour contrôler les joysticks et les boutons. L'exercice étant inconfortable et fatiguant il eu l’idée de proposer à des futurs ingénieurs de lui proposer une manette adaptée à son handicap. &lt;br /&gt;
&lt;br /&gt;
Les deux pré-ingénieurs ,avec leur tuteur, ont une idée révolutionnaire : La manette modulable ! Elle permettrait au jeune garçon, ainsi que d’autres joueurs, de pouvoir continuer de s’amuser ou même de commencer à jouer au jeux sur console. &lt;br /&gt;
Cette manette aidera fortement dans les centre de rééducation pour faire passer le temps et donner du plaisir à des personnes qui ne peuvent plus s’amuser avec leur console traditionnelle. Elle pourra aussi ouvrir de nouvelles possibilités pour certaines personnes qui n’auraient jamais essayé jusqu'à présent.   &lt;br /&gt;
Comme son nom l'indique, elle sera modulaire et s'adaptera à différents handicaps. Accompagnée de son application d’initialisation, elle sera accessible aussi bien aux enfants, patients, parents et aides soignantes.&lt;br /&gt;
&lt;br /&gt;
Quelques mois plus tard...Le jeune patient fan de Need For Speed, peut maintenant piloter sa voiture comme un vrai professionnel grâce à l'un des joysticks qu'il utilisera avec sa main valide et il pourra accélérer à des vitesses folles à l'aide de boutons poussoirs au niveau de son pied valide et gagner la partie. Son ami venu lui rendre visite, pourra en lieu et place des aides soignantes configurer à l'aide de la tablette (portable) la manette du patient. &lt;br /&gt;
Si le patient change de jeu pour Tekken et que la configuration des modules ne lui convient plus, il peut interchanger les éléments de la manette selon son envie et son confort. Ainsi il peut faire sauter son personnage, il utilisera un module bouton supplémentaire, qu'il actionnera avec le poing.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Fonctionnement&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Suite à une analyse fonctionnelle et à la formulation de notre projet, nous avons pu définir le fonctionnement de notre système. Notre produit, la manette, doit être accessible d’après nos objectifs à différents types de handicaps moteurs. Ainsi, l’idéal serait de concevoir une manette modulable afin qu’elle puisse s’adapter à toutes les situations. Ce n’est plus au patient de s’adapter à la manette mais à la manette de s’adapter au patient.&lt;br /&gt;
Cela signifie que la manette sera, dans la limite du possible et de la sensibilité du corps du patient, composée de plusieurs parties dites « modules » comportant un ou plusieurs actionneurs (boutons, joysticks, gâchettes...). Ces modules seront déplaçables afin d’être utilisé avec différents membres du corps : un doigt, une main,&lt;br /&gt;
une jambe ou même un pied. Il suffira de les connectés entre eux suivant l’organisation souhaitée, le Gameplay du jeu ou en fonction du handicap. Le tout sera relié à une application.&lt;br /&gt;
L’application sera alors mise en place pour connecter les différentes parties du point de vue software pour prérégler la manette en fonction du patient. Il pourra alors choisir les boutons en fonction du jeu, de ses mouvements mais aussi choisir la sensibilité.&lt;br /&gt;
&lt;br /&gt;
L’application et les modules devront être intuitifs et faciles d’utilisation. De cette manière des utilisateurs non avertis dans le domaine informatique ou jeunes pourront eux-mêmes gérer les connexions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Réponse à la question difficile&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
'''Question : Comment interconnecter les différents modules de la manette ?'''&lt;br /&gt;
&lt;br /&gt;
Il nous faut pour ce projet interconnecter les modules modélisant la manette qui seront connectés à la consoles PS4 via une Raspberry Pi 3.&lt;br /&gt;
Le choix de la Raspberry Pi 3 nous permet d'utiliser son module Bluetooth pour communiquer avec la PS4, ce choix est plus adaptée au projet que du filaire.&lt;br /&gt;
Concernant l'interconnexion des modules, nous travaillerons en deux étapes &amp;quot;preuves concept&amp;quot; : filaire et sans fils (Bluetooth).&lt;br /&gt;
&lt;br /&gt;
'''Objectif 1 : Preuve concept filaire'''&lt;br /&gt;
&lt;br /&gt;
Dans cette première partie de projet, nous souhaitons avoir une 1ère preuve de prototype rapidement. Nous nous concentrerons alors sur la communication entre la RPi3 et la PS4 ainsi que sur la conception des modules. Pour les modules, nous réaliserons des cartes électronique pour chaque module avec un micro-contrôleur. La communication filaire nous permettra d'interconnecter les modules à la RPi3 avec un bus SPI.&lt;br /&gt;
&lt;br /&gt;
'''Objectif 2: preuve concept sans fils'''&lt;br /&gt;
&lt;br /&gt;
Une deuxième étape du projet est la réalisation de la solution idéale sans fils. Celle-ci pourra commencer à être développée petit à petit en parallèle avec l'objectif 1. Le but ici, est d'interconnecter les modules en Bluetooth. Nous avons choisi le Bluetooth pour garder une connexion commune sur toute la chaîne. &lt;br /&gt;
Nous rajouterons alors un module bluetooth à chaque module de la manette. &lt;br /&gt;
&lt;br /&gt;
'''Objectif 3: possibilité d'adapter les boutons (capuchon en 3D)'''&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Préparation du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Cahier des charges&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
''Chef de projet:'' Alexandre Boé  &amp;lt;br&amp;gt;&lt;br /&gt;
''Responsables:'' Xavier Redon, Thomas Vantroys &amp;lt;br&amp;gt;&lt;br /&gt;
''Partenariat:'' Marc Sautelet (non etablie) &amp;lt;br&amp;gt;&lt;br /&gt;
''Elèves-ingénieurs:'' Camille Saâd, Transley Gracias &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Sujet :''' Manette modulable pour personne à déficience moteur compatible PlayStation 4 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objectifs principal (1er POC) : ===&lt;br /&gt;
Faire transmettre des informations issus des actionneurs (ex:boutons poussoires) via des arduinos jusqu’à la Raspberry Pi 3 en SPI.&amp;lt;br&amp;gt;&lt;br /&gt;
Envoyer les données reçues vers la PS4 en USB  &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objectifs secondaire (2e POC):===&lt;br /&gt;
Créer des modules avec un microcontrôleur et une puce bluetooth pour permettre une meilleurs flexibilité (c-àd pouvoirs avoir une meilleure ergonomie et une connexion sans fil) &amp;lt;br&amp;gt;&lt;br /&gt;
Connecter la Raspberry Pi 3 en Bluetooth à la PS4 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier: beteacorne.jpg||middle|600px|Bete a corne manette]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Choix techniques : matériel et logiciel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Liste de matériel :===&lt;br /&gt;
&lt;br /&gt;
'''Modules boutons/joysticks/gachettes'''&lt;br /&gt;
&lt;br /&gt;
3  Push buttons :&amp;lt;br&amp;gt;&lt;br /&gt;
- O X Y Carré R3 L3 &amp;lt;br&amp;gt;&lt;br /&gt;
- Guide PS &amp;lt;br&amp;gt;&lt;br /&gt;
- start/back &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 0,45€/unité TTC [https://www.gotronic.fr/art-bp-miniature-krs1273-16976.htm] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1  Thumbstick original: &amp;lt;br&amp;gt;&lt;br /&gt;
Joystick analogique 4 directions --&amp;gt; 4,25€/unité TTC [https://www.gotronic.fr/art-joystick-analogique-4-directions-19063.htm] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1 buttons trigger L1 L2 =&amp;gt; 1x Thumbstick original''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Cartes Atmega328p /connexion spi/'''&lt;br /&gt;
&lt;br /&gt;
3   Arduino UNO &amp;lt;br&amp;gt;&lt;br /&gt;
1   Arduino UNO atmega328p retirable &amp;lt;br&amp;gt;&lt;br /&gt;
4   capacite 22pF traversantes &amp;lt;br&amp;gt;&lt;br /&gt;
2   resistances 10 kOhm traversantes (à récupérer) &amp;lt;br&amp;gt;&lt;br /&gt;
2   oscillateurs quartz 16MHz traversante &amp;lt;br&amp;gt;&lt;br /&gt;
2   atmega328p-pu et support &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cartes module bluetooth nrf52810 '''&lt;br /&gt;
&lt;br /&gt;
6   capacités 100nF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
6   capacités 12pF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 4,7pF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 1µF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 100pF=0,1nF 0603 (à récupérer) &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 0,8pF 0603 (a acheter, commande en cours) &amp;lt;br&amp;gt;&lt;br /&gt;
2   inductance 3,9nH 0603 (a acheter, commande en cours) &amp;lt;br&amp;gt;&lt;br /&gt;
2   oscillateur quartz 32 MHz &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''' Connexions et autres '''&lt;br /&gt;
&lt;br /&gt;
1 Led RGB neopixel [https://www.adafruit.com/product/1734] &amp;lt;br&amp;gt;&lt;br /&gt;
1 Raspberry Pi 3 &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; ~36,23€/unité TTC [https://fr.rs-online.com/web/p/processor-microcontroller-development-kits/8968660/?src=raspberrypi] &amp;lt;br&amp;gt;&lt;br /&gt;
1 Raspberry Pi Zero W (commandée) [https://www.raspberrypi.org/products/raspberry-pi-zero-w/] &amp;lt;br&amp;gt;&lt;br /&gt;
6 Alimentations 5V ou 3,3V &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
par exemple, 12 piles de type CR2016 3V rechargeables ou 24 piles AAA 1,5 V rechargeables  &lt;br /&gt;
5 modules Bluetooth nrf de Nordic : nRF52810-QFAA-R &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 3,17€/unité + frais expédition  [https://www.mouser.fr/productdetail/nordic-semiconductor/nrf52810-qfaa-r?qs=sGAEpiMZZMve4%2FbfQkoj%252bG%2FosjLoe2oghFQwQllMrQ4%3D]&lt;br /&gt;
5 Lignes broches mâles &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logiciels:===&lt;br /&gt;
&lt;br /&gt;
- IDE arduino&lt;br /&gt;
- Altium&lt;br /&gt;
- FreeCAD ou Inkscape&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Liste des tâches à effectuer&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 1 : Gestion du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Définition des cahiers des charges fonctionnel et technique, choix d'orientation...&lt;br /&gt;
* Recherche techniques sur les différentes connexions possibles entre les modules, la RPi 3 et la console PS4&lt;br /&gt;
#Recherche connexion SPI entre les modules et la RPi3&lt;br /&gt;
# Recherche connexion bluetooth entre la RPi3 et la PS4&lt;br /&gt;
# Recherche connexion bluetooth pour les modules&lt;br /&gt;
# Recherche carte avec montage Atmega328P-PU et anticipation module bluetooth&lt;br /&gt;
* Détermination du matériel nécessaire&lt;br /&gt;
* Réflexion sur l'application&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 2: Réalisation du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Partie 1: Preuve concept manette en filaire'''&lt;br /&gt;
&lt;br /&gt;
* Conception de cartes électroniques pour 2 modules (/!\ prévoir modules bluetooth)&lt;br /&gt;
* Réalisation connexion SPI avec 2 modules : programmation des Atmega328p en liaison série. &lt;br /&gt;
* Si tests concluant, ajouter des modules jusqu'à en avoir 5 (1 pour chaque type de boutons) &lt;br /&gt;
* Connexion bluetooth entre la PS4 et la RPi3&lt;br /&gt;
* Réalisation du support des modules avec fixations possibles (imprimante 3D)&lt;br /&gt;
&lt;br /&gt;
'''Partie 2: Preuve concept manette en bluetooth'''&lt;br /&gt;
&lt;br /&gt;
* Ajout des modules bluetooth aux cartes électroniques&lt;br /&gt;
* Connexion bluetooth entre les modules&lt;br /&gt;
&lt;br /&gt;
'''Partie 3: Application Android : paramétrage de la manette'''&lt;br /&gt;
&lt;br /&gt;
* Créer une application sur tablette ou smartphone (Android) afin de configurer la manette aux besoins (inter-connexion des modules et console)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Calendrier prévisionnel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Date'''&amp;lt;/u&amp;gt;&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Tache à réaliser''' &amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
17/01/18-24/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Faire des recherches sur les différentes interconnexions du système : Bluetooth, RPi-Atmega328 (SPI), RPi-PS4&lt;br /&gt;
Continuer liste des taches, matériel, Début recherches + réflexion fixation support des modules&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Recherche technique connexion PS4-RPi3 et connexion SPI RPi3-Module + code&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18-07/03/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Réalisation 1er prototype (+ début prototype 2)&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
07/03/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Seance 7 :  Test prototype filaire&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
07/03/18-09/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Réalisation 2eme prototype + application Android&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
09/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Seance 14 :  Test prototype Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
14/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Video projet&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
15/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Finalisation projet et Rapport&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
16/05/18-17/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Soutenances Projet&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Réalisation du Projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Feuille d'heures &amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Voici le tableau d'heures du binôme:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Heures S11 !! Heures S12 !! Heures S13et+ !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 10&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 20min&lt;br /&gt;
|&lt;br /&gt;
| 15h20&lt;br /&gt;
|-&lt;br /&gt;
| Cherches techniques &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 18&lt;br /&gt;
|-&lt;br /&gt;
| Rédaction du wiki et rapport de projet&lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 30min&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| 30min&lt;br /&gt;
| 30min&lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
| 10h30&lt;br /&gt;
|-&lt;br /&gt;
| Programmation&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 3&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 7&lt;br /&gt;
| 8&lt;br /&gt;
| 6&lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
| 43&lt;br /&gt;
|-&lt;br /&gt;
| Cartes électroniques&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 6&lt;br /&gt;
| 8&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| 31&lt;br /&gt;
|-&lt;br /&gt;
| Application&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| Total Semaine&lt;br /&gt;
| 10&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 7&lt;br /&gt;
| 10h30&lt;br /&gt;
| 13&lt;br /&gt;
| 9&lt;br /&gt;
| 12&lt;br /&gt;
| 9h30&lt;br /&gt;
| 10h30&lt;br /&gt;
| 9&lt;br /&gt;
| 9h20&lt;br /&gt;
| &lt;br /&gt;
| '''117h50'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Prologue&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Avant la réalisation et conception d'un projet, il est important d'analyser celui-ci. Nous avons allons consacré le prologue à l'analyse fonctionnelle de la manette. Nous avons également eu une réflexion sur l'analyse technique, cela nous a permis de réaliser une liste de matériel. Il est important de définir les objectifs ainsi que les besoins afin de ne rien oublier. (Voir ci-dessus Analyse projet) &lt;br /&gt;
Nous avons également organisé notre travail, pour le partage de documents de recherches et la rédaction de compte-rendu final nous avons réalisé un google drive. Par la suite, nous créerons un projet Git. &lt;br /&gt;
&lt;br /&gt;
Durant ce temps, nous avons décidé de réaliser 5 modules. Les modules sont les différents boutons de la manettes qui nous pourrons placer selon nos choix (boutons modulaires) pour notre prototype projet pour chaque type des boutons d'une manette PS4. Ces modules devrons être connectés à la console et interconnectés. Le tout sera lié à une application Android. Suite à quelques recherches et nos analyses, nous avons décidé les points suivants :&lt;br /&gt;
&lt;br /&gt;
- On commencera avec 2 modules et on les multipliera par la suite. &lt;br /&gt;
- Les premiers tests sont réalisés avec des boutons petits pour assurer leur caractéristique &amp;quot;modulaires&amp;quot;, par la suite nous pourrons ajouter des capuchons de taille plus importante (imprimante 3D ou achat)&lt;br /&gt;
- Conception modules : réalisation de carte avec un microcontrôleur atmega328 programmable pour chaque module (anticiper le module Bluetooth) &lt;br /&gt;
- Projet en 2 parties : prototype filaire et prototype Bluetooth&lt;br /&gt;
# Prototype filaire : connexions entre les modules et la RPi3 en SPI, connexion Rpi3-PS4 en Bluetooth, avec l'application en filaire à la RPi3&lt;br /&gt;
# Prototype Bluetooth: connexion Bluetooth entre modules-RPi3-PS4-apllication&lt;br /&gt;
&lt;br /&gt;
[[Fichier: structuremanette.png||center|400px|Concept manette modulable]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 1&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous nous sommes concentrés les recherches afin de définir clairement le cahier des charges technique. Il s'agit des réalisations à mettre en œuvre pour les inter-connexions des éléments de la manette.&lt;br /&gt;
Ainsi, nous avons fait des recherches sur :&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI entre les modules (Atmega328p) et la RPi3===&lt;br /&gt;
&lt;br /&gt;
SPI: Serial périphérique interface BUS&lt;br /&gt;
&lt;br /&gt;
[[Fichier: yWGmW.png||right|200px|Concept manette modulable]]&lt;br /&gt;
Comme indiqué sur l'image ci-dessus, la Raspberry pi 3  peut communiquer en SPI avec ses broches CS0 (24), CS1 (26), SCLK (23), MISO (21), MOSI (19). Celles-ci permettent de communiquer avec un ou plusieurs esclaves (dans notre cas, des Atmega328p) en reliant directement les broches concernées de la RPi3 à celles des composants esclaves.&lt;br /&gt;
Chaque broche CS0 (24) ou CS1 (26) ne peut être connectée qu'à l'entrée SS (aussi appelé CS) d'un seul esclave.&lt;br /&gt;
C'est a dire que chaque CS est lié à un esclave afin de choisir avec lequel la communication est établie à un moment donné, et les MISO sont reliées entre elles en cascade, de même pour les SCLK et les MOSI. On peut noter que le maître impose la fréquence d’horloge et sélectionne l’esclave auquel les données sont envoyées.  8 MHz est le plus rapide supportable a 3,3V&lt;br /&gt;
&lt;br /&gt;
[[Fichier: fonctionnementSPI.png||right|200px|Connexion SPI multi-esclaves]]&lt;br /&gt;
&lt;br /&gt;
Voici un schéma du fonctionnement souhaité : &lt;br /&gt;
&lt;br /&gt;
Comme nous souhaitons avoir 5 modules environ il nous faudra rajouter un composant en plus afin d'augmenter les possibilités de sélection, par exemple des démultiplexeurs.&lt;br /&gt;
Dans un premier temps nous essaierons avec 2 esclaves, puis on augmentera le nombre. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Connexion Bluetooth PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Les recherches portent également sur la connexion entre la manette PS4 et la console. Elles concernent le protocole de communication via Bluetooth&lt;br /&gt;
&lt;br /&gt;
Caracteristique pour la PS4:  Bluetooth®v4.0, Qualcomm Atheros AR3002 Buetooth LE: 2,4-2,5 GHz  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caracteristique de la connexion : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Vitesse de transmission &amp;gt;&amp;gt; 3 Mbit/s   8N1 &lt;br /&gt;
*Relevé tous les 1.3 millisecond (peut-être) &lt;br /&gt;
*Chaque manette à une adresse unique BD_ADDR qui correspond à l’adresse MAC de la carte Réseau&lt;br /&gt;
*Protocole de détection est le SDP basé sur une emission reception PDU&lt;br /&gt;
*L’Attribut ID est representer en TLV Type Length Value &lt;br /&gt;
*Communication HCI ACL Data Packet &lt;br /&gt;
&lt;br /&gt;
===Rélisation des cartes électroniques===&lt;br /&gt;
&lt;br /&gt;
matériel nécessaire pour un PCB : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*breadboard&lt;br /&gt;
*câbles&lt;br /&gt;
*1 x 10k Ohm résistance&lt;br /&gt;
*Quartz 16Mhz clock crystal&lt;br /&gt;
*2 x 22 pF capaciteurs&lt;br /&gt;
*Atmega328P-PU&lt;br /&gt;
&lt;br /&gt;
Ressources: &lt;br /&gt;
[[https://www.arduino.cc/en/Main/Standalone]]&lt;br /&gt;
[[http://www.eprojectszone.com/atmega-328-pu-standalone/]]&lt;br /&gt;
[[https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 2&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la semaine deux et durant la séance, nous avons continué et approfondie nos recherches sur le projet. Nous avons pu ainsi affiner nos taches de réalisation et donc notre cahier des charges.&lt;br /&gt;
&lt;br /&gt;
===Connexion aux modules: SPI et Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Green&amp;quot;&amp;gt; CORRIGER&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
voir https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018#Configuration_du_syst.C3.A8me_embarqu.C3.A9&lt;br /&gt;
&lt;br /&gt;
(sudo apt-get install pi-bluetooth)&lt;br /&gt;
&lt;br /&gt;
''connexion sur la raspberry par ssh:''&lt;br /&gt;
 su&lt;br /&gt;
 update-rc.d ssh enable&lt;br /&gt;
 invoke-rc.d ssh start &lt;br /&gt;
 ssh pi@172.26.79.1XX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''bluetooth''&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
 agent on&lt;br /&gt;
 default-agent&lt;br /&gt;
 scan on&lt;br /&gt;
 pair [device Bluetooth address]  (exemple: pair XX:XX:XX:XX:XX:XX )&lt;br /&gt;
&lt;br /&gt;
''NOUVELLE REFLEXION : Connexion SPI entre les modules (Atmega328p) et la RPi3 --&amp;gt; MODULES BLUETOOTH''&lt;br /&gt;
&lt;br /&gt;
Si multi-esclaves= plusieurs modules : &lt;br /&gt;
Il faut ajouter des sélections pour les SPI → démultiplexeurs OU ne pas utiliser les CS0 et CS1, et plutôt des pins entrée/sortie de la RPi3 lié au SS comme ça on choisit direct le module esclave voulu.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' Nous avons étudié à nouveau la datasheet de notre module bluetooth nrf de Nordik. Le module bluetooth comporte  déjà un microprocesseur !&lt;br /&gt;
Un module plutôt peut donc jouer le rôle de notre atmega328p. Il n'y a alors pas besoin de réaliser des cartes électroniques de type arduino standalone. Nos PCB regrouperont alors uniquement l'alimentation, un actionneur (bouton, joystick), le module bluetooth et les broches de connexion si besoin... &lt;br /&gt;
&lt;br /&gt;
Cette séance nous a alors permise de revoir entièrement le matériel nécessaire. Notre liste de matériel nous semble alors plus réfléchie et limitée au nécessaire. &lt;br /&gt;
&lt;br /&gt;
===Connexion Bluetooth PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Suite à nos recherches de la semaine précédente, nous avons sélectionné deux sites bien renseignés : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;SITES&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ils nous ont permis de comprendre la communication entre la manette et la console. En effet, ils nous expliquent les échanges de trames Bluetooth. &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;EXPLICATIONS 1 exemple &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 3 : Début premier prototype&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI RPi3-Arduino===&lt;br /&gt;
&lt;br /&gt;
Comme vu durant les semaines précédentes, nous souhaitons réaliser une connexion Multi-esclaves en SPI entre la Raspberry pi et plusieurs modules.&lt;br /&gt;
Cette semaine nous avons vu que la réalisation de notre premier prototype doit aller vite. Il ne nous est pas nécessaire d’attendre les modules bluetooth si il nous faut dans cette partie uniquement utiliser son microprocesseur. Ainsi pour chaque module nous utilisons une arduino UNO. Nous réaliserons les programmes en C afin de pouvoir les réutiliser avec les modules bluetooth par la suite. &lt;br /&gt;
Une fois la connexion réalisable nous adapterons les programmes aux modules bluetooth Nordik. En effet, ceux-ci comporte déjà un microprocesseur, le module peut jouer le rôle de notre atmega328p. Il n'y a aurait alors pas besoin de réaliser des cartes électroniques arduino standalone sur PCB, mais directement des cartes électronique avec le module et le module voulu (bouton, joystick...) et l'alimentation. &lt;br /&gt;
Durant la séance nous avons alors revu la liste de matériel nécessaire. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: prototype1.jpeg||center|600px|connexion filaire prototype 1 filaire arduino]]&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous avons recherches des exemples de codes et de librairies pour Arduino SPI et RaspberryPI SPI. &lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé le programme de la connexion SPI pour l'arduino et récupéré les bibliothéques SPI.h avec SPI.c. Nous nous sommes alors concentrer à les comprendre, pour pouvoir l'utiliser. &lt;br /&gt;
&lt;br /&gt;
===Réalisation du projet Git===&lt;br /&gt;
&lt;br /&gt;
Création du projet IMA4_Projet35_ManetteModulable sur Git et partage de celui-ci. &lt;br /&gt;
Les premiers dossier crées cette la séance :&lt;br /&gt;
-Arduino (connexion SPI arduino) : ProtoSpi.c + dossier librairie SPI + Makefile&lt;br /&gt;
-RPI (dossier codes pour Rpi) &lt;br /&gt;
-Readme.md&lt;br /&gt;
Ces dossiers seront amenés à être modifiés au cours des séances. &lt;br /&gt;
&lt;br /&gt;
===Protocole Bluetooth PS4===&lt;br /&gt;
&lt;br /&gt;
Suite à l'étude des trames Bluetooth, on a pu voir que ces dernières étaient incomplètes. Le modèle de communication étant propriétaire, on n'y a pas accès directement. Cela nous empêche donc de mettre en oeuvre cette communication. &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt; Déveloper&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On a décidé de commencer par une connexion USB (pour laquelle on dispose de toutes les informations) celle-ci étant plus complète.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 4&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Pour le prototype 1 FILAIRE nous réaliserons les étapes suivantes :&lt;br /&gt;
&lt;br /&gt;
#Réalisation du programme SPI pour arduino&lt;br /&gt;
#Réalisation du programme SPI pour la RPi&lt;br /&gt;
#Connexion USB avec la PS4 ou ordinateur&lt;br /&gt;
#Réalisation de cartes électroniques atmega328p-pu standalone (remplacer les Arduinos) &lt;br /&gt;
#Remplacer les &amp;quot;PCB arduino&amp;quot; par le module bluetooth et adapter la connexion&lt;br /&gt;
#Conception 3D de la délimitation 1 axe pour le joystick &amp;quot;gâchette&amp;quot;&lt;br /&gt;
#Réalisation de l'application Androïde.&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées nous auront alors une preuve de concept filaire et nous pourrons alors passer à une connexion bluetooth. &lt;br /&gt;
Le passage à la connexion bluetooth sera le deuxième prototype et le cas idéal de la réalisation de la manette modulable. &lt;br /&gt;
&lt;br /&gt;
===Mise à jour Matériel===&lt;br /&gt;
&lt;br /&gt;
- Modéliser les boutons gâchettes L1/2 R1/2 de la manette PS4 (boutons sensibles à la pression) --&amp;gt; un joystick dont nous bloquerons un axe (imprimante 3D)&lt;br /&gt;
- Remplacer la RPi 3 par une Rpi zero W qui nous permettrait de réaliser plus facilement une connexion USB tout en gardant l'avantage du bluetooth. &lt;br /&gt;
- Choix de l’alimentation pour les 5 modules Bluetooth: nécessitent 3V --&amp;gt;  utiliser des piles rechargeables 1,2V AAA plutôt que piles rondes 3V.&lt;br /&gt;
&lt;br /&gt;
Nous avons également besoin du matériel cité en semaine 1 pour réaliser des cartes électroniques atmega328p-pu standalone. ( nous revenons alors sur les décisions de la semaine 3)&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI RPi3-Arduino===&lt;br /&gt;
 &lt;br /&gt;
Montage Raspberrypi et 1 arduino en PSI + 1 bouton + 1 led.&lt;br /&gt;
Voici le choix des branchements :&lt;br /&gt;
&lt;br /&gt;
 MASTER = RPi   &lt;br /&gt;
 SLAVE= Arduino&lt;br /&gt;
&lt;br /&gt;
'''SPI sur Arduino:'''&lt;br /&gt;
 MOSI -&amp;gt; GPIO11 //PB3  //master OUT to the slave IN&lt;br /&gt;
 MISO -&amp;gt; GPIO12 //PB4 //slave OUT to the master IN&lt;br /&gt;
 SCLK -&amp;gt; GPIO13 //PB5 //serial clock&lt;br /&gt;
 SS -&amp;gt; GPIO10   //PB2  //slave select&lt;br /&gt;
'''Led, bouton et autre...'''&lt;br /&gt;
 LED --&amp;gt; GPIO6  //PD6&lt;br /&gt;
 GND&lt;br /&gt;
 +5V (if required)&lt;br /&gt;
'''SPI sur la Raspberry Pi'''&lt;br /&gt;
 SPIO MOSI -&amp;gt; PIN19 &lt;br /&gt;
 SPIO MISO -&amp;gt; PIN21&lt;br /&gt;
 SCLK -&amp;gt; PIN23&lt;br /&gt;
 SPIO CS0 -&amp;gt; PIN24&lt;br /&gt;
&lt;br /&gt;
Continuation du code pour faire clignoter Led branchée à une arduino depuis la Rpi, en connexion SPI.&lt;br /&gt;
&lt;br /&gt;
===Connexion USB PS4-RPi3===&lt;br /&gt;
Durant cette, nous avons regardé comment faire cohabiter bluetooth, Application Androïd, USB, PS4, SPI et les module. &lt;br /&gt;
&lt;br /&gt;
Il est alors important de savoir comment utiliser le port série sur la RPi3, soit utiliser les UART. &lt;br /&gt;
&lt;br /&gt;
Nous avons réaliser qu'il n'était pas aussi simple d'utiliser le port serie USB de la Raspberry Pi 3, en effet le SoC est un BCM2837 . &lt;br /&gt;
De plus nous ne pouvons pas utiliser le même port pour l'alimentation et la connexion. &lt;br /&gt;
&lt;br /&gt;
Il nous faut alors trouver une alternative ou une solution à ce problème.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 5&amp;lt;/span&amp;gt;==&lt;br /&gt;
 &lt;br /&gt;
===Programmation: Réflexion définitives prototypes filaire ===&lt;br /&gt;
&lt;br /&gt;
La semaine dernière, nous avons rencontré une difficulté liée aux ports séries UART. &lt;br /&gt;
Une des solutions à cette difficulté serait d'utiliser une RPi ZERO W à défaut d'une RPi 3. On pourrait alors avoir un port d'alimentation avec connexion USB mais également retrouver la connexion Bluetooth dont nous avons besoin.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous avons continué la réalisation du prototype filaire par l'avancé du code SPI ainsi que les recherches concernant le protocole PS4. &lt;br /&gt;
&lt;br /&gt;
La Raspberry Pi zero W peut également être utile pour la connexion entre la PS4 et les différents modules en jouant le rôle d'intermédiaire. Nous avons alors commandé une Rpi zero W pour notre projet. &lt;br /&gt;
En attendant la réception de la commande, nous nous sommes penché sur les recherches pour les programmes et la configuration nécessaire à l'utilisation de la RPi zero W.&lt;br /&gt;
&lt;br /&gt;
===Electronique===&lt;br /&gt;
&lt;br /&gt;
[[Fichier: bouton_c1.jpg|100px|thumb|left|PCB bouton]]&lt;br /&gt;
[[Fichier: arduinobb.jpg|200px|thumb|right|atmega328p-pu branchement test]]&lt;br /&gt;
&lt;br /&gt;
Du coté électronique, nous avons réalisé sur fritzing certaines cartes électroniques. Les Arduino Uno servant actuellement de test, seront remplacées par des PCB atmega328p-pu standalone avec des broches permettant les branchements nécessaires SPI ou encore aux modules &amp;quot;boutons/joystick&amp;quot;. Pour les boutons, nous avons également réalisé un pcb afin de faciliter les branchements.  &lt;br /&gt;
&lt;br /&gt;
Il nous faut alors également une 3eme carte qui nous sera nécessaire pour la réalisation du prototype sans fil. Dans notre liste de matériel, nous avons des composants nrf52810 bluetooth, ceci doivent être soudé avec les capacités de protection mais également des broches de communication. Nous avons alors commencé cette carte électronique sur Altium avec le fichier  projet PCB du distributeur à modifier.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: Arduino_c1.jpg|100px|thumb|center|PCB atmega328p-pu]]&lt;br /&gt;
&lt;br /&gt;
=== Construction 3D ===&lt;br /&gt;
&lt;br /&gt;
Enfin, nous avons commencé à réaliser des boîtiers 3D pour certains modules. Par exemple, comme nous l'avions vu précédemment, un des joysticks servira de bouton-gâchette en utilisant un seul de ses axes. Il nous faut alors réaliser un boitier qui bloque l'un des axes, mais également une tige qui nous permettra de pousser le joystick de manière simplifiée.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 6&amp;lt;/span&amp;gt;==&lt;br /&gt;
 &lt;br /&gt;
===Programmation: configuration RPi Zero W ===&lt;br /&gt;
&lt;br /&gt;
Ayant reçu la Raspberry Pi zero W en début de semaine, nous nous sommes concentrés sur la programmation et la configuration de celle-ci.&lt;br /&gt;
Cette partie étant compliquée, elle nous a pris du temps. En effet, il était difficile de connecter la RPi en SSH car il n'est pas possible d'y connecter un clavier directement et on avait besoin de la prise OTG pour &amp;quot;interfacer&amp;quot; la manette.&lt;br /&gt;
&lt;br /&gt;
===Electronique: PCB nrf52810===&lt;br /&gt;
&lt;br /&gt;
Les cartes réalisées en semaine 5 sont validées et en attente de réalisation. &lt;br /&gt;
&lt;br /&gt;
Cette semaine a permis la réalisation et la finalisation de la carte électronique nrf52810. Il nous a fallu recommencé cette carte deux fois. En effet, une fois finie sur Altium nous avons réalisé que les empreintes des CMS sur PCB fourni par le constructeur ne correspondent pas au matériel CMS de l'école. Face à cette inattention de notre part, nous avons décidé de refaire entièrement la carte électronique sur fritzing. Ayant la datasheet et des plans d'inspiration PCB, nous avons pu refaire la carte entièrement. &lt;br /&gt;
Sur celle-ci nous avons ajouté des broches de connexion au besoin, un branchement Jtag et ICSP pour la programmation et la connexion SPI. &lt;br /&gt;
La carte est en attente de validation, puis validation.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: nrf52810_circuit2.jpg||center|400px|PCB carte nrf52810]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Révision matériel ===&lt;br /&gt;
&lt;br /&gt;
Pour la réalisation de nos composants électroniques, il nous a fallu faire une révision des composants disponibles à l'école:&lt;br /&gt;
(les quantités indiquées ci-dessous pourront être augmentée si nécessaire,pour avoir dans l'idéal un module de chaque type de la manette, ici on se concentre sur BOUTON et JOYSTICK)&lt;br /&gt;
&lt;br /&gt;
'''Cartes Arduino:'''&lt;br /&gt;
* 4 capacite 22pF traversantes&lt;br /&gt;
* 2 resistances 10 kOhm traversantes (à récupérer)&lt;br /&gt;
* 2 oscillateurs quartz 16MHz traversante&lt;br /&gt;
* 2 atmega328p-pu et support&lt;br /&gt;
&lt;br /&gt;
'''Cartes nrf52810'''&lt;br /&gt;
* 6 capacités 100nF 0603&lt;br /&gt;
* 6 capacités 12pF 0603&lt;br /&gt;
* 2 capacités 4,7pF 0603&lt;br /&gt;
* 2 capacités 1µF 0603&lt;br /&gt;
* 2 capacités 100pF=0,1nF 0603 (à récupérer)&lt;br /&gt;
* 2 capacités 0,8pF 0603 (commande en cours)&lt;br /&gt;
* 2 inductance 3,9nH 0603 (commande en cours)&lt;br /&gt;
* 2 oscillateur quartz 32 MHz &lt;br /&gt;
&lt;br /&gt;
'''Cartes modules Boutons'''&lt;br /&gt;
* un sachet de broches mâles (qu'on utilisera également pour les autres cartes, à récupérer/acheté) &lt;br /&gt;
&lt;br /&gt;
Nous avons alors mis-à-jour la liste de composant située plus haut, ainsi que celle de la page IMA4 2017/2018 [https://projets-ima.plil.fr/mediawiki/index.php/Projets_IMA4_SC_%26_SA_2017/2018]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 7&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Programmation: connexion wifi RPi Zero W et Bootloader sur Atmega328p-pu ===&lt;br /&gt;
&lt;br /&gt;
Pendant cette semaine, nous avons continué la programmation et la configuration des Raspberry Pi 3 et Zero W. Concernant la configuration ssh, nous avons utilisé un téléphone en guise de point d’accès à la RPi Zero W en wifi.&lt;br /&gt;
Nous avons aussi directement configurer l'OS Jessie, utilisé pour la RPi Zero. On a modifié le fichier cmd.txt et ...pour pouvoir programmer un USB gadget sur le port OTG.&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;Ci-dessus expliquer fichiers&amp;lt;/span&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Nous avons également continuer les programmes de récupération de données : état des boutons et du joystick. Ces programmes sont appliqué sur l'atmega328p-pu standalone sur la plaque d'essai en attendant que le PCB soit opérationnel.&lt;br /&gt;
Pour pouvoir programmer l'atemega328p-pu comme une arduino UNO, il nous faut suivre plusieurs étapes :&lt;br /&gt;
&lt;br /&gt;
'''1.Flasher le Bootloader'''&lt;br /&gt;
Nous avons 2 Atmega328p-pu neufs, ainsi il nous faut flasher le bootloader sur chacun d'eux afin de pouvoir les utiliser et les programmer sur une breadboard dans un montage minimaliste arduino-standalone. &lt;br /&gt;
Pour cela, on peut utiliser une carte arduino UNO. On vérifie le port et le type de carte sélectionnés dans le menu &amp;gt;Outils. Sur cette carte on téléverse le fichier arduinoISP.ino qui se trouve dans les exemples en étant en progrmamateur AVr ISP mkll (&amp;gt;outils&amp;gt;programmateur) &lt;br /&gt;
Puis on met l'atmega328p-pu qui nous intéresse sur le suppor socket de la carte. On change de nouveau le programmateur pour Arduino as ISP et on fait &amp;gt;tools&amp;gt;burn bootloader, soit &amp;gt;graver la sequence d'initialisation.&lt;br /&gt;
Ces étapes faites, on peut retirer notre microcontroleur et le replacer correctement dans le montage. &lt;br /&gt;
&lt;br /&gt;
'''2.Programmation atmega328 sur breadboard'''&lt;br /&gt;
Une fois l'atmega328p-pu préparé, on peut le programmer. On peut le faire simplement à l'aide de la carte arduino UNO utilisée précédemment.On branche les Tx et Rx en commun ainsi que le reset, le GND et le VCC.&lt;br /&gt;
&lt;br /&gt;
Nous avons réaliser des codes basiques tels que le clignotement d'une led rouge ou encore l'affichage de &amp;quot;hello world&amp;quot; sur le moniteur série pour vérifier la bonne fonctionnalité du montage. Cela fait nous avons pu écrire sous Arduino IDE le code de lecture des états.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: montage_BB_test.jpg||left|200px|programmation modules arduino sur breadboard]]&lt;br /&gt;
&lt;br /&gt;
===Electronique : soudure carte de test modules ===&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons déja vu lors de la réalisation des PCB, si l'on souhaite programmer un atmega328p-pu en bootloader, le montage est simple. Il peut être minimaliste en utilisant une arduino UNO, un atmega328, une breadboard et 3 composants: 1 quartz 16MHZ crystal, 1 résistance 10kOhm et 2 capacitors céramiques de 22pF.&lt;br /&gt;
Durant la semaine 7, nous avons soudé les composants traversants de la carte électronique correspondant à ce montage ainsi que le PCB du bouton.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 8&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Programmation ===&lt;br /&gt;
Après moult recherche sur les différents site web bien fournis pour le coups on as pu trouvé une amorce à la programmation de l'OTG via un script qui agit au niveau du kernel dans le sous dossier usg_gadget. Ce script donne les informations nécessaires pour pouvoirs échangé les données.&lt;br /&gt;
Avec le script trouvé et les informations des sites web décryptant les trames de la manette, on a toujours pas réussit à faire passer notre RPi Zero W pour une manette de PS4. Néanmoins il nous manque la trame HID complète de la manette pour avoir un test effectif.&lt;br /&gt;
&lt;br /&gt;
===Electronique : Correction soudure et soudure CMS===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avions souhaité programmer la carte électronique atmega328p-pu. Cependant, nous avons réaliser que nous avions fait une erreur lors de l'envoie du PCB à la production. En effet, celui-ci avait été fait en Top sur le logiciel Fritzing et non en Bottom. Hors nous avions soudé les composants (durant la semaine 7) comme pour un circuit imprimé en bottom, l'atmega328p-pu se retrouve alors inversé par rapport aux pistes. &lt;br /&gt;
Comme solution, nous avons choisi de souder un deuxième support pour l'atmega328 de l'autre coté de la carte avant de la refaire au propre. En effet, avant de la refaire il nous faut vérifier si la carte est bien programmable. &lt;br /&gt;
Une fois cela fait nous avions pu programmer la carte mais, nous avions également réalisé la pin 2 de l'atmega328 était prise par le bouton poussoir. Or, nous avons besoin des pin 2 et 3 pour le RX et TX permettant la programmation de l'atmega à partir d'une arduino, les pistes branchement RX-TX n'ont également pas été prévus pour le téléversement des programmes sur la carte. Il nous faut alors couper une piste et souder des câbles pour utiliser toutes les pistes souhaitées. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: correction_proto_PCB.jpg||right|300px|PCB arduino correction]]&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons également souhaité souder les CMS et le composant bluetooth nrf52810 sur la carte imprimé et reçu lors de la semaine 7. Pour cela, nous avons convenu de travailler dans la C202 durant la séance du mercredi. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: PCB_nrf52810.jpg||left|400px|carte electroniques imprimées]]&lt;br /&gt;
&lt;br /&gt;
====Comment souder des CMS ?====&lt;br /&gt;
&lt;br /&gt;
les CMS sont des composants montés en surface c'est à dire qu'ils sont montés du même côté que les pistes cuivrées (à l'opposé des composants traversants) et sont de petite tailles souvent de l'ordre du millimètre. La taille est déterminée par 4 chiffres : les 2 premiers pour la longueur et les 2 derniers pour la largeur. On a du 1206,0805,0603 ou encore 0402. Il est même possible de trouver plus petit. A l'école nous utilisons souvent du 0603, c'est le cas de nos composants.&lt;br /&gt;
Pour souder des CMS 0603, il nous faut utiliser une autre méthode qui n'est pas le fer à souder :&lt;br /&gt;
# Préparer la veille la pâte à braser la veille (dans une seringue)&lt;br /&gt;
# Gommer la carte pour éviter l'oxydation (attention à ne pas retirer les miettes de gomme en soufflant dessus) &lt;br /&gt;
# Appliquer avec la seringue la pâte sur les empreintes et piste souhaitées. Pour les endroits difficile à atteindre ou avec 2 pistes proches les unes des autres, il est possible de mettre la même goutte de pâte sur les 2 pistes. Cela de causera pas de court-circuit par la suite. En effet, la pâte est composée d’alliage qui sous la chaleur va se fluidifier et se coller uniquement aux pistes métallique. Le reste fondera sous la chaleur du four.&lt;br /&gt;
# Appliquer les CMS sur la pâte au fur et à mesure (attention ! ne jamais toucher les CMS avec les doigts, tjrs utiliser une pince)&lt;br /&gt;
# Mettre au four&lt;br /&gt;
&lt;br /&gt;
====Bilan soudure nrf52810====&lt;br /&gt;
&lt;br /&gt;
Cependant, une fois le matériel nécessaire préparé, et la pâte mise sur les pistes souhaitées, au moment de déposer le composant, nous avons réalisé que celui-ci était beaucoup plus petit que l'empreinte sur le PCB. Il s'agit d'un composant boitier QFN48. Fritzing ne proposant au plus proche des boitiers QFN24 ou LQFP48, celui-ci a basculé automatiquement pour un boitier LQFN48, de dimension plus grande. Face à ce manque de vigilance, nous avions cependant commencer par le nrf52810 (composant concerné) évitant ainsi de gaspiller d'autres CMS. &lt;br /&gt;
Nous avons souhaité refaire la carte sous Altium à partir des fichiers fournis par le concepteur (chose que nous avons commencé à faire aux alentours de la semaine 5) &lt;br /&gt;
Après la réalisation du schématic, et de la modification des empreintes de capacités, inductances et autres composants de 0402 à 0603. Notre matériel ne permettant que des empreintes 0603.&lt;br /&gt;
 &lt;br /&gt;
Lors du routage, une erreur de chevauchement des pistes est notifiée par Altium au niveau du nrf52810. Celles-ci ne présentent pas d'angles et sont déjà de taille 8mil, il nous faut alors passer les pistes en 6mil. Mais 8mil est la taille minimale pour la production à Polytech, nous avons regardé pour envoyer les cartes à faire ailleurs mais le 6mil n'est pas beaucoup conseillé. De plus, il n'est peut-être pas judicieux de continuer avec le composant microcontrôleur-bluetooth Nrf52810 qui prend du temps, donc la carte est difficilement réalisable et peut-être très long à programmer. &lt;br /&gt;
&lt;br /&gt;
Ainsi en cette fin de semaine, nous avons décider face à l'avancer du projet de laisser les nrf52810 de coté et de les remplacer par des modules sans fils plus simples d'utilisation et complets. Ainsi nous aurions plus de chance d'avoir une connexion sans fils entre les modules. Nous pourrions par exemples utiliser des Xbee, des modules Rf...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 9&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation: PS4 et 1er Test SPI sur atmega328p====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
Les premiers tests sur Windows ne nous donner pas satisfaction. En effet, l'ordinateur détectait bien le nouvel appareil avec son nom mais l'origine rester inconnue. &lt;br /&gt;
&lt;br /&gt;
Lors des tests sur Linux on a pu voir des erreurs via la commande 'dmesg' :&lt;br /&gt;
&lt;br /&gt;
 [193229.758782] usb 4-1.2: new high-speed USB device number 6 using ehci-pci&lt;br /&gt;
 [193230.270780] usb 4-1.2: new high-speed USB device number 7 using ehci-pci&lt;br /&gt;
 [193235.510842] usb 4-1.2: device descriptor read/64, error -110&lt;br /&gt;
 [193251.127043] usb 4-1.2: device descriptor read/64, error -110&lt;br /&gt;
 [193251.315043] usb 4-1.2: new high-speed USB device number 8 using ehci-pci&lt;br /&gt;
 [193256.503135] usb 4-1.2: device descriptor read/64, error -110&lt;br /&gt;
 [193272.119331] usb 4-1.2: device descriptor read/64, error -110&lt;br /&gt;
 [193272.307331] usb 4-1.2: new high-speed USB device number 9 using ehci-pci&lt;br /&gt;
 [193282.999473] usb 4-1.2: device not accepting address 9, error -110&lt;br /&gt;
 [193283.079485] usb 4-1.2: new high-speed USB device number 10 using ehci-pci&lt;br /&gt;
 [193293.751588] usb 4-1.2: device not accepting address 10, error -110&lt;br /&gt;
 [193293.751771] usb 4-1-port2: unable to enumerate USB device&lt;br /&gt;
 [193387.196861] usb 4-1.2: new high-speed USB device number 11 using ehci-pci&lt;br /&gt;
 [193392.440941] usb 4-1.2: device descriptor read/64, error -110&lt;br /&gt;
 [193407.933152] usb 4-1.1: new high-speed USB device number 12 using ehci-pci&lt;br /&gt;
 [193413.177227] usb 4-1.1: device descriptor read/64, error -110&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Modules Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
Une carte PCB arduino fonctionnant, nous pouvons la programme pour simuler un module. Celle-ci a été designée afin de s'adapter au module que l'on souhaite. Il suffit de brancher le bouton, le joystick ou autre élèment de manette souhaité.&lt;br /&gt;
Cette semaine ci, nous avons alors configurer la partie communication SPI pour l'arduino.&lt;br /&gt;
&lt;br /&gt;
'''Que voulons-nous faire avec les atmegas ?''' &lt;br /&gt;
Les cartes électroniques atmega328p vont nous permettre de recevoir les requêtes SPI envoyées par la raspberry pi et d'y répondre. La Raspberry enverra un message, par exemple &amp;quot;1&amp;quot;, et l'Arduino lira alors l'état du module qui lui est connecté. Une fois l'état récupéré elle le renvoie à la raspberry pi.&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons programmé l'atmega afin qu'il soit en esclave, qu'il reçoive un de la RPi &amp;quot;1&amp;quot; et retourne une valeur sauvegardé &amp;quot;int envoi&amp;quot;. Nous avons également commencé les tests pour la lecture de l'état d'un bouton (d'après les tests réalisés les semaines précédentes).&lt;br /&gt;
&lt;br /&gt;
'''Code'''&lt;br /&gt;
Comme nous l'avons vu précedement lors de nos recherches (semaines 1 à 4) : &lt;br /&gt;
La communication SPI nécessite l'utilisation des pins: &lt;br /&gt;
&lt;br /&gt;
MOSI -&amp;gt; GPIO11 //PB3  //master OUT to the slave IN&lt;br /&gt;
MISO -&amp;gt; GPIO12 //PB4 //slave OUT to the master IN&lt;br /&gt;
SCLK -&amp;gt; GPIO13 //PB5 //serial clock&lt;br /&gt;
SS -&amp;gt; GPIO10   //PB2  //slave select&lt;br /&gt;
&lt;br /&gt;
Il faut également paramétrer l'atmega328p en Slave. On note que dans un premier temps, le programme sera codé avec l'arduino IDE (fichiers .ino). Une fois l'ensemble SPI RaspberryPi-Arduino fonctionnant, on remplacera ces codes par du langage C ou C++.&lt;br /&gt;
&lt;br /&gt;
Pour faire la connexion SPI sur l'atmega328p,  on utilise la librairie arduino SPI.h, on a alors directement les fonctions nécessaires intervenant sur les registres souhaités : SPCR (spi control register), SPSR (spi status register) et SPDR (spi data register). &lt;br /&gt;
 &lt;br /&gt;
  #include &amp;lt;SPI.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il est important d'initialise d'abord le setup et on active le port série pour pourvoir utiliser le moniteur série. (Cela servira à verifier la valeur envoyée par la RPi) &lt;br /&gt;
&lt;br /&gt;
 void setup (void)&lt;br /&gt;
 {&lt;br /&gt;
   Serial.begin (9600);  &lt;br /&gt;
   pinMode(MISO, OUTPUT);  //configuration en esclave *master in slave out*&lt;br /&gt;
   pinMode(buttonPin,INPUT);  //config pin bouton&lt;br /&gt;
   // turn on SPI in slave mode&lt;br /&gt;
   SPCR |= _BV(SPE);&lt;br /&gt;
   // preparation interruptions&lt;br /&gt;
   pos = 0;   // buffer empty&lt;br /&gt;
   process_it = false;&lt;br /&gt;
   // activation interruptions&lt;br /&gt;
   SPI.attachInterrupt();&lt;br /&gt;
 }  &lt;br /&gt;
 &lt;br /&gt;
On oublie pas de déclarer les interruptions afin de bien lire la requête reçue. &lt;br /&gt;
 &lt;br /&gt;
// SPI interrupt routine&lt;br /&gt;
ISR (SPI_STC_vect)&lt;br /&gt;
{&lt;br /&gt;
  byte c = SPDR;  // grab byte from SPI Data Register&lt;br /&gt;
  // add to buffer if room&lt;br /&gt;
  if (pos &amp;lt; sizeof buf)&lt;br /&gt;
    {&lt;br /&gt;
    buf [pos++] = c;&lt;br /&gt;
    // example: newline means time to process buffer&lt;br /&gt;
    if (c == '\n')&lt;br /&gt;
      process_it = true;&lt;br /&gt;
    }  // end of room available&lt;br /&gt;
}  // end of interrupt routine SPI_STC_vect&lt;br /&gt;
&lt;br /&gt;
Dans la loop main, on traite la requête et on utilise '''SPI.transfer(envoi);''' pour transferer à la RPi les données souhaitées. &lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons également commencé des programmes de test SPI pour la RPi. Il s'agit principalement de programmes de tests tout faits permettant de vérifier la connexion entre cette dernière et l'arduino. Par exemple, la RPI envoie &amp;quot;bonjour&amp;quot; et l'arduino lui retourne ce qu'elle reçoit, soit &amp;quot;bonjour&amp;quot;. Sans succés alors.&lt;br /&gt;
&lt;br /&gt;
====Electronique : Fritzing révision====&lt;br /&gt;
&lt;br /&gt;
Lors de la semaine, le modèle PCB de la carte arduino a été réalisé de nouveau sous fritzing avec les broches et connections manquantes. Nous avons également revu la configuration du bouton reset  et ajouté une led d'état de l'alimentation. Nous avons ainsi envoyé deux cartes identiques à la réalisation.&lt;br /&gt;
La carte déjà soudée lors des derniers jours fonctionnant, elle nous sert de prototype de programmation. Nous pouvons ainsi avancer à la fois sur la programmation des modules mais aussi sur leur réalisation. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 10&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation : PS4 et SPI sur RPi====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
Cette semaine, pour tester la prise OTG nous avons décider de lancer un script qui est habituellement utilisé. Nous avons choisi le script Serial Adapter qui est censé permettre de se connecter à la RPi Zero W en SSH via ce port. &lt;br /&gt;
Après quelque modifications et plusieurs petits bugs, nous avons réussir à faire fonctionner le ssh via le port OTG. Donc le problème était le même, notre script mélangé avec les informations sur la PS4 n'était toujours pas fonctionnel.&lt;br /&gt;
&lt;br /&gt;
Pour faire la liaison entre les deux parties nous avons aussi commencé à programmer une application qui permet de configurer les modules au niveau de la RPi Zero W.    &lt;br /&gt;
&lt;br /&gt;
'''Modules Raspberry PI et SPI'''&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, pour la partie Atmega328p-Modules, nous nous sommes concentrés sur la programmation de la communication SPI avec la raspberry pi. Cette semaine a permis une étude plus approfondit sur le fonctionnement pour la RPi. &lt;br /&gt;
&lt;br /&gt;
On rappelle, comme vu des semaines 1 à 4, pour la RPI3 (tout comme la RPi Zero W) utilise les broches : SCLK (23), MISO(21), MOSI (19) et SPI CS0 (24), SPI CS1 (26). &lt;br /&gt;
On la programme en Master. A l'aide des fichiers tests d'inspiration, on pourra directement programmer la RPi en C. Lors de la réalisation du code, il y a 3 étapes : l'initialisation/parametrage en SPI pour être maître, l'envoie de la requête puis la réception de données en retour. &lt;br /&gt;
&lt;br /&gt;
Programmant en C, il ne faut pas oublier les librairies suivantes :&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;getopt.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;sys/ioctl.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/types.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/spi/spidev.h&amp;gt;   //pour SPI&lt;br /&gt;
&lt;br /&gt;
On va déclarer des variables globales permettant le paramétrage :&lt;br /&gt;
&lt;br /&gt;
 static const char *device = &amp;quot;/dev/spidev0.0&amp;quot;;  //si on veut CS0 pour atteindre notre SS&lt;br /&gt;
 static uint8_t mode;       //mode est par défaut à 0&lt;br /&gt;
 static uint8_t bits = 8;    //bits par mot échangé&lt;br /&gt;
 static uint32_t speed = 500000;  &lt;br /&gt;
 static uint16_t delay;&lt;br /&gt;
&lt;br /&gt;
Dans notre main, on ouvre le port (la connexion) au device souhaité,  on vérifie les paramètres (registres, connexions...) puis exécute la fonction transfer(fd). transfer(fd) transmet la requête et s'occupe de la réception. &lt;br /&gt;
&lt;br /&gt;
 fd = open(device, O_RDWR);&lt;br /&gt;
 transfer(fd);&lt;br /&gt;
 close(fd);&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 11&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation: PS4, SSH et tests SPI (RPi3&amp;amp;Atemga328p)====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Raspberry PI, Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
Afin de facilité la programmation en utilisant Ethernet, nous avons installer et configuré la RPi pour l'utiliser en SSH depuis les ordinateurs de la E306. En effet, SSH permet de se connecter à distance sur une machine en utilisant un compte utilisateur de la dite machine. En mettant ssh, on pourra directement agir sur les fichiers de la raspberry depuis un terminal de notre PC. Pour cela, on a d'abord vérifier l'adresse IP de notre raspberry pi : 172.26.145.106 avec un écran mais on peut aussi utiliser les commandes ip a et ifconfig. Puis activer le ssh sur la raspberry pi. &lt;br /&gt;
On modifie alors le fichier config.txt mais également etc/network/interfaces pour configurer la bonne interface Ethernet sur la raspberry pi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: configSSH_raspi.png||left|300px|config ssh ethernet]]&lt;br /&gt;
&lt;br /&gt;
Il nous suffit alors de taper la commande : ssh pi@172.26.145.106  pour accéder à notre RPi. &lt;br /&gt;
&lt;br /&gt;
Nous avons continué à réaliser la communication SPI avec des tests entre une arduino UNO et la RPI3. Nous avons commencé par des tests simples inspirés des études de deux semaines précédentes et modulés selon notre utilité.  &lt;br /&gt;
Nous arrivons alors à lire l'état envoyer &amp;quot;bonjour&amp;quot; et recevoir &amp;quot;ça va&amp;quot; ou encore &amp;quot;1&amp;quot; et recevoir &amp;quot;3&amp;quot;. Il faut noter que le SPI échange des trames, la RPI reçoit alors des hexadécimaux. &lt;br /&gt;
Nous avons alors continué pour recevoir l'état du bouton ou du joystick lors de l'envoie de &amp;quot;1&amp;quot; sur l'Arduino328p. La semaine prochaine nous testerons ces même codes fonctionnels sur les cartes atmeg327p. &lt;br /&gt;
&lt;br /&gt;
A la fin de cette semaine, nous avons alors des codes Arduino-SPI (.ino) et des codes Raspberry-SPI (.c) permettant l'échange de données. Le but est maintenant de l'adapter aux cartes imprimées et de le rendre pleinement fonctionnel pour plusieurs cartes à la fois, puis ajouter une boucle de vérification en continue jusqu'à une deuxième requête de la RPi.&lt;br /&gt;
&lt;br /&gt;
====Electronique: réalisation au propres des PCB modules====&lt;br /&gt;
&lt;br /&gt;
Suite à une nouvelle erreur de réalisation cartes électronique, nous avons  refait et renvoyé à nouveau les cartes imprimées atmega328p.&lt;br /&gt;
Nous les souhaitons au propre pour une version finale. Une fois celle-ci imprimées nous pourrons en avoir 3 , un pour chaque module. Les cartes étaient bien imprimées en bottom mais lors du passage des traversants de bottom à top, le logiciel ne les a pas fait miroiter. Par manque d'attention nous avons alors envoyé les fichiers gerber pour des cartes ayant les composants du même coté que la couche de cuivre. &lt;br /&gt;
Les cartes électroniques actuelles sont alors correctes et fonctionnelles mais difficile à souder. Pour eviter les erreurs et continuer sur des prototypes de carte nous préférons attendre en nous concentrant sur la programmation PSI de la Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 12&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Raspberry PI, Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
-  réflexion: penser à faire boucler sur l'arduino une fois la requête reçu, ça veut dire que la manette est ON et donc vérifier continuellement les modules sur chaque atmega.&lt;br /&gt;
- SPI raspberry pi - arduino recuperation état du bouton avec les cartes modules  (/!\ récuperation à faire dans une variable) &lt;br /&gt;
&lt;br /&gt;
-SSH perso &lt;br /&gt;
adresse Rasppi: 192.168.137.10&lt;br /&gt;
&lt;br /&gt;
====Electronique: Finalisation soudure Modules====&lt;br /&gt;
&lt;br /&gt;
Soudure au propre et finale d'une carte atmega328p et donc envoie pour la réalisation de 2 autres cartes similaires et récupération de matériel&lt;br /&gt;
Soudure des 2 autres cartes, + tests sur les états = fonctionnelles.&lt;br /&gt;
On a donc bien 3 cartes pour les 3 modules de types différents (1 bouton, 1 joystick, 1 gachette)&lt;br /&gt;
PCB pour les 2 joysticks (qui serviront de thumbstick et gachette)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 13 et plus&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
====Electronique====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
(à mettre rapport + git + drive)&lt;br /&gt;
&lt;br /&gt;
=Datasheets=&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=55393</id>
		<title>IMA4 2017/2018 P35</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=55393"/>
				<updated>2018-05-05T20:14:00Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : /* Programmation : PS4 et SPI sur RPi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Présentation générale: Manette modulable&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Description&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Tout le monde joue aux jeux vidéo cependant, les manettes ne sont pas adaptées aux personnes ayant un handicap pouvant toucher les bras ou les mains.&lt;br /&gt;
C’est le cas, de plusieurs patients dans les centres de soins et de rééducation.&lt;br /&gt;
&lt;br /&gt;
Pour ce projet IMA4, nous travaillerons avec le centre SSR (soin de suite et de réadaptation) Marc Sautelet de Villeneuve d’Ascq.&lt;br /&gt;
Un adolescent, patient de Marc Sautelet, est passionné par les jeux vidéo. En effet, ayant perdu la motricité d’une partie de son corps, il ne peut pas jouer à deux mains. Pour cela, il bloque la manette entre son épaule et son coude, usant de la mâchoire et des doigts pour contrôler les&lt;br /&gt;
joysticks et les boutons. Cet exercice peut s’avérer fatiguant et pénible.&lt;br /&gt;
&lt;br /&gt;
Ainsi, nous chercherons à concevoir une manette PS4 adaptée au handicap de l’adolescent. &lt;br /&gt;
Cette manette devra aussi être adaptée pour d’autres patients présentant également des handicaps moteurs. Ainsi nous prendrons pour cibles: tous les patients du centre voulant jouer; et non pas que les enfants et adolescents.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Membre du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Transley Gracias et Camille Saad&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Cible&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Patient présentant un handicap moteur&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Période du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
janvier 2018 - mai 2018&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Partenaire/Client&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Centre SSR Marc Sautelet à Villeneuve d'Ascq&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Objectifs&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ce projet a pour objectif de créer un prototype de manette qui puisse interagir avec la console PS4 et dont le paramétrage se fait à l’aide d’une application mobile et/ou web. Cette manette devra suivre les demandes du patient ainsi que des aides-soignantes du centre, dans la mesure du possible.&lt;br /&gt;
&lt;br /&gt;
Plus précisément, pour le premier prototype, nous mettrons en œuvre l'utilisation de quelques boutons spécifiques: &lt;br /&gt;
&lt;br /&gt;
* Un joystick (type L/R)&lt;br /&gt;
* Quelques boutons poussoirs (type Croix/Triangle/Carré/Rond/R1/L1/Start/...)&lt;br /&gt;
* Des boutons gâchettes progressives (type L2/R2).&lt;br /&gt;
&lt;br /&gt;
Le but serait donc dans un premier temps de rendre fonctionnel un bouton de chaque type, puis de les multiplier une fois cela fait. Tous ces boutons réunis constituent une manette fonctionnelle.Ainsi, la manette sera ajustable, c’est à dire qu’elle devra s’adapter aux différents handicaps moteurs possibles.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Analyse du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Positionnement par rapport à l'existant&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre prototype aura une présentation unique par rapport à l’existant. En effet, les concurrents et produits existants ciblent pour la majorité un seul handicap. Cela&lt;br /&gt;
engendre une solution fermée à beaucoup de patients. Notre projet propose une mobilité des mouvements et également un choix large dans la composition et le&lt;br /&gt;
design de notre manette.&lt;br /&gt;
Le patient n’est pas retreint à jouer à une seule main, à utiliser beaucoup de force...Il y a moins de technique dans la manipulation et on ne joue pas avec une&lt;br /&gt;
manette adaptée uniquement pour un droitier ou un gaucher. Cependant, cela nous limitera peut-être dans le choix possible des types de jeux. Tout comme les autres&lt;br /&gt;
manettes adapté, l’utilisateur nécessitera un peu d’entrainement.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du premier concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Jouer aux jeux vidéo à une main n’est pas une idée d’aujourd’hui. En 1990, Nintendo propose le Power Glove. Mais il tombe très rapidement aux oubliettes suite à des problèmes techniques.&lt;br /&gt;
&lt;br /&gt;
Un autre gant a fait son apparition quelques années plus tard. Celui-ci, plus technique, il faut office de manette Play Station: le Reality Quest Power Glove.Cette idée de manette-gant, permet de jouer à la PS avec une seule main, elle a était conçue et présentée pour les E3, un salon d’exposition de gaming.Le gant est conçu pour contrôler l’équivalent des 14 boutons et 2 joysticks à l’aide d’une seule main. La « manette » est fixée dans la pomme de la main. L’utilisateur contrôle les mouvements verticaux et horizontaux en pivotant le poignet, et utilisent les 4 boutons d’action principaux et L1/R1 avec les doigts. Les autres boutons sont accessibles par un seul bouton rond contrôlé par le pouce.&lt;br /&gt;
La manette est adaptée pour beaucoup de jeux vidéo, dont les plus simples sont les jeux de voitures et de combats (arcade).&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec ce gant&lt;br /&gt;
*Design obligatoirement droitier&lt;br /&gt;
*Les boutons de contrôle sont peu sensibles et peuvent nécessiter de la force&lt;br /&gt;
*Design compliqué et nécessitant beaucoup d’entrainement.&lt;br /&gt;
&lt;br /&gt;
;Lien : https://www.youtube.com/watch?v=qV0SxSJDCYg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du second concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ben Heck, de son vrai nom Benjamin J.Heckendorn, est un concepteur de mods de consoles (mods pour modification, soit « manettes modifiées ») et une star&lt;br /&gt;
du net grâce à ses vidéos tutoriels.Il propose alors énormément de produits adaptés ou dérivés en guise de manettes.&lt;br /&gt;
Parmi les mods qu’il a réalisé, il a modifié une manette de PS4 afin de la rendre accessible à une personne ne pouvant jouer qu’à une main. Pour cela, il a déplacé les boutons en respectant l’ergonomie de la main valide et modifie les connexions. Il peut lui arriver de rajouter des boutons pour en remplacer un autre. Il réalise également le même système avec la Xbox. Sur la photo ci-dessous, il a adapté la manette pour un droitier.&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec cette ma&lt;br /&gt;
*Design obligatoirement droitier ou gaucher, une modification = une manette= une personne&lt;br /&gt;
*Besoin obligé du pouce et de l’index, même si avantage : 3 doigts nécessaire.&lt;br /&gt;
&lt;br /&gt;
;Lien :: https://www.youtube.com/watch?v=LieHIscadjk&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Scénario d'usage du produit ou du concept envisagé&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
La technologie est ,aujourd’hui, omniprésente dans notre vie. Les consoles de jeux ont envahies les maisons avec plus de 7 personnes sur 10 jouant aux jeux vidéos sur consoles en France (chiffre de l’Express). 0,18% des français sont handicapés cela représente 12 millions de français. Dans ce chiffre, 13,4% des personnes ont un handicap moteur. En 2017, les grands groupes comme Sony ou Microsoft avec respectivement PlayStation et Xbox ne permettent pas à tout le monde de jouer avec une manette. Les manettes sont prévues pour des personnes ayant leurs membres valides, plus précisément les mains et les bras.&lt;br /&gt;
&lt;br /&gt;
Après un accident de voiture, un jeune garçon a perdu la motricité d’un côté du corps. Passionné de jeux vidéo, il se retrouve avec des difficultés à jouer sur sa console PS4. Ingénieux, il utilise la manette en la coinçant entre son épaule et le creux du cou. Usant de la mâchoire et de sa main valide pour contrôler les joysticks et les boutons. L'exercice étant inconfortable et fatiguant il eu l’idée de proposer à des futurs ingénieurs de lui proposer une manette adaptée à son handicap. &lt;br /&gt;
&lt;br /&gt;
Les deux pré-ingénieurs ,avec leur tuteur, ont une idée révolutionnaire : La manette modulable ! Elle permettrait au jeune garçon, ainsi que d’autres joueurs, de pouvoir continuer de s’amuser ou même de commencer à jouer au jeux sur console. &lt;br /&gt;
Cette manette aidera fortement dans les centre de rééducation pour faire passer le temps et donner du plaisir à des personnes qui ne peuvent plus s’amuser avec leur console traditionnelle. Elle pourra aussi ouvrir de nouvelles possibilités pour certaines personnes qui n’auraient jamais essayé jusqu'à présent.   &lt;br /&gt;
Comme son nom l'indique, elle sera modulaire et s'adaptera à différents handicaps. Accompagnée de son application d’initialisation, elle sera accessible aussi bien aux enfants, patients, parents et aides soignantes.&lt;br /&gt;
&lt;br /&gt;
Quelques mois plus tard...Le jeune patient fan de Need For Speed, peut maintenant piloter sa voiture comme un vrai professionnel grâce à l'un des joysticks qu'il utilisera avec sa main valide et il pourra accélérer à des vitesses folles à l'aide de boutons poussoirs au niveau de son pied valide et gagner la partie. Son ami venu lui rendre visite, pourra en lieu et place des aides soignantes configurer à l'aide de la tablette (portable) la manette du patient. &lt;br /&gt;
Si le patient change de jeu pour Tekken et que la configuration des modules ne lui convient plus, il peut interchanger les éléments de la manette selon son envie et son confort. Ainsi il peut faire sauter son personnage, il utilisera un module bouton supplémentaire, qu'il actionnera avec le poing.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Fonctionnement&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Suite à une analyse fonctionnelle et à la formulation de notre projet, nous avons pu définir le fonctionnement de notre système. Notre produit, la manette, doit être accessible d’après nos objectifs à différents types de handicaps moteurs. Ainsi, l’idéal serait de concevoir une manette modulable afin qu’elle puisse s’adapter à toutes les situations. Ce n’est plus au patient de s’adapter à la manette mais à la manette de s’adapter au patient.&lt;br /&gt;
Cela signifie que la manette sera, dans la limite du possible et de la sensibilité du corps du patient, composée de plusieurs parties dites « modules » comportant un ou plusieurs actionneurs (boutons, joysticks, gâchettes...). Ces modules seront déplaçables afin d’être utilisé avec différents membres du corps : un doigt, une main,&lt;br /&gt;
une jambe ou même un pied. Il suffira de les connectés entre eux suivant l’organisation souhaitée, le Gameplay du jeu ou en fonction du handicap. Le tout sera relié à une application.&lt;br /&gt;
L’application sera alors mise en place pour connecter les différentes parties du point de vue software pour prérégler la manette en fonction du patient. Il pourra alors choisir les boutons en fonction du jeu, de ses mouvements mais aussi choisir la sensibilité.&lt;br /&gt;
&lt;br /&gt;
L’application et les modules devront être intuitifs et faciles d’utilisation. De cette manière des utilisateurs non avertis dans le domaine informatique ou jeunes pourront eux-mêmes gérer les connexions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Réponse à la question difficile&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
'''Question : Comment interconnecter les différents modules de la manette ?'''&lt;br /&gt;
&lt;br /&gt;
Il nous faut pour ce projet interconnecter les modules modélisant la manette qui seront connectés à la consoles PS4 via une Raspberry Pi 3.&lt;br /&gt;
Le choix de la Raspberry Pi 3 nous permet d'utiliser son module Bluetooth pour communiquer avec la PS4, ce choix est plus adaptée au projet que du filaire.&lt;br /&gt;
Concernant l'interconnexion des modules, nous travaillerons en deux étapes &amp;quot;preuves concept&amp;quot; : filaire et sans fils (Bluetooth).&lt;br /&gt;
&lt;br /&gt;
'''Objectif 1 : Preuve concept filaire'''&lt;br /&gt;
&lt;br /&gt;
Dans cette première partie de projet, nous souhaitons avoir une 1ère preuve de prototype rapidement. Nous nous concentrerons alors sur la communication entre la RPi3 et la PS4 ainsi que sur la conception des modules. Pour les modules, nous réaliserons des cartes électronique pour chaque module avec un micro-contrôleur. La communication filaire nous permettra d'interconnecter les modules à la RPi3 avec un bus SPI.&lt;br /&gt;
&lt;br /&gt;
'''Objectif 2: preuve concept sans fils'''&lt;br /&gt;
&lt;br /&gt;
Une deuxième étape du projet est la réalisation de la solution idéale sans fils. Celle-ci pourra commencer à être développée petit à petit en parallèle avec l'objectif 1. Le but ici, est d'interconnecter les modules en Bluetooth. Nous avons choisi le Bluetooth pour garder une connexion commune sur toute la chaîne. &lt;br /&gt;
Nous rajouterons alors un module bluetooth à chaque module de la manette. &lt;br /&gt;
&lt;br /&gt;
'''Objectif 3: possibilité d'adapter les boutons (capuchon en 3D)'''&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Préparation du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Cahier des charges&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
''Chef de projet:'' Alexandre Boé  &amp;lt;br&amp;gt;&lt;br /&gt;
''Responsables:'' Xavier Redon, Thomas Vantroys &amp;lt;br&amp;gt;&lt;br /&gt;
''Partenariat:'' Marc Sautelet (non etablie) &amp;lt;br&amp;gt;&lt;br /&gt;
''Elèves-ingénieurs:'' Camille Saâd, Transley Gracias &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Sujet :''' Manette modulable pour personne à déficience moteur compatible PlayStation 4 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objectifs principal (1er POC) : ===&lt;br /&gt;
Faire transmettre des informations issus des actionneurs (ex:boutons poussoires) via des arduinos jusqu’à la Raspberry Pi 3 en SPI.&amp;lt;br&amp;gt;&lt;br /&gt;
Envoyer les données reçues vers la PS4 en USB  &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objectifs secondaire (2e POC):===&lt;br /&gt;
Créer des modules avec un microcontrôleur et une puce bluetooth pour permettre une meilleurs flexibilité (c-àd pouvoirs avoir une meilleure ergonomie et une connexion sans fil) &amp;lt;br&amp;gt;&lt;br /&gt;
Connecter la Raspberry Pi 3 en Bluetooth à la PS4 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier: beteacorne.jpg||middle|600px|Bete a corne manette]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Choix techniques : matériel et logiciel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Liste de matériel :===&lt;br /&gt;
&lt;br /&gt;
'''Modules boutons/joysticks/gachettes'''&lt;br /&gt;
&lt;br /&gt;
3  Push buttons :&amp;lt;br&amp;gt;&lt;br /&gt;
- O X Y Carré R3 L3 &amp;lt;br&amp;gt;&lt;br /&gt;
- Guide PS &amp;lt;br&amp;gt;&lt;br /&gt;
- start/back &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 0,45€/unité TTC [https://www.gotronic.fr/art-bp-miniature-krs1273-16976.htm] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1  Thumbstick original: &amp;lt;br&amp;gt;&lt;br /&gt;
Joystick analogique 4 directions --&amp;gt; 4,25€/unité TTC [https://www.gotronic.fr/art-joystick-analogique-4-directions-19063.htm] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1 buttons trigger L1 L2 =&amp;gt; 1x Thumbstick original''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Cartes Atmega328p /connexion spi/'''&lt;br /&gt;
&lt;br /&gt;
3   Arduino UNO &amp;lt;br&amp;gt;&lt;br /&gt;
1   Arduino UNO atmega328p retirable &amp;lt;br&amp;gt;&lt;br /&gt;
4   capacite 22pF traversantes &amp;lt;br&amp;gt;&lt;br /&gt;
2   resistances 10 kOhm traversantes (à récupérer) &amp;lt;br&amp;gt;&lt;br /&gt;
2   oscillateurs quartz 16MHz traversante &amp;lt;br&amp;gt;&lt;br /&gt;
2   atmega328p-pu et support &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cartes module bluetooth nrf52810 '''&lt;br /&gt;
&lt;br /&gt;
6   capacités 100nF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
6   capacités 12pF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 4,7pF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 1µF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 100pF=0,1nF 0603 (à récupérer) &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 0,8pF 0603 (a acheter, commande en cours) &amp;lt;br&amp;gt;&lt;br /&gt;
2   inductance 3,9nH 0603 (a acheter, commande en cours) &amp;lt;br&amp;gt;&lt;br /&gt;
2   oscillateur quartz 32 MHz &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''' Connexions et autres '''&lt;br /&gt;
&lt;br /&gt;
1 Led RGB neopixel [https://www.adafruit.com/product/1734] &amp;lt;br&amp;gt;&lt;br /&gt;
1 Raspberry Pi 3 &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; ~36,23€/unité TTC [https://fr.rs-online.com/web/p/processor-microcontroller-development-kits/8968660/?src=raspberrypi] &amp;lt;br&amp;gt;&lt;br /&gt;
1 Raspberry Pi Zero W (commandée) [https://www.raspberrypi.org/products/raspberry-pi-zero-w/] &amp;lt;br&amp;gt;&lt;br /&gt;
6 Alimentations 5V ou 3,3V &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
par exemple, 12 piles de type CR2016 3V rechargeables ou 24 piles AAA 1,5 V rechargeables  &lt;br /&gt;
5 modules Bluetooth nrf de Nordic : nRF52810-QFAA-R &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 3,17€/unité + frais expédition  [https://www.mouser.fr/productdetail/nordic-semiconductor/nrf52810-qfaa-r?qs=sGAEpiMZZMve4%2FbfQkoj%252bG%2FosjLoe2oghFQwQllMrQ4%3D]&lt;br /&gt;
5 Lignes broches mâles &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logiciels:===&lt;br /&gt;
&lt;br /&gt;
- IDE arduino&lt;br /&gt;
- Altium&lt;br /&gt;
- FreeCAD ou Inkscape&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Liste des tâches à effectuer&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 1 : Gestion du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Définition des cahiers des charges fonctionnel et technique, choix d'orientation...&lt;br /&gt;
* Recherche techniques sur les différentes connexions possibles entre les modules, la RPi 3 et la console PS4&lt;br /&gt;
#Recherche connexion SPI entre les modules et la RPi3&lt;br /&gt;
# Recherche connexion bluetooth entre la RPi3 et la PS4&lt;br /&gt;
# Recherche connexion bluetooth pour les modules&lt;br /&gt;
# Recherche carte avec montage Atmega328P-PU et anticipation module bluetooth&lt;br /&gt;
* Détermination du matériel nécessaire&lt;br /&gt;
* Réflexion sur l'application&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 2: Réalisation du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Partie 1: Preuve concept manette en filaire'''&lt;br /&gt;
&lt;br /&gt;
* Conception de cartes électroniques pour 2 modules (/!\ prévoir modules bluetooth)&lt;br /&gt;
* Réalisation connexion SPI avec 2 modules : programmation des Atmega328p en liaison série. &lt;br /&gt;
* Si tests concluant, ajouter des modules jusqu'à en avoir 5 (1 pour chaque type de boutons) &lt;br /&gt;
* Connexion bluetooth entre la PS4 et la RPi3&lt;br /&gt;
* Réalisation du support des modules avec fixations possibles (imprimante 3D)&lt;br /&gt;
&lt;br /&gt;
'''Partie 2: Preuve concept manette en bluetooth'''&lt;br /&gt;
&lt;br /&gt;
* Ajout des modules bluetooth aux cartes électroniques&lt;br /&gt;
* Connexion bluetooth entre les modules&lt;br /&gt;
&lt;br /&gt;
'''Partie 3: Application Android : paramétrage de la manette'''&lt;br /&gt;
&lt;br /&gt;
* Créer une application sur tablette ou smartphone (Android) afin de configurer la manette aux besoins (inter-connexion des modules et console)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Calendrier prévisionnel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Date'''&amp;lt;/u&amp;gt;&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Tache à réaliser''' &amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
17/01/18-24/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Faire des recherches sur les différentes interconnexions du système : Bluetooth, RPi-Atmega328 (SPI), RPi-PS4&lt;br /&gt;
Continuer liste des taches, matériel, Début recherches + réflexion fixation support des modules&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Recherche technique connexion PS4-RPi3 et connexion SPI RPi3-Module + code&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18-07/03/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Réalisation 1er prototype (+ début prototype 2)&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
07/03/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Seance 7 :  Test prototype filaire&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
07/03/18-09/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Réalisation 2eme prototype + application Android&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
09/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Seance 14 :  Test prototype Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
14/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Video projet&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
15/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Finalisation projet et Rapport&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
16/05/18-17/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Soutenances Projet&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Réalisation du Projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Feuille d'heures &amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Voici le tableau d'heures du binôme:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Heures S11 !! Heures S12 !! Heures S13et+ !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 10&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 20min&lt;br /&gt;
|&lt;br /&gt;
| 15h20&lt;br /&gt;
|-&lt;br /&gt;
| Cherches techniques &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 18&lt;br /&gt;
|-&lt;br /&gt;
| Rédaction du wiki et rapport de projet&lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 30min&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| 30min&lt;br /&gt;
| 30min&lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
| 10h30&lt;br /&gt;
|-&lt;br /&gt;
| Programmation&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 3&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 7&lt;br /&gt;
| 8&lt;br /&gt;
| 6&lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
| 43&lt;br /&gt;
|-&lt;br /&gt;
| Cartes électroniques&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 6&lt;br /&gt;
| 8&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| 31&lt;br /&gt;
|-&lt;br /&gt;
| Application&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| Total Semaine&lt;br /&gt;
| 10&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 7&lt;br /&gt;
| 10h30&lt;br /&gt;
| 13&lt;br /&gt;
| 9&lt;br /&gt;
| 12&lt;br /&gt;
| 9h30&lt;br /&gt;
| 10h30&lt;br /&gt;
| 9&lt;br /&gt;
| 9h20&lt;br /&gt;
| &lt;br /&gt;
| '''117h50'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Prologue&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Avant la réalisation et conception d'un projet, il est important d'analyser celui-ci. Nous avons allons consacré le prologue à l'analyse fonctionnelle de la manette. Nous avons également eu une réflexion sur l'analyse technique, cela nous a permis de réaliser une liste de matériel. Il est important de définir les objectifs ainsi que les besoins afin de ne rien oublier. (Voir ci-dessus Analyse projet) &lt;br /&gt;
Nous avons également organisé notre travail, pour le partage de documents de recherches et la rédaction de compte-rendu final nous avons réalisé un google drive. Par la suite, nous créerons un projet Git. &lt;br /&gt;
&lt;br /&gt;
Durant ce temps, nous avons décidé de réaliser 5 modules. Les modules sont les différents boutons de la manettes qui nous pourrons placer selon nos choix (boutons modulaires) pour notre prototype projet pour chaque type des boutons d'une manette PS4. Ces modules devrons être connectés à la console et interconnectés. Le tout sera lié à une application Android. Suite à quelques recherches et nos analyses, nous avons décidé les points suivants :&lt;br /&gt;
&lt;br /&gt;
- On commencera avec 2 modules et on les multipliera par la suite. &lt;br /&gt;
- Les premiers tests sont réalisés avec des boutons petits pour assurer leur caractéristique &amp;quot;modulaires&amp;quot;, par la suite nous pourrons ajouter des capuchons de taille plus importante (imprimante 3D ou achat)&lt;br /&gt;
- Conception modules : réalisation de carte avec un microcontrôleur atmega328 programmable pour chaque module (anticiper le module Bluetooth) &lt;br /&gt;
- Projet en 2 parties : prototype filaire et prototype Bluetooth&lt;br /&gt;
# Prototype filaire : connexions entre les modules et la RPi3 en SPI, connexion Rpi3-PS4 en Bluetooth, avec l'application en filaire à la RPi3&lt;br /&gt;
# Prototype Bluetooth: connexion Bluetooth entre modules-RPi3-PS4-apllication&lt;br /&gt;
&lt;br /&gt;
[[Fichier: structuremanette.png||center|400px|Concept manette modulable]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 1&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous nous sommes concentrés les recherches afin de définir clairement le cahier des charges technique. Il s'agit des réalisations à mettre en œuvre pour les inter-connexions des éléments de la manette.&lt;br /&gt;
Ainsi, nous avons fait des recherches sur :&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI entre les modules (Atmega328p) et la RPi3===&lt;br /&gt;
&lt;br /&gt;
SPI: Serial périphérique interface BUS&lt;br /&gt;
&lt;br /&gt;
[[Fichier: yWGmW.png||right|200px|Concept manette modulable]]&lt;br /&gt;
Comme indiqué sur l'image ci-dessus, la Raspberry pi 3  peut communiquer en SPI avec ses broches CS0 (24), CS1 (26), SCLK (23), MISO (21), MOSI (19). Celles-ci permettent de communiquer avec un ou plusieurs esclaves (dans notre cas, des Atmega328p) en reliant directement les broches concernées de la RPi3 à celles des composants esclaves.&lt;br /&gt;
Chaque broche CS0 (24) ou CS1 (26) ne peut être connectée qu'à l'entrée SS (aussi appelé CS) d'un seul esclave.&lt;br /&gt;
C'est a dire que chaque CS est lié à un esclave afin de choisir avec lequel la communication est établie à un moment donné, et les MISO sont reliées entre elles en cascade, de même pour les SCLK et les MOSI. On peut noter que le maître impose la fréquence d’horloge et sélectionne l’esclave auquel les données sont envoyées.  8 MHz est le plus rapide supportable a 3,3V&lt;br /&gt;
&lt;br /&gt;
[[Fichier: fonctionnementSPI.png||right|200px|Connexion SPI multi-esclaves]]&lt;br /&gt;
&lt;br /&gt;
Voici un schéma du fonctionnement souhaité : &lt;br /&gt;
&lt;br /&gt;
Comme nous souhaitons avoir 5 modules environ il nous faudra rajouter un composant en plus afin d'augmenter les possibilités de sélection, par exemple des démultiplexeurs.&lt;br /&gt;
Dans un premier temps nous essaierons avec 2 esclaves, puis on augmentera le nombre. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Connexion Bluetooth PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Les recherches portent également sur la connexion entre la manette PS4 et la console. Elles concernent le protocole de communication via Bluetooth&lt;br /&gt;
&lt;br /&gt;
Caracteristique pour la PS4:  Bluetooth®v4.0, Qualcomm Atheros AR3002 Buetooth LE: 2,4-2,5 GHz  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caracteristique de la connexion : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Vitesse de transmission &amp;gt;&amp;gt; 3 Mbit/s   8N1 &lt;br /&gt;
*Relevé tous les 1.3 millisecond (peut-être) &lt;br /&gt;
*Chaque manette à une adresse unique BD_ADDR qui correspond à l’adresse MAC de la carte Réseau&lt;br /&gt;
*Protocole de détection est le SDP basé sur une emission reception PDU&lt;br /&gt;
*L’Attribut ID est representer en TLV Type Length Value &lt;br /&gt;
*Communication HCI ACL Data Packet &lt;br /&gt;
&lt;br /&gt;
===Rélisation des cartes électroniques===&lt;br /&gt;
&lt;br /&gt;
matériel nécessaire pour un PCB : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*breadboard&lt;br /&gt;
*câbles&lt;br /&gt;
*1 x 10k Ohm résistance&lt;br /&gt;
*Quartz 16Mhz clock crystal&lt;br /&gt;
*2 x 22 pF capaciteurs&lt;br /&gt;
*Atmega328P-PU&lt;br /&gt;
&lt;br /&gt;
Ressources: &lt;br /&gt;
[[https://www.arduino.cc/en/Main/Standalone]]&lt;br /&gt;
[[http://www.eprojectszone.com/atmega-328-pu-standalone/]]&lt;br /&gt;
[[https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 2&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la semaine deux et durant la séance, nous avons continué et approfondie nos recherches sur le projet. Nous avons pu ainsi affiner nos taches de réalisation et donc notre cahier des charges.&lt;br /&gt;
&lt;br /&gt;
===Connexion aux modules: SPI et Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Green&amp;quot;&amp;gt; CORRIGER&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
voir https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018#Configuration_du_syst.C3.A8me_embarqu.C3.A9&lt;br /&gt;
&lt;br /&gt;
(sudo apt-get install pi-bluetooth)&lt;br /&gt;
&lt;br /&gt;
''connexion sur la raspberry par ssh:''&lt;br /&gt;
 su&lt;br /&gt;
 update-rc.d ssh enable&lt;br /&gt;
 invoke-rc.d ssh start &lt;br /&gt;
 ssh pi@172.26.79.1XX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''bluetooth''&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
 agent on&lt;br /&gt;
 default-agent&lt;br /&gt;
 scan on&lt;br /&gt;
 pair [device Bluetooth address]  (exemple: pair XX:XX:XX:XX:XX:XX )&lt;br /&gt;
&lt;br /&gt;
''NOUVELLE REFLEXION : Connexion SPI entre les modules (Atmega328p) et la RPi3 --&amp;gt; MODULES BLUETOOTH''&lt;br /&gt;
&lt;br /&gt;
Si multi-esclaves= plusieurs modules : &lt;br /&gt;
Il faut ajouter des sélections pour les SPI → démultiplexeurs OU ne pas utiliser les CS0 et CS1, et plutôt des pins entrée/sortie de la RPi3 lié au SS comme ça on choisit direct le module esclave voulu.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' Nous avons étudié à nouveau la datasheet de notre module bluetooth nrf de Nordik. Le module bluetooth comporte  déjà un microprocesseur !&lt;br /&gt;
Un module plutôt peut donc jouer le rôle de notre atmega328p. Il n'y a alors pas besoin de réaliser des cartes électroniques de type arduino standalone. Nos PCB regrouperont alors uniquement l'alimentation, un actionneur (bouton, joystick), le module bluetooth et les broches de connexion si besoin... &lt;br /&gt;
&lt;br /&gt;
Cette séance nous a alors permise de revoir entièrement le matériel nécessaire. Notre liste de matériel nous semble alors plus réfléchie et limitée au nécessaire. &lt;br /&gt;
&lt;br /&gt;
===Connexion Bluetooth PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Suite à nos recherches de la semaine précédente, nous avons sélectionné deux sites bien renseignés : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;SITES&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ils nous ont permis de comprendre la communication entre la manette et la console. En effet, ils nous expliquent les échanges de trames Bluetooth. &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;EXPLICATIONS 1 exemple &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 3 : Début premier prototype&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI RPi3-Arduino===&lt;br /&gt;
&lt;br /&gt;
Comme vu durant les semaines précédentes, nous souhaitons réaliser une connexion Multi-esclaves en SPI entre la Raspberry pi et plusieurs modules.&lt;br /&gt;
Cette semaine nous avons vu que la réalisation de notre premier prototype doit aller vite. Il ne nous est pas nécessaire d’attendre les modules bluetooth si il nous faut dans cette partie uniquement utiliser son microprocesseur. Ainsi pour chaque module nous utilisons une arduino UNO. Nous réaliserons les programmes en C afin de pouvoir les réutiliser avec les modules bluetooth par la suite. &lt;br /&gt;
Une fois la connexion réalisable nous adapterons les programmes aux modules bluetooth Nordik. En effet, ceux-ci comporte déjà un microprocesseur, le module peut jouer le rôle de notre atmega328p. Il n'y a aurait alors pas besoin de réaliser des cartes électroniques arduino standalone sur PCB, mais directement des cartes électronique avec le module et le module voulu (bouton, joystick...) et l'alimentation. &lt;br /&gt;
Durant la séance nous avons alors revu la liste de matériel nécessaire. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: prototype1.jpeg||center|600px|connexion filaire prototype 1 filaire arduino]]&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous avons recherches des exemples de codes et de librairies pour Arduino SPI et RaspberryPI SPI. &lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé le programme de la connexion SPI pour l'arduino et récupéré les bibliothéques SPI.h avec SPI.c. Nous nous sommes alors concentrer à les comprendre, pour pouvoir l'utiliser. &lt;br /&gt;
&lt;br /&gt;
===Réalisation du projet Git===&lt;br /&gt;
&lt;br /&gt;
Création du projet IMA4_Projet35_ManetteModulable sur Git et partage de celui-ci. &lt;br /&gt;
Les premiers dossier crées cette la séance :&lt;br /&gt;
-Arduino (connexion SPI arduino) : ProtoSpi.c + dossier librairie SPI + Makefile&lt;br /&gt;
-RPI (dossier codes pour Rpi) &lt;br /&gt;
-Readme.md&lt;br /&gt;
Ces dossiers seront amenés à être modifiés au cours des séances. &lt;br /&gt;
&lt;br /&gt;
===Protocole Bluetooth PS4===&lt;br /&gt;
&lt;br /&gt;
Suite à l'étude des trames Bluetooth, on a pu voir que ces dernières étaient incomplètes. Le modèle de communication étant propriétaire, on n'y a pas accès directement. Cela nous empêche donc de mettre en oeuvre cette communication. &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt; Déveloper&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On a décidé de commencer par une connexion USB (pour laquelle on dispose de toutes les informations) celle-ci étant plus complète.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 4&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Pour le prototype 1 FILAIRE nous réaliserons les étapes suivantes :&lt;br /&gt;
&lt;br /&gt;
#Réalisation du programme SPI pour arduino&lt;br /&gt;
#Réalisation du programme SPI pour la RPi&lt;br /&gt;
#Connexion USB avec la PS4 ou ordinateur&lt;br /&gt;
#Réalisation de cartes électroniques atmega328p-pu standalone (remplacer les Arduinos) &lt;br /&gt;
#Remplacer les &amp;quot;PCB arduino&amp;quot; par le module bluetooth et adapter la connexion&lt;br /&gt;
#Conception 3D de la délimitation 1 axe pour le joystick &amp;quot;gâchette&amp;quot;&lt;br /&gt;
#Réalisation de l'application Androïde.&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées nous auront alors une preuve de concept filaire et nous pourrons alors passer à une connexion bluetooth. &lt;br /&gt;
Le passage à la connexion bluetooth sera le deuxième prototype et le cas idéal de la réalisation de la manette modulable. &lt;br /&gt;
&lt;br /&gt;
===Mise à jour Matériel===&lt;br /&gt;
&lt;br /&gt;
- Modéliser les boutons gâchettes L1/2 R1/2 de la manette PS4 (boutons sensibles à la pression) --&amp;gt; un joystick dont nous bloquerons un axe (imprimante 3D)&lt;br /&gt;
- Remplacer la RPi 3 par une Rpi zero W qui nous permettrait de réaliser plus facilement une connexion USB tout en gardant l'avantage du bluetooth. &lt;br /&gt;
- Choix de l’alimentation pour les 5 modules Bluetooth: nécessitent 3V --&amp;gt;  utiliser des piles rechargeables 1,2V AAA plutôt que piles rondes 3V.&lt;br /&gt;
&lt;br /&gt;
Nous avons également besoin du matériel cité en semaine 1 pour réaliser des cartes électroniques atmega328p-pu standalone. ( nous revenons alors sur les décisions de la semaine 3)&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI RPi3-Arduino===&lt;br /&gt;
 &lt;br /&gt;
Montage Raspberrypi et 1 arduino en PSI + 1 bouton + 1 led.&lt;br /&gt;
Voici le choix des branchements :&lt;br /&gt;
&lt;br /&gt;
 MASTER = RPi   &lt;br /&gt;
 SLAVE= Arduino&lt;br /&gt;
&lt;br /&gt;
'''SPI sur Arduino:'''&lt;br /&gt;
 MOSI -&amp;gt; GPIO11 //PB3  //master OUT to the slave IN&lt;br /&gt;
 MISO -&amp;gt; GPIO12 //PB4 //slave OUT to the master IN&lt;br /&gt;
 SCLK -&amp;gt; GPIO13 //PB5 //serial clock&lt;br /&gt;
 SS -&amp;gt; GPIO10   //PB2  //slave select&lt;br /&gt;
'''Led, bouton et autre...'''&lt;br /&gt;
 LED --&amp;gt; GPIO6  //PD6&lt;br /&gt;
 GND&lt;br /&gt;
 +5V (if required)&lt;br /&gt;
'''SPI sur la Raspberry Pi'''&lt;br /&gt;
 SPIO MOSI -&amp;gt; PIN19 &lt;br /&gt;
 SPIO MISO -&amp;gt; PIN21&lt;br /&gt;
 SCLK -&amp;gt; PIN23&lt;br /&gt;
 SPIO CS0 -&amp;gt; PIN24&lt;br /&gt;
&lt;br /&gt;
Continuation du code pour faire clignoter Led branchée à une arduino depuis la Rpi, en connexion SPI.&lt;br /&gt;
&lt;br /&gt;
===Connexion USB PS4-RPi3===&lt;br /&gt;
Durant cette, nous avons regardé comment faire cohabiter bluetooth, Application Androïd, USB, PS4, SPI et les module. &lt;br /&gt;
&lt;br /&gt;
Il est alors important de savoir comment utiliser le port série sur la RPi3, soit utiliser les UART. &lt;br /&gt;
&lt;br /&gt;
Nous avons réaliser qu'il n'était pas aussi simple d'utiliser le port serie USB de la Raspberry Pi 3, en effet le SoC est un BCM2837 . &lt;br /&gt;
De plus nous ne pouvons pas utiliser le même port pour l'alimentation et la connexion. &lt;br /&gt;
&lt;br /&gt;
Il nous faut alors trouver une alternative ou une solution à ce problème.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 5&amp;lt;/span&amp;gt;==&lt;br /&gt;
 &lt;br /&gt;
===Programmation: Réflexion définitives prototypes filaire ===&lt;br /&gt;
&lt;br /&gt;
La semaine dernière, nous avons rencontré une difficulté liée aux ports séries UART. &lt;br /&gt;
Une des solutions à cette difficulté serait d'utiliser une RPi ZERO W à défaut d'une RPi 3. On pourrait alors avoir un port d'alimentation avec connexion USB mais également retrouver la connexion Bluetooth dont nous avons besoin.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous avons continué la réalisation du prototype filaire par l'avancé du code SPI ainsi que les recherches concernant le protocole PS4. &lt;br /&gt;
&lt;br /&gt;
La Raspberry Pi zero W peut également être utile pour la connexion entre la PS4 et les différents modules en jouant le rôle d'intermédiaire. Nous avons alors commandé une Rpi zero W pour notre projet. &lt;br /&gt;
En attendant la réception de la commande, nous nous sommes penché sur les recherches pour les programmes et la configuration nécessaire à l'utilisation de la RPi zero W.&lt;br /&gt;
&lt;br /&gt;
===Electronique===&lt;br /&gt;
&lt;br /&gt;
[[Fichier: bouton_c1.jpg|100px|thumb|left|PCB bouton]]&lt;br /&gt;
[[Fichier: arduinobb.jpg|200px|thumb|right|atmega328p-pu branchement test]]&lt;br /&gt;
&lt;br /&gt;
Du coté électronique, nous avons réalisé sur fritzing certaines cartes électroniques. Les Arduino Uno servant actuellement de test, seront remplacées par des PCB atmega328p-pu standalone avec des broches permettant les branchements nécessaires SPI ou encore aux modules &amp;quot;boutons/joystick&amp;quot;. Pour les boutons, nous avons également réalisé un pcb afin de faciliter les branchements.  &lt;br /&gt;
&lt;br /&gt;
Il nous faut alors également une 3eme carte qui nous sera nécessaire pour la réalisation du prototype sans fil. Dans notre liste de matériel, nous avons des composants nrf52810 bluetooth, ceci doivent être soudé avec les capacités de protection mais également des broches de communication. Nous avons alors commencé cette carte électronique sur Altium avec le fichier  projet PCB du distributeur à modifier.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: Arduino_c1.jpg|100px|thumb|center|PCB atmega328p-pu]]&lt;br /&gt;
&lt;br /&gt;
=== Construction 3D ===&lt;br /&gt;
&lt;br /&gt;
Enfin, nous avons commencé à réaliser des boîtiers 3D pour certains modules. Par exemple, comme nous l'avions vu précédemment, un des joysticks servira de bouton-gâchette en utilisant un seul de ses axes. Il nous faut alors réaliser un boitier qui bloque l'un des axes, mais également une tige qui nous permettra de pousser le joystick de manière simplifiée.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 6&amp;lt;/span&amp;gt;==&lt;br /&gt;
 &lt;br /&gt;
===Programmation: configuration RPi Zero W ===&lt;br /&gt;
&lt;br /&gt;
Ayant reçu la Raspberry Pi zero W en début de semaine, nous nous sommes concentrés sur la programmation et la configuration de celle-ci.&lt;br /&gt;
Cette partie étant compliquée, elle nous a pris du temps. En effet, il était difficile de connecter la RPi en SSH car il n'est pas possible d'y connecter un clavier directement et on avait besoin de la prise OTG pour &amp;quot;interfacer&amp;quot; la manette.&lt;br /&gt;
&lt;br /&gt;
===Electronique: PCB nrf52810===&lt;br /&gt;
&lt;br /&gt;
Les cartes réalisées en semaine 5 sont validées et en attente de réalisation. &lt;br /&gt;
&lt;br /&gt;
Cette semaine a permis la réalisation et la finalisation de la carte électronique nrf52810. Il nous a fallu recommencé cette carte deux fois. En effet, une fois finie sur Altium nous avons réalisé que les empreintes des CMS sur PCB fourni par le constructeur ne correspondent pas au matériel CMS de l'école. Face à cette inattention de notre part, nous avons décidé de refaire entièrement la carte électronique sur fritzing. Ayant la datasheet et des plans d'inspiration PCB, nous avons pu refaire la carte entièrement. &lt;br /&gt;
Sur celle-ci nous avons ajouté des broches de connexion au besoin, un branchement Jtag et ICSP pour la programmation et la connexion SPI. &lt;br /&gt;
La carte est en attente de validation, puis validation.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: nrf52810_circuit2.jpg||center|400px|PCB carte nrf52810]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Révision matériel ===&lt;br /&gt;
&lt;br /&gt;
Pour la réalisation de nos composants électroniques, il nous a fallu faire une révision des composants disponibles à l'école:&lt;br /&gt;
(les quantités indiquées ci-dessous pourront être augmentée si nécessaire,pour avoir dans l'idéal un module de chaque type de la manette, ici on se concentre sur BOUTON et JOYSTICK)&lt;br /&gt;
&lt;br /&gt;
'''Cartes Arduino:'''&lt;br /&gt;
* 4 capacite 22pF traversantes&lt;br /&gt;
* 2 resistances 10 kOhm traversantes (à récupérer)&lt;br /&gt;
* 2 oscillateurs quartz 16MHz traversante&lt;br /&gt;
* 2 atmega328p-pu et support&lt;br /&gt;
&lt;br /&gt;
'''Cartes nrf52810'''&lt;br /&gt;
* 6 capacités 100nF 0603&lt;br /&gt;
* 6 capacités 12pF 0603&lt;br /&gt;
* 2 capacités 4,7pF 0603&lt;br /&gt;
* 2 capacités 1µF 0603&lt;br /&gt;
* 2 capacités 100pF=0,1nF 0603 (à récupérer)&lt;br /&gt;
* 2 capacités 0,8pF 0603 (commande en cours)&lt;br /&gt;
* 2 inductance 3,9nH 0603 (commande en cours)&lt;br /&gt;
* 2 oscillateur quartz 32 MHz &lt;br /&gt;
&lt;br /&gt;
'''Cartes modules Boutons'''&lt;br /&gt;
* un sachet de broches mâles (qu'on utilisera également pour les autres cartes, à récupérer/acheté) &lt;br /&gt;
&lt;br /&gt;
Nous avons alors mis-à-jour la liste de composant située plus haut, ainsi que celle de la page IMA4 2017/2018 [https://projets-ima.plil.fr/mediawiki/index.php/Projets_IMA4_SC_%26_SA_2017/2018]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 7&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Programmation: connexion wifi RPi Zero W et Bootloader sur Atmega328p-pu ===&lt;br /&gt;
&lt;br /&gt;
Pendant cette semaine, nous avons continué la programmation et la configuration des Raspberry Pi 3 et Zero W. Concernant la configuration ssh, nous avons utilisé un téléphone en guise de point d’accès à la RPi Zero W en wifi.&lt;br /&gt;
Nous avons aussi directement configurer l'OS Jessie, utilisé pour la RPi Zero. On a modifié le fichier cmd.txt et ...pour pouvoir programmer un USB gadget sur le port OTG.&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;Ci-dessus expliquer fichiers&amp;lt;/span&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Nous avons également continuer les programmes de récupération de données : état des boutons et du joystick. Ces programmes sont appliqué sur l'atmega328p-pu standalone sur la plaque d'essai en attendant que le PCB soit opérationnel.&lt;br /&gt;
Pour pouvoir programmer l'atemega328p-pu comme une arduino UNO, il nous faut suivre plusieurs étapes :&lt;br /&gt;
&lt;br /&gt;
'''1.Flasher le Bootloader'''&lt;br /&gt;
Nous avons 2 Atmega328p-pu neufs, ainsi il nous faut flasher le bootloader sur chacun d'eux afin de pouvoir les utiliser et les programmer sur une breadboard dans un montage minimaliste arduino-standalone. &lt;br /&gt;
Pour cela, on peut utiliser une carte arduino UNO. On vérifie le port et le type de carte sélectionnés dans le menu &amp;gt;Outils. Sur cette carte on téléverse le fichier arduinoISP.ino qui se trouve dans les exemples en étant en progrmamateur AVr ISP mkll (&amp;gt;outils&amp;gt;programmateur) &lt;br /&gt;
Puis on met l'atmega328p-pu qui nous intéresse sur le suppor socket de la carte. On change de nouveau le programmateur pour Arduino as ISP et on fait &amp;gt;tools&amp;gt;burn bootloader, soit &amp;gt;graver la sequence d'initialisation.&lt;br /&gt;
Ces étapes faites, on peut retirer notre microcontroleur et le replacer correctement dans le montage. &lt;br /&gt;
&lt;br /&gt;
'''2.Programmation atmega328 sur breadboard'''&lt;br /&gt;
Une fois l'atmega328p-pu préparé, on peut le programmer. On peut le faire simplement à l'aide de la carte arduino UNO utilisée précédemment.On branche les Tx et Rx en commun ainsi que le reset, le GND et le VCC.&lt;br /&gt;
&lt;br /&gt;
Nous avons réaliser des codes basiques tels que le clignotement d'une led rouge ou encore l'affichage de &amp;quot;hello world&amp;quot; sur le moniteur série pour vérifier la bonne fonctionnalité du montage. Cela fait nous avons pu écrire sous Arduino IDE le code de lecture des états.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: montage_BB_test.jpg||left|200px|programmation modules arduino sur breadboard]]&lt;br /&gt;
&lt;br /&gt;
===Electronique : soudure carte de test modules ===&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons déja vu lors de la réalisation des PCB, si l'on souhaite programmer un atmega328p-pu en bootloader, le montage est simple. Il peut être minimaliste en utilisant une arduino UNO, un atmega328, une breadboard et 3 composants: 1 quartz 16MHZ crystal, 1 résistance 10kOhm et 2 capacitors céramiques de 22pF.&lt;br /&gt;
Durant la semaine 7, nous avons soudé les composants traversants de la carte électronique correspondant à ce montage ainsi que le PCB du bouton.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 8&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Programmation ===&lt;br /&gt;
Après moult recherche sur les différents site web bien fournis pour le coups on as pu trouvé une amorce à la programmation de l'OTG via un script qui agit au niveau du kernel dans le sous dossier usg_gadget. Ce script donne les informations nécessaires pour pouvoirs échangé les données.&lt;br /&gt;
Avec le script trouvé et les informations des sites web décryptant les trames de la manette, on a toujours pas réussit à faire passer notre RPi Zero W pour une manette de PS4. Néanmoins il nous manque la trame HID complète de la manette pour avoir un test effectif.&lt;br /&gt;
&lt;br /&gt;
===Electronique : Correction soudure et soudure CMS===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avions souhaité programmer la carte électronique atmega328p-pu. Cependant, nous avons réaliser que nous avions fait une erreur lors de l'envoie du PCB à la production. En effet, celui-ci avait été fait en Top sur le logiciel Fritzing et non en Bottom. Hors nous avions soudé les composants (durant la semaine 7) comme pour un circuit imprimé en bottom, l'atmega328p-pu se retrouve alors inversé par rapport aux pistes. &lt;br /&gt;
Comme solution, nous avons choisi de souder un deuxième support pour l'atmega328 de l'autre coté de la carte avant de la refaire au propre. En effet, avant de la refaire il nous faut vérifier si la carte est bien programmable. &lt;br /&gt;
Une fois cela fait nous avions pu programmer la carte mais, nous avions également réalisé la pin 2 de l'atmega328 était prise par le bouton poussoir. Or, nous avons besoin des pin 2 et 3 pour le RX et TX permettant la programmation de l'atmega à partir d'une arduino, les pistes branchement RX-TX n'ont également pas été prévus pour le téléversement des programmes sur la carte. Il nous faut alors couper une piste et souder des câbles pour utiliser toutes les pistes souhaitées. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: correction_proto_PCB.jpg||right|300px|PCB arduino correction]]&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons également souhaité souder les CMS et le composant bluetooth nrf52810 sur la carte imprimé et reçu lors de la semaine 7. Pour cela, nous avons convenu de travailler dans la C202 durant la séance du mercredi. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: PCB_nrf52810.jpg||left|400px|carte electroniques imprimées]]&lt;br /&gt;
&lt;br /&gt;
====Comment souder des CMS ?====&lt;br /&gt;
&lt;br /&gt;
les CMS sont des composants montés en surface c'est à dire qu'ils sont montés du même côté que les pistes cuivrées (à l'opposé des composants traversants) et sont de petite tailles souvent de l'ordre du millimètre. La taille est déterminée par 4 chiffres : les 2 premiers pour la longueur et les 2 derniers pour la largeur. On a du 1206,0805,0603 ou encore 0402. Il est même possible de trouver plus petit. A l'école nous utilisons souvent du 0603, c'est le cas de nos composants.&lt;br /&gt;
Pour souder des CMS 0603, il nous faut utiliser une autre méthode qui n'est pas le fer à souder :&lt;br /&gt;
# Préparer la veille la pâte à braser la veille (dans une seringue)&lt;br /&gt;
# Gommer la carte pour éviter l'oxydation (attention à ne pas retirer les miettes de gomme en soufflant dessus) &lt;br /&gt;
# Appliquer avec la seringue la pâte sur les empreintes et piste souhaitées. Pour les endroits difficile à atteindre ou avec 2 pistes proches les unes des autres, il est possible de mettre la même goutte de pâte sur les 2 pistes. Cela de causera pas de court-circuit par la suite. En effet, la pâte est composée d’alliage qui sous la chaleur va se fluidifier et se coller uniquement aux pistes métallique. Le reste fondera sous la chaleur du four.&lt;br /&gt;
# Appliquer les CMS sur la pâte au fur et à mesure (attention ! ne jamais toucher les CMS avec les doigts, tjrs utiliser une pince)&lt;br /&gt;
# Mettre au four&lt;br /&gt;
&lt;br /&gt;
====Bilan soudure nrf52810====&lt;br /&gt;
&lt;br /&gt;
Cependant, une fois le matériel nécessaire préparé, et la pâte mise sur les pistes souhaitées, au moment de déposer le composant, nous avons réalisé que celui-ci était beaucoup plus petit que l'empreinte sur le PCB. Il s'agit d'un composant boitier QFN48. Fritzing ne proposant au plus proche des boitiers QFN24 ou LQFP48, celui-ci a basculé automatiquement pour un boitier LQFN48, de dimension plus grande. Face à ce manque de vigilance, nous avions cependant commencer par le nrf52810 (composant concerné) évitant ainsi de gaspiller d'autres CMS. &lt;br /&gt;
Nous avons souhaité refaire la carte sous Altium à partir des fichiers fournis par le concepteur (chose que nous avons commencé à faire aux alentours de la semaine 5) &lt;br /&gt;
Après la réalisation du schématic, et de la modification des empreintes de capacités, inductances et autres composants de 0402 à 0603. Notre matériel ne permettant que des empreintes 0603.&lt;br /&gt;
 &lt;br /&gt;
Lors du routage, une erreur de chevauchement des pistes est notifiée par Altium au niveau du nrf52810. Celles-ci ne présentent pas d'angles et sont déjà de taille 8mil, il nous faut alors passer les pistes en 6mil. Mais 8mil est la taille minimale pour la production à Polytech, nous avons regardé pour envoyer les cartes à faire ailleurs mais le 6mil n'est pas beaucoup conseillé. De plus, il n'est peut-être pas judicieux de continuer avec le composant microcontrôleur-bluetooth Nrf52810 qui prend du temps, donc la carte est difficilement réalisable et peut-être très long à programmer. &lt;br /&gt;
&lt;br /&gt;
Ainsi en cette fin de semaine, nous avons décider face à l'avancer du projet de laisser les nrf52810 de coté et de les remplacer par des modules sans fils plus simples d'utilisation et complets. Ainsi nous aurions plus de chance d'avoir une connexion sans fils entre les modules. Nous pourrions par exemples utiliser des Xbee, des modules Rf...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 9&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation: PS4 et 1er Test SPI sur atmega328p====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
Les premiers tests sur Windows ne nous donner pas satisfaction. En effet, l'ordinateur détectait bien le nouvel appareil avec son nom mais l'origine rester inconnue. &lt;br /&gt;
&lt;br /&gt;
Lors des tests sur Linux on a pu voir des erreurs via la commande 'dmesg' :&lt;br /&gt;
&lt;br /&gt;
 [193229.758782] usb 4-1.2: new high-speed USB device number 6 using ehci-pci&lt;br /&gt;
 [193230.270780] usb 4-1.2: new high-speed USB device number 7 using ehci-pci&lt;br /&gt;
 [193235.510842] usb 4-1.2: device descriptor read/64, error -110&lt;br /&gt;
 [193251.127043] usb 4-1.2: device descriptor read/64, error -110&lt;br /&gt;
 [193251.315043] usb 4-1.2: new high-speed USB device number 8 using ehci-pci&lt;br /&gt;
 [193256.503135] usb 4-1.2: device descriptor read/64, error -110&lt;br /&gt;
 [193272.119331] usb 4-1.2: device descriptor read/64, error -110&lt;br /&gt;
 [193272.307331] usb 4-1.2: new high-speed USB device number 9 using ehci-pci&lt;br /&gt;
 [193282.999473] usb 4-1.2: device not accepting address 9, error -110&lt;br /&gt;
 [193283.079485] usb 4-1.2: new high-speed USB device number 10 using ehci-pci&lt;br /&gt;
 [193293.751588] usb 4-1.2: device not accepting address 10, error -110&lt;br /&gt;
 [193293.751771] usb 4-1-port2: unable to enumerate USB device&lt;br /&gt;
 [193387.196861] usb 4-1.2: new high-speed USB device number 11 using ehci-pci&lt;br /&gt;
 [193392.440941] usb 4-1.2: device descriptor read/64, error -110&lt;br /&gt;
 [193407.933152] usb 4-1.1: new high-speed USB device number 12 using ehci-pci&lt;br /&gt;
 [193413.177227] usb 4-1.1: device descriptor read/64, error -110&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Modules Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
Une carte PCB arduino fonctionnant, nous pouvons la programme pour simuler un module. Celle-ci a été designée afin de s'adapter au module que l'on souhaite. Il suffit de brancher le bouton, le joystick ou autre élèment de manette souhaité.&lt;br /&gt;
Cette semaine ci, nous avons alors configurer la partie communication SPI pour l'arduino.&lt;br /&gt;
&lt;br /&gt;
'''Que voulons-nous faire avec les atmegas ?''' &lt;br /&gt;
Les cartes électroniques atmega328p vont nous permettre de recevoir les requêtes SPI envoyées par la raspberry pi et d'y répondre. La Raspberry enverra un message, par exemple &amp;quot;1&amp;quot;, et l'Arduino lira alors l'état du module qui lui est connecté. Une fois l'état récupéré elle le renvoie à la raspberry pi.&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons programmé l'atmega afin qu'il soit en esclave, qu'il reçoive un de la RPi &amp;quot;1&amp;quot; et retourne une valeur sauvegardé &amp;quot;int envoi&amp;quot;. Nous avons également commencé les tests pour la lecture de l'état d'un bouton (d'après les tests réalisés les semaines précédentes).&lt;br /&gt;
&lt;br /&gt;
'''Code'''&lt;br /&gt;
Comme nous l'avons vu précedement lors de nos recherches (semaines 1 à 4) : &lt;br /&gt;
La communication SPI nécessite l'utilisation des pins: &lt;br /&gt;
&lt;br /&gt;
MOSI -&amp;gt; GPIO11 //PB3  //master OUT to the slave IN&lt;br /&gt;
MISO -&amp;gt; GPIO12 //PB4 //slave OUT to the master IN&lt;br /&gt;
SCLK -&amp;gt; GPIO13 //PB5 //serial clock&lt;br /&gt;
SS -&amp;gt; GPIO10   //PB2  //slave select&lt;br /&gt;
&lt;br /&gt;
Il faut également paramétrer l'atmega328p en Slave. On note que dans un premier temps, le programme sera codé avec l'arduino IDE (fichiers .ino). Une fois l'ensemble SPI RaspberryPi-Arduino fonctionnant, on remplacera ces codes par du langage C ou C++.&lt;br /&gt;
&lt;br /&gt;
Pour faire la connexion SPI sur l'atmega328p,  on utilise la librairie arduino SPI.h, on a alors directement les fonctions nécessaires intervenant sur les registres souhaités : SPCR (spi control register), SPSR (spi status register) et SPDR (spi data register). &lt;br /&gt;
 &lt;br /&gt;
  #include &amp;lt;SPI.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il est important d'initialise d'abord le setup et on active le port série pour pourvoir utiliser le moniteur série. (Cela servira à verifier la valeur envoyée par la RPi) &lt;br /&gt;
&lt;br /&gt;
 void setup (void)&lt;br /&gt;
 {&lt;br /&gt;
   Serial.begin (9600);  &lt;br /&gt;
   pinMode(MISO, OUTPUT);  //configuration en esclave *master in slave out*&lt;br /&gt;
   pinMode(buttonPin,INPUT);  //config pin bouton&lt;br /&gt;
   // turn on SPI in slave mode&lt;br /&gt;
   SPCR |= _BV(SPE);&lt;br /&gt;
   // preparation interruptions&lt;br /&gt;
   pos = 0;   // buffer empty&lt;br /&gt;
   process_it = false;&lt;br /&gt;
   // activation interruptions&lt;br /&gt;
   SPI.attachInterrupt();&lt;br /&gt;
 }  &lt;br /&gt;
 &lt;br /&gt;
On oublie pas de déclarer les interruptions afin de bien lire la requête reçue. &lt;br /&gt;
 &lt;br /&gt;
// SPI interrupt routine&lt;br /&gt;
ISR (SPI_STC_vect)&lt;br /&gt;
{&lt;br /&gt;
  byte c = SPDR;  // grab byte from SPI Data Register&lt;br /&gt;
  // add to buffer if room&lt;br /&gt;
  if (pos &amp;lt; sizeof buf)&lt;br /&gt;
    {&lt;br /&gt;
    buf [pos++] = c;&lt;br /&gt;
    // example: newline means time to process buffer&lt;br /&gt;
    if (c == '\n')&lt;br /&gt;
      process_it = true;&lt;br /&gt;
    }  // end of room available&lt;br /&gt;
}  // end of interrupt routine SPI_STC_vect&lt;br /&gt;
&lt;br /&gt;
Dans la loop main, on traite la requête et on utilise '''SPI.transfer(envoi);''' pour transferer à la RPi les données souhaitées. &lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons également commencé des programmes de test SPI pour la RPi. Il s'agit principalement de programmes de tests tout faits permettant de vérifier la connexion entre cette dernière et l'arduino. Par exemple, la RPI envoie &amp;quot;bonjour&amp;quot; et l'arduino lui retourne ce qu'elle reçoit, soit &amp;quot;bonjour&amp;quot;. Sans succés alors.&lt;br /&gt;
&lt;br /&gt;
====Electronique : Fritzing révision====&lt;br /&gt;
&lt;br /&gt;
Lors de la semaine, le modèle PCB de la carte arduino a été réalisé de nouveau sous fritzing avec les broches et connections manquantes. Nous avons également revu la configuration du bouton reset  et ajouté une led d'état de l'alimentation. Nous avons ainsi envoyé deux cartes identiques à la réalisation.&lt;br /&gt;
La carte déjà soudée lors des derniers jours fonctionnant, elle nous sert de prototype de programmation. Nous pouvons ainsi avancer à la fois sur la programmation des modules mais aussi sur leur réalisation. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 10&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation : PS4 et SPI sur RPi====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
Cette semaine, pour tester la prise OTG nous avons décider de lancer un script qui est habituellement utilisé. Nous avons choisi le script Serial Adapter qui est censé permettre de se connecter à la RPi Zero W en SSH via ce port. &lt;br /&gt;
Après quelque modifications et plusieurs petits bugs, nous avons réussir à faire fonctionner le ssh via le port OTG. Donc le problème était le même, notre script mélangé avec les informations sur la PS4 n'était toujours pas fonctionnel.    &lt;br /&gt;
&lt;br /&gt;
'''Modules Raspberry PI et SPI'''&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, pour la partie Atmega328p-Modules, nous nous sommes concentrés sur la programmation de la communication SPI avec la raspberry pi. Cette semaine a permis une étude plus approfondit sur le fonctionnement pour la RPi. &lt;br /&gt;
&lt;br /&gt;
On rappelle, comme vu des semaines 1 à 4, pour la RPI3 (tout comme la RPi Zero W) utilise les broches : SCLK (23), MISO(21), MOSI (19) et SPI CS0 (24), SPI CS1 (26). &lt;br /&gt;
On la programme en Master. A l'aide des fichiers tests d'inspiration, on pourra directement programmer la RPi en C. Lors de la réalisation du code, il y a 3 étapes : l'initialisation/parametrage en SPI pour être maître, l'envoie de la requête puis la réception de données en retour. &lt;br /&gt;
&lt;br /&gt;
Programmant en C, il ne faut pas oublier les librairies suivantes :&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;getopt.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;sys/ioctl.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/types.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/spi/spidev.h&amp;gt;   //pour SPI&lt;br /&gt;
&lt;br /&gt;
On va déclarer des variables globales permettant le paramétrage :&lt;br /&gt;
&lt;br /&gt;
 static const char *device = &amp;quot;/dev/spidev0.0&amp;quot;;  //si on veut CS0 pour atteindre notre SS&lt;br /&gt;
 static uint8_t mode;       //mode est par défaut à 0&lt;br /&gt;
 static uint8_t bits = 8;    //bits par mot échangé&lt;br /&gt;
 static uint32_t speed = 500000;  &lt;br /&gt;
 static uint16_t delay;&lt;br /&gt;
&lt;br /&gt;
Dans notre main, on ouvre le port (la connexion) au device souhaité,  on vérifie les paramètres (registres, connexions...) puis exécute la fonction transfer(fd). transfer(fd) transmet la requête et s'occupe de la réception. &lt;br /&gt;
&lt;br /&gt;
 fd = open(device, O_RDWR);&lt;br /&gt;
 transfer(fd);&lt;br /&gt;
 close(fd);&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 11&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation: PS4, SSH et tests SPI (RPi3&amp;amp;Atemga328p)====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Raspberry PI, Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
Afin de facilité la programmation en utilisant Ethernet, nous avons installer et configuré la RPi pour l'utiliser en SSH depuis les ordinateurs de la E306. En effet, SSH permet de se connecter à distance sur une machine en utilisant un compte utilisateur de la dite machine. En mettant ssh, on pourra directement agir sur les fichiers de la raspberry depuis un terminal de notre PC. Pour cela, on a d'abord vérifier l'adresse IP de notre raspberry pi : 172.26.145.106 avec un écran mais on peut aussi utiliser les commandes ip a et ifconfig. Puis activer le ssh sur la raspberry pi. &lt;br /&gt;
On modifie alors le fichier config.txt mais également etc/network/interfaces pour configurer la bonne interface Ethernet sur la raspberry pi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: configSSH_raspi.png||left|300px|config ssh ethernet]]&lt;br /&gt;
&lt;br /&gt;
Il nous suffit alors de taper la commande : ssh pi@172.26.145.106  pour accéder à notre RPi. &lt;br /&gt;
&lt;br /&gt;
Nous avons continué à réaliser la communication SPI avec des tests entre une arduino UNO et la RPI3. Nous avons commencé par des tests simples inspirés des études de deux semaines précédentes et modulés selon notre utilité.  &lt;br /&gt;
Nous arrivons alors à lire l'état envoyer &amp;quot;bonjour&amp;quot; et recevoir &amp;quot;ça va&amp;quot; ou encore &amp;quot;1&amp;quot; et recevoir &amp;quot;3&amp;quot;. Il faut noter que le SPI échange des trames, la RPI reçoit alors des hexadécimaux. &lt;br /&gt;
Nous avons alors continué pour recevoir l'état du bouton ou du joystick lors de l'envoie de &amp;quot;1&amp;quot; sur l'Arduino328p. La semaine prochaine nous testerons ces même codes fonctionnels sur les cartes atmeg327p. &lt;br /&gt;
&lt;br /&gt;
A la fin de cette semaine, nous avons alors des codes Arduino-SPI (.ino) et des codes Raspberry-SPI (.c) permettant l'échange de données. Le but est maintenant de l'adapter aux cartes imprimées et de le rendre pleinement fonctionnel pour plusieurs cartes à la fois, puis ajouter une boucle de vérification en continue jusqu'à une deuxième requête de la RPi.&lt;br /&gt;
&lt;br /&gt;
====Electronique: réalisation au propres des PCB modules====&lt;br /&gt;
&lt;br /&gt;
Suite à une nouvelle erreur de réalisation cartes électronique, nous avons  refait et renvoyé à nouveau les cartes imprimées atmega328p.&lt;br /&gt;
Nous les souhaitons au propre pour une version finale. Une fois celle-ci imprimées nous pourrons en avoir 3 , un pour chaque module. Les cartes étaient bien imprimées en bottom mais lors du passage des traversants de bottom à top, le logiciel ne les a pas fait miroiter. Par manque d'attention nous avons alors envoyé les fichiers gerber pour des cartes ayant les composants du même coté que la couche de cuivre. &lt;br /&gt;
Les cartes électroniques actuelles sont alors correctes et fonctionnelles mais difficile à souder. Pour eviter les erreurs et continuer sur des prototypes de carte nous préférons attendre en nous concentrant sur la programmation PSI de la Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 12&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Raspberry PI, Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
-  réflexion: penser à faire boucler sur l'arduino une fois la requête reçu, ça veut dire que la manette est ON et donc vérifier continuellement les modules sur chaque atmega.&lt;br /&gt;
- SPI raspberry pi - arduino recuperation état du bouton avec les cartes modules  (/!\ récuperation à faire dans une variable) &lt;br /&gt;
&lt;br /&gt;
-SSH perso &lt;br /&gt;
adresse Rasppi: 192.168.137.10&lt;br /&gt;
&lt;br /&gt;
====Electronique: Finalisation soudure Modules====&lt;br /&gt;
&lt;br /&gt;
Soudure au propre et finale d'une carte atmega328p et donc envoie pour la réalisation de 2 autres cartes similaires et récupération de matériel&lt;br /&gt;
Soudure des 2 autres cartes, + tests sur les états = fonctionnelles.&lt;br /&gt;
On a donc bien 3 cartes pour les 3 modules de types différents (1 bouton, 1 joystick, 1 gachette)&lt;br /&gt;
PCB pour les 2 joysticks (qui serviront de thumbstick et gachette)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 13 et plus&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
====Electronique====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
(à mettre rapport + git + drive)&lt;br /&gt;
&lt;br /&gt;
=Datasheets=&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=55392</id>
		<title>IMA4 2017/2018 P35</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=55392"/>
				<updated>2018-05-05T20:03:50Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : /* Programmation: PS4 et 1er Test SPI sur atmega328p */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Présentation générale: Manette modulable&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Description&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Tout le monde joue aux jeux vidéo cependant, les manettes ne sont pas adaptées aux personnes ayant un handicap pouvant toucher les bras ou les mains.&lt;br /&gt;
C’est le cas, de plusieurs patients dans les centres de soins et de rééducation.&lt;br /&gt;
&lt;br /&gt;
Pour ce projet IMA4, nous travaillerons avec le centre SSR (soin de suite et de réadaptation) Marc Sautelet de Villeneuve d’Ascq.&lt;br /&gt;
Un adolescent, patient de Marc Sautelet, est passionné par les jeux vidéo. En effet, ayant perdu la motricité d’une partie de son corps, il ne peut pas jouer à deux mains. Pour cela, il bloque la manette entre son épaule et son coude, usant de la mâchoire et des doigts pour contrôler les&lt;br /&gt;
joysticks et les boutons. Cet exercice peut s’avérer fatiguant et pénible.&lt;br /&gt;
&lt;br /&gt;
Ainsi, nous chercherons à concevoir une manette PS4 adaptée au handicap de l’adolescent. &lt;br /&gt;
Cette manette devra aussi être adaptée pour d’autres patients présentant également des handicaps moteurs. Ainsi nous prendrons pour cibles: tous les patients du centre voulant jouer; et non pas que les enfants et adolescents.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Membre du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Transley Gracias et Camille Saad&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Cible&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Patient présentant un handicap moteur&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Période du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
janvier 2018 - mai 2018&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Partenaire/Client&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Centre SSR Marc Sautelet à Villeneuve d'Ascq&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Objectifs&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ce projet a pour objectif de créer un prototype de manette qui puisse interagir avec la console PS4 et dont le paramétrage se fait à l’aide d’une application mobile et/ou web. Cette manette devra suivre les demandes du patient ainsi que des aides-soignantes du centre, dans la mesure du possible.&lt;br /&gt;
&lt;br /&gt;
Plus précisément, pour le premier prototype, nous mettrons en œuvre l'utilisation de quelques boutons spécifiques: &lt;br /&gt;
&lt;br /&gt;
* Un joystick (type L/R)&lt;br /&gt;
* Quelques boutons poussoirs (type Croix/Triangle/Carré/Rond/R1/L1/Start/...)&lt;br /&gt;
* Des boutons gâchettes progressives (type L2/R2).&lt;br /&gt;
&lt;br /&gt;
Le but serait donc dans un premier temps de rendre fonctionnel un bouton de chaque type, puis de les multiplier une fois cela fait. Tous ces boutons réunis constituent une manette fonctionnelle.Ainsi, la manette sera ajustable, c’est à dire qu’elle devra s’adapter aux différents handicaps moteurs possibles.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Analyse du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Positionnement par rapport à l'existant&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre prototype aura une présentation unique par rapport à l’existant. En effet, les concurrents et produits existants ciblent pour la majorité un seul handicap. Cela&lt;br /&gt;
engendre une solution fermée à beaucoup de patients. Notre projet propose une mobilité des mouvements et également un choix large dans la composition et le&lt;br /&gt;
design de notre manette.&lt;br /&gt;
Le patient n’est pas retreint à jouer à une seule main, à utiliser beaucoup de force...Il y a moins de technique dans la manipulation et on ne joue pas avec une&lt;br /&gt;
manette adaptée uniquement pour un droitier ou un gaucher. Cependant, cela nous limitera peut-être dans le choix possible des types de jeux. Tout comme les autres&lt;br /&gt;
manettes adapté, l’utilisateur nécessitera un peu d’entrainement.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du premier concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Jouer aux jeux vidéo à une main n’est pas une idée d’aujourd’hui. En 1990, Nintendo propose le Power Glove. Mais il tombe très rapidement aux oubliettes suite à des problèmes techniques.&lt;br /&gt;
&lt;br /&gt;
Un autre gant a fait son apparition quelques années plus tard. Celui-ci, plus technique, il faut office de manette Play Station: le Reality Quest Power Glove.Cette idée de manette-gant, permet de jouer à la PS avec une seule main, elle a était conçue et présentée pour les E3, un salon d’exposition de gaming.Le gant est conçu pour contrôler l’équivalent des 14 boutons et 2 joysticks à l’aide d’une seule main. La « manette » est fixée dans la pomme de la main. L’utilisateur contrôle les mouvements verticaux et horizontaux en pivotant le poignet, et utilisent les 4 boutons d’action principaux et L1/R1 avec les doigts. Les autres boutons sont accessibles par un seul bouton rond contrôlé par le pouce.&lt;br /&gt;
La manette est adaptée pour beaucoup de jeux vidéo, dont les plus simples sont les jeux de voitures et de combats (arcade).&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec ce gant&lt;br /&gt;
*Design obligatoirement droitier&lt;br /&gt;
*Les boutons de contrôle sont peu sensibles et peuvent nécessiter de la force&lt;br /&gt;
*Design compliqué et nécessitant beaucoup d’entrainement.&lt;br /&gt;
&lt;br /&gt;
;Lien : https://www.youtube.com/watch?v=qV0SxSJDCYg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du second concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ben Heck, de son vrai nom Benjamin J.Heckendorn, est un concepteur de mods de consoles (mods pour modification, soit « manettes modifiées ») et une star&lt;br /&gt;
du net grâce à ses vidéos tutoriels.Il propose alors énormément de produits adaptés ou dérivés en guise de manettes.&lt;br /&gt;
Parmi les mods qu’il a réalisé, il a modifié une manette de PS4 afin de la rendre accessible à une personne ne pouvant jouer qu’à une main. Pour cela, il a déplacé les boutons en respectant l’ergonomie de la main valide et modifie les connexions. Il peut lui arriver de rajouter des boutons pour en remplacer un autre. Il réalise également le même système avec la Xbox. Sur la photo ci-dessous, il a adapté la manette pour un droitier.&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec cette ma&lt;br /&gt;
*Design obligatoirement droitier ou gaucher, une modification = une manette= une personne&lt;br /&gt;
*Besoin obligé du pouce et de l’index, même si avantage : 3 doigts nécessaire.&lt;br /&gt;
&lt;br /&gt;
;Lien :: https://www.youtube.com/watch?v=LieHIscadjk&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Scénario d'usage du produit ou du concept envisagé&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
La technologie est ,aujourd’hui, omniprésente dans notre vie. Les consoles de jeux ont envahies les maisons avec plus de 7 personnes sur 10 jouant aux jeux vidéos sur consoles en France (chiffre de l’Express). 0,18% des français sont handicapés cela représente 12 millions de français. Dans ce chiffre, 13,4% des personnes ont un handicap moteur. En 2017, les grands groupes comme Sony ou Microsoft avec respectivement PlayStation et Xbox ne permettent pas à tout le monde de jouer avec une manette. Les manettes sont prévues pour des personnes ayant leurs membres valides, plus précisément les mains et les bras.&lt;br /&gt;
&lt;br /&gt;
Après un accident de voiture, un jeune garçon a perdu la motricité d’un côté du corps. Passionné de jeux vidéo, il se retrouve avec des difficultés à jouer sur sa console PS4. Ingénieux, il utilise la manette en la coinçant entre son épaule et le creux du cou. Usant de la mâchoire et de sa main valide pour contrôler les joysticks et les boutons. L'exercice étant inconfortable et fatiguant il eu l’idée de proposer à des futurs ingénieurs de lui proposer une manette adaptée à son handicap. &lt;br /&gt;
&lt;br /&gt;
Les deux pré-ingénieurs ,avec leur tuteur, ont une idée révolutionnaire : La manette modulable ! Elle permettrait au jeune garçon, ainsi que d’autres joueurs, de pouvoir continuer de s’amuser ou même de commencer à jouer au jeux sur console. &lt;br /&gt;
Cette manette aidera fortement dans les centre de rééducation pour faire passer le temps et donner du plaisir à des personnes qui ne peuvent plus s’amuser avec leur console traditionnelle. Elle pourra aussi ouvrir de nouvelles possibilités pour certaines personnes qui n’auraient jamais essayé jusqu'à présent.   &lt;br /&gt;
Comme son nom l'indique, elle sera modulaire et s'adaptera à différents handicaps. Accompagnée de son application d’initialisation, elle sera accessible aussi bien aux enfants, patients, parents et aides soignantes.&lt;br /&gt;
&lt;br /&gt;
Quelques mois plus tard...Le jeune patient fan de Need For Speed, peut maintenant piloter sa voiture comme un vrai professionnel grâce à l'un des joysticks qu'il utilisera avec sa main valide et il pourra accélérer à des vitesses folles à l'aide de boutons poussoirs au niveau de son pied valide et gagner la partie. Son ami venu lui rendre visite, pourra en lieu et place des aides soignantes configurer à l'aide de la tablette (portable) la manette du patient. &lt;br /&gt;
Si le patient change de jeu pour Tekken et que la configuration des modules ne lui convient plus, il peut interchanger les éléments de la manette selon son envie et son confort. Ainsi il peut faire sauter son personnage, il utilisera un module bouton supplémentaire, qu'il actionnera avec le poing.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Fonctionnement&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Suite à une analyse fonctionnelle et à la formulation de notre projet, nous avons pu définir le fonctionnement de notre système. Notre produit, la manette, doit être accessible d’après nos objectifs à différents types de handicaps moteurs. Ainsi, l’idéal serait de concevoir une manette modulable afin qu’elle puisse s’adapter à toutes les situations. Ce n’est plus au patient de s’adapter à la manette mais à la manette de s’adapter au patient.&lt;br /&gt;
Cela signifie que la manette sera, dans la limite du possible et de la sensibilité du corps du patient, composée de plusieurs parties dites « modules » comportant un ou plusieurs actionneurs (boutons, joysticks, gâchettes...). Ces modules seront déplaçables afin d’être utilisé avec différents membres du corps : un doigt, une main,&lt;br /&gt;
une jambe ou même un pied. Il suffira de les connectés entre eux suivant l’organisation souhaitée, le Gameplay du jeu ou en fonction du handicap. Le tout sera relié à une application.&lt;br /&gt;
L’application sera alors mise en place pour connecter les différentes parties du point de vue software pour prérégler la manette en fonction du patient. Il pourra alors choisir les boutons en fonction du jeu, de ses mouvements mais aussi choisir la sensibilité.&lt;br /&gt;
&lt;br /&gt;
L’application et les modules devront être intuitifs et faciles d’utilisation. De cette manière des utilisateurs non avertis dans le domaine informatique ou jeunes pourront eux-mêmes gérer les connexions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Réponse à la question difficile&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
'''Question : Comment interconnecter les différents modules de la manette ?'''&lt;br /&gt;
&lt;br /&gt;
Il nous faut pour ce projet interconnecter les modules modélisant la manette qui seront connectés à la consoles PS4 via une Raspberry Pi 3.&lt;br /&gt;
Le choix de la Raspberry Pi 3 nous permet d'utiliser son module Bluetooth pour communiquer avec la PS4, ce choix est plus adaptée au projet que du filaire.&lt;br /&gt;
Concernant l'interconnexion des modules, nous travaillerons en deux étapes &amp;quot;preuves concept&amp;quot; : filaire et sans fils (Bluetooth).&lt;br /&gt;
&lt;br /&gt;
'''Objectif 1 : Preuve concept filaire'''&lt;br /&gt;
&lt;br /&gt;
Dans cette première partie de projet, nous souhaitons avoir une 1ère preuve de prototype rapidement. Nous nous concentrerons alors sur la communication entre la RPi3 et la PS4 ainsi que sur la conception des modules. Pour les modules, nous réaliserons des cartes électronique pour chaque module avec un micro-contrôleur. La communication filaire nous permettra d'interconnecter les modules à la RPi3 avec un bus SPI.&lt;br /&gt;
&lt;br /&gt;
'''Objectif 2: preuve concept sans fils'''&lt;br /&gt;
&lt;br /&gt;
Une deuxième étape du projet est la réalisation de la solution idéale sans fils. Celle-ci pourra commencer à être développée petit à petit en parallèle avec l'objectif 1. Le but ici, est d'interconnecter les modules en Bluetooth. Nous avons choisi le Bluetooth pour garder une connexion commune sur toute la chaîne. &lt;br /&gt;
Nous rajouterons alors un module bluetooth à chaque module de la manette. &lt;br /&gt;
&lt;br /&gt;
'''Objectif 3: possibilité d'adapter les boutons (capuchon en 3D)'''&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Préparation du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Cahier des charges&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
''Chef de projet:'' Alexandre Boé  &amp;lt;br&amp;gt;&lt;br /&gt;
''Responsables:'' Xavier Redon, Thomas Vantroys &amp;lt;br&amp;gt;&lt;br /&gt;
''Partenariat:'' Marc Sautelet (non etablie) &amp;lt;br&amp;gt;&lt;br /&gt;
''Elèves-ingénieurs:'' Camille Saâd, Transley Gracias &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Sujet :''' Manette modulable pour personne à déficience moteur compatible PlayStation 4 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objectifs principal (1er POC) : ===&lt;br /&gt;
Faire transmettre des informations issus des actionneurs (ex:boutons poussoires) via des arduinos jusqu’à la Raspberry Pi 3 en SPI.&amp;lt;br&amp;gt;&lt;br /&gt;
Envoyer les données reçues vers la PS4 en USB  &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objectifs secondaire (2e POC):===&lt;br /&gt;
Créer des modules avec un microcontrôleur et une puce bluetooth pour permettre une meilleurs flexibilité (c-àd pouvoirs avoir une meilleure ergonomie et une connexion sans fil) &amp;lt;br&amp;gt;&lt;br /&gt;
Connecter la Raspberry Pi 3 en Bluetooth à la PS4 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier: beteacorne.jpg||middle|600px|Bete a corne manette]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Choix techniques : matériel et logiciel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Liste de matériel :===&lt;br /&gt;
&lt;br /&gt;
'''Modules boutons/joysticks/gachettes'''&lt;br /&gt;
&lt;br /&gt;
3  Push buttons :&amp;lt;br&amp;gt;&lt;br /&gt;
- O X Y Carré R3 L3 &amp;lt;br&amp;gt;&lt;br /&gt;
- Guide PS &amp;lt;br&amp;gt;&lt;br /&gt;
- start/back &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 0,45€/unité TTC [https://www.gotronic.fr/art-bp-miniature-krs1273-16976.htm] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1  Thumbstick original: &amp;lt;br&amp;gt;&lt;br /&gt;
Joystick analogique 4 directions --&amp;gt; 4,25€/unité TTC [https://www.gotronic.fr/art-joystick-analogique-4-directions-19063.htm] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1 buttons trigger L1 L2 =&amp;gt; 1x Thumbstick original''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Cartes Atmega328p /connexion spi/'''&lt;br /&gt;
&lt;br /&gt;
3   Arduino UNO &amp;lt;br&amp;gt;&lt;br /&gt;
1   Arduino UNO atmega328p retirable &amp;lt;br&amp;gt;&lt;br /&gt;
4   capacite 22pF traversantes &amp;lt;br&amp;gt;&lt;br /&gt;
2   resistances 10 kOhm traversantes (à récupérer) &amp;lt;br&amp;gt;&lt;br /&gt;
2   oscillateurs quartz 16MHz traversante &amp;lt;br&amp;gt;&lt;br /&gt;
2   atmega328p-pu et support &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cartes module bluetooth nrf52810 '''&lt;br /&gt;
&lt;br /&gt;
6   capacités 100nF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
6   capacités 12pF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 4,7pF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 1µF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 100pF=0,1nF 0603 (à récupérer) &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 0,8pF 0603 (a acheter, commande en cours) &amp;lt;br&amp;gt;&lt;br /&gt;
2   inductance 3,9nH 0603 (a acheter, commande en cours) &amp;lt;br&amp;gt;&lt;br /&gt;
2   oscillateur quartz 32 MHz &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''' Connexions et autres '''&lt;br /&gt;
&lt;br /&gt;
1 Led RGB neopixel [https://www.adafruit.com/product/1734] &amp;lt;br&amp;gt;&lt;br /&gt;
1 Raspberry Pi 3 &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; ~36,23€/unité TTC [https://fr.rs-online.com/web/p/processor-microcontroller-development-kits/8968660/?src=raspberrypi] &amp;lt;br&amp;gt;&lt;br /&gt;
1 Raspberry Pi Zero W (commandée) [https://www.raspberrypi.org/products/raspberry-pi-zero-w/] &amp;lt;br&amp;gt;&lt;br /&gt;
6 Alimentations 5V ou 3,3V &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
par exemple, 12 piles de type CR2016 3V rechargeables ou 24 piles AAA 1,5 V rechargeables  &lt;br /&gt;
5 modules Bluetooth nrf de Nordic : nRF52810-QFAA-R &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 3,17€/unité + frais expédition  [https://www.mouser.fr/productdetail/nordic-semiconductor/nrf52810-qfaa-r?qs=sGAEpiMZZMve4%2FbfQkoj%252bG%2FosjLoe2oghFQwQllMrQ4%3D]&lt;br /&gt;
5 Lignes broches mâles &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logiciels:===&lt;br /&gt;
&lt;br /&gt;
- IDE arduino&lt;br /&gt;
- Altium&lt;br /&gt;
- FreeCAD ou Inkscape&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Liste des tâches à effectuer&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 1 : Gestion du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Définition des cahiers des charges fonctionnel et technique, choix d'orientation...&lt;br /&gt;
* Recherche techniques sur les différentes connexions possibles entre les modules, la RPi 3 et la console PS4&lt;br /&gt;
#Recherche connexion SPI entre les modules et la RPi3&lt;br /&gt;
# Recherche connexion bluetooth entre la RPi3 et la PS4&lt;br /&gt;
# Recherche connexion bluetooth pour les modules&lt;br /&gt;
# Recherche carte avec montage Atmega328P-PU et anticipation module bluetooth&lt;br /&gt;
* Détermination du matériel nécessaire&lt;br /&gt;
* Réflexion sur l'application&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 2: Réalisation du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Partie 1: Preuve concept manette en filaire'''&lt;br /&gt;
&lt;br /&gt;
* Conception de cartes électroniques pour 2 modules (/!\ prévoir modules bluetooth)&lt;br /&gt;
* Réalisation connexion SPI avec 2 modules : programmation des Atmega328p en liaison série. &lt;br /&gt;
* Si tests concluant, ajouter des modules jusqu'à en avoir 5 (1 pour chaque type de boutons) &lt;br /&gt;
* Connexion bluetooth entre la PS4 et la RPi3&lt;br /&gt;
* Réalisation du support des modules avec fixations possibles (imprimante 3D)&lt;br /&gt;
&lt;br /&gt;
'''Partie 2: Preuve concept manette en bluetooth'''&lt;br /&gt;
&lt;br /&gt;
* Ajout des modules bluetooth aux cartes électroniques&lt;br /&gt;
* Connexion bluetooth entre les modules&lt;br /&gt;
&lt;br /&gt;
'''Partie 3: Application Android : paramétrage de la manette'''&lt;br /&gt;
&lt;br /&gt;
* Créer une application sur tablette ou smartphone (Android) afin de configurer la manette aux besoins (inter-connexion des modules et console)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Calendrier prévisionnel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Date'''&amp;lt;/u&amp;gt;&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Tache à réaliser''' &amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
17/01/18-24/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Faire des recherches sur les différentes interconnexions du système : Bluetooth, RPi-Atmega328 (SPI), RPi-PS4&lt;br /&gt;
Continuer liste des taches, matériel, Début recherches + réflexion fixation support des modules&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Recherche technique connexion PS4-RPi3 et connexion SPI RPi3-Module + code&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18-07/03/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Réalisation 1er prototype (+ début prototype 2)&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
07/03/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Seance 7 :  Test prototype filaire&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
07/03/18-09/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Réalisation 2eme prototype + application Android&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
09/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Seance 14 :  Test prototype Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
14/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Video projet&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
15/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Finalisation projet et Rapport&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
16/05/18-17/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Soutenances Projet&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Réalisation du Projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Feuille d'heures &amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Voici le tableau d'heures du binôme:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Heures S11 !! Heures S12 !! Heures S13et+ !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 10&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 20min&lt;br /&gt;
|&lt;br /&gt;
| 15h20&lt;br /&gt;
|-&lt;br /&gt;
| Cherches techniques &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 18&lt;br /&gt;
|-&lt;br /&gt;
| Rédaction du wiki et rapport de projet&lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 30min&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| 30min&lt;br /&gt;
| 30min&lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
| 10h30&lt;br /&gt;
|-&lt;br /&gt;
| Programmation&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 3&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 7&lt;br /&gt;
| 8&lt;br /&gt;
| 6&lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
| 43&lt;br /&gt;
|-&lt;br /&gt;
| Cartes électroniques&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 6&lt;br /&gt;
| 8&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| 31&lt;br /&gt;
|-&lt;br /&gt;
| Application&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| Total Semaine&lt;br /&gt;
| 10&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 7&lt;br /&gt;
| 10h30&lt;br /&gt;
| 13&lt;br /&gt;
| 9&lt;br /&gt;
| 12&lt;br /&gt;
| 9h30&lt;br /&gt;
| 10h30&lt;br /&gt;
| 9&lt;br /&gt;
| 9h20&lt;br /&gt;
| &lt;br /&gt;
| '''117h50'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Prologue&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Avant la réalisation et conception d'un projet, il est important d'analyser celui-ci. Nous avons allons consacré le prologue à l'analyse fonctionnelle de la manette. Nous avons également eu une réflexion sur l'analyse technique, cela nous a permis de réaliser une liste de matériel. Il est important de définir les objectifs ainsi que les besoins afin de ne rien oublier. (Voir ci-dessus Analyse projet) &lt;br /&gt;
Nous avons également organisé notre travail, pour le partage de documents de recherches et la rédaction de compte-rendu final nous avons réalisé un google drive. Par la suite, nous créerons un projet Git. &lt;br /&gt;
&lt;br /&gt;
Durant ce temps, nous avons décidé de réaliser 5 modules. Les modules sont les différents boutons de la manettes qui nous pourrons placer selon nos choix (boutons modulaires) pour notre prototype projet pour chaque type des boutons d'une manette PS4. Ces modules devrons être connectés à la console et interconnectés. Le tout sera lié à une application Android. Suite à quelques recherches et nos analyses, nous avons décidé les points suivants :&lt;br /&gt;
&lt;br /&gt;
- On commencera avec 2 modules et on les multipliera par la suite. &lt;br /&gt;
- Les premiers tests sont réalisés avec des boutons petits pour assurer leur caractéristique &amp;quot;modulaires&amp;quot;, par la suite nous pourrons ajouter des capuchons de taille plus importante (imprimante 3D ou achat)&lt;br /&gt;
- Conception modules : réalisation de carte avec un microcontrôleur atmega328 programmable pour chaque module (anticiper le module Bluetooth) &lt;br /&gt;
- Projet en 2 parties : prototype filaire et prototype Bluetooth&lt;br /&gt;
# Prototype filaire : connexions entre les modules et la RPi3 en SPI, connexion Rpi3-PS4 en Bluetooth, avec l'application en filaire à la RPi3&lt;br /&gt;
# Prototype Bluetooth: connexion Bluetooth entre modules-RPi3-PS4-apllication&lt;br /&gt;
&lt;br /&gt;
[[Fichier: structuremanette.png||center|400px|Concept manette modulable]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 1&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous nous sommes concentrés les recherches afin de définir clairement le cahier des charges technique. Il s'agit des réalisations à mettre en œuvre pour les inter-connexions des éléments de la manette.&lt;br /&gt;
Ainsi, nous avons fait des recherches sur :&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI entre les modules (Atmega328p) et la RPi3===&lt;br /&gt;
&lt;br /&gt;
SPI: Serial périphérique interface BUS&lt;br /&gt;
&lt;br /&gt;
[[Fichier: yWGmW.png||right|200px|Concept manette modulable]]&lt;br /&gt;
Comme indiqué sur l'image ci-dessus, la Raspberry pi 3  peut communiquer en SPI avec ses broches CS0 (24), CS1 (26), SCLK (23), MISO (21), MOSI (19). Celles-ci permettent de communiquer avec un ou plusieurs esclaves (dans notre cas, des Atmega328p) en reliant directement les broches concernées de la RPi3 à celles des composants esclaves.&lt;br /&gt;
Chaque broche CS0 (24) ou CS1 (26) ne peut être connectée qu'à l'entrée SS (aussi appelé CS) d'un seul esclave.&lt;br /&gt;
C'est a dire que chaque CS est lié à un esclave afin de choisir avec lequel la communication est établie à un moment donné, et les MISO sont reliées entre elles en cascade, de même pour les SCLK et les MOSI. On peut noter que le maître impose la fréquence d’horloge et sélectionne l’esclave auquel les données sont envoyées.  8 MHz est le plus rapide supportable a 3,3V&lt;br /&gt;
&lt;br /&gt;
[[Fichier: fonctionnementSPI.png||right|200px|Connexion SPI multi-esclaves]]&lt;br /&gt;
&lt;br /&gt;
Voici un schéma du fonctionnement souhaité : &lt;br /&gt;
&lt;br /&gt;
Comme nous souhaitons avoir 5 modules environ il nous faudra rajouter un composant en plus afin d'augmenter les possibilités de sélection, par exemple des démultiplexeurs.&lt;br /&gt;
Dans un premier temps nous essaierons avec 2 esclaves, puis on augmentera le nombre. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Connexion Bluetooth PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Les recherches portent également sur la connexion entre la manette PS4 et la console. Elles concernent le protocole de communication via Bluetooth&lt;br /&gt;
&lt;br /&gt;
Caracteristique pour la PS4:  Bluetooth®v4.0, Qualcomm Atheros AR3002 Buetooth LE: 2,4-2,5 GHz  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caracteristique de la connexion : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Vitesse de transmission &amp;gt;&amp;gt; 3 Mbit/s   8N1 &lt;br /&gt;
*Relevé tous les 1.3 millisecond (peut-être) &lt;br /&gt;
*Chaque manette à une adresse unique BD_ADDR qui correspond à l’adresse MAC de la carte Réseau&lt;br /&gt;
*Protocole de détection est le SDP basé sur une emission reception PDU&lt;br /&gt;
*L’Attribut ID est representer en TLV Type Length Value &lt;br /&gt;
*Communication HCI ACL Data Packet &lt;br /&gt;
&lt;br /&gt;
===Rélisation des cartes électroniques===&lt;br /&gt;
&lt;br /&gt;
matériel nécessaire pour un PCB : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*breadboard&lt;br /&gt;
*câbles&lt;br /&gt;
*1 x 10k Ohm résistance&lt;br /&gt;
*Quartz 16Mhz clock crystal&lt;br /&gt;
*2 x 22 pF capaciteurs&lt;br /&gt;
*Atmega328P-PU&lt;br /&gt;
&lt;br /&gt;
Ressources: &lt;br /&gt;
[[https://www.arduino.cc/en/Main/Standalone]]&lt;br /&gt;
[[http://www.eprojectszone.com/atmega-328-pu-standalone/]]&lt;br /&gt;
[[https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 2&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la semaine deux et durant la séance, nous avons continué et approfondie nos recherches sur le projet. Nous avons pu ainsi affiner nos taches de réalisation et donc notre cahier des charges.&lt;br /&gt;
&lt;br /&gt;
===Connexion aux modules: SPI et Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Green&amp;quot;&amp;gt; CORRIGER&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
voir https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018#Configuration_du_syst.C3.A8me_embarqu.C3.A9&lt;br /&gt;
&lt;br /&gt;
(sudo apt-get install pi-bluetooth)&lt;br /&gt;
&lt;br /&gt;
''connexion sur la raspberry par ssh:''&lt;br /&gt;
 su&lt;br /&gt;
 update-rc.d ssh enable&lt;br /&gt;
 invoke-rc.d ssh start &lt;br /&gt;
 ssh pi@172.26.79.1XX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''bluetooth''&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
 agent on&lt;br /&gt;
 default-agent&lt;br /&gt;
 scan on&lt;br /&gt;
 pair [device Bluetooth address]  (exemple: pair XX:XX:XX:XX:XX:XX )&lt;br /&gt;
&lt;br /&gt;
''NOUVELLE REFLEXION : Connexion SPI entre les modules (Atmega328p) et la RPi3 --&amp;gt; MODULES BLUETOOTH''&lt;br /&gt;
&lt;br /&gt;
Si multi-esclaves= plusieurs modules : &lt;br /&gt;
Il faut ajouter des sélections pour les SPI → démultiplexeurs OU ne pas utiliser les CS0 et CS1, et plutôt des pins entrée/sortie de la RPi3 lié au SS comme ça on choisit direct le module esclave voulu.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' Nous avons étudié à nouveau la datasheet de notre module bluetooth nrf de Nordik. Le module bluetooth comporte  déjà un microprocesseur !&lt;br /&gt;
Un module plutôt peut donc jouer le rôle de notre atmega328p. Il n'y a alors pas besoin de réaliser des cartes électroniques de type arduino standalone. Nos PCB regrouperont alors uniquement l'alimentation, un actionneur (bouton, joystick), le module bluetooth et les broches de connexion si besoin... &lt;br /&gt;
&lt;br /&gt;
Cette séance nous a alors permise de revoir entièrement le matériel nécessaire. Notre liste de matériel nous semble alors plus réfléchie et limitée au nécessaire. &lt;br /&gt;
&lt;br /&gt;
===Connexion Bluetooth PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Suite à nos recherches de la semaine précédente, nous avons sélectionné deux sites bien renseignés : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;SITES&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ils nous ont permis de comprendre la communication entre la manette et la console. En effet, ils nous expliquent les échanges de trames Bluetooth. &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;EXPLICATIONS 1 exemple &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 3 : Début premier prototype&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI RPi3-Arduino===&lt;br /&gt;
&lt;br /&gt;
Comme vu durant les semaines précédentes, nous souhaitons réaliser une connexion Multi-esclaves en SPI entre la Raspberry pi et plusieurs modules.&lt;br /&gt;
Cette semaine nous avons vu que la réalisation de notre premier prototype doit aller vite. Il ne nous est pas nécessaire d’attendre les modules bluetooth si il nous faut dans cette partie uniquement utiliser son microprocesseur. Ainsi pour chaque module nous utilisons une arduino UNO. Nous réaliserons les programmes en C afin de pouvoir les réutiliser avec les modules bluetooth par la suite. &lt;br /&gt;
Une fois la connexion réalisable nous adapterons les programmes aux modules bluetooth Nordik. En effet, ceux-ci comporte déjà un microprocesseur, le module peut jouer le rôle de notre atmega328p. Il n'y a aurait alors pas besoin de réaliser des cartes électroniques arduino standalone sur PCB, mais directement des cartes électronique avec le module et le module voulu (bouton, joystick...) et l'alimentation. &lt;br /&gt;
Durant la séance nous avons alors revu la liste de matériel nécessaire. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: prototype1.jpeg||center|600px|connexion filaire prototype 1 filaire arduino]]&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous avons recherches des exemples de codes et de librairies pour Arduino SPI et RaspberryPI SPI. &lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé le programme de la connexion SPI pour l'arduino et récupéré les bibliothéques SPI.h avec SPI.c. Nous nous sommes alors concentrer à les comprendre, pour pouvoir l'utiliser. &lt;br /&gt;
&lt;br /&gt;
===Réalisation du projet Git===&lt;br /&gt;
&lt;br /&gt;
Création du projet IMA4_Projet35_ManetteModulable sur Git et partage de celui-ci. &lt;br /&gt;
Les premiers dossier crées cette la séance :&lt;br /&gt;
-Arduino (connexion SPI arduino) : ProtoSpi.c + dossier librairie SPI + Makefile&lt;br /&gt;
-RPI (dossier codes pour Rpi) &lt;br /&gt;
-Readme.md&lt;br /&gt;
Ces dossiers seront amenés à être modifiés au cours des séances. &lt;br /&gt;
&lt;br /&gt;
===Protocole Bluetooth PS4===&lt;br /&gt;
&lt;br /&gt;
Suite à l'étude des trames Bluetooth, on a pu voir que ces dernières étaient incomplètes. Le modèle de communication étant propriétaire, on n'y a pas accès directement. Cela nous empêche donc de mettre en oeuvre cette communication. &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt; Déveloper&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On a décidé de commencer par une connexion USB (pour laquelle on dispose de toutes les informations) celle-ci étant plus complète.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 4&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Pour le prototype 1 FILAIRE nous réaliserons les étapes suivantes :&lt;br /&gt;
&lt;br /&gt;
#Réalisation du programme SPI pour arduino&lt;br /&gt;
#Réalisation du programme SPI pour la RPi&lt;br /&gt;
#Connexion USB avec la PS4 ou ordinateur&lt;br /&gt;
#Réalisation de cartes électroniques atmega328p-pu standalone (remplacer les Arduinos) &lt;br /&gt;
#Remplacer les &amp;quot;PCB arduino&amp;quot; par le module bluetooth et adapter la connexion&lt;br /&gt;
#Conception 3D de la délimitation 1 axe pour le joystick &amp;quot;gâchette&amp;quot;&lt;br /&gt;
#Réalisation de l'application Androïde.&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées nous auront alors une preuve de concept filaire et nous pourrons alors passer à une connexion bluetooth. &lt;br /&gt;
Le passage à la connexion bluetooth sera le deuxième prototype et le cas idéal de la réalisation de la manette modulable. &lt;br /&gt;
&lt;br /&gt;
===Mise à jour Matériel===&lt;br /&gt;
&lt;br /&gt;
- Modéliser les boutons gâchettes L1/2 R1/2 de la manette PS4 (boutons sensibles à la pression) --&amp;gt; un joystick dont nous bloquerons un axe (imprimante 3D)&lt;br /&gt;
- Remplacer la RPi 3 par une Rpi zero W qui nous permettrait de réaliser plus facilement une connexion USB tout en gardant l'avantage du bluetooth. &lt;br /&gt;
- Choix de l’alimentation pour les 5 modules Bluetooth: nécessitent 3V --&amp;gt;  utiliser des piles rechargeables 1,2V AAA plutôt que piles rondes 3V.&lt;br /&gt;
&lt;br /&gt;
Nous avons également besoin du matériel cité en semaine 1 pour réaliser des cartes électroniques atmega328p-pu standalone. ( nous revenons alors sur les décisions de la semaine 3)&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI RPi3-Arduino===&lt;br /&gt;
 &lt;br /&gt;
Montage Raspberrypi et 1 arduino en PSI + 1 bouton + 1 led.&lt;br /&gt;
Voici le choix des branchements :&lt;br /&gt;
&lt;br /&gt;
 MASTER = RPi   &lt;br /&gt;
 SLAVE= Arduino&lt;br /&gt;
&lt;br /&gt;
'''SPI sur Arduino:'''&lt;br /&gt;
 MOSI -&amp;gt; GPIO11 //PB3  //master OUT to the slave IN&lt;br /&gt;
 MISO -&amp;gt; GPIO12 //PB4 //slave OUT to the master IN&lt;br /&gt;
 SCLK -&amp;gt; GPIO13 //PB5 //serial clock&lt;br /&gt;
 SS -&amp;gt; GPIO10   //PB2  //slave select&lt;br /&gt;
'''Led, bouton et autre...'''&lt;br /&gt;
 LED --&amp;gt; GPIO6  //PD6&lt;br /&gt;
 GND&lt;br /&gt;
 +5V (if required)&lt;br /&gt;
'''SPI sur la Raspberry Pi'''&lt;br /&gt;
 SPIO MOSI -&amp;gt; PIN19 &lt;br /&gt;
 SPIO MISO -&amp;gt; PIN21&lt;br /&gt;
 SCLK -&amp;gt; PIN23&lt;br /&gt;
 SPIO CS0 -&amp;gt; PIN24&lt;br /&gt;
&lt;br /&gt;
Continuation du code pour faire clignoter Led branchée à une arduino depuis la Rpi, en connexion SPI.&lt;br /&gt;
&lt;br /&gt;
===Connexion USB PS4-RPi3===&lt;br /&gt;
Durant cette, nous avons regardé comment faire cohabiter bluetooth, Application Androïd, USB, PS4, SPI et les module. &lt;br /&gt;
&lt;br /&gt;
Il est alors important de savoir comment utiliser le port série sur la RPi3, soit utiliser les UART. &lt;br /&gt;
&lt;br /&gt;
Nous avons réaliser qu'il n'était pas aussi simple d'utiliser le port serie USB de la Raspberry Pi 3, en effet le SoC est un BCM2837 . &lt;br /&gt;
De plus nous ne pouvons pas utiliser le même port pour l'alimentation et la connexion. &lt;br /&gt;
&lt;br /&gt;
Il nous faut alors trouver une alternative ou une solution à ce problème.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 5&amp;lt;/span&amp;gt;==&lt;br /&gt;
 &lt;br /&gt;
===Programmation: Réflexion définitives prototypes filaire ===&lt;br /&gt;
&lt;br /&gt;
La semaine dernière, nous avons rencontré une difficulté liée aux ports séries UART. &lt;br /&gt;
Une des solutions à cette difficulté serait d'utiliser une RPi ZERO W à défaut d'une RPi 3. On pourrait alors avoir un port d'alimentation avec connexion USB mais également retrouver la connexion Bluetooth dont nous avons besoin.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous avons continué la réalisation du prototype filaire par l'avancé du code SPI ainsi que les recherches concernant le protocole PS4. &lt;br /&gt;
&lt;br /&gt;
La Raspberry Pi zero W peut également être utile pour la connexion entre la PS4 et les différents modules en jouant le rôle d'intermédiaire. Nous avons alors commandé une Rpi zero W pour notre projet. &lt;br /&gt;
En attendant la réception de la commande, nous nous sommes penché sur les recherches pour les programmes et la configuration nécessaire à l'utilisation de la RPi zero W.&lt;br /&gt;
&lt;br /&gt;
===Electronique===&lt;br /&gt;
&lt;br /&gt;
[[Fichier: bouton_c1.jpg|100px|thumb|left|PCB bouton]]&lt;br /&gt;
[[Fichier: arduinobb.jpg|200px|thumb|right|atmega328p-pu branchement test]]&lt;br /&gt;
&lt;br /&gt;
Du coté électronique, nous avons réalisé sur fritzing certaines cartes électroniques. Les Arduino Uno servant actuellement de test, seront remplacées par des PCB atmega328p-pu standalone avec des broches permettant les branchements nécessaires SPI ou encore aux modules &amp;quot;boutons/joystick&amp;quot;. Pour les boutons, nous avons également réalisé un pcb afin de faciliter les branchements.  &lt;br /&gt;
&lt;br /&gt;
Il nous faut alors également une 3eme carte qui nous sera nécessaire pour la réalisation du prototype sans fil. Dans notre liste de matériel, nous avons des composants nrf52810 bluetooth, ceci doivent être soudé avec les capacités de protection mais également des broches de communication. Nous avons alors commencé cette carte électronique sur Altium avec le fichier  projet PCB du distributeur à modifier.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: Arduino_c1.jpg|100px|thumb|center|PCB atmega328p-pu]]&lt;br /&gt;
&lt;br /&gt;
=== Construction 3D ===&lt;br /&gt;
&lt;br /&gt;
Enfin, nous avons commencé à réaliser des boîtiers 3D pour certains modules. Par exemple, comme nous l'avions vu précédemment, un des joysticks servira de bouton-gâchette en utilisant un seul de ses axes. Il nous faut alors réaliser un boitier qui bloque l'un des axes, mais également une tige qui nous permettra de pousser le joystick de manière simplifiée.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 6&amp;lt;/span&amp;gt;==&lt;br /&gt;
 &lt;br /&gt;
===Programmation: configuration RPi Zero W ===&lt;br /&gt;
&lt;br /&gt;
Ayant reçu la Raspberry Pi zero W en début de semaine, nous nous sommes concentrés sur la programmation et la configuration de celle-ci.&lt;br /&gt;
Cette partie étant compliquée, elle nous a pris du temps. En effet, il était difficile de connecter la RPi en SSH car il n'est pas possible d'y connecter un clavier directement et on avait besoin de la prise OTG pour &amp;quot;interfacer&amp;quot; la manette.&lt;br /&gt;
&lt;br /&gt;
===Electronique: PCB nrf52810===&lt;br /&gt;
&lt;br /&gt;
Les cartes réalisées en semaine 5 sont validées et en attente de réalisation. &lt;br /&gt;
&lt;br /&gt;
Cette semaine a permis la réalisation et la finalisation de la carte électronique nrf52810. Il nous a fallu recommencé cette carte deux fois. En effet, une fois finie sur Altium nous avons réalisé que les empreintes des CMS sur PCB fourni par le constructeur ne correspondent pas au matériel CMS de l'école. Face à cette inattention de notre part, nous avons décidé de refaire entièrement la carte électronique sur fritzing. Ayant la datasheet et des plans d'inspiration PCB, nous avons pu refaire la carte entièrement. &lt;br /&gt;
Sur celle-ci nous avons ajouté des broches de connexion au besoin, un branchement Jtag et ICSP pour la programmation et la connexion SPI. &lt;br /&gt;
La carte est en attente de validation, puis validation.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: nrf52810_circuit2.jpg||center|400px|PCB carte nrf52810]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Révision matériel ===&lt;br /&gt;
&lt;br /&gt;
Pour la réalisation de nos composants électroniques, il nous a fallu faire une révision des composants disponibles à l'école:&lt;br /&gt;
(les quantités indiquées ci-dessous pourront être augmentée si nécessaire,pour avoir dans l'idéal un module de chaque type de la manette, ici on se concentre sur BOUTON et JOYSTICK)&lt;br /&gt;
&lt;br /&gt;
'''Cartes Arduino:'''&lt;br /&gt;
* 4 capacite 22pF traversantes&lt;br /&gt;
* 2 resistances 10 kOhm traversantes (à récupérer)&lt;br /&gt;
* 2 oscillateurs quartz 16MHz traversante&lt;br /&gt;
* 2 atmega328p-pu et support&lt;br /&gt;
&lt;br /&gt;
'''Cartes nrf52810'''&lt;br /&gt;
* 6 capacités 100nF 0603&lt;br /&gt;
* 6 capacités 12pF 0603&lt;br /&gt;
* 2 capacités 4,7pF 0603&lt;br /&gt;
* 2 capacités 1µF 0603&lt;br /&gt;
* 2 capacités 100pF=0,1nF 0603 (à récupérer)&lt;br /&gt;
* 2 capacités 0,8pF 0603 (commande en cours)&lt;br /&gt;
* 2 inductance 3,9nH 0603 (commande en cours)&lt;br /&gt;
* 2 oscillateur quartz 32 MHz &lt;br /&gt;
&lt;br /&gt;
'''Cartes modules Boutons'''&lt;br /&gt;
* un sachet de broches mâles (qu'on utilisera également pour les autres cartes, à récupérer/acheté) &lt;br /&gt;
&lt;br /&gt;
Nous avons alors mis-à-jour la liste de composant située plus haut, ainsi que celle de la page IMA4 2017/2018 [https://projets-ima.plil.fr/mediawiki/index.php/Projets_IMA4_SC_%26_SA_2017/2018]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 7&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Programmation: connexion wifi RPi Zero W et Bootloader sur Atmega328p-pu ===&lt;br /&gt;
&lt;br /&gt;
Pendant cette semaine, nous avons continué la programmation et la configuration des Raspberry Pi 3 et Zero W. Concernant la configuration ssh, nous avons utilisé un téléphone en guise de point d’accès à la RPi Zero W en wifi.&lt;br /&gt;
Nous avons aussi directement configurer l'OS Jessie, utilisé pour la RPi Zero. On a modifié le fichier cmd.txt et ...pour pouvoir programmer un USB gadget sur le port OTG.&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;Ci-dessus expliquer fichiers&amp;lt;/span&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Nous avons également continuer les programmes de récupération de données : état des boutons et du joystick. Ces programmes sont appliqué sur l'atmega328p-pu standalone sur la plaque d'essai en attendant que le PCB soit opérationnel.&lt;br /&gt;
Pour pouvoir programmer l'atemega328p-pu comme une arduino UNO, il nous faut suivre plusieurs étapes :&lt;br /&gt;
&lt;br /&gt;
'''1.Flasher le Bootloader'''&lt;br /&gt;
Nous avons 2 Atmega328p-pu neufs, ainsi il nous faut flasher le bootloader sur chacun d'eux afin de pouvoir les utiliser et les programmer sur une breadboard dans un montage minimaliste arduino-standalone. &lt;br /&gt;
Pour cela, on peut utiliser une carte arduino UNO. On vérifie le port et le type de carte sélectionnés dans le menu &amp;gt;Outils. Sur cette carte on téléverse le fichier arduinoISP.ino qui se trouve dans les exemples en étant en progrmamateur AVr ISP mkll (&amp;gt;outils&amp;gt;programmateur) &lt;br /&gt;
Puis on met l'atmega328p-pu qui nous intéresse sur le suppor socket de la carte. On change de nouveau le programmateur pour Arduino as ISP et on fait &amp;gt;tools&amp;gt;burn bootloader, soit &amp;gt;graver la sequence d'initialisation.&lt;br /&gt;
Ces étapes faites, on peut retirer notre microcontroleur et le replacer correctement dans le montage. &lt;br /&gt;
&lt;br /&gt;
'''2.Programmation atmega328 sur breadboard'''&lt;br /&gt;
Une fois l'atmega328p-pu préparé, on peut le programmer. On peut le faire simplement à l'aide de la carte arduino UNO utilisée précédemment.On branche les Tx et Rx en commun ainsi que le reset, le GND et le VCC.&lt;br /&gt;
&lt;br /&gt;
Nous avons réaliser des codes basiques tels que le clignotement d'une led rouge ou encore l'affichage de &amp;quot;hello world&amp;quot; sur le moniteur série pour vérifier la bonne fonctionnalité du montage. Cela fait nous avons pu écrire sous Arduino IDE le code de lecture des états.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: montage_BB_test.jpg||left|200px|programmation modules arduino sur breadboard]]&lt;br /&gt;
&lt;br /&gt;
===Electronique : soudure carte de test modules ===&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons déja vu lors de la réalisation des PCB, si l'on souhaite programmer un atmega328p-pu en bootloader, le montage est simple. Il peut être minimaliste en utilisant une arduino UNO, un atmega328, une breadboard et 3 composants: 1 quartz 16MHZ crystal, 1 résistance 10kOhm et 2 capacitors céramiques de 22pF.&lt;br /&gt;
Durant la semaine 7, nous avons soudé les composants traversants de la carte électronique correspondant à ce montage ainsi que le PCB du bouton.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 8&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Programmation ===&lt;br /&gt;
Après moult recherche sur les différents site web bien fournis pour le coups on as pu trouvé une amorce à la programmation de l'OTG via un script qui agit au niveau du kernel dans le sous dossier usg_gadget. Ce script donne les informations nécessaires pour pouvoirs échangé les données.&lt;br /&gt;
Avec le script trouvé et les informations des sites web décryptant les trames de la manette, on a toujours pas réussit à faire passer notre RPi Zero W pour une manette de PS4. Néanmoins il nous manque la trame HID complète de la manette pour avoir un test effectif.&lt;br /&gt;
&lt;br /&gt;
===Electronique : Correction soudure et soudure CMS===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avions souhaité programmer la carte électronique atmega328p-pu. Cependant, nous avons réaliser que nous avions fait une erreur lors de l'envoie du PCB à la production. En effet, celui-ci avait été fait en Top sur le logiciel Fritzing et non en Bottom. Hors nous avions soudé les composants (durant la semaine 7) comme pour un circuit imprimé en bottom, l'atmega328p-pu se retrouve alors inversé par rapport aux pistes. &lt;br /&gt;
Comme solution, nous avons choisi de souder un deuxième support pour l'atmega328 de l'autre coté de la carte avant de la refaire au propre. En effet, avant de la refaire il nous faut vérifier si la carte est bien programmable. &lt;br /&gt;
Une fois cela fait nous avions pu programmer la carte mais, nous avions également réalisé la pin 2 de l'atmega328 était prise par le bouton poussoir. Or, nous avons besoin des pin 2 et 3 pour le RX et TX permettant la programmation de l'atmega à partir d'une arduino, les pistes branchement RX-TX n'ont également pas été prévus pour le téléversement des programmes sur la carte. Il nous faut alors couper une piste et souder des câbles pour utiliser toutes les pistes souhaitées. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: correction_proto_PCB.jpg||right|300px|PCB arduino correction]]&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons également souhaité souder les CMS et le composant bluetooth nrf52810 sur la carte imprimé et reçu lors de la semaine 7. Pour cela, nous avons convenu de travailler dans la C202 durant la séance du mercredi. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: PCB_nrf52810.jpg||left|400px|carte electroniques imprimées]]&lt;br /&gt;
&lt;br /&gt;
====Comment souder des CMS ?====&lt;br /&gt;
&lt;br /&gt;
les CMS sont des composants montés en surface c'est à dire qu'ils sont montés du même côté que les pistes cuivrées (à l'opposé des composants traversants) et sont de petite tailles souvent de l'ordre du millimètre. La taille est déterminée par 4 chiffres : les 2 premiers pour la longueur et les 2 derniers pour la largeur. On a du 1206,0805,0603 ou encore 0402. Il est même possible de trouver plus petit. A l'école nous utilisons souvent du 0603, c'est le cas de nos composants.&lt;br /&gt;
Pour souder des CMS 0603, il nous faut utiliser une autre méthode qui n'est pas le fer à souder :&lt;br /&gt;
# Préparer la veille la pâte à braser la veille (dans une seringue)&lt;br /&gt;
# Gommer la carte pour éviter l'oxydation (attention à ne pas retirer les miettes de gomme en soufflant dessus) &lt;br /&gt;
# Appliquer avec la seringue la pâte sur les empreintes et piste souhaitées. Pour les endroits difficile à atteindre ou avec 2 pistes proches les unes des autres, il est possible de mettre la même goutte de pâte sur les 2 pistes. Cela de causera pas de court-circuit par la suite. En effet, la pâte est composée d’alliage qui sous la chaleur va se fluidifier et se coller uniquement aux pistes métallique. Le reste fondera sous la chaleur du four.&lt;br /&gt;
# Appliquer les CMS sur la pâte au fur et à mesure (attention ! ne jamais toucher les CMS avec les doigts, tjrs utiliser une pince)&lt;br /&gt;
# Mettre au four&lt;br /&gt;
&lt;br /&gt;
====Bilan soudure nrf52810====&lt;br /&gt;
&lt;br /&gt;
Cependant, une fois le matériel nécessaire préparé, et la pâte mise sur les pistes souhaitées, au moment de déposer le composant, nous avons réalisé que celui-ci était beaucoup plus petit que l'empreinte sur le PCB. Il s'agit d'un composant boitier QFN48. Fritzing ne proposant au plus proche des boitiers QFN24 ou LQFP48, celui-ci a basculé automatiquement pour un boitier LQFN48, de dimension plus grande. Face à ce manque de vigilance, nous avions cependant commencer par le nrf52810 (composant concerné) évitant ainsi de gaspiller d'autres CMS. &lt;br /&gt;
Nous avons souhaité refaire la carte sous Altium à partir des fichiers fournis par le concepteur (chose que nous avons commencé à faire aux alentours de la semaine 5) &lt;br /&gt;
Après la réalisation du schématic, et de la modification des empreintes de capacités, inductances et autres composants de 0402 à 0603. Notre matériel ne permettant que des empreintes 0603.&lt;br /&gt;
 &lt;br /&gt;
Lors du routage, une erreur de chevauchement des pistes est notifiée par Altium au niveau du nrf52810. Celles-ci ne présentent pas d'angles et sont déjà de taille 8mil, il nous faut alors passer les pistes en 6mil. Mais 8mil est la taille minimale pour la production à Polytech, nous avons regardé pour envoyer les cartes à faire ailleurs mais le 6mil n'est pas beaucoup conseillé. De plus, il n'est peut-être pas judicieux de continuer avec le composant microcontrôleur-bluetooth Nrf52810 qui prend du temps, donc la carte est difficilement réalisable et peut-être très long à programmer. &lt;br /&gt;
&lt;br /&gt;
Ainsi en cette fin de semaine, nous avons décider face à l'avancer du projet de laisser les nrf52810 de coté et de les remplacer par des modules sans fils plus simples d'utilisation et complets. Ainsi nous aurions plus de chance d'avoir une connexion sans fils entre les modules. Nous pourrions par exemples utiliser des Xbee, des modules Rf...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 9&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation: PS4 et 1er Test SPI sur atmega328p====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
Les premiers tests sur Windows ne nous donner pas satisfaction. En effet, l'ordinateur détectait bien le nouvel appareil avec son nom mais l'origine rester inconnue. &lt;br /&gt;
&lt;br /&gt;
Lors des tests sur Linux on a pu voir des erreurs via la commande 'dmesg' :&lt;br /&gt;
&lt;br /&gt;
 [193229.758782] usb 4-1.2: new high-speed USB device number 6 using ehci-pci&lt;br /&gt;
 [193230.270780] usb 4-1.2: new high-speed USB device number 7 using ehci-pci&lt;br /&gt;
 [193235.510842] usb 4-1.2: device descriptor read/64, error -110&lt;br /&gt;
 [193251.127043] usb 4-1.2: device descriptor read/64, error -110&lt;br /&gt;
 [193251.315043] usb 4-1.2: new high-speed USB device number 8 using ehci-pci&lt;br /&gt;
 [193256.503135] usb 4-1.2: device descriptor read/64, error -110&lt;br /&gt;
 [193272.119331] usb 4-1.2: device descriptor read/64, error -110&lt;br /&gt;
 [193272.307331] usb 4-1.2: new high-speed USB device number 9 using ehci-pci&lt;br /&gt;
 [193282.999473] usb 4-1.2: device not accepting address 9, error -110&lt;br /&gt;
 [193283.079485] usb 4-1.2: new high-speed USB device number 10 using ehci-pci&lt;br /&gt;
 [193293.751588] usb 4-1.2: device not accepting address 10, error -110&lt;br /&gt;
 [193293.751771] usb 4-1-port2: unable to enumerate USB device&lt;br /&gt;
 [193387.196861] usb 4-1.2: new high-speed USB device number 11 using ehci-pci&lt;br /&gt;
 [193392.440941] usb 4-1.2: device descriptor read/64, error -110&lt;br /&gt;
 [193407.933152] usb 4-1.1: new high-speed USB device number 12 using ehci-pci&lt;br /&gt;
 [193413.177227] usb 4-1.1: device descriptor read/64, error -110&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Modules Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
Une carte PCB arduino fonctionnant, nous pouvons la programme pour simuler un module. Celle-ci a été designée afin de s'adapter au module que l'on souhaite. Il suffit de brancher le bouton, le joystick ou autre élèment de manette souhaité.&lt;br /&gt;
Cette semaine ci, nous avons alors configurer la partie communication SPI pour l'arduino.&lt;br /&gt;
&lt;br /&gt;
'''Que voulons-nous faire avec les atmegas ?''' &lt;br /&gt;
Les cartes électroniques atmega328p vont nous permettre de recevoir les requêtes SPI envoyées par la raspberry pi et d'y répondre. La Raspberry enverra un message, par exemple &amp;quot;1&amp;quot;, et l'Arduino lira alors l'état du module qui lui est connecté. Une fois l'état récupéré elle le renvoie à la raspberry pi.&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons programmé l'atmega afin qu'il soit en esclave, qu'il reçoive un de la RPi &amp;quot;1&amp;quot; et retourne une valeur sauvegardé &amp;quot;int envoi&amp;quot;. Nous avons également commencé les tests pour la lecture de l'état d'un bouton (d'après les tests réalisés les semaines précédentes).&lt;br /&gt;
&lt;br /&gt;
'''Code'''&lt;br /&gt;
Comme nous l'avons vu précedement lors de nos recherches (semaines 1 à 4) : &lt;br /&gt;
La communication SPI nécessite l'utilisation des pins: &lt;br /&gt;
&lt;br /&gt;
MOSI -&amp;gt; GPIO11 //PB3  //master OUT to the slave IN&lt;br /&gt;
MISO -&amp;gt; GPIO12 //PB4 //slave OUT to the master IN&lt;br /&gt;
SCLK -&amp;gt; GPIO13 //PB5 //serial clock&lt;br /&gt;
SS -&amp;gt; GPIO10   //PB2  //slave select&lt;br /&gt;
&lt;br /&gt;
Il faut également paramétrer l'atmega328p en Slave. On note que dans un premier temps, le programme sera codé avec l'arduino IDE (fichiers .ino). Une fois l'ensemble SPI RaspberryPi-Arduino fonctionnant, on remplacera ces codes par du langage C ou C++.&lt;br /&gt;
&lt;br /&gt;
Pour faire la connexion SPI sur l'atmega328p,  on utilise la librairie arduino SPI.h, on a alors directement les fonctions nécessaires intervenant sur les registres souhaités : SPCR (spi control register), SPSR (spi status register) et SPDR (spi data register). &lt;br /&gt;
 &lt;br /&gt;
  #include &amp;lt;SPI.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il est important d'initialise d'abord le setup et on active le port série pour pourvoir utiliser le moniteur série. (Cela servira à verifier la valeur envoyée par la RPi) &lt;br /&gt;
&lt;br /&gt;
 void setup (void)&lt;br /&gt;
 {&lt;br /&gt;
   Serial.begin (9600);  &lt;br /&gt;
   pinMode(MISO, OUTPUT);  //configuration en esclave *master in slave out*&lt;br /&gt;
   pinMode(buttonPin,INPUT);  //config pin bouton&lt;br /&gt;
   // turn on SPI in slave mode&lt;br /&gt;
   SPCR |= _BV(SPE);&lt;br /&gt;
   // preparation interruptions&lt;br /&gt;
   pos = 0;   // buffer empty&lt;br /&gt;
   process_it = false;&lt;br /&gt;
   // activation interruptions&lt;br /&gt;
   SPI.attachInterrupt();&lt;br /&gt;
 }  &lt;br /&gt;
 &lt;br /&gt;
On oublie pas de déclarer les interruptions afin de bien lire la requête reçue. &lt;br /&gt;
 &lt;br /&gt;
// SPI interrupt routine&lt;br /&gt;
ISR (SPI_STC_vect)&lt;br /&gt;
{&lt;br /&gt;
  byte c = SPDR;  // grab byte from SPI Data Register&lt;br /&gt;
  // add to buffer if room&lt;br /&gt;
  if (pos &amp;lt; sizeof buf)&lt;br /&gt;
    {&lt;br /&gt;
    buf [pos++] = c;&lt;br /&gt;
    // example: newline means time to process buffer&lt;br /&gt;
    if (c == '\n')&lt;br /&gt;
      process_it = true;&lt;br /&gt;
    }  // end of room available&lt;br /&gt;
}  // end of interrupt routine SPI_STC_vect&lt;br /&gt;
&lt;br /&gt;
Dans la loop main, on traite la requête et on utilise '''SPI.transfer(envoi);''' pour transferer à la RPi les données souhaitées. &lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons également commencé des programmes de test SPI pour la RPi. Il s'agit principalement de programmes de tests tout faits permettant de vérifier la connexion entre cette dernière et l'arduino. Par exemple, la RPI envoie &amp;quot;bonjour&amp;quot; et l'arduino lui retourne ce qu'elle reçoit, soit &amp;quot;bonjour&amp;quot;. Sans succés alors.&lt;br /&gt;
&lt;br /&gt;
====Electronique : Fritzing révision====&lt;br /&gt;
&lt;br /&gt;
Lors de la semaine, le modèle PCB de la carte arduino a été réalisé de nouveau sous fritzing avec les broches et connections manquantes. Nous avons également revu la configuration du bouton reset  et ajouté une led d'état de l'alimentation. Nous avons ainsi envoyé deux cartes identiques à la réalisation.&lt;br /&gt;
La carte déjà soudée lors des derniers jours fonctionnant, elle nous sert de prototype de programmation. Nous pouvons ainsi avancer à la fois sur la programmation des modules mais aussi sur leur réalisation. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 10&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation : PS4 et SPI sur RPi====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Raspberry PI et SPI'''&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, pour la partie Atmega328p-Modules, nous nous sommes concentrés sur la programmation de la communication SPI avec la raspberry pi. Cette semaine a permis une étude plus approfondit sur le fonctionnement pour la RPi. &lt;br /&gt;
&lt;br /&gt;
On rappelle, comme vu des semaines 1 à 4, pour la RPI3 (tout comme la RPi Zero W) utilise les broches : SCLK (23), MISO(21), MOSI (19) et SPI CS0 (24), SPI CS1 (26). &lt;br /&gt;
On la programme en Master. A l'aide des fichiers tests d'inspiration, on pourra directement programmer la RPi en C. Lors de la réalisation du code, il y a 3 étapes : l'initialisation/parametrage en SPI pour être maître, l'envoie de la requête puis la réception de données en retour. &lt;br /&gt;
&lt;br /&gt;
Programmant en C, il ne faut pas oublier les librairies suivantes :&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;getopt.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;sys/ioctl.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/types.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/spi/spidev.h&amp;gt;   //pour SPI&lt;br /&gt;
&lt;br /&gt;
On va déclarer des variables globales permettant le paramétrage :&lt;br /&gt;
&lt;br /&gt;
 static const char *device = &amp;quot;/dev/spidev0.0&amp;quot;;  //si on veut CS0 pour atteindre notre SS&lt;br /&gt;
 static uint8_t mode;       //mode est par défaut à 0&lt;br /&gt;
 static uint8_t bits = 8;    //bits par mot échangé&lt;br /&gt;
 static uint32_t speed = 500000;  &lt;br /&gt;
 static uint16_t delay;&lt;br /&gt;
&lt;br /&gt;
Dans notre main, on ouvre le port (la connexion) au device souhaité,  on vérifie les paramètres (registres, connexions...) puis exécute la fonction transfer(fd). transfer(fd) transmet la requête et s'occupe de la réception. &lt;br /&gt;
&lt;br /&gt;
 fd = open(device, O_RDWR);&lt;br /&gt;
 transfer(fd);&lt;br /&gt;
 close(fd);&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 11&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation: PS4, SSH et tests SPI (RPi3&amp;amp;Atemga328p)====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Raspberry PI, Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
Afin de facilité la programmation en utilisant Ethernet, nous avons installer et configuré la RPi pour l'utiliser en SSH depuis les ordinateurs de la E306. En effet, SSH permet de se connecter à distance sur une machine en utilisant un compte utilisateur de la dite machine. En mettant ssh, on pourra directement agir sur les fichiers de la raspberry depuis un terminal de notre PC. Pour cela, on a d'abord vérifier l'adresse IP de notre raspberry pi : 172.26.145.106 avec un écran mais on peut aussi utiliser les commandes ip a et ifconfig. Puis activer le ssh sur la raspberry pi. &lt;br /&gt;
On modifie alors le fichier config.txt mais également etc/network/interfaces pour configurer la bonne interface Ethernet sur la raspberry pi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: configSSH_raspi.png||left|300px|config ssh ethernet]]&lt;br /&gt;
&lt;br /&gt;
Il nous suffit alors de taper la commande : ssh pi@172.26.145.106  pour accéder à notre RPi. &lt;br /&gt;
&lt;br /&gt;
Nous avons continué à réaliser la communication SPI avec des tests entre une arduino UNO et la RPI3. Nous avons commencé par des tests simples inspirés des études de deux semaines précédentes et modulés selon notre utilité.  &lt;br /&gt;
Nous arrivons alors à lire l'état envoyer &amp;quot;bonjour&amp;quot; et recevoir &amp;quot;ça va&amp;quot; ou encore &amp;quot;1&amp;quot; et recevoir &amp;quot;3&amp;quot;. Il faut noter que le SPI échange des trames, la RPI reçoit alors des hexadécimaux. &lt;br /&gt;
Nous avons alors continué pour recevoir l'état du bouton ou du joystick lors de l'envoie de &amp;quot;1&amp;quot; sur l'Arduino328p. La semaine prochaine nous testerons ces même codes fonctionnels sur les cartes atmeg327p. &lt;br /&gt;
&lt;br /&gt;
A la fin de cette semaine, nous avons alors des codes Arduino-SPI (.ino) et des codes Raspberry-SPI (.c) permettant l'échange de données. Le but est maintenant de l'adapter aux cartes imprimées et de le rendre pleinement fonctionnel pour plusieurs cartes à la fois, puis ajouter une boucle de vérification en continue jusqu'à une deuxième requête de la RPi.&lt;br /&gt;
&lt;br /&gt;
====Electronique: réalisation au propres des PCB modules====&lt;br /&gt;
&lt;br /&gt;
Suite à une nouvelle erreur de réalisation cartes électronique, nous avons  refait et renvoyé à nouveau les cartes imprimées atmega328p.&lt;br /&gt;
Nous les souhaitons au propre pour une version finale. Une fois celle-ci imprimées nous pourrons en avoir 3 , un pour chaque module. Les cartes étaient bien imprimées en bottom mais lors du passage des traversants de bottom à top, le logiciel ne les a pas fait miroiter. Par manque d'attention nous avons alors envoyé les fichiers gerber pour des cartes ayant les composants du même coté que la couche de cuivre. &lt;br /&gt;
Les cartes électroniques actuelles sont alors correctes et fonctionnelles mais difficile à souder. Pour eviter les erreurs et continuer sur des prototypes de carte nous préférons attendre en nous concentrant sur la programmation PSI de la Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 12&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Raspberry PI, Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
-  réflexion: penser à faire boucler sur l'arduino une fois la requête reçu, ça veut dire que la manette est ON et donc vérifier continuellement les modules sur chaque atmega.&lt;br /&gt;
- SPI raspberry pi - arduino recuperation état du bouton avec les cartes modules  (/!\ récuperation à faire dans une variable) &lt;br /&gt;
&lt;br /&gt;
-SSH perso &lt;br /&gt;
adresse Rasppi: 192.168.137.10&lt;br /&gt;
&lt;br /&gt;
====Electronique: Finalisation soudure Modules====&lt;br /&gt;
&lt;br /&gt;
Soudure au propre et finale d'une carte atmega328p et donc envoie pour la réalisation de 2 autres cartes similaires et récupération de matériel&lt;br /&gt;
Soudure des 2 autres cartes, + tests sur les états = fonctionnelles.&lt;br /&gt;
On a donc bien 3 cartes pour les 3 modules de types différents (1 bouton, 1 joystick, 1 gachette)&lt;br /&gt;
PCB pour les 2 joysticks (qui serviront de thumbstick et gachette)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 13 et plus&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
====Electronique====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
(à mettre rapport + git + drive)&lt;br /&gt;
&lt;br /&gt;
=Datasheets=&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=55391</id>
		<title>IMA4 2017/2018 P35</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=55391"/>
				<updated>2018-05-05T19:58:47Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : /* Programmation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Présentation générale: Manette modulable&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Description&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Tout le monde joue aux jeux vidéo cependant, les manettes ne sont pas adaptées aux personnes ayant un handicap pouvant toucher les bras ou les mains.&lt;br /&gt;
C’est le cas, de plusieurs patients dans les centres de soins et de rééducation.&lt;br /&gt;
&lt;br /&gt;
Pour ce projet IMA4, nous travaillerons avec le centre SSR (soin de suite et de réadaptation) Marc Sautelet de Villeneuve d’Ascq.&lt;br /&gt;
Un adolescent, patient de Marc Sautelet, est passionné par les jeux vidéo. En effet, ayant perdu la motricité d’une partie de son corps, il ne peut pas jouer à deux mains. Pour cela, il bloque la manette entre son épaule et son coude, usant de la mâchoire et des doigts pour contrôler les&lt;br /&gt;
joysticks et les boutons. Cet exercice peut s’avérer fatiguant et pénible.&lt;br /&gt;
&lt;br /&gt;
Ainsi, nous chercherons à concevoir une manette PS4 adaptée au handicap de l’adolescent. &lt;br /&gt;
Cette manette devra aussi être adaptée pour d’autres patients présentant également des handicaps moteurs. Ainsi nous prendrons pour cibles: tous les patients du centre voulant jouer; et non pas que les enfants et adolescents.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Membre du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Transley Gracias et Camille Saad&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Cible&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Patient présentant un handicap moteur&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Période du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
janvier 2018 - mai 2018&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Partenaire/Client&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Centre SSR Marc Sautelet à Villeneuve d'Ascq&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Objectifs&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ce projet a pour objectif de créer un prototype de manette qui puisse interagir avec la console PS4 et dont le paramétrage se fait à l’aide d’une application mobile et/ou web. Cette manette devra suivre les demandes du patient ainsi que des aides-soignantes du centre, dans la mesure du possible.&lt;br /&gt;
&lt;br /&gt;
Plus précisément, pour le premier prototype, nous mettrons en œuvre l'utilisation de quelques boutons spécifiques: &lt;br /&gt;
&lt;br /&gt;
* Un joystick (type L/R)&lt;br /&gt;
* Quelques boutons poussoirs (type Croix/Triangle/Carré/Rond/R1/L1/Start/...)&lt;br /&gt;
* Des boutons gâchettes progressives (type L2/R2).&lt;br /&gt;
&lt;br /&gt;
Le but serait donc dans un premier temps de rendre fonctionnel un bouton de chaque type, puis de les multiplier une fois cela fait. Tous ces boutons réunis constituent une manette fonctionnelle.Ainsi, la manette sera ajustable, c’est à dire qu’elle devra s’adapter aux différents handicaps moteurs possibles.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Analyse du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Positionnement par rapport à l'existant&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre prototype aura une présentation unique par rapport à l’existant. En effet, les concurrents et produits existants ciblent pour la majorité un seul handicap. Cela&lt;br /&gt;
engendre une solution fermée à beaucoup de patients. Notre projet propose une mobilité des mouvements et également un choix large dans la composition et le&lt;br /&gt;
design de notre manette.&lt;br /&gt;
Le patient n’est pas retreint à jouer à une seule main, à utiliser beaucoup de force...Il y a moins de technique dans la manipulation et on ne joue pas avec une&lt;br /&gt;
manette adaptée uniquement pour un droitier ou un gaucher. Cependant, cela nous limitera peut-être dans le choix possible des types de jeux. Tout comme les autres&lt;br /&gt;
manettes adapté, l’utilisateur nécessitera un peu d’entrainement.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du premier concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Jouer aux jeux vidéo à une main n’est pas une idée d’aujourd’hui. En 1990, Nintendo propose le Power Glove. Mais il tombe très rapidement aux oubliettes suite à des problèmes techniques.&lt;br /&gt;
&lt;br /&gt;
Un autre gant a fait son apparition quelques années plus tard. Celui-ci, plus technique, il faut office de manette Play Station: le Reality Quest Power Glove.Cette idée de manette-gant, permet de jouer à la PS avec une seule main, elle a était conçue et présentée pour les E3, un salon d’exposition de gaming.Le gant est conçu pour contrôler l’équivalent des 14 boutons et 2 joysticks à l’aide d’une seule main. La « manette » est fixée dans la pomme de la main. L’utilisateur contrôle les mouvements verticaux et horizontaux en pivotant le poignet, et utilisent les 4 boutons d’action principaux et L1/R1 avec les doigts. Les autres boutons sont accessibles par un seul bouton rond contrôlé par le pouce.&lt;br /&gt;
La manette est adaptée pour beaucoup de jeux vidéo, dont les plus simples sont les jeux de voitures et de combats (arcade).&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec ce gant&lt;br /&gt;
*Design obligatoirement droitier&lt;br /&gt;
*Les boutons de contrôle sont peu sensibles et peuvent nécessiter de la force&lt;br /&gt;
*Design compliqué et nécessitant beaucoup d’entrainement.&lt;br /&gt;
&lt;br /&gt;
;Lien : https://www.youtube.com/watch?v=qV0SxSJDCYg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du second concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ben Heck, de son vrai nom Benjamin J.Heckendorn, est un concepteur de mods de consoles (mods pour modification, soit « manettes modifiées ») et une star&lt;br /&gt;
du net grâce à ses vidéos tutoriels.Il propose alors énormément de produits adaptés ou dérivés en guise de manettes.&lt;br /&gt;
Parmi les mods qu’il a réalisé, il a modifié une manette de PS4 afin de la rendre accessible à une personne ne pouvant jouer qu’à une main. Pour cela, il a déplacé les boutons en respectant l’ergonomie de la main valide et modifie les connexions. Il peut lui arriver de rajouter des boutons pour en remplacer un autre. Il réalise également le même système avec la Xbox. Sur la photo ci-dessous, il a adapté la manette pour un droitier.&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec cette ma&lt;br /&gt;
*Design obligatoirement droitier ou gaucher, une modification = une manette= une personne&lt;br /&gt;
*Besoin obligé du pouce et de l’index, même si avantage : 3 doigts nécessaire.&lt;br /&gt;
&lt;br /&gt;
;Lien :: https://www.youtube.com/watch?v=LieHIscadjk&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Scénario d'usage du produit ou du concept envisagé&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
La technologie est ,aujourd’hui, omniprésente dans notre vie. Les consoles de jeux ont envahies les maisons avec plus de 7 personnes sur 10 jouant aux jeux vidéos sur consoles en France (chiffre de l’Express). 0,18% des français sont handicapés cela représente 12 millions de français. Dans ce chiffre, 13,4% des personnes ont un handicap moteur. En 2017, les grands groupes comme Sony ou Microsoft avec respectivement PlayStation et Xbox ne permettent pas à tout le monde de jouer avec une manette. Les manettes sont prévues pour des personnes ayant leurs membres valides, plus précisément les mains et les bras.&lt;br /&gt;
&lt;br /&gt;
Après un accident de voiture, un jeune garçon a perdu la motricité d’un côté du corps. Passionné de jeux vidéo, il se retrouve avec des difficultés à jouer sur sa console PS4. Ingénieux, il utilise la manette en la coinçant entre son épaule et le creux du cou. Usant de la mâchoire et de sa main valide pour contrôler les joysticks et les boutons. L'exercice étant inconfortable et fatiguant il eu l’idée de proposer à des futurs ingénieurs de lui proposer une manette adaptée à son handicap. &lt;br /&gt;
&lt;br /&gt;
Les deux pré-ingénieurs ,avec leur tuteur, ont une idée révolutionnaire : La manette modulable ! Elle permettrait au jeune garçon, ainsi que d’autres joueurs, de pouvoir continuer de s’amuser ou même de commencer à jouer au jeux sur console. &lt;br /&gt;
Cette manette aidera fortement dans les centre de rééducation pour faire passer le temps et donner du plaisir à des personnes qui ne peuvent plus s’amuser avec leur console traditionnelle. Elle pourra aussi ouvrir de nouvelles possibilités pour certaines personnes qui n’auraient jamais essayé jusqu'à présent.   &lt;br /&gt;
Comme son nom l'indique, elle sera modulaire et s'adaptera à différents handicaps. Accompagnée de son application d’initialisation, elle sera accessible aussi bien aux enfants, patients, parents et aides soignantes.&lt;br /&gt;
&lt;br /&gt;
Quelques mois plus tard...Le jeune patient fan de Need For Speed, peut maintenant piloter sa voiture comme un vrai professionnel grâce à l'un des joysticks qu'il utilisera avec sa main valide et il pourra accélérer à des vitesses folles à l'aide de boutons poussoirs au niveau de son pied valide et gagner la partie. Son ami venu lui rendre visite, pourra en lieu et place des aides soignantes configurer à l'aide de la tablette (portable) la manette du patient. &lt;br /&gt;
Si le patient change de jeu pour Tekken et que la configuration des modules ne lui convient plus, il peut interchanger les éléments de la manette selon son envie et son confort. Ainsi il peut faire sauter son personnage, il utilisera un module bouton supplémentaire, qu'il actionnera avec le poing.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Fonctionnement&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Suite à une analyse fonctionnelle et à la formulation de notre projet, nous avons pu définir le fonctionnement de notre système. Notre produit, la manette, doit être accessible d’après nos objectifs à différents types de handicaps moteurs. Ainsi, l’idéal serait de concevoir une manette modulable afin qu’elle puisse s’adapter à toutes les situations. Ce n’est plus au patient de s’adapter à la manette mais à la manette de s’adapter au patient.&lt;br /&gt;
Cela signifie que la manette sera, dans la limite du possible et de la sensibilité du corps du patient, composée de plusieurs parties dites « modules » comportant un ou plusieurs actionneurs (boutons, joysticks, gâchettes...). Ces modules seront déplaçables afin d’être utilisé avec différents membres du corps : un doigt, une main,&lt;br /&gt;
une jambe ou même un pied. Il suffira de les connectés entre eux suivant l’organisation souhaitée, le Gameplay du jeu ou en fonction du handicap. Le tout sera relié à une application.&lt;br /&gt;
L’application sera alors mise en place pour connecter les différentes parties du point de vue software pour prérégler la manette en fonction du patient. Il pourra alors choisir les boutons en fonction du jeu, de ses mouvements mais aussi choisir la sensibilité.&lt;br /&gt;
&lt;br /&gt;
L’application et les modules devront être intuitifs et faciles d’utilisation. De cette manière des utilisateurs non avertis dans le domaine informatique ou jeunes pourront eux-mêmes gérer les connexions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Réponse à la question difficile&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
'''Question : Comment interconnecter les différents modules de la manette ?'''&lt;br /&gt;
&lt;br /&gt;
Il nous faut pour ce projet interconnecter les modules modélisant la manette qui seront connectés à la consoles PS4 via une Raspberry Pi 3.&lt;br /&gt;
Le choix de la Raspberry Pi 3 nous permet d'utiliser son module Bluetooth pour communiquer avec la PS4, ce choix est plus adaptée au projet que du filaire.&lt;br /&gt;
Concernant l'interconnexion des modules, nous travaillerons en deux étapes &amp;quot;preuves concept&amp;quot; : filaire et sans fils (Bluetooth).&lt;br /&gt;
&lt;br /&gt;
'''Objectif 1 : Preuve concept filaire'''&lt;br /&gt;
&lt;br /&gt;
Dans cette première partie de projet, nous souhaitons avoir une 1ère preuve de prototype rapidement. Nous nous concentrerons alors sur la communication entre la RPi3 et la PS4 ainsi que sur la conception des modules. Pour les modules, nous réaliserons des cartes électronique pour chaque module avec un micro-contrôleur. La communication filaire nous permettra d'interconnecter les modules à la RPi3 avec un bus SPI.&lt;br /&gt;
&lt;br /&gt;
'''Objectif 2: preuve concept sans fils'''&lt;br /&gt;
&lt;br /&gt;
Une deuxième étape du projet est la réalisation de la solution idéale sans fils. Celle-ci pourra commencer à être développée petit à petit en parallèle avec l'objectif 1. Le but ici, est d'interconnecter les modules en Bluetooth. Nous avons choisi le Bluetooth pour garder une connexion commune sur toute la chaîne. &lt;br /&gt;
Nous rajouterons alors un module bluetooth à chaque module de la manette. &lt;br /&gt;
&lt;br /&gt;
'''Objectif 3: possibilité d'adapter les boutons (capuchon en 3D)'''&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Préparation du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Cahier des charges&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
''Chef de projet:'' Alexandre Boé  &amp;lt;br&amp;gt;&lt;br /&gt;
''Responsables:'' Xavier Redon, Thomas Vantroys &amp;lt;br&amp;gt;&lt;br /&gt;
''Partenariat:'' Marc Sautelet (non etablie) &amp;lt;br&amp;gt;&lt;br /&gt;
''Elèves-ingénieurs:'' Camille Saâd, Transley Gracias &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Sujet :''' Manette modulable pour personne à déficience moteur compatible PlayStation 4 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objectifs principal (1er POC) : ===&lt;br /&gt;
Faire transmettre des informations issus des actionneurs (ex:boutons poussoires) via des arduinos jusqu’à la Raspberry Pi 3 en SPI.&amp;lt;br&amp;gt;&lt;br /&gt;
Envoyer les données reçues vers la PS4 en USB  &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objectifs secondaire (2e POC):===&lt;br /&gt;
Créer des modules avec un microcontrôleur et une puce bluetooth pour permettre une meilleurs flexibilité (c-àd pouvoirs avoir une meilleure ergonomie et une connexion sans fil) &amp;lt;br&amp;gt;&lt;br /&gt;
Connecter la Raspberry Pi 3 en Bluetooth à la PS4 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier: beteacorne.jpg||middle|600px|Bete a corne manette]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Choix techniques : matériel et logiciel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Liste de matériel :===&lt;br /&gt;
&lt;br /&gt;
'''Modules boutons/joysticks/gachettes'''&lt;br /&gt;
&lt;br /&gt;
3  Push buttons :&amp;lt;br&amp;gt;&lt;br /&gt;
- O X Y Carré R3 L3 &amp;lt;br&amp;gt;&lt;br /&gt;
- Guide PS &amp;lt;br&amp;gt;&lt;br /&gt;
- start/back &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 0,45€/unité TTC [https://www.gotronic.fr/art-bp-miniature-krs1273-16976.htm] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1  Thumbstick original: &amp;lt;br&amp;gt;&lt;br /&gt;
Joystick analogique 4 directions --&amp;gt; 4,25€/unité TTC [https://www.gotronic.fr/art-joystick-analogique-4-directions-19063.htm] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1 buttons trigger L1 L2 =&amp;gt; 1x Thumbstick original''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Cartes Atmega328p /connexion spi/'''&lt;br /&gt;
&lt;br /&gt;
3   Arduino UNO &amp;lt;br&amp;gt;&lt;br /&gt;
1   Arduino UNO atmega328p retirable &amp;lt;br&amp;gt;&lt;br /&gt;
4   capacite 22pF traversantes &amp;lt;br&amp;gt;&lt;br /&gt;
2   resistances 10 kOhm traversantes (à récupérer) &amp;lt;br&amp;gt;&lt;br /&gt;
2   oscillateurs quartz 16MHz traversante &amp;lt;br&amp;gt;&lt;br /&gt;
2   atmega328p-pu et support &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cartes module bluetooth nrf52810 '''&lt;br /&gt;
&lt;br /&gt;
6   capacités 100nF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
6   capacités 12pF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 4,7pF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 1µF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 100pF=0,1nF 0603 (à récupérer) &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 0,8pF 0603 (a acheter, commande en cours) &amp;lt;br&amp;gt;&lt;br /&gt;
2   inductance 3,9nH 0603 (a acheter, commande en cours) &amp;lt;br&amp;gt;&lt;br /&gt;
2   oscillateur quartz 32 MHz &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''' Connexions et autres '''&lt;br /&gt;
&lt;br /&gt;
1 Led RGB neopixel [https://www.adafruit.com/product/1734] &amp;lt;br&amp;gt;&lt;br /&gt;
1 Raspberry Pi 3 &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; ~36,23€/unité TTC [https://fr.rs-online.com/web/p/processor-microcontroller-development-kits/8968660/?src=raspberrypi] &amp;lt;br&amp;gt;&lt;br /&gt;
1 Raspberry Pi Zero W (commandée) [https://www.raspberrypi.org/products/raspberry-pi-zero-w/] &amp;lt;br&amp;gt;&lt;br /&gt;
6 Alimentations 5V ou 3,3V &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
par exemple, 12 piles de type CR2016 3V rechargeables ou 24 piles AAA 1,5 V rechargeables  &lt;br /&gt;
5 modules Bluetooth nrf de Nordic : nRF52810-QFAA-R &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 3,17€/unité + frais expédition  [https://www.mouser.fr/productdetail/nordic-semiconductor/nrf52810-qfaa-r?qs=sGAEpiMZZMve4%2FbfQkoj%252bG%2FosjLoe2oghFQwQllMrQ4%3D]&lt;br /&gt;
5 Lignes broches mâles &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logiciels:===&lt;br /&gt;
&lt;br /&gt;
- IDE arduino&lt;br /&gt;
- Altium&lt;br /&gt;
- FreeCAD ou Inkscape&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Liste des tâches à effectuer&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 1 : Gestion du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Définition des cahiers des charges fonctionnel et technique, choix d'orientation...&lt;br /&gt;
* Recherche techniques sur les différentes connexions possibles entre les modules, la RPi 3 et la console PS4&lt;br /&gt;
#Recherche connexion SPI entre les modules et la RPi3&lt;br /&gt;
# Recherche connexion bluetooth entre la RPi3 et la PS4&lt;br /&gt;
# Recherche connexion bluetooth pour les modules&lt;br /&gt;
# Recherche carte avec montage Atmega328P-PU et anticipation module bluetooth&lt;br /&gt;
* Détermination du matériel nécessaire&lt;br /&gt;
* Réflexion sur l'application&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 2: Réalisation du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Partie 1: Preuve concept manette en filaire'''&lt;br /&gt;
&lt;br /&gt;
* Conception de cartes électroniques pour 2 modules (/!\ prévoir modules bluetooth)&lt;br /&gt;
* Réalisation connexion SPI avec 2 modules : programmation des Atmega328p en liaison série. &lt;br /&gt;
* Si tests concluant, ajouter des modules jusqu'à en avoir 5 (1 pour chaque type de boutons) &lt;br /&gt;
* Connexion bluetooth entre la PS4 et la RPi3&lt;br /&gt;
* Réalisation du support des modules avec fixations possibles (imprimante 3D)&lt;br /&gt;
&lt;br /&gt;
'''Partie 2: Preuve concept manette en bluetooth'''&lt;br /&gt;
&lt;br /&gt;
* Ajout des modules bluetooth aux cartes électroniques&lt;br /&gt;
* Connexion bluetooth entre les modules&lt;br /&gt;
&lt;br /&gt;
'''Partie 3: Application Android : paramétrage de la manette'''&lt;br /&gt;
&lt;br /&gt;
* Créer une application sur tablette ou smartphone (Android) afin de configurer la manette aux besoins (inter-connexion des modules et console)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Calendrier prévisionnel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Date'''&amp;lt;/u&amp;gt;&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Tache à réaliser''' &amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
17/01/18-24/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Faire des recherches sur les différentes interconnexions du système : Bluetooth, RPi-Atmega328 (SPI), RPi-PS4&lt;br /&gt;
Continuer liste des taches, matériel, Début recherches + réflexion fixation support des modules&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Recherche technique connexion PS4-RPi3 et connexion SPI RPi3-Module + code&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18-07/03/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Réalisation 1er prototype (+ début prototype 2)&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
07/03/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Seance 7 :  Test prototype filaire&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
07/03/18-09/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Réalisation 2eme prototype + application Android&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
09/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Seance 14 :  Test prototype Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
14/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Video projet&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
15/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Finalisation projet et Rapport&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
16/05/18-17/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Soutenances Projet&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Réalisation du Projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Feuille d'heures &amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Voici le tableau d'heures du binôme:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Heures S11 !! Heures S12 !! Heures S13et+ !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 10&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 20min&lt;br /&gt;
|&lt;br /&gt;
| 15h20&lt;br /&gt;
|-&lt;br /&gt;
| Cherches techniques &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 18&lt;br /&gt;
|-&lt;br /&gt;
| Rédaction du wiki et rapport de projet&lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 30min&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| 30min&lt;br /&gt;
| 30min&lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
| 10h30&lt;br /&gt;
|-&lt;br /&gt;
| Programmation&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 3&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 7&lt;br /&gt;
| 8&lt;br /&gt;
| 6&lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
| 43&lt;br /&gt;
|-&lt;br /&gt;
| Cartes électroniques&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 6&lt;br /&gt;
| 8&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| 31&lt;br /&gt;
|-&lt;br /&gt;
| Application&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| Total Semaine&lt;br /&gt;
| 10&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 7&lt;br /&gt;
| 10h30&lt;br /&gt;
| 13&lt;br /&gt;
| 9&lt;br /&gt;
| 12&lt;br /&gt;
| 9h30&lt;br /&gt;
| 10h30&lt;br /&gt;
| 9&lt;br /&gt;
| 9h20&lt;br /&gt;
| &lt;br /&gt;
| '''117h50'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Prologue&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Avant la réalisation et conception d'un projet, il est important d'analyser celui-ci. Nous avons allons consacré le prologue à l'analyse fonctionnelle de la manette. Nous avons également eu une réflexion sur l'analyse technique, cela nous a permis de réaliser une liste de matériel. Il est important de définir les objectifs ainsi que les besoins afin de ne rien oublier. (Voir ci-dessus Analyse projet) &lt;br /&gt;
Nous avons également organisé notre travail, pour le partage de documents de recherches et la rédaction de compte-rendu final nous avons réalisé un google drive. Par la suite, nous créerons un projet Git. &lt;br /&gt;
&lt;br /&gt;
Durant ce temps, nous avons décidé de réaliser 5 modules. Les modules sont les différents boutons de la manettes qui nous pourrons placer selon nos choix (boutons modulaires) pour notre prototype projet pour chaque type des boutons d'une manette PS4. Ces modules devrons être connectés à la console et interconnectés. Le tout sera lié à une application Android. Suite à quelques recherches et nos analyses, nous avons décidé les points suivants :&lt;br /&gt;
&lt;br /&gt;
- On commencera avec 2 modules et on les multipliera par la suite. &lt;br /&gt;
- Les premiers tests sont réalisés avec des boutons petits pour assurer leur caractéristique &amp;quot;modulaires&amp;quot;, par la suite nous pourrons ajouter des capuchons de taille plus importante (imprimante 3D ou achat)&lt;br /&gt;
- Conception modules : réalisation de carte avec un microcontrôleur atmega328 programmable pour chaque module (anticiper le module Bluetooth) &lt;br /&gt;
- Projet en 2 parties : prototype filaire et prototype Bluetooth&lt;br /&gt;
# Prototype filaire : connexions entre les modules et la RPi3 en SPI, connexion Rpi3-PS4 en Bluetooth, avec l'application en filaire à la RPi3&lt;br /&gt;
# Prototype Bluetooth: connexion Bluetooth entre modules-RPi3-PS4-apllication&lt;br /&gt;
&lt;br /&gt;
[[Fichier: structuremanette.png||center|400px|Concept manette modulable]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 1&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous nous sommes concentrés les recherches afin de définir clairement le cahier des charges technique. Il s'agit des réalisations à mettre en œuvre pour les inter-connexions des éléments de la manette.&lt;br /&gt;
Ainsi, nous avons fait des recherches sur :&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI entre les modules (Atmega328p) et la RPi3===&lt;br /&gt;
&lt;br /&gt;
SPI: Serial périphérique interface BUS&lt;br /&gt;
&lt;br /&gt;
[[Fichier: yWGmW.png||right|200px|Concept manette modulable]]&lt;br /&gt;
Comme indiqué sur l'image ci-dessus, la Raspberry pi 3  peut communiquer en SPI avec ses broches CS0 (24), CS1 (26), SCLK (23), MISO (21), MOSI (19). Celles-ci permettent de communiquer avec un ou plusieurs esclaves (dans notre cas, des Atmega328p) en reliant directement les broches concernées de la RPi3 à celles des composants esclaves.&lt;br /&gt;
Chaque broche CS0 (24) ou CS1 (26) ne peut être connectée qu'à l'entrée SS (aussi appelé CS) d'un seul esclave.&lt;br /&gt;
C'est a dire que chaque CS est lié à un esclave afin de choisir avec lequel la communication est établie à un moment donné, et les MISO sont reliées entre elles en cascade, de même pour les SCLK et les MOSI. On peut noter que le maître impose la fréquence d’horloge et sélectionne l’esclave auquel les données sont envoyées.  8 MHz est le plus rapide supportable a 3,3V&lt;br /&gt;
&lt;br /&gt;
[[Fichier: fonctionnementSPI.png||right|200px|Connexion SPI multi-esclaves]]&lt;br /&gt;
&lt;br /&gt;
Voici un schéma du fonctionnement souhaité : &lt;br /&gt;
&lt;br /&gt;
Comme nous souhaitons avoir 5 modules environ il nous faudra rajouter un composant en plus afin d'augmenter les possibilités de sélection, par exemple des démultiplexeurs.&lt;br /&gt;
Dans un premier temps nous essaierons avec 2 esclaves, puis on augmentera le nombre. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Connexion Bluetooth PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Les recherches portent également sur la connexion entre la manette PS4 et la console. Elles concernent le protocole de communication via Bluetooth&lt;br /&gt;
&lt;br /&gt;
Caracteristique pour la PS4:  Bluetooth®v4.0, Qualcomm Atheros AR3002 Buetooth LE: 2,4-2,5 GHz  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caracteristique de la connexion : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Vitesse de transmission &amp;gt;&amp;gt; 3 Mbit/s   8N1 &lt;br /&gt;
*Relevé tous les 1.3 millisecond (peut-être) &lt;br /&gt;
*Chaque manette à une adresse unique BD_ADDR qui correspond à l’adresse MAC de la carte Réseau&lt;br /&gt;
*Protocole de détection est le SDP basé sur une emission reception PDU&lt;br /&gt;
*L’Attribut ID est representer en TLV Type Length Value &lt;br /&gt;
*Communication HCI ACL Data Packet &lt;br /&gt;
&lt;br /&gt;
===Rélisation des cartes électroniques===&lt;br /&gt;
&lt;br /&gt;
matériel nécessaire pour un PCB : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*breadboard&lt;br /&gt;
*câbles&lt;br /&gt;
*1 x 10k Ohm résistance&lt;br /&gt;
*Quartz 16Mhz clock crystal&lt;br /&gt;
*2 x 22 pF capaciteurs&lt;br /&gt;
*Atmega328P-PU&lt;br /&gt;
&lt;br /&gt;
Ressources: &lt;br /&gt;
[[https://www.arduino.cc/en/Main/Standalone]]&lt;br /&gt;
[[http://www.eprojectszone.com/atmega-328-pu-standalone/]]&lt;br /&gt;
[[https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 2&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la semaine deux et durant la séance, nous avons continué et approfondie nos recherches sur le projet. Nous avons pu ainsi affiner nos taches de réalisation et donc notre cahier des charges.&lt;br /&gt;
&lt;br /&gt;
===Connexion aux modules: SPI et Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Green&amp;quot;&amp;gt; CORRIGER&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
voir https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018#Configuration_du_syst.C3.A8me_embarqu.C3.A9&lt;br /&gt;
&lt;br /&gt;
(sudo apt-get install pi-bluetooth)&lt;br /&gt;
&lt;br /&gt;
''connexion sur la raspberry par ssh:''&lt;br /&gt;
 su&lt;br /&gt;
 update-rc.d ssh enable&lt;br /&gt;
 invoke-rc.d ssh start &lt;br /&gt;
 ssh pi@172.26.79.1XX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''bluetooth''&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
 agent on&lt;br /&gt;
 default-agent&lt;br /&gt;
 scan on&lt;br /&gt;
 pair [device Bluetooth address]  (exemple: pair XX:XX:XX:XX:XX:XX )&lt;br /&gt;
&lt;br /&gt;
''NOUVELLE REFLEXION : Connexion SPI entre les modules (Atmega328p) et la RPi3 --&amp;gt; MODULES BLUETOOTH''&lt;br /&gt;
&lt;br /&gt;
Si multi-esclaves= plusieurs modules : &lt;br /&gt;
Il faut ajouter des sélections pour les SPI → démultiplexeurs OU ne pas utiliser les CS0 et CS1, et plutôt des pins entrée/sortie de la RPi3 lié au SS comme ça on choisit direct le module esclave voulu.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' Nous avons étudié à nouveau la datasheet de notre module bluetooth nrf de Nordik. Le module bluetooth comporte  déjà un microprocesseur !&lt;br /&gt;
Un module plutôt peut donc jouer le rôle de notre atmega328p. Il n'y a alors pas besoin de réaliser des cartes électroniques de type arduino standalone. Nos PCB regrouperont alors uniquement l'alimentation, un actionneur (bouton, joystick), le module bluetooth et les broches de connexion si besoin... &lt;br /&gt;
&lt;br /&gt;
Cette séance nous a alors permise de revoir entièrement le matériel nécessaire. Notre liste de matériel nous semble alors plus réfléchie et limitée au nécessaire. &lt;br /&gt;
&lt;br /&gt;
===Connexion Bluetooth PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Suite à nos recherches de la semaine précédente, nous avons sélectionné deux sites bien renseignés : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;SITES&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ils nous ont permis de comprendre la communication entre la manette et la console. En effet, ils nous expliquent les échanges de trames Bluetooth. &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;EXPLICATIONS 1 exemple &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 3 : Début premier prototype&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI RPi3-Arduino===&lt;br /&gt;
&lt;br /&gt;
Comme vu durant les semaines précédentes, nous souhaitons réaliser une connexion Multi-esclaves en SPI entre la Raspberry pi et plusieurs modules.&lt;br /&gt;
Cette semaine nous avons vu que la réalisation de notre premier prototype doit aller vite. Il ne nous est pas nécessaire d’attendre les modules bluetooth si il nous faut dans cette partie uniquement utiliser son microprocesseur. Ainsi pour chaque module nous utilisons une arduino UNO. Nous réaliserons les programmes en C afin de pouvoir les réutiliser avec les modules bluetooth par la suite. &lt;br /&gt;
Une fois la connexion réalisable nous adapterons les programmes aux modules bluetooth Nordik. En effet, ceux-ci comporte déjà un microprocesseur, le module peut jouer le rôle de notre atmega328p. Il n'y a aurait alors pas besoin de réaliser des cartes électroniques arduino standalone sur PCB, mais directement des cartes électronique avec le module et le module voulu (bouton, joystick...) et l'alimentation. &lt;br /&gt;
Durant la séance nous avons alors revu la liste de matériel nécessaire. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: prototype1.jpeg||center|600px|connexion filaire prototype 1 filaire arduino]]&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous avons recherches des exemples de codes et de librairies pour Arduino SPI et RaspberryPI SPI. &lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé le programme de la connexion SPI pour l'arduino et récupéré les bibliothéques SPI.h avec SPI.c. Nous nous sommes alors concentrer à les comprendre, pour pouvoir l'utiliser. &lt;br /&gt;
&lt;br /&gt;
===Réalisation du projet Git===&lt;br /&gt;
&lt;br /&gt;
Création du projet IMA4_Projet35_ManetteModulable sur Git et partage de celui-ci. &lt;br /&gt;
Les premiers dossier crées cette la séance :&lt;br /&gt;
-Arduino (connexion SPI arduino) : ProtoSpi.c + dossier librairie SPI + Makefile&lt;br /&gt;
-RPI (dossier codes pour Rpi) &lt;br /&gt;
-Readme.md&lt;br /&gt;
Ces dossiers seront amenés à être modifiés au cours des séances. &lt;br /&gt;
&lt;br /&gt;
===Protocole Bluetooth PS4===&lt;br /&gt;
&lt;br /&gt;
Suite à l'étude des trames Bluetooth, on a pu voir que ces dernières étaient incomplètes. Le modèle de communication étant propriétaire, on n'y a pas accès directement. Cela nous empêche donc de mettre en oeuvre cette communication. &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt; Déveloper&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On a décidé de commencer par une connexion USB (pour laquelle on dispose de toutes les informations) celle-ci étant plus complète.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 4&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Pour le prototype 1 FILAIRE nous réaliserons les étapes suivantes :&lt;br /&gt;
&lt;br /&gt;
#Réalisation du programme SPI pour arduino&lt;br /&gt;
#Réalisation du programme SPI pour la RPi&lt;br /&gt;
#Connexion USB avec la PS4 ou ordinateur&lt;br /&gt;
#Réalisation de cartes électroniques atmega328p-pu standalone (remplacer les Arduinos) &lt;br /&gt;
#Remplacer les &amp;quot;PCB arduino&amp;quot; par le module bluetooth et adapter la connexion&lt;br /&gt;
#Conception 3D de la délimitation 1 axe pour le joystick &amp;quot;gâchette&amp;quot;&lt;br /&gt;
#Réalisation de l'application Androïde.&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées nous auront alors une preuve de concept filaire et nous pourrons alors passer à une connexion bluetooth. &lt;br /&gt;
Le passage à la connexion bluetooth sera le deuxième prototype et le cas idéal de la réalisation de la manette modulable. &lt;br /&gt;
&lt;br /&gt;
===Mise à jour Matériel===&lt;br /&gt;
&lt;br /&gt;
- Modéliser les boutons gâchettes L1/2 R1/2 de la manette PS4 (boutons sensibles à la pression) --&amp;gt; un joystick dont nous bloquerons un axe (imprimante 3D)&lt;br /&gt;
- Remplacer la RPi 3 par une Rpi zero W qui nous permettrait de réaliser plus facilement une connexion USB tout en gardant l'avantage du bluetooth. &lt;br /&gt;
- Choix de l’alimentation pour les 5 modules Bluetooth: nécessitent 3V --&amp;gt;  utiliser des piles rechargeables 1,2V AAA plutôt que piles rondes 3V.&lt;br /&gt;
&lt;br /&gt;
Nous avons également besoin du matériel cité en semaine 1 pour réaliser des cartes électroniques atmega328p-pu standalone. ( nous revenons alors sur les décisions de la semaine 3)&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI RPi3-Arduino===&lt;br /&gt;
 &lt;br /&gt;
Montage Raspberrypi et 1 arduino en PSI + 1 bouton + 1 led.&lt;br /&gt;
Voici le choix des branchements :&lt;br /&gt;
&lt;br /&gt;
 MASTER = RPi   &lt;br /&gt;
 SLAVE= Arduino&lt;br /&gt;
&lt;br /&gt;
'''SPI sur Arduino:'''&lt;br /&gt;
 MOSI -&amp;gt; GPIO11 //PB3  //master OUT to the slave IN&lt;br /&gt;
 MISO -&amp;gt; GPIO12 //PB4 //slave OUT to the master IN&lt;br /&gt;
 SCLK -&amp;gt; GPIO13 //PB5 //serial clock&lt;br /&gt;
 SS -&amp;gt; GPIO10   //PB2  //slave select&lt;br /&gt;
'''Led, bouton et autre...'''&lt;br /&gt;
 LED --&amp;gt; GPIO6  //PD6&lt;br /&gt;
 GND&lt;br /&gt;
 +5V (if required)&lt;br /&gt;
'''SPI sur la Raspberry Pi'''&lt;br /&gt;
 SPIO MOSI -&amp;gt; PIN19 &lt;br /&gt;
 SPIO MISO -&amp;gt; PIN21&lt;br /&gt;
 SCLK -&amp;gt; PIN23&lt;br /&gt;
 SPIO CS0 -&amp;gt; PIN24&lt;br /&gt;
&lt;br /&gt;
Continuation du code pour faire clignoter Led branchée à une arduino depuis la Rpi, en connexion SPI.&lt;br /&gt;
&lt;br /&gt;
===Connexion USB PS4-RPi3===&lt;br /&gt;
Durant cette, nous avons regardé comment faire cohabiter bluetooth, Application Androïd, USB, PS4, SPI et les module. &lt;br /&gt;
&lt;br /&gt;
Il est alors important de savoir comment utiliser le port série sur la RPi3, soit utiliser les UART. &lt;br /&gt;
&lt;br /&gt;
Nous avons réaliser qu'il n'était pas aussi simple d'utiliser le port serie USB de la Raspberry Pi 3, en effet le SoC est un BCM2837 . &lt;br /&gt;
De plus nous ne pouvons pas utiliser le même port pour l'alimentation et la connexion. &lt;br /&gt;
&lt;br /&gt;
Il nous faut alors trouver une alternative ou une solution à ce problème.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 5&amp;lt;/span&amp;gt;==&lt;br /&gt;
 &lt;br /&gt;
===Programmation: Réflexion définitives prototypes filaire ===&lt;br /&gt;
&lt;br /&gt;
La semaine dernière, nous avons rencontré une difficulté liée aux ports séries UART. &lt;br /&gt;
Une des solutions à cette difficulté serait d'utiliser une RPi ZERO W à défaut d'une RPi 3. On pourrait alors avoir un port d'alimentation avec connexion USB mais également retrouver la connexion Bluetooth dont nous avons besoin.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous avons continué la réalisation du prototype filaire par l'avancé du code SPI ainsi que les recherches concernant le protocole PS4. &lt;br /&gt;
&lt;br /&gt;
La Raspberry Pi zero W peut également être utile pour la connexion entre la PS4 et les différents modules en jouant le rôle d'intermédiaire. Nous avons alors commandé une Rpi zero W pour notre projet. &lt;br /&gt;
En attendant la réception de la commande, nous nous sommes penché sur les recherches pour les programmes et la configuration nécessaire à l'utilisation de la RPi zero W.&lt;br /&gt;
&lt;br /&gt;
===Electronique===&lt;br /&gt;
&lt;br /&gt;
[[Fichier: bouton_c1.jpg|100px|thumb|left|PCB bouton]]&lt;br /&gt;
[[Fichier: arduinobb.jpg|200px|thumb|right|atmega328p-pu branchement test]]&lt;br /&gt;
&lt;br /&gt;
Du coté électronique, nous avons réalisé sur fritzing certaines cartes électroniques. Les Arduino Uno servant actuellement de test, seront remplacées par des PCB atmega328p-pu standalone avec des broches permettant les branchements nécessaires SPI ou encore aux modules &amp;quot;boutons/joystick&amp;quot;. Pour les boutons, nous avons également réalisé un pcb afin de faciliter les branchements.  &lt;br /&gt;
&lt;br /&gt;
Il nous faut alors également une 3eme carte qui nous sera nécessaire pour la réalisation du prototype sans fil. Dans notre liste de matériel, nous avons des composants nrf52810 bluetooth, ceci doivent être soudé avec les capacités de protection mais également des broches de communication. Nous avons alors commencé cette carte électronique sur Altium avec le fichier  projet PCB du distributeur à modifier.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: Arduino_c1.jpg|100px|thumb|center|PCB atmega328p-pu]]&lt;br /&gt;
&lt;br /&gt;
=== Construction 3D ===&lt;br /&gt;
&lt;br /&gt;
Enfin, nous avons commencé à réaliser des boîtiers 3D pour certains modules. Par exemple, comme nous l'avions vu précédemment, un des joysticks servira de bouton-gâchette en utilisant un seul de ses axes. Il nous faut alors réaliser un boitier qui bloque l'un des axes, mais également une tige qui nous permettra de pousser le joystick de manière simplifiée.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 6&amp;lt;/span&amp;gt;==&lt;br /&gt;
 &lt;br /&gt;
===Programmation: configuration RPi Zero W ===&lt;br /&gt;
&lt;br /&gt;
Ayant reçu la Raspberry Pi zero W en début de semaine, nous nous sommes concentrés sur la programmation et la configuration de celle-ci.&lt;br /&gt;
Cette partie étant compliquée, elle nous a pris du temps. En effet, il était difficile de connecter la RPi en SSH car il n'est pas possible d'y connecter un clavier directement et on avait besoin de la prise OTG pour &amp;quot;interfacer&amp;quot; la manette.&lt;br /&gt;
&lt;br /&gt;
===Electronique: PCB nrf52810===&lt;br /&gt;
&lt;br /&gt;
Les cartes réalisées en semaine 5 sont validées et en attente de réalisation. &lt;br /&gt;
&lt;br /&gt;
Cette semaine a permis la réalisation et la finalisation de la carte électronique nrf52810. Il nous a fallu recommencé cette carte deux fois. En effet, une fois finie sur Altium nous avons réalisé que les empreintes des CMS sur PCB fourni par le constructeur ne correspondent pas au matériel CMS de l'école. Face à cette inattention de notre part, nous avons décidé de refaire entièrement la carte électronique sur fritzing. Ayant la datasheet et des plans d'inspiration PCB, nous avons pu refaire la carte entièrement. &lt;br /&gt;
Sur celle-ci nous avons ajouté des broches de connexion au besoin, un branchement Jtag et ICSP pour la programmation et la connexion SPI. &lt;br /&gt;
La carte est en attente de validation, puis validation.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: nrf52810_circuit2.jpg||center|400px|PCB carte nrf52810]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Révision matériel ===&lt;br /&gt;
&lt;br /&gt;
Pour la réalisation de nos composants électroniques, il nous a fallu faire une révision des composants disponibles à l'école:&lt;br /&gt;
(les quantités indiquées ci-dessous pourront être augmentée si nécessaire,pour avoir dans l'idéal un module de chaque type de la manette, ici on se concentre sur BOUTON et JOYSTICK)&lt;br /&gt;
&lt;br /&gt;
'''Cartes Arduino:'''&lt;br /&gt;
* 4 capacite 22pF traversantes&lt;br /&gt;
* 2 resistances 10 kOhm traversantes (à récupérer)&lt;br /&gt;
* 2 oscillateurs quartz 16MHz traversante&lt;br /&gt;
* 2 atmega328p-pu et support&lt;br /&gt;
&lt;br /&gt;
'''Cartes nrf52810'''&lt;br /&gt;
* 6 capacités 100nF 0603&lt;br /&gt;
* 6 capacités 12pF 0603&lt;br /&gt;
* 2 capacités 4,7pF 0603&lt;br /&gt;
* 2 capacités 1µF 0603&lt;br /&gt;
* 2 capacités 100pF=0,1nF 0603 (à récupérer)&lt;br /&gt;
* 2 capacités 0,8pF 0603 (commande en cours)&lt;br /&gt;
* 2 inductance 3,9nH 0603 (commande en cours)&lt;br /&gt;
* 2 oscillateur quartz 32 MHz &lt;br /&gt;
&lt;br /&gt;
'''Cartes modules Boutons'''&lt;br /&gt;
* un sachet de broches mâles (qu'on utilisera également pour les autres cartes, à récupérer/acheté) &lt;br /&gt;
&lt;br /&gt;
Nous avons alors mis-à-jour la liste de composant située plus haut, ainsi que celle de la page IMA4 2017/2018 [https://projets-ima.plil.fr/mediawiki/index.php/Projets_IMA4_SC_%26_SA_2017/2018]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 7&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Programmation: connexion wifi RPi Zero W et Bootloader sur Atmega328p-pu ===&lt;br /&gt;
&lt;br /&gt;
Pendant cette semaine, nous avons continué la programmation et la configuration des Raspberry Pi 3 et Zero W. Concernant la configuration ssh, nous avons utilisé un téléphone en guise de point d’accès à la RPi Zero W en wifi.&lt;br /&gt;
Nous avons aussi directement configurer l'OS Jessie, utilisé pour la RPi Zero. On a modifié le fichier cmd.txt et ...pour pouvoir programmer un USB gadget sur le port OTG.&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;Ci-dessus expliquer fichiers&amp;lt;/span&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Nous avons également continuer les programmes de récupération de données : état des boutons et du joystick. Ces programmes sont appliqué sur l'atmega328p-pu standalone sur la plaque d'essai en attendant que le PCB soit opérationnel.&lt;br /&gt;
Pour pouvoir programmer l'atemega328p-pu comme une arduino UNO, il nous faut suivre plusieurs étapes :&lt;br /&gt;
&lt;br /&gt;
'''1.Flasher le Bootloader'''&lt;br /&gt;
Nous avons 2 Atmega328p-pu neufs, ainsi il nous faut flasher le bootloader sur chacun d'eux afin de pouvoir les utiliser et les programmer sur une breadboard dans un montage minimaliste arduino-standalone. &lt;br /&gt;
Pour cela, on peut utiliser une carte arduino UNO. On vérifie le port et le type de carte sélectionnés dans le menu &amp;gt;Outils. Sur cette carte on téléverse le fichier arduinoISP.ino qui se trouve dans les exemples en étant en progrmamateur AVr ISP mkll (&amp;gt;outils&amp;gt;programmateur) &lt;br /&gt;
Puis on met l'atmega328p-pu qui nous intéresse sur le suppor socket de la carte. On change de nouveau le programmateur pour Arduino as ISP et on fait &amp;gt;tools&amp;gt;burn bootloader, soit &amp;gt;graver la sequence d'initialisation.&lt;br /&gt;
Ces étapes faites, on peut retirer notre microcontroleur et le replacer correctement dans le montage. &lt;br /&gt;
&lt;br /&gt;
'''2.Programmation atmega328 sur breadboard'''&lt;br /&gt;
Une fois l'atmega328p-pu préparé, on peut le programmer. On peut le faire simplement à l'aide de la carte arduino UNO utilisée précédemment.On branche les Tx et Rx en commun ainsi que le reset, le GND et le VCC.&lt;br /&gt;
&lt;br /&gt;
Nous avons réaliser des codes basiques tels que le clignotement d'une led rouge ou encore l'affichage de &amp;quot;hello world&amp;quot; sur le moniteur série pour vérifier la bonne fonctionnalité du montage. Cela fait nous avons pu écrire sous Arduino IDE le code de lecture des états.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: montage_BB_test.jpg||left|200px|programmation modules arduino sur breadboard]]&lt;br /&gt;
&lt;br /&gt;
===Electronique : soudure carte de test modules ===&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons déja vu lors de la réalisation des PCB, si l'on souhaite programmer un atmega328p-pu en bootloader, le montage est simple. Il peut être minimaliste en utilisant une arduino UNO, un atmega328, une breadboard et 3 composants: 1 quartz 16MHZ crystal, 1 résistance 10kOhm et 2 capacitors céramiques de 22pF.&lt;br /&gt;
Durant la semaine 7, nous avons soudé les composants traversants de la carte électronique correspondant à ce montage ainsi que le PCB du bouton.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 8&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Programmation ===&lt;br /&gt;
Après moult recherche sur les différents site web bien fournis pour le coups on as pu trouvé une amorce à la programmation de l'OTG via un script qui agit au niveau du kernel dans le sous dossier usg_gadget. Ce script donne les informations nécessaires pour pouvoirs échangé les données.&lt;br /&gt;
Avec le script trouvé et les informations des sites web décryptant les trames de la manette, on a toujours pas réussit à faire passer notre RPi Zero W pour une manette de PS4. Néanmoins il nous manque la trame HID complète de la manette pour avoir un test effectif.&lt;br /&gt;
&lt;br /&gt;
===Electronique : Correction soudure et soudure CMS===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avions souhaité programmer la carte électronique atmega328p-pu. Cependant, nous avons réaliser que nous avions fait une erreur lors de l'envoie du PCB à la production. En effet, celui-ci avait été fait en Top sur le logiciel Fritzing et non en Bottom. Hors nous avions soudé les composants (durant la semaine 7) comme pour un circuit imprimé en bottom, l'atmega328p-pu se retrouve alors inversé par rapport aux pistes. &lt;br /&gt;
Comme solution, nous avons choisi de souder un deuxième support pour l'atmega328 de l'autre coté de la carte avant de la refaire au propre. En effet, avant de la refaire il nous faut vérifier si la carte est bien programmable. &lt;br /&gt;
Une fois cela fait nous avions pu programmer la carte mais, nous avions également réalisé la pin 2 de l'atmega328 était prise par le bouton poussoir. Or, nous avons besoin des pin 2 et 3 pour le RX et TX permettant la programmation de l'atmega à partir d'une arduino, les pistes branchement RX-TX n'ont également pas été prévus pour le téléversement des programmes sur la carte. Il nous faut alors couper une piste et souder des câbles pour utiliser toutes les pistes souhaitées. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: correction_proto_PCB.jpg||right|300px|PCB arduino correction]]&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons également souhaité souder les CMS et le composant bluetooth nrf52810 sur la carte imprimé et reçu lors de la semaine 7. Pour cela, nous avons convenu de travailler dans la C202 durant la séance du mercredi. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: PCB_nrf52810.jpg||left|400px|carte electroniques imprimées]]&lt;br /&gt;
&lt;br /&gt;
====Comment souder des CMS ?====&lt;br /&gt;
&lt;br /&gt;
les CMS sont des composants montés en surface c'est à dire qu'ils sont montés du même côté que les pistes cuivrées (à l'opposé des composants traversants) et sont de petite tailles souvent de l'ordre du millimètre. La taille est déterminée par 4 chiffres : les 2 premiers pour la longueur et les 2 derniers pour la largeur. On a du 1206,0805,0603 ou encore 0402. Il est même possible de trouver plus petit. A l'école nous utilisons souvent du 0603, c'est le cas de nos composants.&lt;br /&gt;
Pour souder des CMS 0603, il nous faut utiliser une autre méthode qui n'est pas le fer à souder :&lt;br /&gt;
# Préparer la veille la pâte à braser la veille (dans une seringue)&lt;br /&gt;
# Gommer la carte pour éviter l'oxydation (attention à ne pas retirer les miettes de gomme en soufflant dessus) &lt;br /&gt;
# Appliquer avec la seringue la pâte sur les empreintes et piste souhaitées. Pour les endroits difficile à atteindre ou avec 2 pistes proches les unes des autres, il est possible de mettre la même goutte de pâte sur les 2 pistes. Cela de causera pas de court-circuit par la suite. En effet, la pâte est composée d’alliage qui sous la chaleur va se fluidifier et se coller uniquement aux pistes métallique. Le reste fondera sous la chaleur du four.&lt;br /&gt;
# Appliquer les CMS sur la pâte au fur et à mesure (attention ! ne jamais toucher les CMS avec les doigts, tjrs utiliser une pince)&lt;br /&gt;
# Mettre au four&lt;br /&gt;
&lt;br /&gt;
====Bilan soudure nrf52810====&lt;br /&gt;
&lt;br /&gt;
Cependant, une fois le matériel nécessaire préparé, et la pâte mise sur les pistes souhaitées, au moment de déposer le composant, nous avons réalisé que celui-ci était beaucoup plus petit que l'empreinte sur le PCB. Il s'agit d'un composant boitier QFN48. Fritzing ne proposant au plus proche des boitiers QFN24 ou LQFP48, celui-ci a basculé automatiquement pour un boitier LQFN48, de dimension plus grande. Face à ce manque de vigilance, nous avions cependant commencer par le nrf52810 (composant concerné) évitant ainsi de gaspiller d'autres CMS. &lt;br /&gt;
Nous avons souhaité refaire la carte sous Altium à partir des fichiers fournis par le concepteur (chose que nous avons commencé à faire aux alentours de la semaine 5) &lt;br /&gt;
Après la réalisation du schématic, et de la modification des empreintes de capacités, inductances et autres composants de 0402 à 0603. Notre matériel ne permettant que des empreintes 0603.&lt;br /&gt;
 &lt;br /&gt;
Lors du routage, une erreur de chevauchement des pistes est notifiée par Altium au niveau du nrf52810. Celles-ci ne présentent pas d'angles et sont déjà de taille 8mil, il nous faut alors passer les pistes en 6mil. Mais 8mil est la taille minimale pour la production à Polytech, nous avons regardé pour envoyer les cartes à faire ailleurs mais le 6mil n'est pas beaucoup conseillé. De plus, il n'est peut-être pas judicieux de continuer avec le composant microcontrôleur-bluetooth Nrf52810 qui prend du temps, donc la carte est difficilement réalisable et peut-être très long à programmer. &lt;br /&gt;
&lt;br /&gt;
Ainsi en cette fin de semaine, nous avons décider face à l'avancer du projet de laisser les nrf52810 de coté et de les remplacer par des modules sans fils plus simples d'utilisation et complets. Ainsi nous aurions plus de chance d'avoir une connexion sans fils entre les modules. Nous pourrions par exemples utiliser des Xbee, des modules Rf...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 9&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation: PS4 et 1er Test SPI sur atmega328p====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
Une carte PCB arduino fonctionnant, nous pouvons la programme pour simuler un module. Celle-ci a été designée afin de s'adapter au module que l'on souhaite. Il suffit de brancher le bouton, le joystick ou autre élèment de manette souhaité.&lt;br /&gt;
Cette semaine ci, nous avons alors configurer la partie communication SPI pour l'arduino.&lt;br /&gt;
&lt;br /&gt;
'''Que voulons-nous faire avec les atmegas ?''' &lt;br /&gt;
Les cartes électroniques atmega328p vont nous permettre de recevoir les requêtes SPI envoyées par la raspberry pi et d'y répondre. La Raspberry enverra un message, par exemple &amp;quot;1&amp;quot;, et l'Arduino lira alors l'état du module qui lui est connecté. Une fois l'état récupéré elle le renvoie à la raspberry pi.&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons programmé l'atmega afin qu'il soit en esclave, qu'il reçoive un de la RPi &amp;quot;1&amp;quot; et retourne une valeur sauvegardé &amp;quot;int envoi&amp;quot;. Nous avons également commencé les tests pour la lecture de l'état d'un bouton (d'après les tests réalisés les semaines précédentes).&lt;br /&gt;
&lt;br /&gt;
'''Code'''&lt;br /&gt;
Comme nous l'avons vu précedement lors de nos recherches (semaines 1 à 4) : &lt;br /&gt;
La communication SPI nécessite l'utilisation des pins: &lt;br /&gt;
&lt;br /&gt;
MOSI -&amp;gt; GPIO11 //PB3  //master OUT to the slave IN&lt;br /&gt;
MISO -&amp;gt; GPIO12 //PB4 //slave OUT to the master IN&lt;br /&gt;
SCLK -&amp;gt; GPIO13 //PB5 //serial clock&lt;br /&gt;
SS -&amp;gt; GPIO10   //PB2  //slave select&lt;br /&gt;
&lt;br /&gt;
Il faut également paramétrer l'atmega328p en Slave. On note que dans un premier temps, le programme sera codé avec l'arduino IDE (fichiers .ino). Une fois l'ensemble SPI RaspberryPi-Arduino fonctionnant, on remplacera ces codes par du langage C ou C++.&lt;br /&gt;
&lt;br /&gt;
Pour faire la connexion SPI sur l'atmega328p,  on utilise la librairie arduino SPI.h, on a alors directement les fonctions nécessaires intervenant sur les registres souhaités : SPCR (spi control register), SPSR (spi status register) et SPDR (spi data register). &lt;br /&gt;
 &lt;br /&gt;
  #include &amp;lt;SPI.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il est important d'initialise d'abord le setup et on active le port série pour pourvoir utiliser le moniteur série. (Cela servira à verifier la valeur envoyée par la RPi) &lt;br /&gt;
&lt;br /&gt;
 void setup (void)&lt;br /&gt;
 {&lt;br /&gt;
   Serial.begin (9600);  &lt;br /&gt;
   pinMode(MISO, OUTPUT);  //configuration en esclave *master in slave out*&lt;br /&gt;
   pinMode(buttonPin,INPUT);  //config pin bouton&lt;br /&gt;
   // turn on SPI in slave mode&lt;br /&gt;
   SPCR |= _BV(SPE);&lt;br /&gt;
   // preparation interruptions&lt;br /&gt;
   pos = 0;   // buffer empty&lt;br /&gt;
   process_it = false;&lt;br /&gt;
   // activation interruptions&lt;br /&gt;
   SPI.attachInterrupt();&lt;br /&gt;
 }  &lt;br /&gt;
 &lt;br /&gt;
On oublie pas de déclarer les interruptions afin de bien lire la requête reçue. &lt;br /&gt;
 &lt;br /&gt;
// SPI interrupt routine&lt;br /&gt;
ISR (SPI_STC_vect)&lt;br /&gt;
{&lt;br /&gt;
  byte c = SPDR;  // grab byte from SPI Data Register&lt;br /&gt;
  // add to buffer if room&lt;br /&gt;
  if (pos &amp;lt; sizeof buf)&lt;br /&gt;
    {&lt;br /&gt;
    buf [pos++] = c;&lt;br /&gt;
    // example: newline means time to process buffer&lt;br /&gt;
    if (c == '\n')&lt;br /&gt;
      process_it = true;&lt;br /&gt;
    }  // end of room available&lt;br /&gt;
}  // end of interrupt routine SPI_STC_vect&lt;br /&gt;
&lt;br /&gt;
Dans la loop main, on traite la requête et on utilise '''SPI.transfer(envoi);''' pour transferer à la RPi les données souhaitées. &lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons également commencé des programmes de test SPI pour la RPi. Il s'agit principalement de programmes de tests tout faits permettant de vérifier la connexion entre cette dernière et l'arduino. Par exemple, la RPI envoie &amp;quot;bonjour&amp;quot; et l'arduino lui retourne ce qu'elle reçoit, soit &amp;quot;bonjour&amp;quot;. Sans succés alors. &lt;br /&gt;
&lt;br /&gt;
====Electronique : Fritzing révision====&lt;br /&gt;
&lt;br /&gt;
Lors de la semaine, le modèle PCB de la carte arduino a été réalisé de nouveau sous fritzing avec les broches et connections manquantes. Nous avons également revu la configuration du bouton reset  et ajouté une led d'état de l'alimentation. Nous avons ainsi envoyé deux cartes identiques à la réalisation.&lt;br /&gt;
La carte déjà soudée lors des derniers jours fonctionnant, elle nous sert de prototype de programmation. Nous pouvons ainsi avancer à la fois sur la programmation des modules mais aussi sur leur réalisation. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 10&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation : PS4 et SPI sur RPi====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Raspberry PI et SPI'''&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, pour la partie Atmega328p-Modules, nous nous sommes concentrés sur la programmation de la communication SPI avec la raspberry pi. Cette semaine a permis une étude plus approfondit sur le fonctionnement pour la RPi. &lt;br /&gt;
&lt;br /&gt;
On rappelle, comme vu des semaines 1 à 4, pour la RPI3 (tout comme la RPi Zero W) utilise les broches : SCLK (23), MISO(21), MOSI (19) et SPI CS0 (24), SPI CS1 (26). &lt;br /&gt;
On la programme en Master. A l'aide des fichiers tests d'inspiration, on pourra directement programmer la RPi en C. Lors de la réalisation du code, il y a 3 étapes : l'initialisation/parametrage en SPI pour être maître, l'envoie de la requête puis la réception de données en retour. &lt;br /&gt;
&lt;br /&gt;
Programmant en C, il ne faut pas oublier les librairies suivantes :&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;getopt.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;sys/ioctl.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/types.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/spi/spidev.h&amp;gt;   //pour SPI&lt;br /&gt;
&lt;br /&gt;
On va déclarer des variables globales permettant le paramétrage :&lt;br /&gt;
&lt;br /&gt;
 static const char *device = &amp;quot;/dev/spidev0.0&amp;quot;;  //si on veut CS0 pour atteindre notre SS&lt;br /&gt;
 static uint8_t mode;       //mode est par défaut à 0&lt;br /&gt;
 static uint8_t bits = 8;    //bits par mot échangé&lt;br /&gt;
 static uint32_t speed = 500000;  &lt;br /&gt;
 static uint16_t delay;&lt;br /&gt;
&lt;br /&gt;
Dans notre main, on ouvre le port (la connexion) au device souhaité,  on vérifie les paramètres (registres, connexions...) puis exécute la fonction transfer(fd). transfer(fd) transmet la requête et s'occupe de la réception. &lt;br /&gt;
&lt;br /&gt;
 fd = open(device, O_RDWR);&lt;br /&gt;
 transfer(fd);&lt;br /&gt;
 close(fd);&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 11&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation: PS4, SSH et tests SPI (RPi3&amp;amp;Atemga328p)====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Raspberry PI, Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
Afin de facilité la programmation en utilisant Ethernet, nous avons installer et configuré la RPi pour l'utiliser en SSH depuis les ordinateurs de la E306. En effet, SSH permet de se connecter à distance sur une machine en utilisant un compte utilisateur de la dite machine. En mettant ssh, on pourra directement agir sur les fichiers de la raspberry depuis un terminal de notre PC. Pour cela, on a d'abord vérifier l'adresse IP de notre raspberry pi : 172.26.145.106 avec un écran mais on peut aussi utiliser les commandes ip a et ifconfig. Puis activer le ssh sur la raspberry pi. &lt;br /&gt;
On modifie alors le fichier config.txt mais également etc/network/interfaces pour configurer la bonne interface Ethernet sur la raspberry pi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: configSSH_raspi.png||left|300px|config ssh ethernet]]&lt;br /&gt;
&lt;br /&gt;
Il nous suffit alors de taper la commande : ssh pi@172.26.145.106  pour accéder à notre RPi. &lt;br /&gt;
&lt;br /&gt;
Nous avons continué à réaliser la communication SPI avec des tests entre une arduino UNO et la RPI3. Nous avons commencé par des tests simples inspirés des études de deux semaines précédentes et modulés selon notre utilité.  &lt;br /&gt;
Nous arrivons alors à lire l'état envoyer &amp;quot;bonjour&amp;quot; et recevoir &amp;quot;ça va&amp;quot; ou encore &amp;quot;1&amp;quot; et recevoir &amp;quot;3&amp;quot;. Il faut noter que le SPI échange des trames, la RPI reçoit alors des hexadécimaux. &lt;br /&gt;
Nous avons alors continué pour recevoir l'état du bouton ou du joystick lors de l'envoie de &amp;quot;1&amp;quot; sur l'Arduino328p. La semaine prochaine nous testerons ces même codes fonctionnels sur les cartes atmeg327p. &lt;br /&gt;
&lt;br /&gt;
A la fin de cette semaine, nous avons alors des codes Arduino-SPI (.ino) et des codes Raspberry-SPI (.c) permettant l'échange de données. Le but est maintenant de l'adapter aux cartes imprimées et de le rendre pleinement fonctionnel pour plusieurs cartes à la fois, puis ajouter une boucle de vérification en continue jusqu'à une deuxième requête de la RPi.&lt;br /&gt;
&lt;br /&gt;
====Electronique: réalisation au propres des PCB modules====&lt;br /&gt;
&lt;br /&gt;
Suite à une nouvelle erreur de réalisation cartes électronique, nous avons  refait et renvoyé à nouveau les cartes imprimées atmega328p.&lt;br /&gt;
Nous les souhaitons au propre pour une version finale. Une fois celle-ci imprimées nous pourrons en avoir 3 , un pour chaque module. Les cartes étaient bien imprimées en bottom mais lors du passage des traversants de bottom à top, le logiciel ne les a pas fait miroiter. Par manque d'attention nous avons alors envoyé les fichiers gerber pour des cartes ayant les composants du même coté que la couche de cuivre. &lt;br /&gt;
Les cartes électroniques actuelles sont alors correctes et fonctionnelles mais difficile à souder. Pour eviter les erreurs et continuer sur des prototypes de carte nous préférons attendre en nous concentrant sur la programmation PSI de la Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 12&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Raspberry PI, Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
-  réflexion: penser à faire boucler sur l'arduino une fois la requête reçu, ça veut dire que la manette est ON et donc vérifier continuellement les modules sur chaque atmega.&lt;br /&gt;
- SPI raspberry pi - arduino recuperation état du bouton avec les cartes modules  (/!\ récuperation à faire dans une variable) &lt;br /&gt;
&lt;br /&gt;
-SSH perso &lt;br /&gt;
adresse Rasppi: 192.168.137.10&lt;br /&gt;
&lt;br /&gt;
====Electronique: Finalisation soudure Modules====&lt;br /&gt;
&lt;br /&gt;
Soudure au propre et finale d'une carte atmega328p et donc envoie pour la réalisation de 2 autres cartes similaires et récupération de matériel&lt;br /&gt;
Soudure des 2 autres cartes, + tests sur les états = fonctionnelles.&lt;br /&gt;
On a donc bien 3 cartes pour les 3 modules de types différents (1 bouton, 1 joystick, 1 gachette)&lt;br /&gt;
PCB pour les 2 joysticks (qui serviront de thumbstick et gachette)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 13 et plus&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
====Electronique====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
(à mettre rapport + git + drive)&lt;br /&gt;
&lt;br /&gt;
=Datasheets=&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=55390</id>
		<title>IMA4 2017/2018 P35</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=55390"/>
				<updated>2018-05-05T19:02:28Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : /* Semaine 7 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Présentation générale: Manette modulable&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Description&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Tout le monde joue aux jeux vidéo cependant, les manettes ne sont pas adaptées aux personnes ayant un handicap pouvant toucher les bras ou les mains.&lt;br /&gt;
C’est le cas, de plusieurs patients dans les centres de soins et de rééducation.&lt;br /&gt;
&lt;br /&gt;
Pour ce projet IMA4, nous travaillerons avec le centre SSR (soin de suite et de réadaptation) Marc Sautelet de Villeneuve d’Ascq.&lt;br /&gt;
Un adolescent, patient de Marc Sautelet, est passionné par les jeux vidéo. En effet, ayant perdu la motricité d’une partie de son corps, il ne peut pas jouer à deux mains. Pour cela, il bloque la manette entre son épaule et son coude, usant de la mâchoire et des doigts pour contrôler les&lt;br /&gt;
joysticks et les boutons. Cet exercice peut s’avérer fatiguant et pénible.&lt;br /&gt;
&lt;br /&gt;
Ainsi, nous chercherons à concevoir une manette PS4 adaptée au handicap de l’adolescent. &lt;br /&gt;
Cette manette devra aussi être adaptée pour d’autres patients présentant également des handicaps moteurs. Ainsi nous prendrons pour cibles: tous les patients du centre voulant jouer; et non pas que les enfants et adolescents.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Membre du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Transley Gracias et Camille Saad&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Cible&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Patient présentant un handicap moteur&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Période du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
janvier 2018 - mai 2018&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Partenaire/Client&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Centre SSR Marc Sautelet à Villeneuve d'Ascq&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Objectifs&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ce projet a pour objectif de créer un prototype de manette qui puisse interagir avec la console PS4 et dont le paramétrage se fait à l’aide d’une application mobile et/ou web. Cette manette devra suivre les demandes du patient ainsi que des aides-soignantes du centre, dans la mesure du possible.&lt;br /&gt;
&lt;br /&gt;
Plus précisément, pour le premier prototype, nous mettrons en œuvre l'utilisation de quelques boutons spécifiques: &lt;br /&gt;
&lt;br /&gt;
* Un joystick (type L/R)&lt;br /&gt;
* Quelques boutons poussoirs (type Croix/Triangle/Carré/Rond/R1/L1/Start/...)&lt;br /&gt;
* Des boutons gâchettes progressives (type L2/R2).&lt;br /&gt;
&lt;br /&gt;
Le but serait donc dans un premier temps de rendre fonctionnel un bouton de chaque type, puis de les multiplier une fois cela fait. Tous ces boutons réunis constituent une manette fonctionnelle.Ainsi, la manette sera ajustable, c’est à dire qu’elle devra s’adapter aux différents handicaps moteurs possibles.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Analyse du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Positionnement par rapport à l'existant&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre prototype aura une présentation unique par rapport à l’existant. En effet, les concurrents et produits existants ciblent pour la majorité un seul handicap. Cela&lt;br /&gt;
engendre une solution fermée à beaucoup de patients. Notre projet propose une mobilité des mouvements et également un choix large dans la composition et le&lt;br /&gt;
design de notre manette.&lt;br /&gt;
Le patient n’est pas retreint à jouer à une seule main, à utiliser beaucoup de force...Il y a moins de technique dans la manipulation et on ne joue pas avec une&lt;br /&gt;
manette adaptée uniquement pour un droitier ou un gaucher. Cependant, cela nous limitera peut-être dans le choix possible des types de jeux. Tout comme les autres&lt;br /&gt;
manettes adapté, l’utilisateur nécessitera un peu d’entrainement.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du premier concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Jouer aux jeux vidéo à une main n’est pas une idée d’aujourd’hui. En 1990, Nintendo propose le Power Glove. Mais il tombe très rapidement aux oubliettes suite à des problèmes techniques.&lt;br /&gt;
&lt;br /&gt;
Un autre gant a fait son apparition quelques années plus tard. Celui-ci, plus technique, il faut office de manette Play Station: le Reality Quest Power Glove.Cette idée de manette-gant, permet de jouer à la PS avec une seule main, elle a était conçue et présentée pour les E3, un salon d’exposition de gaming.Le gant est conçu pour contrôler l’équivalent des 14 boutons et 2 joysticks à l’aide d’une seule main. La « manette » est fixée dans la pomme de la main. L’utilisateur contrôle les mouvements verticaux et horizontaux en pivotant le poignet, et utilisent les 4 boutons d’action principaux et L1/R1 avec les doigts. Les autres boutons sont accessibles par un seul bouton rond contrôlé par le pouce.&lt;br /&gt;
La manette est adaptée pour beaucoup de jeux vidéo, dont les plus simples sont les jeux de voitures et de combats (arcade).&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec ce gant&lt;br /&gt;
*Design obligatoirement droitier&lt;br /&gt;
*Les boutons de contrôle sont peu sensibles et peuvent nécessiter de la force&lt;br /&gt;
*Design compliqué et nécessitant beaucoup d’entrainement.&lt;br /&gt;
&lt;br /&gt;
;Lien : https://www.youtube.com/watch?v=qV0SxSJDCYg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du second concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ben Heck, de son vrai nom Benjamin J.Heckendorn, est un concepteur de mods de consoles (mods pour modification, soit « manettes modifiées ») et une star&lt;br /&gt;
du net grâce à ses vidéos tutoriels.Il propose alors énormément de produits adaptés ou dérivés en guise de manettes.&lt;br /&gt;
Parmi les mods qu’il a réalisé, il a modifié une manette de PS4 afin de la rendre accessible à une personne ne pouvant jouer qu’à une main. Pour cela, il a déplacé les boutons en respectant l’ergonomie de la main valide et modifie les connexions. Il peut lui arriver de rajouter des boutons pour en remplacer un autre. Il réalise également le même système avec la Xbox. Sur la photo ci-dessous, il a adapté la manette pour un droitier.&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec cette ma&lt;br /&gt;
*Design obligatoirement droitier ou gaucher, une modification = une manette= une personne&lt;br /&gt;
*Besoin obligé du pouce et de l’index, même si avantage : 3 doigts nécessaire.&lt;br /&gt;
&lt;br /&gt;
;Lien :: https://www.youtube.com/watch?v=LieHIscadjk&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Scénario d'usage du produit ou du concept envisagé&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
La technologie est ,aujourd’hui, omniprésente dans notre vie. Les consoles de jeux ont envahies les maisons avec plus de 7 personnes sur 10 jouant aux jeux vidéos sur consoles en France (chiffre de l’Express). 0,18% des français sont handicapés cela représente 12 millions de français. Dans ce chiffre, 13,4% des personnes ont un handicap moteur. En 2017, les grands groupes comme Sony ou Microsoft avec respectivement PlayStation et Xbox ne permettent pas à tout le monde de jouer avec une manette. Les manettes sont prévues pour des personnes ayant leurs membres valides, plus précisément les mains et les bras.&lt;br /&gt;
&lt;br /&gt;
Après un accident de voiture, un jeune garçon a perdu la motricité d’un côté du corps. Passionné de jeux vidéo, il se retrouve avec des difficultés à jouer sur sa console PS4. Ingénieux, il utilise la manette en la coinçant entre son épaule et le creux du cou. Usant de la mâchoire et de sa main valide pour contrôler les joysticks et les boutons. L'exercice étant inconfortable et fatiguant il eu l’idée de proposer à des futurs ingénieurs de lui proposer une manette adaptée à son handicap. &lt;br /&gt;
&lt;br /&gt;
Les deux pré-ingénieurs ,avec leur tuteur, ont une idée révolutionnaire : La manette modulable ! Elle permettrait au jeune garçon, ainsi que d’autres joueurs, de pouvoir continuer de s’amuser ou même de commencer à jouer au jeux sur console. &lt;br /&gt;
Cette manette aidera fortement dans les centre de rééducation pour faire passer le temps et donner du plaisir à des personnes qui ne peuvent plus s’amuser avec leur console traditionnelle. Elle pourra aussi ouvrir de nouvelles possibilités pour certaines personnes qui n’auraient jamais essayé jusqu'à présent.   &lt;br /&gt;
Comme son nom l'indique, elle sera modulaire et s'adaptera à différents handicaps. Accompagnée de son application d’initialisation, elle sera accessible aussi bien aux enfants, patients, parents et aides soignantes.&lt;br /&gt;
&lt;br /&gt;
Quelques mois plus tard...Le jeune patient fan de Need For Speed, peut maintenant piloter sa voiture comme un vrai professionnel grâce à l'un des joysticks qu'il utilisera avec sa main valide et il pourra accélérer à des vitesses folles à l'aide de boutons poussoirs au niveau de son pied valide et gagner la partie. Son ami venu lui rendre visite, pourra en lieu et place des aides soignantes configurer à l'aide de la tablette (portable) la manette du patient. &lt;br /&gt;
Si le patient change de jeu pour Tekken et que la configuration des modules ne lui convient plus, il peut interchanger les éléments de la manette selon son envie et son confort. Ainsi il peut faire sauter son personnage, il utilisera un module bouton supplémentaire, qu'il actionnera avec le poing.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Fonctionnement&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Suite à une analyse fonctionnelle et à la formulation de notre projet, nous avons pu définir le fonctionnement de notre système. Notre produit, la manette, doit être accessible d’après nos objectifs à différents types de handicaps moteurs. Ainsi, l’idéal serait de concevoir une manette modulable afin qu’elle puisse s’adapter à toutes les situations. Ce n’est plus au patient de s’adapter à la manette mais à la manette de s’adapter au patient.&lt;br /&gt;
Cela signifie que la manette sera, dans la limite du possible et de la sensibilité du corps du patient, composée de plusieurs parties dites « modules » comportant un ou plusieurs actionneurs (boutons, joysticks, gâchettes...). Ces modules seront déplaçables afin d’être utilisé avec différents membres du corps : un doigt, une main,&lt;br /&gt;
une jambe ou même un pied. Il suffira de les connectés entre eux suivant l’organisation souhaitée, le Gameplay du jeu ou en fonction du handicap. Le tout sera relié à une application.&lt;br /&gt;
L’application sera alors mise en place pour connecter les différentes parties du point de vue software pour prérégler la manette en fonction du patient. Il pourra alors choisir les boutons en fonction du jeu, de ses mouvements mais aussi choisir la sensibilité.&lt;br /&gt;
&lt;br /&gt;
L’application et les modules devront être intuitifs et faciles d’utilisation. De cette manière des utilisateurs non avertis dans le domaine informatique ou jeunes pourront eux-mêmes gérer les connexions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Réponse à la question difficile&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
'''Question : Comment interconnecter les différents modules de la manette ?'''&lt;br /&gt;
&lt;br /&gt;
Il nous faut pour ce projet interconnecter les modules modélisant la manette qui seront connectés à la consoles PS4 via une Raspberry Pi 3.&lt;br /&gt;
Le choix de la Raspberry Pi 3 nous permet d'utiliser son module Bluetooth pour communiquer avec la PS4, ce choix est plus adaptée au projet que du filaire.&lt;br /&gt;
Concernant l'interconnexion des modules, nous travaillerons en deux étapes &amp;quot;preuves concept&amp;quot; : filaire et sans fils (Bluetooth).&lt;br /&gt;
&lt;br /&gt;
'''Objectif 1 : Preuve concept filaire'''&lt;br /&gt;
&lt;br /&gt;
Dans cette première partie de projet, nous souhaitons avoir une 1ère preuve de prototype rapidement. Nous nous concentrerons alors sur la communication entre la RPi3 et la PS4 ainsi que sur la conception des modules. Pour les modules, nous réaliserons des cartes électronique pour chaque module avec un micro-contrôleur. La communication filaire nous permettra d'interconnecter les modules à la RPi3 avec un bus SPI.&lt;br /&gt;
&lt;br /&gt;
'''Objectif 2: preuve concept sans fils'''&lt;br /&gt;
&lt;br /&gt;
Une deuxième étape du projet est la réalisation de la solution idéale sans fils. Celle-ci pourra commencer à être développée petit à petit en parallèle avec l'objectif 1. Le but ici, est d'interconnecter les modules en Bluetooth. Nous avons choisi le Bluetooth pour garder une connexion commune sur toute la chaîne. &lt;br /&gt;
Nous rajouterons alors un module bluetooth à chaque module de la manette. &lt;br /&gt;
&lt;br /&gt;
'''Objectif 3: possibilité d'adapter les boutons (capuchon en 3D)'''&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Préparation du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Cahier des charges&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
''Chef de projet:'' Alexandre Boé  &amp;lt;br&amp;gt;&lt;br /&gt;
''Responsables:'' Xavier Redon, Thomas Vantroys &amp;lt;br&amp;gt;&lt;br /&gt;
''Partenariat:'' Marc Sautelet (non etablie) &amp;lt;br&amp;gt;&lt;br /&gt;
''Elèves-ingénieurs:'' Camille Saâd, Transley Gracias &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Sujet :''' Manette modulable pour personne à déficience moteur compatible PlayStation 4 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objectifs principal (1er POC) : ===&lt;br /&gt;
Faire transmettre des informations issus des actionneurs (ex:boutons poussoires) via des arduinos jusqu’à la Raspberry Pi 3 en SPI.&amp;lt;br&amp;gt;&lt;br /&gt;
Envoyer les données reçues vers la PS4 en USB  &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objectifs secondaire (2e POC):===&lt;br /&gt;
Créer des modules avec un microcontrôleur et une puce bluetooth pour permettre une meilleurs flexibilité (c-àd pouvoirs avoir une meilleure ergonomie et une connexion sans fil) &amp;lt;br&amp;gt;&lt;br /&gt;
Connecter la Raspberry Pi 3 en Bluetooth à la PS4 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier: beteacorne.jpg||middle|600px|Bete a corne manette]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Choix techniques : matériel et logiciel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Liste de matériel :===&lt;br /&gt;
&lt;br /&gt;
'''Modules boutons/joysticks/gachettes'''&lt;br /&gt;
&lt;br /&gt;
3  Push buttons :&amp;lt;br&amp;gt;&lt;br /&gt;
- O X Y Carré R3 L3 &amp;lt;br&amp;gt;&lt;br /&gt;
- Guide PS &amp;lt;br&amp;gt;&lt;br /&gt;
- start/back &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 0,45€/unité TTC [https://www.gotronic.fr/art-bp-miniature-krs1273-16976.htm] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1  Thumbstick original: &amp;lt;br&amp;gt;&lt;br /&gt;
Joystick analogique 4 directions --&amp;gt; 4,25€/unité TTC [https://www.gotronic.fr/art-joystick-analogique-4-directions-19063.htm] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1 buttons trigger L1 L2 =&amp;gt; 1x Thumbstick original''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Cartes Atmega328p /connexion spi/'''&lt;br /&gt;
&lt;br /&gt;
3   Arduino UNO &amp;lt;br&amp;gt;&lt;br /&gt;
1   Arduino UNO atmega328p retirable &amp;lt;br&amp;gt;&lt;br /&gt;
4   capacite 22pF traversantes &amp;lt;br&amp;gt;&lt;br /&gt;
2   resistances 10 kOhm traversantes (à récupérer) &amp;lt;br&amp;gt;&lt;br /&gt;
2   oscillateurs quartz 16MHz traversante &amp;lt;br&amp;gt;&lt;br /&gt;
2   atmega328p-pu et support &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cartes module bluetooth nrf52810 '''&lt;br /&gt;
&lt;br /&gt;
6   capacités 100nF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
6   capacités 12pF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 4,7pF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 1µF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 100pF=0,1nF 0603 (à récupérer) &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 0,8pF 0603 (a acheter, commande en cours) &amp;lt;br&amp;gt;&lt;br /&gt;
2   inductance 3,9nH 0603 (a acheter, commande en cours) &amp;lt;br&amp;gt;&lt;br /&gt;
2   oscillateur quartz 32 MHz &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''' Connexions et autres '''&lt;br /&gt;
&lt;br /&gt;
1 Led RGB neopixel [https://www.adafruit.com/product/1734] &amp;lt;br&amp;gt;&lt;br /&gt;
1 Raspberry Pi 3 &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; ~36,23€/unité TTC [https://fr.rs-online.com/web/p/processor-microcontroller-development-kits/8968660/?src=raspberrypi] &amp;lt;br&amp;gt;&lt;br /&gt;
1 Raspberry Pi Zero W (commandée) [https://www.raspberrypi.org/products/raspberry-pi-zero-w/] &amp;lt;br&amp;gt;&lt;br /&gt;
6 Alimentations 5V ou 3,3V &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
par exemple, 12 piles de type CR2016 3V rechargeables ou 24 piles AAA 1,5 V rechargeables  &lt;br /&gt;
5 modules Bluetooth nrf de Nordic : nRF52810-QFAA-R &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 3,17€/unité + frais expédition  [https://www.mouser.fr/productdetail/nordic-semiconductor/nrf52810-qfaa-r?qs=sGAEpiMZZMve4%2FbfQkoj%252bG%2FosjLoe2oghFQwQllMrQ4%3D]&lt;br /&gt;
5 Lignes broches mâles &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logiciels:===&lt;br /&gt;
&lt;br /&gt;
- IDE arduino&lt;br /&gt;
- Altium&lt;br /&gt;
- FreeCAD ou Inkscape&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Liste des tâches à effectuer&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 1 : Gestion du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Définition des cahiers des charges fonctionnel et technique, choix d'orientation...&lt;br /&gt;
* Recherche techniques sur les différentes connexions possibles entre les modules, la RPi 3 et la console PS4&lt;br /&gt;
#Recherche connexion SPI entre les modules et la RPi3&lt;br /&gt;
# Recherche connexion bluetooth entre la RPi3 et la PS4&lt;br /&gt;
# Recherche connexion bluetooth pour les modules&lt;br /&gt;
# Recherche carte avec montage Atmega328P-PU et anticipation module bluetooth&lt;br /&gt;
* Détermination du matériel nécessaire&lt;br /&gt;
* Réflexion sur l'application&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 2: Réalisation du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Partie 1: Preuve concept manette en filaire'''&lt;br /&gt;
&lt;br /&gt;
* Conception de cartes électroniques pour 2 modules (/!\ prévoir modules bluetooth)&lt;br /&gt;
* Réalisation connexion SPI avec 2 modules : programmation des Atmega328p en liaison série. &lt;br /&gt;
* Si tests concluant, ajouter des modules jusqu'à en avoir 5 (1 pour chaque type de boutons) &lt;br /&gt;
* Connexion bluetooth entre la PS4 et la RPi3&lt;br /&gt;
* Réalisation du support des modules avec fixations possibles (imprimante 3D)&lt;br /&gt;
&lt;br /&gt;
'''Partie 2: Preuve concept manette en bluetooth'''&lt;br /&gt;
&lt;br /&gt;
* Ajout des modules bluetooth aux cartes électroniques&lt;br /&gt;
* Connexion bluetooth entre les modules&lt;br /&gt;
&lt;br /&gt;
'''Partie 3: Application Android : paramétrage de la manette'''&lt;br /&gt;
&lt;br /&gt;
* Créer une application sur tablette ou smartphone (Android) afin de configurer la manette aux besoins (inter-connexion des modules et console)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Calendrier prévisionnel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Date'''&amp;lt;/u&amp;gt;&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Tache à réaliser''' &amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
17/01/18-24/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Faire des recherches sur les différentes interconnexions du système : Bluetooth, RPi-Atmega328 (SPI), RPi-PS4&lt;br /&gt;
Continuer liste des taches, matériel, Début recherches + réflexion fixation support des modules&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Recherche technique connexion PS4-RPi3 et connexion SPI RPi3-Module + code&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18-07/03/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Réalisation 1er prototype (+ début prototype 2)&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
07/03/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Seance 7 :  Test prototype filaire&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
07/03/18-09/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Réalisation 2eme prototype + application Android&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
09/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Seance 14 :  Test prototype Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
14/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Video projet&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
15/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Finalisation projet et Rapport&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
16/05/18-17/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Soutenances Projet&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Réalisation du Projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Feuille d'heures &amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Voici le tableau d'heures du binôme:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Heures S11 !! Heures S12 !! Heures S13et+ !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 10&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 20min&lt;br /&gt;
|&lt;br /&gt;
| 15h20&lt;br /&gt;
|-&lt;br /&gt;
| Cherches techniques &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 18&lt;br /&gt;
|-&lt;br /&gt;
| Rédaction du wiki et rapport de projet&lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 30min&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| 30min&lt;br /&gt;
| 30min&lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
| 10h30&lt;br /&gt;
|-&lt;br /&gt;
| Programmation&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 3&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 7&lt;br /&gt;
| 8&lt;br /&gt;
| 6&lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
| 43&lt;br /&gt;
|-&lt;br /&gt;
| Cartes électroniques&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 6&lt;br /&gt;
| 8&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| 31&lt;br /&gt;
|-&lt;br /&gt;
| Application&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| Total Semaine&lt;br /&gt;
| 10&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 7&lt;br /&gt;
| 10h30&lt;br /&gt;
| 13&lt;br /&gt;
| 9&lt;br /&gt;
| 12&lt;br /&gt;
| 9h30&lt;br /&gt;
| 10h30&lt;br /&gt;
| 9&lt;br /&gt;
| 9h20&lt;br /&gt;
| &lt;br /&gt;
| '''117h50'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Prologue&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Avant la réalisation et conception d'un projet, il est important d'analyser celui-ci. Nous avons allons consacré le prologue à l'analyse fonctionnelle de la manette. Nous avons également eu une réflexion sur l'analyse technique, cela nous a permis de réaliser une liste de matériel. Il est important de définir les objectifs ainsi que les besoins afin de ne rien oublier. (Voir ci-dessus Analyse projet) &lt;br /&gt;
Nous avons également organisé notre travail, pour le partage de documents de recherches et la rédaction de compte-rendu final nous avons réalisé un google drive. Par la suite, nous créerons un projet Git. &lt;br /&gt;
&lt;br /&gt;
Durant ce temps, nous avons décidé de réaliser 5 modules. Les modules sont les différents boutons de la manettes qui nous pourrons placer selon nos choix (boutons modulaires) pour notre prototype projet pour chaque type des boutons d'une manette PS4. Ces modules devrons être connectés à la console et interconnectés. Le tout sera lié à une application Android. Suite à quelques recherches et nos analyses, nous avons décidé les points suivants :&lt;br /&gt;
&lt;br /&gt;
- On commencera avec 2 modules et on les multipliera par la suite. &lt;br /&gt;
- Les premiers tests sont réalisés avec des boutons petits pour assurer leur caractéristique &amp;quot;modulaires&amp;quot;, par la suite nous pourrons ajouter des capuchons de taille plus importante (imprimante 3D ou achat)&lt;br /&gt;
- Conception modules : réalisation de carte avec un microcontrôleur atmega328 programmable pour chaque module (anticiper le module Bluetooth) &lt;br /&gt;
- Projet en 2 parties : prototype filaire et prototype Bluetooth&lt;br /&gt;
# Prototype filaire : connexions entre les modules et la RPi3 en SPI, connexion Rpi3-PS4 en Bluetooth, avec l'application en filaire à la RPi3&lt;br /&gt;
# Prototype Bluetooth: connexion Bluetooth entre modules-RPi3-PS4-apllication&lt;br /&gt;
&lt;br /&gt;
[[Fichier: structuremanette.png||center|400px|Concept manette modulable]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 1&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous nous sommes concentrés les recherches afin de définir clairement le cahier des charges technique. Il s'agit des réalisations à mettre en œuvre pour les inter-connexions des éléments de la manette.&lt;br /&gt;
Ainsi, nous avons fait des recherches sur :&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI entre les modules (Atmega328p) et la RPi3===&lt;br /&gt;
&lt;br /&gt;
SPI: Serial périphérique interface BUS&lt;br /&gt;
&lt;br /&gt;
[[Fichier: yWGmW.png||right|200px|Concept manette modulable]]&lt;br /&gt;
Comme indiqué sur l'image ci-dessus, la Raspberry pi 3  peut communiquer en SPI avec ses broches CS0 (24), CS1 (26), SCLK (23), MISO (21), MOSI (19). Celles-ci permettent de communiquer avec un ou plusieurs esclaves (dans notre cas, des Atmega328p) en reliant directement les broches concernées de la RPi3 à celles des composants esclaves.&lt;br /&gt;
Chaque broche CS0 (24) ou CS1 (26) ne peut être connectée qu'à l'entrée SS (aussi appelé CS) d'un seul esclave.&lt;br /&gt;
C'est a dire que chaque CS est lié à un esclave afin de choisir avec lequel la communication est établie à un moment donné, et les MISO sont reliées entre elles en cascade, de même pour les SCLK et les MOSI. On peut noter que le maître impose la fréquence d’horloge et sélectionne l’esclave auquel les données sont envoyées.  8 MHz est le plus rapide supportable a 3,3V&lt;br /&gt;
&lt;br /&gt;
[[Fichier: fonctionnementSPI.png||right|200px|Connexion SPI multi-esclaves]]&lt;br /&gt;
&lt;br /&gt;
Voici un schéma du fonctionnement souhaité : &lt;br /&gt;
&lt;br /&gt;
Comme nous souhaitons avoir 5 modules environ il nous faudra rajouter un composant en plus afin d'augmenter les possibilités de sélection, par exemple des démultiplexeurs.&lt;br /&gt;
Dans un premier temps nous essaierons avec 2 esclaves, puis on augmentera le nombre. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Connexion Bluetooth PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Les recherches portent également sur la connexion entre la manette PS4 et la console. Elles concernent le protocole de communication via Bluetooth&lt;br /&gt;
&lt;br /&gt;
Caracteristique pour la PS4:  Bluetooth®v4.0, Qualcomm Atheros AR3002 Buetooth LE: 2,4-2,5 GHz  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caracteristique de la connexion : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Vitesse de transmission &amp;gt;&amp;gt; 3 Mbit/s   8N1 &lt;br /&gt;
*Relevé tous les 1.3 millisecond (peut-être) &lt;br /&gt;
*Chaque manette à une adresse unique BD_ADDR qui correspond à l’adresse MAC de la carte Réseau&lt;br /&gt;
*Protocole de détection est le SDP basé sur une emission reception PDU&lt;br /&gt;
*L’Attribut ID est representer en TLV Type Length Value &lt;br /&gt;
*Communication HCI ACL Data Packet &lt;br /&gt;
&lt;br /&gt;
===Rélisation des cartes électroniques===&lt;br /&gt;
&lt;br /&gt;
matériel nécessaire pour un PCB : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*breadboard&lt;br /&gt;
*câbles&lt;br /&gt;
*1 x 10k Ohm résistance&lt;br /&gt;
*Quartz 16Mhz clock crystal&lt;br /&gt;
*2 x 22 pF capaciteurs&lt;br /&gt;
*Atmega328P-PU&lt;br /&gt;
&lt;br /&gt;
Ressources: &lt;br /&gt;
[[https://www.arduino.cc/en/Main/Standalone]]&lt;br /&gt;
[[http://www.eprojectszone.com/atmega-328-pu-standalone/]]&lt;br /&gt;
[[https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 2&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la semaine deux et durant la séance, nous avons continué et approfondie nos recherches sur le projet. Nous avons pu ainsi affiner nos taches de réalisation et donc notre cahier des charges.&lt;br /&gt;
&lt;br /&gt;
===Connexion aux modules: SPI et Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Green&amp;quot;&amp;gt; CORRIGER&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
voir https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018#Configuration_du_syst.C3.A8me_embarqu.C3.A9&lt;br /&gt;
&lt;br /&gt;
(sudo apt-get install pi-bluetooth)&lt;br /&gt;
&lt;br /&gt;
''connexion sur la raspberry par ssh:''&lt;br /&gt;
 su&lt;br /&gt;
 update-rc.d ssh enable&lt;br /&gt;
 invoke-rc.d ssh start &lt;br /&gt;
 ssh pi@172.26.79.1XX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''bluetooth''&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
 agent on&lt;br /&gt;
 default-agent&lt;br /&gt;
 scan on&lt;br /&gt;
 pair [device Bluetooth address]  (exemple: pair XX:XX:XX:XX:XX:XX )&lt;br /&gt;
&lt;br /&gt;
''NOUVELLE REFLEXION : Connexion SPI entre les modules (Atmega328p) et la RPi3 --&amp;gt; MODULES BLUETOOTH''&lt;br /&gt;
&lt;br /&gt;
Si multi-esclaves= plusieurs modules : &lt;br /&gt;
Il faut ajouter des sélections pour les SPI → démultiplexeurs OU ne pas utiliser les CS0 et CS1, et plutôt des pins entrée/sortie de la RPi3 lié au SS comme ça on choisit direct le module esclave voulu.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' Nous avons étudié à nouveau la datasheet de notre module bluetooth nrf de Nordik. Le module bluetooth comporte  déjà un microprocesseur !&lt;br /&gt;
Un module plutôt peut donc jouer le rôle de notre atmega328p. Il n'y a alors pas besoin de réaliser des cartes électroniques de type arduino standalone. Nos PCB regrouperont alors uniquement l'alimentation, un actionneur (bouton, joystick), le module bluetooth et les broches de connexion si besoin... &lt;br /&gt;
&lt;br /&gt;
Cette séance nous a alors permise de revoir entièrement le matériel nécessaire. Notre liste de matériel nous semble alors plus réfléchie et limitée au nécessaire. &lt;br /&gt;
&lt;br /&gt;
===Connexion Bluetooth PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Suite à nos recherches de la semaine précédente, nous avons sélectionné deux sites bien renseignés : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;SITES&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ils nous ont permis de comprendre la communication entre la manette et la console. En effet, ils nous expliquent les échanges de trames Bluetooth. &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;EXPLICATIONS 1 exemple &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 3 : Début premier prototype&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI RPi3-Arduino===&lt;br /&gt;
&lt;br /&gt;
Comme vu durant les semaines précédentes, nous souhaitons réaliser une connexion Multi-esclaves en SPI entre la Raspberry pi et plusieurs modules.&lt;br /&gt;
Cette semaine nous avons vu que la réalisation de notre premier prototype doit aller vite. Il ne nous est pas nécessaire d’attendre les modules bluetooth si il nous faut dans cette partie uniquement utiliser son microprocesseur. Ainsi pour chaque module nous utilisons une arduino UNO. Nous réaliserons les programmes en C afin de pouvoir les réutiliser avec les modules bluetooth par la suite. &lt;br /&gt;
Une fois la connexion réalisable nous adapterons les programmes aux modules bluetooth Nordik. En effet, ceux-ci comporte déjà un microprocesseur, le module peut jouer le rôle de notre atmega328p. Il n'y a aurait alors pas besoin de réaliser des cartes électroniques arduino standalone sur PCB, mais directement des cartes électronique avec le module et le module voulu (bouton, joystick...) et l'alimentation. &lt;br /&gt;
Durant la séance nous avons alors revu la liste de matériel nécessaire. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: prototype1.jpeg||center|600px|connexion filaire prototype 1 filaire arduino]]&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous avons recherches des exemples de codes et de librairies pour Arduino SPI et RaspberryPI SPI. &lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé le programme de la connexion SPI pour l'arduino et récupéré les bibliothéques SPI.h avec SPI.c. Nous nous sommes alors concentrer à les comprendre, pour pouvoir l'utiliser. &lt;br /&gt;
&lt;br /&gt;
===Réalisation du projet Git===&lt;br /&gt;
&lt;br /&gt;
Création du projet IMA4_Projet35_ManetteModulable sur Git et partage de celui-ci. &lt;br /&gt;
Les premiers dossier crées cette la séance :&lt;br /&gt;
-Arduino (connexion SPI arduino) : ProtoSpi.c + dossier librairie SPI + Makefile&lt;br /&gt;
-RPI (dossier codes pour Rpi) &lt;br /&gt;
-Readme.md&lt;br /&gt;
Ces dossiers seront amenés à être modifiés au cours des séances. &lt;br /&gt;
&lt;br /&gt;
===Protocole Bluetooth PS4===&lt;br /&gt;
&lt;br /&gt;
Suite à l'étude des trames Bluetooth, on a pu voir que ces dernières étaient incomplètes. Le modèle de communication étant propriétaire, on n'y a pas accès directement. Cela nous empêche donc de mettre en oeuvre cette communication. &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt; Déveloper&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On a décidé de commencer par une connexion USB (pour laquelle on dispose de toutes les informations) celle-ci étant plus complète.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 4&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Pour le prototype 1 FILAIRE nous réaliserons les étapes suivantes :&lt;br /&gt;
&lt;br /&gt;
#Réalisation du programme SPI pour arduino&lt;br /&gt;
#Réalisation du programme SPI pour la RPi&lt;br /&gt;
#Connexion USB avec la PS4 ou ordinateur&lt;br /&gt;
#Réalisation de cartes électroniques atmega328p-pu standalone (remplacer les Arduinos) &lt;br /&gt;
#Remplacer les &amp;quot;PCB arduino&amp;quot; par le module bluetooth et adapter la connexion&lt;br /&gt;
#Conception 3D de la délimitation 1 axe pour le joystick &amp;quot;gâchette&amp;quot;&lt;br /&gt;
#Réalisation de l'application Androïde.&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées nous auront alors une preuve de concept filaire et nous pourrons alors passer à une connexion bluetooth. &lt;br /&gt;
Le passage à la connexion bluetooth sera le deuxième prototype et le cas idéal de la réalisation de la manette modulable. &lt;br /&gt;
&lt;br /&gt;
===Mise à jour Matériel===&lt;br /&gt;
&lt;br /&gt;
- Modéliser les boutons gâchettes L1/2 R1/2 de la manette PS4 (boutons sensibles à la pression) --&amp;gt; un joystick dont nous bloquerons un axe (imprimante 3D)&lt;br /&gt;
- Remplacer la RPi 3 par une Rpi zero W qui nous permettrait de réaliser plus facilement une connexion USB tout en gardant l'avantage du bluetooth. &lt;br /&gt;
- Choix de l’alimentation pour les 5 modules Bluetooth: nécessitent 3V --&amp;gt;  utiliser des piles rechargeables 1,2V AAA plutôt que piles rondes 3V.&lt;br /&gt;
&lt;br /&gt;
Nous avons également besoin du matériel cité en semaine 1 pour réaliser des cartes électroniques atmega328p-pu standalone. ( nous revenons alors sur les décisions de la semaine 3)&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI RPi3-Arduino===&lt;br /&gt;
 &lt;br /&gt;
Montage Raspberrypi et 1 arduino en PSI + 1 bouton + 1 led.&lt;br /&gt;
Voici le choix des branchements :&lt;br /&gt;
&lt;br /&gt;
 MASTER = RPi   &lt;br /&gt;
 SLAVE= Arduino&lt;br /&gt;
&lt;br /&gt;
'''SPI sur Arduino:'''&lt;br /&gt;
 MOSI -&amp;gt; GPIO11 //PB3  //master OUT to the slave IN&lt;br /&gt;
 MISO -&amp;gt; GPIO12 //PB4 //slave OUT to the master IN&lt;br /&gt;
 SCLK -&amp;gt; GPIO13 //PB5 //serial clock&lt;br /&gt;
 SS -&amp;gt; GPIO10   //PB2  //slave select&lt;br /&gt;
'''Led, bouton et autre...'''&lt;br /&gt;
 LED --&amp;gt; GPIO6  //PD6&lt;br /&gt;
 GND&lt;br /&gt;
 +5V (if required)&lt;br /&gt;
'''SPI sur la Raspberry Pi'''&lt;br /&gt;
 SPIO MOSI -&amp;gt; PIN19 &lt;br /&gt;
 SPIO MISO -&amp;gt; PIN21&lt;br /&gt;
 SCLK -&amp;gt; PIN23&lt;br /&gt;
 SPIO CS0 -&amp;gt; PIN24&lt;br /&gt;
&lt;br /&gt;
Continuation du code pour faire clignoter Led branchée à une arduino depuis la Rpi, en connexion SPI.&lt;br /&gt;
&lt;br /&gt;
===Connexion USB PS4-RPi3===&lt;br /&gt;
Durant cette, nous avons regardé comment faire cohabiter bluetooth, Application Androïd, USB, PS4, SPI et les module. &lt;br /&gt;
&lt;br /&gt;
Il est alors important de savoir comment utiliser le port série sur la RPi3, soit utiliser les UART. &lt;br /&gt;
&lt;br /&gt;
Nous avons réaliser qu'il n'était pas aussi simple d'utiliser le port serie USB de la Raspberry Pi 3, en effet le SoC est un BCM2837 . &lt;br /&gt;
De plus nous ne pouvons pas utiliser le même port pour l'alimentation et la connexion. &lt;br /&gt;
&lt;br /&gt;
Il nous faut alors trouver une alternative ou une solution à ce problème.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 5&amp;lt;/span&amp;gt;==&lt;br /&gt;
 &lt;br /&gt;
===Programmation: Réflexion définitives prototypes filaire ===&lt;br /&gt;
&lt;br /&gt;
La semaine dernière, nous avons rencontré une difficulté liée aux ports séries UART. &lt;br /&gt;
Une des solutions à cette difficulté serait d'utiliser une RPi ZERO W à défaut d'une RPi 3. On pourrait alors avoir un port d'alimentation avec connexion USB mais également retrouver la connexion Bluetooth dont nous avons besoin.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous avons continué la réalisation du prototype filaire par l'avancé du code SPI ainsi que les recherches concernant le protocole PS4. &lt;br /&gt;
&lt;br /&gt;
La Raspberry Pi zero W peut également être utile pour la connexion entre la PS4 et les différents modules en jouant le rôle d'intermédiaire. Nous avons alors commandé une Rpi zero W pour notre projet. &lt;br /&gt;
En attendant la réception de la commande, nous nous sommes penché sur les recherches pour les programmes et la configuration nécessaire à l'utilisation de la RPi zero W.&lt;br /&gt;
&lt;br /&gt;
===Electronique===&lt;br /&gt;
&lt;br /&gt;
[[Fichier: bouton_c1.jpg|100px|thumb|left|PCB bouton]]&lt;br /&gt;
[[Fichier: arduinobb.jpg|200px|thumb|right|atmega328p-pu branchement test]]&lt;br /&gt;
&lt;br /&gt;
Du coté électronique, nous avons réalisé sur fritzing certaines cartes électroniques. Les Arduino Uno servant actuellement de test, seront remplacées par des PCB atmega328p-pu standalone avec des broches permettant les branchements nécessaires SPI ou encore aux modules &amp;quot;boutons/joystick&amp;quot;. Pour les boutons, nous avons également réalisé un pcb afin de faciliter les branchements.  &lt;br /&gt;
&lt;br /&gt;
Il nous faut alors également une 3eme carte qui nous sera nécessaire pour la réalisation du prototype sans fil. Dans notre liste de matériel, nous avons des composants nrf52810 bluetooth, ceci doivent être soudé avec les capacités de protection mais également des broches de communication. Nous avons alors commencé cette carte électronique sur Altium avec le fichier  projet PCB du distributeur à modifier.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: Arduino_c1.jpg|100px|thumb|center|PCB atmega328p-pu]]&lt;br /&gt;
&lt;br /&gt;
=== Construction 3D ===&lt;br /&gt;
&lt;br /&gt;
Enfin, nous avons commencé à réaliser des boîtiers 3D pour certains modules. Par exemple, comme nous l'avions vu précédemment, un des joysticks servira de bouton-gâchette en utilisant un seul de ses axes. Il nous faut alors réaliser un boitier qui bloque l'un des axes, mais également une tige qui nous permettra de pousser le joystick de manière simplifiée.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 6&amp;lt;/span&amp;gt;==&lt;br /&gt;
 &lt;br /&gt;
===Programmation: configuration RPi Zero W ===&lt;br /&gt;
&lt;br /&gt;
Ayant reçu la Raspberry Pi zero W en début de semaine, nous nous sommes concentrés sur la programmation et la configuration de celle-ci.&lt;br /&gt;
Cette partie étant compliquée, elle nous a pris du temps. En effet, il était difficile de connecter la RPi en SSH car il n'est pas possible d'y connecter un clavier directement et on avait besoin de la prise OTG pour &amp;quot;interfacer&amp;quot; la manette.&lt;br /&gt;
&lt;br /&gt;
===Electronique: PCB nrf52810===&lt;br /&gt;
&lt;br /&gt;
Les cartes réalisées en semaine 5 sont validées et en attente de réalisation. &lt;br /&gt;
&lt;br /&gt;
Cette semaine a permis la réalisation et la finalisation de la carte électronique nrf52810. Il nous a fallu recommencé cette carte deux fois. En effet, une fois finie sur Altium nous avons réalisé que les empreintes des CMS sur PCB fourni par le constructeur ne correspondent pas au matériel CMS de l'école. Face à cette inattention de notre part, nous avons décidé de refaire entièrement la carte électronique sur fritzing. Ayant la datasheet et des plans d'inspiration PCB, nous avons pu refaire la carte entièrement. &lt;br /&gt;
Sur celle-ci nous avons ajouté des broches de connexion au besoin, un branchement Jtag et ICSP pour la programmation et la connexion SPI. &lt;br /&gt;
La carte est en attente de validation, puis validation.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: nrf52810_circuit2.jpg||center|400px|PCB carte nrf52810]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Révision matériel ===&lt;br /&gt;
&lt;br /&gt;
Pour la réalisation de nos composants électroniques, il nous a fallu faire une révision des composants disponibles à l'école:&lt;br /&gt;
(les quantités indiquées ci-dessous pourront être augmentée si nécessaire,pour avoir dans l'idéal un module de chaque type de la manette, ici on se concentre sur BOUTON et JOYSTICK)&lt;br /&gt;
&lt;br /&gt;
'''Cartes Arduino:'''&lt;br /&gt;
* 4 capacite 22pF traversantes&lt;br /&gt;
* 2 resistances 10 kOhm traversantes (à récupérer)&lt;br /&gt;
* 2 oscillateurs quartz 16MHz traversante&lt;br /&gt;
* 2 atmega328p-pu et support&lt;br /&gt;
&lt;br /&gt;
'''Cartes nrf52810'''&lt;br /&gt;
* 6 capacités 100nF 0603&lt;br /&gt;
* 6 capacités 12pF 0603&lt;br /&gt;
* 2 capacités 4,7pF 0603&lt;br /&gt;
* 2 capacités 1µF 0603&lt;br /&gt;
* 2 capacités 100pF=0,1nF 0603 (à récupérer)&lt;br /&gt;
* 2 capacités 0,8pF 0603 (commande en cours)&lt;br /&gt;
* 2 inductance 3,9nH 0603 (commande en cours)&lt;br /&gt;
* 2 oscillateur quartz 32 MHz &lt;br /&gt;
&lt;br /&gt;
'''Cartes modules Boutons'''&lt;br /&gt;
* un sachet de broches mâles (qu'on utilisera également pour les autres cartes, à récupérer/acheté) &lt;br /&gt;
&lt;br /&gt;
Nous avons alors mis-à-jour la liste de composant située plus haut, ainsi que celle de la page IMA4 2017/2018 [https://projets-ima.plil.fr/mediawiki/index.php/Projets_IMA4_SC_%26_SA_2017/2018]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 7&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Programmation: connexion wifi RPi Zero W et Bootloader sur Atmega328p-pu ===&lt;br /&gt;
&lt;br /&gt;
Pendant cette semaine, nous avons continué la programmation et la configuration des Raspberry Pi 3 et Zero W. Concernant la configuration ssh, nous avons utilisé un téléphone en guise de point d’accès à la RPi Zero W en wifi.&lt;br /&gt;
Nous avons aussi directement configurer l'OS Jessie, utilisé pour la RPi Zero. On a modifié le fichier cmd.txt et ...pour pouvoir programmer un USB gadget sur le port OTG.&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;Ci-dessus expliquer fichiers&amp;lt;/span&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Nous avons également continuer les programmes de récupération de données : état des boutons et du joystick. Ces programmes sont appliqué sur l'atmega328p-pu standalone sur la plaque d'essai en attendant que le PCB soit opérationnel.&lt;br /&gt;
Pour pouvoir programmer l'atemega328p-pu comme une arduino UNO, il nous faut suivre plusieurs étapes :&lt;br /&gt;
&lt;br /&gt;
'''1.Flasher le Bootloader'''&lt;br /&gt;
Nous avons 2 Atmega328p-pu neufs, ainsi il nous faut flasher le bootloader sur chacun d'eux afin de pouvoir les utiliser et les programmer sur une breadboard dans un montage minimaliste arduino-standalone. &lt;br /&gt;
Pour cela, on peut utiliser une carte arduino UNO. On vérifie le port et le type de carte sélectionnés dans le menu &amp;gt;Outils. Sur cette carte on téléverse le fichier arduinoISP.ino qui se trouve dans les exemples en étant en progrmamateur AVr ISP mkll (&amp;gt;outils&amp;gt;programmateur) &lt;br /&gt;
Puis on met l'atmega328p-pu qui nous intéresse sur le suppor socket de la carte. On change de nouveau le programmateur pour Arduino as ISP et on fait &amp;gt;tools&amp;gt;burn bootloader, soit &amp;gt;graver la sequence d'initialisation.&lt;br /&gt;
Ces étapes faites, on peut retirer notre microcontroleur et le replacer correctement dans le montage. &lt;br /&gt;
&lt;br /&gt;
'''2.Programmation atmega328 sur breadboard'''&lt;br /&gt;
Une fois l'atmega328p-pu préparé, on peut le programmer. On peut le faire simplement à l'aide de la carte arduino UNO utilisée précédemment.On branche les Tx et Rx en commun ainsi que le reset, le GND et le VCC.&lt;br /&gt;
&lt;br /&gt;
Nous avons réaliser des codes basiques tels que le clignotement d'une led rouge ou encore l'affichage de &amp;quot;hello world&amp;quot; sur le moniteur série pour vérifier la bonne fonctionnalité du montage. Cela fait nous avons pu écrire sous Arduino IDE le code de lecture des états.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: montage_BB_test.jpg||left|200px|programmation modules arduino sur breadboard]]&lt;br /&gt;
&lt;br /&gt;
===Electronique : soudure carte de test modules ===&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons déja vu lors de la réalisation des PCB, si l'on souhaite programmer un atmega328p-pu en bootloader, le montage est simple. Il peut être minimaliste en utilisant une arduino UNO, un atmega328, une breadboard et 3 composants: 1 quartz 16MHZ crystal, 1 résistance 10kOhm et 2 capacitors céramiques de 22pF.&lt;br /&gt;
Durant la semaine 7, nous avons soudé les composants traversants de la carte électronique correspondant à ce montage ainsi que le PCB du bouton.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 8&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Programmation ===&lt;br /&gt;
&lt;br /&gt;
===Electronique : Correction soudure et soudure CMS===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avions souhaité programmer la carte électronique atmega328p-pu. Cependant, nous avons réaliser que nous avions fait une erreur lors de l'envoie du PCB à la production. En effet, celui-ci avait été fait en Top sur le logiciel Fritzing et non en Bottom. Hors nous avions soudé les composants (durant la semaine 7) comme pour un circuit imprimé en bottom, l'atmega328p-pu se retrouve alors inversé par rapport aux pistes. &lt;br /&gt;
Comme solution, nous avons choisi de souder un deuxième support pour l'atmega328 de l'autre coté de la carte avant de la refaire au propre. En effet, avant de la refaire il nous faut vérifier si la carte est bien programmable. &lt;br /&gt;
Une fois cela fait nous avions pu programmer la carte mais, nous avions également réalisé la pin 2 de l'atmega328 était prise par le bouton poussoir. Or, nous avons besoin des pin 2 et 3 pour le RX et TX permettant la programmation de l'atmega à partir d'une arduino, les pistes branchement RX-TX n'ont également pas été prévus pour le téléversement des programmes sur la carte. Il nous faut alors couper une piste et souder des câbles pour utiliser toutes les pistes souhaitées. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: correction_proto_PCB.jpg||right|300px|PCB arduino correction]]&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons également souhaité souder les CMS et le composant bluetooth nrf52810 sur la carte imprimé et reçu lors de la semaine 7. Pour cela, nous avons convenu de travailler dans la C202 durant la séance du mercredi. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: PCB_nrf52810.jpg||left|400px|carte electroniques imprimées]]&lt;br /&gt;
&lt;br /&gt;
====Comment souder des CMS ?====&lt;br /&gt;
&lt;br /&gt;
les CMS sont des composants montés en surface c'est à dire qu'ils sont montés du même côté que les pistes cuivrées (à l'opposé des composants traversants) et sont de petite tailles souvent de l'ordre du millimètre. La taille est déterminée par 4 chiffres : les 2 premiers pour la longueur et les 2 derniers pour la largeur. On a du 1206,0805,0603 ou encore 0402. Il est même possible de trouver plus petit. A l'école nous utilisons souvent du 0603, c'est le cas de nos composants.&lt;br /&gt;
Pour souder des CMS 0603, il nous faut utiliser une autre méthode qui n'est pas le fer à souder :&lt;br /&gt;
# Préparer la veille la pâte à braser la veille (dans une seringue)&lt;br /&gt;
# Gommer la carte pour éviter l'oxydation (attention à ne pas retirer les miettes de gomme en soufflant dessus) &lt;br /&gt;
# Appliquer avec la seringue la pâte sur les empreintes et piste souhaitées. Pour les endroits difficile à atteindre ou avec 2 pistes proches les unes des autres, il est possible de mettre la même goutte de pâte sur les 2 pistes. Cela de causera pas de court-circuit par la suite. En effet, la pâte est composée d’alliage qui sous la chaleur va se fluidifier et se coller uniquement aux pistes métallique. Le reste fondera sous la chaleur du four.&lt;br /&gt;
# Appliquer les CMS sur la pâte au fur et à mesure (attention ! ne jamais toucher les CMS avec les doigts, tjrs utiliser une pince)&lt;br /&gt;
# Mettre au four&lt;br /&gt;
&lt;br /&gt;
====Bilan soudure nrf52810====&lt;br /&gt;
&lt;br /&gt;
Cependant, une fois le matériel nécessaire préparé, et la pâte mise sur les pistes souhaitées, au moment de déposer le composant, nous avons réalisé que celui-ci était beaucoup plus petit que l'empreinte sur le PCB. Il s'agit d'un composant boitier QFN48. Fritzing ne proposant au plus proche des boitiers QFN24 ou LQFP48, celui-ci a basculé automatiquement pour un boitier LQFN48, de dimension plus grande. Face à ce manque de vigilance, nous avions cependant commencer par le nrf52810 (composant concerné) évitant ainsi de gaspiller d'autres CMS. &lt;br /&gt;
Nous avons souhaité refaire la carte sous Altium à partir des fichiers fournis par le concepteur (chose que nous avons commencé à faire aux alentours de la semaine 5) &lt;br /&gt;
Après la réalisation du schématic, et de la modification des empreintes de capacités, inductances et autres composants de 0402 à 0603. Notre matériel ne permettant que des empreintes 0603.&lt;br /&gt;
 &lt;br /&gt;
Lors du routage, une erreur de chevauchement des pistes est notifiée par Altium au niveau du nrf52810. Celles-ci ne présentent pas d'angles et sont déjà de taille 8mil, il nous faut alors passer les pistes en 6mil. Mais 8mil est la taille minimale pour la production à Polytech, nous avons regardé pour envoyer les cartes à faire ailleurs mais le 6mil n'est pas beaucoup conseillé. De plus, il n'est peut-être pas judicieux de continuer avec le composant microcontrôleur-bluetooth Nrf52810 qui prend du temps, donc la carte est difficilement réalisable et peut-être très long à programmer. &lt;br /&gt;
&lt;br /&gt;
Ainsi en cette fin de semaine, nous avons décider face à l'avancer du projet de laisser les nrf52810 de coté et de les remplacer par des modules sans fils plus simples d'utilisation et complets. Ainsi nous aurions plus de chance d'avoir une connexion sans fils entre les modules. Nous pourrions par exemples utiliser des Xbee, des modules Rf...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 9&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation: PS4 et 1er Test SPI sur atmega328p====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
Une carte PCB arduino fonctionnant, nous pouvons la programme pour simuler un module. Celle-ci a été designée afin de s'adapter au module que l'on souhaite. Il suffit de brancher le bouton, le joystick ou autre élèment de manette souhaité.&lt;br /&gt;
Cette semaine ci, nous avons alors configurer la partie communication SPI pour l'arduino.&lt;br /&gt;
&lt;br /&gt;
'''Que voulons-nous faire avec les atmegas ?''' &lt;br /&gt;
Les cartes électroniques atmega328p vont nous permettre de recevoir les requêtes SPI envoyées par la raspberry pi et d'y répondre. La Raspberry enverra un message, par exemple &amp;quot;1&amp;quot;, et l'Arduino lira alors l'état du module qui lui est connecté. Une fois l'état récupéré elle le renvoie à la raspberry pi.&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons programmé l'atmega afin qu'il soit en esclave, qu'il reçoive un de la RPi &amp;quot;1&amp;quot; et retourne une valeur sauvegardé &amp;quot;int envoi&amp;quot;. Nous avons également commencé les tests pour la lecture de l'état d'un bouton (d'après les tests réalisés les semaines précédentes).&lt;br /&gt;
&lt;br /&gt;
'''Code'''&lt;br /&gt;
Comme nous l'avons vu précedement lors de nos recherches (semaines 1 à 4) : &lt;br /&gt;
La communication SPI nécessite l'utilisation des pins: &lt;br /&gt;
&lt;br /&gt;
MOSI -&amp;gt; GPIO11 //PB3  //master OUT to the slave IN&lt;br /&gt;
MISO -&amp;gt; GPIO12 //PB4 //slave OUT to the master IN&lt;br /&gt;
SCLK -&amp;gt; GPIO13 //PB5 //serial clock&lt;br /&gt;
SS -&amp;gt; GPIO10   //PB2  //slave select&lt;br /&gt;
&lt;br /&gt;
Il faut également paramétrer l'atmega328p en Slave. On note que dans un premier temps, le programme sera codé avec l'arduino IDE (fichiers .ino). Une fois l'ensemble SPI RaspberryPi-Arduino fonctionnant, on remplacera ces codes par du langage C ou C++.&lt;br /&gt;
&lt;br /&gt;
Pour faire la connexion SPI sur l'atmega328p,  on utilise la librairie arduino SPI.h, on a alors directement les fonctions nécessaires intervenant sur les registres souhaités : SPCR (spi control register), SPSR (spi status register) et SPDR (spi data register). &lt;br /&gt;
 &lt;br /&gt;
  #include &amp;lt;SPI.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il est important d'initialise d'abord le setup et on active le port série pour pourvoir utiliser le moniteur série. (Cela servira à verifier la valeur envoyée par la RPi) &lt;br /&gt;
&lt;br /&gt;
 void setup (void)&lt;br /&gt;
 {&lt;br /&gt;
   Serial.begin (9600);  &lt;br /&gt;
   pinMode(MISO, OUTPUT);  //configuration en esclave *master in slave out*&lt;br /&gt;
   pinMode(buttonPin,INPUT);  //config pin bouton&lt;br /&gt;
   // turn on SPI in slave mode&lt;br /&gt;
   SPCR |= _BV(SPE);&lt;br /&gt;
   // preparation interruptions&lt;br /&gt;
   pos = 0;   // buffer empty&lt;br /&gt;
   process_it = false;&lt;br /&gt;
   // activation interruptions&lt;br /&gt;
   SPI.attachInterrupt();&lt;br /&gt;
 }  &lt;br /&gt;
 &lt;br /&gt;
On oublie pas de déclarer les interruptions afin de bien lire la requête reçue. &lt;br /&gt;
 &lt;br /&gt;
// SPI interrupt routine&lt;br /&gt;
ISR (SPI_STC_vect)&lt;br /&gt;
{&lt;br /&gt;
  byte c = SPDR;  // grab byte from SPI Data Register&lt;br /&gt;
  // add to buffer if room&lt;br /&gt;
  if (pos &amp;lt; sizeof buf)&lt;br /&gt;
    {&lt;br /&gt;
    buf [pos++] = c;&lt;br /&gt;
    // example: newline means time to process buffer&lt;br /&gt;
    if (c == '\n')&lt;br /&gt;
      process_it = true;&lt;br /&gt;
    }  // end of room available&lt;br /&gt;
}  // end of interrupt routine SPI_STC_vect&lt;br /&gt;
&lt;br /&gt;
Dans la loop main, on traite la requête et on utilise '''SPI.transfer(envoi);''' pour transferer à la RPi les données souhaitées. &lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons également commencé des programmes de test SPI pour la RPi. Il s'agit principalement de programmes de tests tout faits permettant de vérifier la connexion entre cette dernière et l'arduino. Par exemple, la RPI envoie &amp;quot;bonjour&amp;quot; et l'arduino lui retourne ce qu'elle reçoit, soit &amp;quot;bonjour&amp;quot;. Sans succés alors. &lt;br /&gt;
&lt;br /&gt;
====Electronique : Fritzing révision====&lt;br /&gt;
&lt;br /&gt;
Lors de la semaine, le modèle PCB de la carte arduino a été réalisé de nouveau sous fritzing avec les broches et connections manquantes. Nous avons également revu la configuration du bouton reset  et ajouté une led d'état de l'alimentation. Nous avons ainsi envoyé deux cartes identiques à la réalisation.&lt;br /&gt;
La carte déjà soudée lors des derniers jours fonctionnant, elle nous sert de prototype de programmation. Nous pouvons ainsi avancer à la fois sur la programmation des modules mais aussi sur leur réalisation. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 10&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation : PS4 et SPI sur RPi====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Raspberry PI et SPI'''&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, pour la partie Atmega328p-Modules, nous nous sommes concentrés sur la programmation de la communication SPI avec la raspberry pi. Cette semaine a permis une étude plus approfondit sur le fonctionnement pour la RPi. &lt;br /&gt;
&lt;br /&gt;
On rappelle, comme vu des semaines 1 à 4, pour la RPI3 (tout comme la RPi Zero W) utilise les broches : SCLK (23), MISO(21), MOSI (19) et SPI CS0 (24), SPI CS1 (26). &lt;br /&gt;
On la programme en Master. A l'aide des fichiers tests d'inspiration, on pourra directement programmer la RPi en C. Lors de la réalisation du code, il y a 3 étapes : l'initialisation/parametrage en SPI pour être maître, l'envoie de la requête puis la réception de données en retour. &lt;br /&gt;
&lt;br /&gt;
Programmant en C, il ne faut pas oublier les librairies suivantes :&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;getopt.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;sys/ioctl.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/types.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/spi/spidev.h&amp;gt;   //pour SPI&lt;br /&gt;
&lt;br /&gt;
On va déclarer des variables globales permettant le paramétrage :&lt;br /&gt;
&lt;br /&gt;
 static const char *device = &amp;quot;/dev/spidev0.0&amp;quot;;  //si on veut CS0 pour atteindre notre SS&lt;br /&gt;
 static uint8_t mode;       //mode est par défaut à 0&lt;br /&gt;
 static uint8_t bits = 8;    //bits par mot échangé&lt;br /&gt;
 static uint32_t speed = 500000;  &lt;br /&gt;
 static uint16_t delay;&lt;br /&gt;
&lt;br /&gt;
Dans notre main, on ouvre le port (la connexion) au device souhaité,  on vérifie les paramètres (registres, connexions...) puis exécute la fonction transfer(fd). transfer(fd) transmet la requête et s'occupe de la réception. &lt;br /&gt;
&lt;br /&gt;
 fd = open(device, O_RDWR);&lt;br /&gt;
 transfer(fd);&lt;br /&gt;
 close(fd);&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 11&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation: PS4, SSH et tests SPI (RPi3&amp;amp;Atemga328p)====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Raspberry PI, Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
Afin de facilité la programmation en utilisant Ethernet, nous avons installer et configuré la RPi pour l'utiliser en SSH depuis les ordinateurs de la E306. En effet, SSH permet de se connecter à distance sur une machine en utilisant un compte utilisateur de la dite machine. En mettant ssh, on pourra directement agir sur les fichiers de la raspberry depuis un terminal de notre PC. Pour cela, on a d'abord vérifier l'adresse IP de notre raspberry pi : 172.26.145.106 avec un écran mais on peut aussi utiliser les commandes ip a et ifconfig. Puis activer le ssh sur la raspberry pi. &lt;br /&gt;
On modifie alors le fichier config.txt mais également etc/network/interfaces pour configurer la bonne interface Ethernet sur la raspberry pi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: configSSH_raspi.png||left|300px|config ssh ethernet]]&lt;br /&gt;
&lt;br /&gt;
Il nous suffit alors de taper la commande : ssh pi@172.26.145.106  pour accéder à notre RPi. &lt;br /&gt;
&lt;br /&gt;
Nous avons continué à réaliser la communication SPI avec des tests entre une arduino UNO et la RPI3. Nous avons commencé par des tests simples inspirés des études de deux semaines précédentes et modulés selon notre utilité.  &lt;br /&gt;
Nous arrivons alors à lire l'état envoyer &amp;quot;bonjour&amp;quot; et recevoir &amp;quot;ça va&amp;quot; ou encore &amp;quot;1&amp;quot; et recevoir &amp;quot;3&amp;quot;. Il faut noter que le SPI échange des trames, la RPI reçoit alors des hexadécimaux. &lt;br /&gt;
Nous avons alors continué pour recevoir l'état du bouton ou du joystick lors de l'envoie de &amp;quot;1&amp;quot; sur l'Arduino328p. La semaine prochaine nous testerons ces même codes fonctionnels sur les cartes atmeg327p. &lt;br /&gt;
&lt;br /&gt;
A la fin de cette semaine, nous avons alors des codes Arduino-SPI (.ino) et des codes Raspberry-SPI (.c) permettant l'échange de données. Le but est maintenant de l'adapter aux cartes imprimées et de le rendre pleinement fonctionnel pour plusieurs cartes à la fois, puis ajouter une boucle de vérification en continue jusqu'à une deuxième requête de la RPi.&lt;br /&gt;
&lt;br /&gt;
====Electronique: réalisation au propres des PCB modules====&lt;br /&gt;
&lt;br /&gt;
Suite à une nouvelle erreur de réalisation cartes électronique, nous avons  refait et renvoyé à nouveau les cartes imprimées atmega328p.&lt;br /&gt;
Nous les souhaitons au propre pour une version finale. Une fois celle-ci imprimées nous pourrons en avoir 3 , un pour chaque module. Les cartes étaient bien imprimées en bottom mais lors du passage des traversants de bottom à top, le logiciel ne les a pas fait miroiter. Par manque d'attention nous avons alors envoyé les fichiers gerber pour des cartes ayant les composants du même coté que la couche de cuivre. &lt;br /&gt;
Les cartes électroniques actuelles sont alors correctes et fonctionnelles mais difficile à souder. Pour eviter les erreurs et continuer sur des prototypes de carte nous préférons attendre en nous concentrant sur la programmation PSI de la Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 12&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Raspberry PI, Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
-  réflexion: penser à faire boucler sur l'arduino une fois la requête reçu, ça veut dire que la manette est ON et donc vérifier continuellement les modules sur chaque atmega.&lt;br /&gt;
- SPI raspberry pi - arduino recuperation état du bouton avec les cartes modules  (/!\ récuperation à faire dans une variable) &lt;br /&gt;
&lt;br /&gt;
-SSH perso &lt;br /&gt;
adresse Rasppi: 192.168.137.10&lt;br /&gt;
&lt;br /&gt;
====Electronique: Finalisation soudure Modules====&lt;br /&gt;
&lt;br /&gt;
Soudure au propre et finale d'une carte atmega328p et donc envoie pour la réalisation de 2 autres cartes similaires et récupération de matériel&lt;br /&gt;
Soudure des 2 autres cartes, + tests sur les états = fonctionnelles.&lt;br /&gt;
On a donc bien 3 cartes pour les 3 modules de types différents (1 bouton, 1 joystick, 1 gachette)&lt;br /&gt;
PCB pour les 2 joysticks (qui serviront de thumbstick et gachette)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 13 et plus&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
====Electronique====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
(à mettre rapport + git + drive)&lt;br /&gt;
&lt;br /&gt;
=Datasheets=&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=55389</id>
		<title>IMA4 2017/2018 P35</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=55389"/>
				<updated>2018-05-05T18:54:34Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : /* Programmation: configuration RPi Zero W */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Présentation générale: Manette modulable&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Description&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Tout le monde joue aux jeux vidéo cependant, les manettes ne sont pas adaptées aux personnes ayant un handicap pouvant toucher les bras ou les mains.&lt;br /&gt;
C’est le cas, de plusieurs patients dans les centres de soins et de rééducation.&lt;br /&gt;
&lt;br /&gt;
Pour ce projet IMA4, nous travaillerons avec le centre SSR (soin de suite et de réadaptation) Marc Sautelet de Villeneuve d’Ascq.&lt;br /&gt;
Un adolescent, patient de Marc Sautelet, est passionné par les jeux vidéo. En effet, ayant perdu la motricité d’une partie de son corps, il ne peut pas jouer à deux mains. Pour cela, il bloque la manette entre son épaule et son coude, usant de la mâchoire et des doigts pour contrôler les&lt;br /&gt;
joysticks et les boutons. Cet exercice peut s’avérer fatiguant et pénible.&lt;br /&gt;
&lt;br /&gt;
Ainsi, nous chercherons à concevoir une manette PS4 adaptée au handicap de l’adolescent. &lt;br /&gt;
Cette manette devra aussi être adaptée pour d’autres patients présentant également des handicaps moteurs. Ainsi nous prendrons pour cibles: tous les patients du centre voulant jouer; et non pas que les enfants et adolescents.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Membre du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Transley Gracias et Camille Saad&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Cible&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Patient présentant un handicap moteur&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Période du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
janvier 2018 - mai 2018&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Partenaire/Client&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Centre SSR Marc Sautelet à Villeneuve d'Ascq&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Objectifs&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ce projet a pour objectif de créer un prototype de manette qui puisse interagir avec la console PS4 et dont le paramétrage se fait à l’aide d’une application mobile et/ou web. Cette manette devra suivre les demandes du patient ainsi que des aides-soignantes du centre, dans la mesure du possible.&lt;br /&gt;
&lt;br /&gt;
Plus précisément, pour le premier prototype, nous mettrons en œuvre l'utilisation de quelques boutons spécifiques: &lt;br /&gt;
&lt;br /&gt;
* Un joystick (type L/R)&lt;br /&gt;
* Quelques boutons poussoirs (type Croix/Triangle/Carré/Rond/R1/L1/Start/...)&lt;br /&gt;
* Des boutons gâchettes progressives (type L2/R2).&lt;br /&gt;
&lt;br /&gt;
Le but serait donc dans un premier temps de rendre fonctionnel un bouton de chaque type, puis de les multiplier une fois cela fait. Tous ces boutons réunis constituent une manette fonctionnelle.Ainsi, la manette sera ajustable, c’est à dire qu’elle devra s’adapter aux différents handicaps moteurs possibles.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Analyse du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Positionnement par rapport à l'existant&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre prototype aura une présentation unique par rapport à l’existant. En effet, les concurrents et produits existants ciblent pour la majorité un seul handicap. Cela&lt;br /&gt;
engendre une solution fermée à beaucoup de patients. Notre projet propose une mobilité des mouvements et également un choix large dans la composition et le&lt;br /&gt;
design de notre manette.&lt;br /&gt;
Le patient n’est pas retreint à jouer à une seule main, à utiliser beaucoup de force...Il y a moins de technique dans la manipulation et on ne joue pas avec une&lt;br /&gt;
manette adaptée uniquement pour un droitier ou un gaucher. Cependant, cela nous limitera peut-être dans le choix possible des types de jeux. Tout comme les autres&lt;br /&gt;
manettes adapté, l’utilisateur nécessitera un peu d’entrainement.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du premier concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Jouer aux jeux vidéo à une main n’est pas une idée d’aujourd’hui. En 1990, Nintendo propose le Power Glove. Mais il tombe très rapidement aux oubliettes suite à des problèmes techniques.&lt;br /&gt;
&lt;br /&gt;
Un autre gant a fait son apparition quelques années plus tard. Celui-ci, plus technique, il faut office de manette Play Station: le Reality Quest Power Glove.Cette idée de manette-gant, permet de jouer à la PS avec une seule main, elle a était conçue et présentée pour les E3, un salon d’exposition de gaming.Le gant est conçu pour contrôler l’équivalent des 14 boutons et 2 joysticks à l’aide d’une seule main. La « manette » est fixée dans la pomme de la main. L’utilisateur contrôle les mouvements verticaux et horizontaux en pivotant le poignet, et utilisent les 4 boutons d’action principaux et L1/R1 avec les doigts. Les autres boutons sont accessibles par un seul bouton rond contrôlé par le pouce.&lt;br /&gt;
La manette est adaptée pour beaucoup de jeux vidéo, dont les plus simples sont les jeux de voitures et de combats (arcade).&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec ce gant&lt;br /&gt;
*Design obligatoirement droitier&lt;br /&gt;
*Les boutons de contrôle sont peu sensibles et peuvent nécessiter de la force&lt;br /&gt;
*Design compliqué et nécessitant beaucoup d’entrainement.&lt;br /&gt;
&lt;br /&gt;
;Lien : https://www.youtube.com/watch?v=qV0SxSJDCYg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du second concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ben Heck, de son vrai nom Benjamin J.Heckendorn, est un concepteur de mods de consoles (mods pour modification, soit « manettes modifiées ») et une star&lt;br /&gt;
du net grâce à ses vidéos tutoriels.Il propose alors énormément de produits adaptés ou dérivés en guise de manettes.&lt;br /&gt;
Parmi les mods qu’il a réalisé, il a modifié une manette de PS4 afin de la rendre accessible à une personne ne pouvant jouer qu’à une main. Pour cela, il a déplacé les boutons en respectant l’ergonomie de la main valide et modifie les connexions. Il peut lui arriver de rajouter des boutons pour en remplacer un autre. Il réalise également le même système avec la Xbox. Sur la photo ci-dessous, il a adapté la manette pour un droitier.&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec cette ma&lt;br /&gt;
*Design obligatoirement droitier ou gaucher, une modification = une manette= une personne&lt;br /&gt;
*Besoin obligé du pouce et de l’index, même si avantage : 3 doigts nécessaire.&lt;br /&gt;
&lt;br /&gt;
;Lien :: https://www.youtube.com/watch?v=LieHIscadjk&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Scénario d'usage du produit ou du concept envisagé&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
La technologie est ,aujourd’hui, omniprésente dans notre vie. Les consoles de jeux ont envahies les maisons avec plus de 7 personnes sur 10 jouant aux jeux vidéos sur consoles en France (chiffre de l’Express). 0,18% des français sont handicapés cela représente 12 millions de français. Dans ce chiffre, 13,4% des personnes ont un handicap moteur. En 2017, les grands groupes comme Sony ou Microsoft avec respectivement PlayStation et Xbox ne permettent pas à tout le monde de jouer avec une manette. Les manettes sont prévues pour des personnes ayant leurs membres valides, plus précisément les mains et les bras.&lt;br /&gt;
&lt;br /&gt;
Après un accident de voiture, un jeune garçon a perdu la motricité d’un côté du corps. Passionné de jeux vidéo, il se retrouve avec des difficultés à jouer sur sa console PS4. Ingénieux, il utilise la manette en la coinçant entre son épaule et le creux du cou. Usant de la mâchoire et de sa main valide pour contrôler les joysticks et les boutons. L'exercice étant inconfortable et fatiguant il eu l’idée de proposer à des futurs ingénieurs de lui proposer une manette adaptée à son handicap. &lt;br /&gt;
&lt;br /&gt;
Les deux pré-ingénieurs ,avec leur tuteur, ont une idée révolutionnaire : La manette modulable ! Elle permettrait au jeune garçon, ainsi que d’autres joueurs, de pouvoir continuer de s’amuser ou même de commencer à jouer au jeux sur console. &lt;br /&gt;
Cette manette aidera fortement dans les centre de rééducation pour faire passer le temps et donner du plaisir à des personnes qui ne peuvent plus s’amuser avec leur console traditionnelle. Elle pourra aussi ouvrir de nouvelles possibilités pour certaines personnes qui n’auraient jamais essayé jusqu'à présent.   &lt;br /&gt;
Comme son nom l'indique, elle sera modulaire et s'adaptera à différents handicaps. Accompagnée de son application d’initialisation, elle sera accessible aussi bien aux enfants, patients, parents et aides soignantes.&lt;br /&gt;
&lt;br /&gt;
Quelques mois plus tard...Le jeune patient fan de Need For Speed, peut maintenant piloter sa voiture comme un vrai professionnel grâce à l'un des joysticks qu'il utilisera avec sa main valide et il pourra accélérer à des vitesses folles à l'aide de boutons poussoirs au niveau de son pied valide et gagner la partie. Son ami venu lui rendre visite, pourra en lieu et place des aides soignantes configurer à l'aide de la tablette (portable) la manette du patient. &lt;br /&gt;
Si le patient change de jeu pour Tekken et que la configuration des modules ne lui convient plus, il peut interchanger les éléments de la manette selon son envie et son confort. Ainsi il peut faire sauter son personnage, il utilisera un module bouton supplémentaire, qu'il actionnera avec le poing.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Fonctionnement&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Suite à une analyse fonctionnelle et à la formulation de notre projet, nous avons pu définir le fonctionnement de notre système. Notre produit, la manette, doit être accessible d’après nos objectifs à différents types de handicaps moteurs. Ainsi, l’idéal serait de concevoir une manette modulable afin qu’elle puisse s’adapter à toutes les situations. Ce n’est plus au patient de s’adapter à la manette mais à la manette de s’adapter au patient.&lt;br /&gt;
Cela signifie que la manette sera, dans la limite du possible et de la sensibilité du corps du patient, composée de plusieurs parties dites « modules » comportant un ou plusieurs actionneurs (boutons, joysticks, gâchettes...). Ces modules seront déplaçables afin d’être utilisé avec différents membres du corps : un doigt, une main,&lt;br /&gt;
une jambe ou même un pied. Il suffira de les connectés entre eux suivant l’organisation souhaitée, le Gameplay du jeu ou en fonction du handicap. Le tout sera relié à une application.&lt;br /&gt;
L’application sera alors mise en place pour connecter les différentes parties du point de vue software pour prérégler la manette en fonction du patient. Il pourra alors choisir les boutons en fonction du jeu, de ses mouvements mais aussi choisir la sensibilité.&lt;br /&gt;
&lt;br /&gt;
L’application et les modules devront être intuitifs et faciles d’utilisation. De cette manière des utilisateurs non avertis dans le domaine informatique ou jeunes pourront eux-mêmes gérer les connexions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Réponse à la question difficile&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
'''Question : Comment interconnecter les différents modules de la manette ?'''&lt;br /&gt;
&lt;br /&gt;
Il nous faut pour ce projet interconnecter les modules modélisant la manette qui seront connectés à la consoles PS4 via une Raspberry Pi 3.&lt;br /&gt;
Le choix de la Raspberry Pi 3 nous permet d'utiliser son module Bluetooth pour communiquer avec la PS4, ce choix est plus adaptée au projet que du filaire.&lt;br /&gt;
Concernant l'interconnexion des modules, nous travaillerons en deux étapes &amp;quot;preuves concept&amp;quot; : filaire et sans fils (Bluetooth).&lt;br /&gt;
&lt;br /&gt;
'''Objectif 1 : Preuve concept filaire'''&lt;br /&gt;
&lt;br /&gt;
Dans cette première partie de projet, nous souhaitons avoir une 1ère preuve de prototype rapidement. Nous nous concentrerons alors sur la communication entre la RPi3 et la PS4 ainsi que sur la conception des modules. Pour les modules, nous réaliserons des cartes électronique pour chaque module avec un micro-contrôleur. La communication filaire nous permettra d'interconnecter les modules à la RPi3 avec un bus SPI.&lt;br /&gt;
&lt;br /&gt;
'''Objectif 2: preuve concept sans fils'''&lt;br /&gt;
&lt;br /&gt;
Une deuxième étape du projet est la réalisation de la solution idéale sans fils. Celle-ci pourra commencer à être développée petit à petit en parallèle avec l'objectif 1. Le but ici, est d'interconnecter les modules en Bluetooth. Nous avons choisi le Bluetooth pour garder une connexion commune sur toute la chaîne. &lt;br /&gt;
Nous rajouterons alors un module bluetooth à chaque module de la manette. &lt;br /&gt;
&lt;br /&gt;
'''Objectif 3: possibilité d'adapter les boutons (capuchon en 3D)'''&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Préparation du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Cahier des charges&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
''Chef de projet:'' Alexandre Boé  &amp;lt;br&amp;gt;&lt;br /&gt;
''Responsables:'' Xavier Redon, Thomas Vantroys &amp;lt;br&amp;gt;&lt;br /&gt;
''Partenariat:'' Marc Sautelet (non etablie) &amp;lt;br&amp;gt;&lt;br /&gt;
''Elèves-ingénieurs:'' Camille Saâd, Transley Gracias &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Sujet :''' Manette modulable pour personne à déficience moteur compatible PlayStation 4 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objectifs principal (1er POC) : ===&lt;br /&gt;
Faire transmettre des informations issus des actionneurs (ex:boutons poussoires) via des arduinos jusqu’à la Raspberry Pi 3 en SPI.&amp;lt;br&amp;gt;&lt;br /&gt;
Envoyer les données reçues vers la PS4 en USB  &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objectifs secondaire (2e POC):===&lt;br /&gt;
Créer des modules avec un microcontrôleur et une puce bluetooth pour permettre une meilleurs flexibilité (c-àd pouvoirs avoir une meilleure ergonomie et une connexion sans fil) &amp;lt;br&amp;gt;&lt;br /&gt;
Connecter la Raspberry Pi 3 en Bluetooth à la PS4 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier: beteacorne.jpg||middle|600px|Bete a corne manette]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Choix techniques : matériel et logiciel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Liste de matériel :===&lt;br /&gt;
&lt;br /&gt;
'''Modules boutons/joysticks/gachettes'''&lt;br /&gt;
&lt;br /&gt;
3  Push buttons :&amp;lt;br&amp;gt;&lt;br /&gt;
- O X Y Carré R3 L3 &amp;lt;br&amp;gt;&lt;br /&gt;
- Guide PS &amp;lt;br&amp;gt;&lt;br /&gt;
- start/back &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 0,45€/unité TTC [https://www.gotronic.fr/art-bp-miniature-krs1273-16976.htm] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1  Thumbstick original: &amp;lt;br&amp;gt;&lt;br /&gt;
Joystick analogique 4 directions --&amp;gt; 4,25€/unité TTC [https://www.gotronic.fr/art-joystick-analogique-4-directions-19063.htm] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1 buttons trigger L1 L2 =&amp;gt; 1x Thumbstick original''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Cartes Atmega328p /connexion spi/'''&lt;br /&gt;
&lt;br /&gt;
3   Arduino UNO &amp;lt;br&amp;gt;&lt;br /&gt;
1   Arduino UNO atmega328p retirable &amp;lt;br&amp;gt;&lt;br /&gt;
4   capacite 22pF traversantes &amp;lt;br&amp;gt;&lt;br /&gt;
2   resistances 10 kOhm traversantes (à récupérer) &amp;lt;br&amp;gt;&lt;br /&gt;
2   oscillateurs quartz 16MHz traversante &amp;lt;br&amp;gt;&lt;br /&gt;
2   atmega328p-pu et support &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cartes module bluetooth nrf52810 '''&lt;br /&gt;
&lt;br /&gt;
6   capacités 100nF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
6   capacités 12pF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 4,7pF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 1µF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 100pF=0,1nF 0603 (à récupérer) &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 0,8pF 0603 (a acheter, commande en cours) &amp;lt;br&amp;gt;&lt;br /&gt;
2   inductance 3,9nH 0603 (a acheter, commande en cours) &amp;lt;br&amp;gt;&lt;br /&gt;
2   oscillateur quartz 32 MHz &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''' Connexions et autres '''&lt;br /&gt;
&lt;br /&gt;
1 Led RGB neopixel [https://www.adafruit.com/product/1734] &amp;lt;br&amp;gt;&lt;br /&gt;
1 Raspberry Pi 3 &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; ~36,23€/unité TTC [https://fr.rs-online.com/web/p/processor-microcontroller-development-kits/8968660/?src=raspberrypi] &amp;lt;br&amp;gt;&lt;br /&gt;
1 Raspberry Pi Zero W (commandée) [https://www.raspberrypi.org/products/raspberry-pi-zero-w/] &amp;lt;br&amp;gt;&lt;br /&gt;
6 Alimentations 5V ou 3,3V &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
par exemple, 12 piles de type CR2016 3V rechargeables ou 24 piles AAA 1,5 V rechargeables  &lt;br /&gt;
5 modules Bluetooth nrf de Nordic : nRF52810-QFAA-R &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 3,17€/unité + frais expédition  [https://www.mouser.fr/productdetail/nordic-semiconductor/nrf52810-qfaa-r?qs=sGAEpiMZZMve4%2FbfQkoj%252bG%2FosjLoe2oghFQwQllMrQ4%3D]&lt;br /&gt;
5 Lignes broches mâles &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logiciels:===&lt;br /&gt;
&lt;br /&gt;
- IDE arduino&lt;br /&gt;
- Altium&lt;br /&gt;
- FreeCAD ou Inkscape&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Liste des tâches à effectuer&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 1 : Gestion du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Définition des cahiers des charges fonctionnel et technique, choix d'orientation...&lt;br /&gt;
* Recherche techniques sur les différentes connexions possibles entre les modules, la RPi 3 et la console PS4&lt;br /&gt;
#Recherche connexion SPI entre les modules et la RPi3&lt;br /&gt;
# Recherche connexion bluetooth entre la RPi3 et la PS4&lt;br /&gt;
# Recherche connexion bluetooth pour les modules&lt;br /&gt;
# Recherche carte avec montage Atmega328P-PU et anticipation module bluetooth&lt;br /&gt;
* Détermination du matériel nécessaire&lt;br /&gt;
* Réflexion sur l'application&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 2: Réalisation du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Partie 1: Preuve concept manette en filaire'''&lt;br /&gt;
&lt;br /&gt;
* Conception de cartes électroniques pour 2 modules (/!\ prévoir modules bluetooth)&lt;br /&gt;
* Réalisation connexion SPI avec 2 modules : programmation des Atmega328p en liaison série. &lt;br /&gt;
* Si tests concluant, ajouter des modules jusqu'à en avoir 5 (1 pour chaque type de boutons) &lt;br /&gt;
* Connexion bluetooth entre la PS4 et la RPi3&lt;br /&gt;
* Réalisation du support des modules avec fixations possibles (imprimante 3D)&lt;br /&gt;
&lt;br /&gt;
'''Partie 2: Preuve concept manette en bluetooth'''&lt;br /&gt;
&lt;br /&gt;
* Ajout des modules bluetooth aux cartes électroniques&lt;br /&gt;
* Connexion bluetooth entre les modules&lt;br /&gt;
&lt;br /&gt;
'''Partie 3: Application Android : paramétrage de la manette'''&lt;br /&gt;
&lt;br /&gt;
* Créer une application sur tablette ou smartphone (Android) afin de configurer la manette aux besoins (inter-connexion des modules et console)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Calendrier prévisionnel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Date'''&amp;lt;/u&amp;gt;&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Tache à réaliser''' &amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
17/01/18-24/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Faire des recherches sur les différentes interconnexions du système : Bluetooth, RPi-Atmega328 (SPI), RPi-PS4&lt;br /&gt;
Continuer liste des taches, matériel, Début recherches + réflexion fixation support des modules&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Recherche technique connexion PS4-RPi3 et connexion SPI RPi3-Module + code&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18-07/03/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Réalisation 1er prototype (+ début prototype 2)&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
07/03/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Seance 7 :  Test prototype filaire&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
07/03/18-09/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Réalisation 2eme prototype + application Android&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
09/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Seance 14 :  Test prototype Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
14/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Video projet&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
15/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Finalisation projet et Rapport&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
16/05/18-17/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Soutenances Projet&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Réalisation du Projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Feuille d'heures &amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Voici le tableau d'heures du binôme:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Heures S11 !! Heures S12 !! Heures S13et+ !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 10&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 20min&lt;br /&gt;
|&lt;br /&gt;
| 15h20&lt;br /&gt;
|-&lt;br /&gt;
| Cherches techniques &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 18&lt;br /&gt;
|-&lt;br /&gt;
| Rédaction du wiki et rapport de projet&lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 30min&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| 30min&lt;br /&gt;
| 30min&lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
| 10h30&lt;br /&gt;
|-&lt;br /&gt;
| Programmation&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 3&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 7&lt;br /&gt;
| 8&lt;br /&gt;
| 6&lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
| 43&lt;br /&gt;
|-&lt;br /&gt;
| Cartes électroniques&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 6&lt;br /&gt;
| 8&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| 31&lt;br /&gt;
|-&lt;br /&gt;
| Application&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| Total Semaine&lt;br /&gt;
| 10&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 7&lt;br /&gt;
| 10h30&lt;br /&gt;
| 13&lt;br /&gt;
| 9&lt;br /&gt;
| 12&lt;br /&gt;
| 9h30&lt;br /&gt;
| 10h30&lt;br /&gt;
| 9&lt;br /&gt;
| 9h20&lt;br /&gt;
| &lt;br /&gt;
| '''117h50'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Prologue&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Avant la réalisation et conception d'un projet, il est important d'analyser celui-ci. Nous avons allons consacré le prologue à l'analyse fonctionnelle de la manette. Nous avons également eu une réflexion sur l'analyse technique, cela nous a permis de réaliser une liste de matériel. Il est important de définir les objectifs ainsi que les besoins afin de ne rien oublier. (Voir ci-dessus Analyse projet) &lt;br /&gt;
Nous avons également organisé notre travail, pour le partage de documents de recherches et la rédaction de compte-rendu final nous avons réalisé un google drive. Par la suite, nous créerons un projet Git. &lt;br /&gt;
&lt;br /&gt;
Durant ce temps, nous avons décidé de réaliser 5 modules. Les modules sont les différents boutons de la manettes qui nous pourrons placer selon nos choix (boutons modulaires) pour notre prototype projet pour chaque type des boutons d'une manette PS4. Ces modules devrons être connectés à la console et interconnectés. Le tout sera lié à une application Android. Suite à quelques recherches et nos analyses, nous avons décidé les points suivants :&lt;br /&gt;
&lt;br /&gt;
- On commencera avec 2 modules et on les multipliera par la suite. &lt;br /&gt;
- Les premiers tests sont réalisés avec des boutons petits pour assurer leur caractéristique &amp;quot;modulaires&amp;quot;, par la suite nous pourrons ajouter des capuchons de taille plus importante (imprimante 3D ou achat)&lt;br /&gt;
- Conception modules : réalisation de carte avec un microcontrôleur atmega328 programmable pour chaque module (anticiper le module Bluetooth) &lt;br /&gt;
- Projet en 2 parties : prototype filaire et prototype Bluetooth&lt;br /&gt;
# Prototype filaire : connexions entre les modules et la RPi3 en SPI, connexion Rpi3-PS4 en Bluetooth, avec l'application en filaire à la RPi3&lt;br /&gt;
# Prototype Bluetooth: connexion Bluetooth entre modules-RPi3-PS4-apllication&lt;br /&gt;
&lt;br /&gt;
[[Fichier: structuremanette.png||center|400px|Concept manette modulable]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 1&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous nous sommes concentrés les recherches afin de définir clairement le cahier des charges technique. Il s'agit des réalisations à mettre en œuvre pour les inter-connexions des éléments de la manette.&lt;br /&gt;
Ainsi, nous avons fait des recherches sur :&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI entre les modules (Atmega328p) et la RPi3===&lt;br /&gt;
&lt;br /&gt;
SPI: Serial périphérique interface BUS&lt;br /&gt;
&lt;br /&gt;
[[Fichier: yWGmW.png||right|200px|Concept manette modulable]]&lt;br /&gt;
Comme indiqué sur l'image ci-dessus, la Raspberry pi 3  peut communiquer en SPI avec ses broches CS0 (24), CS1 (26), SCLK (23), MISO (21), MOSI (19). Celles-ci permettent de communiquer avec un ou plusieurs esclaves (dans notre cas, des Atmega328p) en reliant directement les broches concernées de la RPi3 à celles des composants esclaves.&lt;br /&gt;
Chaque broche CS0 (24) ou CS1 (26) ne peut être connectée qu'à l'entrée SS (aussi appelé CS) d'un seul esclave.&lt;br /&gt;
C'est a dire que chaque CS est lié à un esclave afin de choisir avec lequel la communication est établie à un moment donné, et les MISO sont reliées entre elles en cascade, de même pour les SCLK et les MOSI. On peut noter que le maître impose la fréquence d’horloge et sélectionne l’esclave auquel les données sont envoyées.  8 MHz est le plus rapide supportable a 3,3V&lt;br /&gt;
&lt;br /&gt;
[[Fichier: fonctionnementSPI.png||right|200px|Connexion SPI multi-esclaves]]&lt;br /&gt;
&lt;br /&gt;
Voici un schéma du fonctionnement souhaité : &lt;br /&gt;
&lt;br /&gt;
Comme nous souhaitons avoir 5 modules environ il nous faudra rajouter un composant en plus afin d'augmenter les possibilités de sélection, par exemple des démultiplexeurs.&lt;br /&gt;
Dans un premier temps nous essaierons avec 2 esclaves, puis on augmentera le nombre. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Connexion Bluetooth PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Les recherches portent également sur la connexion entre la manette PS4 et la console. Elles concernent le protocole de communication via Bluetooth&lt;br /&gt;
&lt;br /&gt;
Caracteristique pour la PS4:  Bluetooth®v4.0, Qualcomm Atheros AR3002 Buetooth LE: 2,4-2,5 GHz  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caracteristique de la connexion : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Vitesse de transmission &amp;gt;&amp;gt; 3 Mbit/s   8N1 &lt;br /&gt;
*Relevé tous les 1.3 millisecond (peut-être) &lt;br /&gt;
*Chaque manette à une adresse unique BD_ADDR qui correspond à l’adresse MAC de la carte Réseau&lt;br /&gt;
*Protocole de détection est le SDP basé sur une emission reception PDU&lt;br /&gt;
*L’Attribut ID est representer en TLV Type Length Value &lt;br /&gt;
*Communication HCI ACL Data Packet &lt;br /&gt;
&lt;br /&gt;
===Rélisation des cartes électroniques===&lt;br /&gt;
&lt;br /&gt;
matériel nécessaire pour un PCB : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*breadboard&lt;br /&gt;
*câbles&lt;br /&gt;
*1 x 10k Ohm résistance&lt;br /&gt;
*Quartz 16Mhz clock crystal&lt;br /&gt;
*2 x 22 pF capaciteurs&lt;br /&gt;
*Atmega328P-PU&lt;br /&gt;
&lt;br /&gt;
Ressources: &lt;br /&gt;
[[https://www.arduino.cc/en/Main/Standalone]]&lt;br /&gt;
[[http://www.eprojectszone.com/atmega-328-pu-standalone/]]&lt;br /&gt;
[[https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 2&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la semaine deux et durant la séance, nous avons continué et approfondie nos recherches sur le projet. Nous avons pu ainsi affiner nos taches de réalisation et donc notre cahier des charges.&lt;br /&gt;
&lt;br /&gt;
===Connexion aux modules: SPI et Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Green&amp;quot;&amp;gt; CORRIGER&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
voir https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018#Configuration_du_syst.C3.A8me_embarqu.C3.A9&lt;br /&gt;
&lt;br /&gt;
(sudo apt-get install pi-bluetooth)&lt;br /&gt;
&lt;br /&gt;
''connexion sur la raspberry par ssh:''&lt;br /&gt;
 su&lt;br /&gt;
 update-rc.d ssh enable&lt;br /&gt;
 invoke-rc.d ssh start &lt;br /&gt;
 ssh pi@172.26.79.1XX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''bluetooth''&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
 agent on&lt;br /&gt;
 default-agent&lt;br /&gt;
 scan on&lt;br /&gt;
 pair [device Bluetooth address]  (exemple: pair XX:XX:XX:XX:XX:XX )&lt;br /&gt;
&lt;br /&gt;
''NOUVELLE REFLEXION : Connexion SPI entre les modules (Atmega328p) et la RPi3 --&amp;gt; MODULES BLUETOOTH''&lt;br /&gt;
&lt;br /&gt;
Si multi-esclaves= plusieurs modules : &lt;br /&gt;
Il faut ajouter des sélections pour les SPI → démultiplexeurs OU ne pas utiliser les CS0 et CS1, et plutôt des pins entrée/sortie de la RPi3 lié au SS comme ça on choisit direct le module esclave voulu.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' Nous avons étudié à nouveau la datasheet de notre module bluetooth nrf de Nordik. Le module bluetooth comporte  déjà un microprocesseur !&lt;br /&gt;
Un module plutôt peut donc jouer le rôle de notre atmega328p. Il n'y a alors pas besoin de réaliser des cartes électroniques de type arduino standalone. Nos PCB regrouperont alors uniquement l'alimentation, un actionneur (bouton, joystick), le module bluetooth et les broches de connexion si besoin... &lt;br /&gt;
&lt;br /&gt;
Cette séance nous a alors permise de revoir entièrement le matériel nécessaire. Notre liste de matériel nous semble alors plus réfléchie et limitée au nécessaire. &lt;br /&gt;
&lt;br /&gt;
===Connexion Bluetooth PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Suite à nos recherches de la semaine précédente, nous avons sélectionné deux sites bien renseignés : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;SITES&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ils nous ont permis de comprendre la communication entre la manette et la console. En effet, ils nous expliquent les échanges de trames Bluetooth. &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;EXPLICATIONS 1 exemple &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 3 : Début premier prototype&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI RPi3-Arduino===&lt;br /&gt;
&lt;br /&gt;
Comme vu durant les semaines précédentes, nous souhaitons réaliser une connexion Multi-esclaves en SPI entre la Raspberry pi et plusieurs modules.&lt;br /&gt;
Cette semaine nous avons vu que la réalisation de notre premier prototype doit aller vite. Il ne nous est pas nécessaire d’attendre les modules bluetooth si il nous faut dans cette partie uniquement utiliser son microprocesseur. Ainsi pour chaque module nous utilisons une arduino UNO. Nous réaliserons les programmes en C afin de pouvoir les réutiliser avec les modules bluetooth par la suite. &lt;br /&gt;
Une fois la connexion réalisable nous adapterons les programmes aux modules bluetooth Nordik. En effet, ceux-ci comporte déjà un microprocesseur, le module peut jouer le rôle de notre atmega328p. Il n'y a aurait alors pas besoin de réaliser des cartes électroniques arduino standalone sur PCB, mais directement des cartes électronique avec le module et le module voulu (bouton, joystick...) et l'alimentation. &lt;br /&gt;
Durant la séance nous avons alors revu la liste de matériel nécessaire. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: prototype1.jpeg||center|600px|connexion filaire prototype 1 filaire arduino]]&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous avons recherches des exemples de codes et de librairies pour Arduino SPI et RaspberryPI SPI. &lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé le programme de la connexion SPI pour l'arduino et récupéré les bibliothéques SPI.h avec SPI.c. Nous nous sommes alors concentrer à les comprendre, pour pouvoir l'utiliser. &lt;br /&gt;
&lt;br /&gt;
===Réalisation du projet Git===&lt;br /&gt;
&lt;br /&gt;
Création du projet IMA4_Projet35_ManetteModulable sur Git et partage de celui-ci. &lt;br /&gt;
Les premiers dossier crées cette la séance :&lt;br /&gt;
-Arduino (connexion SPI arduino) : ProtoSpi.c + dossier librairie SPI + Makefile&lt;br /&gt;
-RPI (dossier codes pour Rpi) &lt;br /&gt;
-Readme.md&lt;br /&gt;
Ces dossiers seront amenés à être modifiés au cours des séances. &lt;br /&gt;
&lt;br /&gt;
===Protocole Bluetooth PS4===&lt;br /&gt;
&lt;br /&gt;
Suite à l'étude des trames Bluetooth, on a pu voir que ces dernières étaient incomplètes. Le modèle de communication étant propriétaire, on n'y a pas accès directement. Cela nous empêche donc de mettre en oeuvre cette communication. &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt; Déveloper&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On a décidé de commencer par une connexion USB (pour laquelle on dispose de toutes les informations) celle-ci étant plus complète.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 4&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Pour le prototype 1 FILAIRE nous réaliserons les étapes suivantes :&lt;br /&gt;
&lt;br /&gt;
#Réalisation du programme SPI pour arduino&lt;br /&gt;
#Réalisation du programme SPI pour la RPi&lt;br /&gt;
#Connexion USB avec la PS4 ou ordinateur&lt;br /&gt;
#Réalisation de cartes électroniques atmega328p-pu standalone (remplacer les Arduinos) &lt;br /&gt;
#Remplacer les &amp;quot;PCB arduino&amp;quot; par le module bluetooth et adapter la connexion&lt;br /&gt;
#Conception 3D de la délimitation 1 axe pour le joystick &amp;quot;gâchette&amp;quot;&lt;br /&gt;
#Réalisation de l'application Androïde.&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées nous auront alors une preuve de concept filaire et nous pourrons alors passer à une connexion bluetooth. &lt;br /&gt;
Le passage à la connexion bluetooth sera le deuxième prototype et le cas idéal de la réalisation de la manette modulable. &lt;br /&gt;
&lt;br /&gt;
===Mise à jour Matériel===&lt;br /&gt;
&lt;br /&gt;
- Modéliser les boutons gâchettes L1/2 R1/2 de la manette PS4 (boutons sensibles à la pression) --&amp;gt; un joystick dont nous bloquerons un axe (imprimante 3D)&lt;br /&gt;
- Remplacer la RPi 3 par une Rpi zero W qui nous permettrait de réaliser plus facilement une connexion USB tout en gardant l'avantage du bluetooth. &lt;br /&gt;
- Choix de l’alimentation pour les 5 modules Bluetooth: nécessitent 3V --&amp;gt;  utiliser des piles rechargeables 1,2V AAA plutôt que piles rondes 3V.&lt;br /&gt;
&lt;br /&gt;
Nous avons également besoin du matériel cité en semaine 1 pour réaliser des cartes électroniques atmega328p-pu standalone. ( nous revenons alors sur les décisions de la semaine 3)&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI RPi3-Arduino===&lt;br /&gt;
 &lt;br /&gt;
Montage Raspberrypi et 1 arduino en PSI + 1 bouton + 1 led.&lt;br /&gt;
Voici le choix des branchements :&lt;br /&gt;
&lt;br /&gt;
 MASTER = RPi   &lt;br /&gt;
 SLAVE= Arduino&lt;br /&gt;
&lt;br /&gt;
'''SPI sur Arduino:'''&lt;br /&gt;
 MOSI -&amp;gt; GPIO11 //PB3  //master OUT to the slave IN&lt;br /&gt;
 MISO -&amp;gt; GPIO12 //PB4 //slave OUT to the master IN&lt;br /&gt;
 SCLK -&amp;gt; GPIO13 //PB5 //serial clock&lt;br /&gt;
 SS -&amp;gt; GPIO10   //PB2  //slave select&lt;br /&gt;
'''Led, bouton et autre...'''&lt;br /&gt;
 LED --&amp;gt; GPIO6  //PD6&lt;br /&gt;
 GND&lt;br /&gt;
 +5V (if required)&lt;br /&gt;
'''SPI sur la Raspberry Pi'''&lt;br /&gt;
 SPIO MOSI -&amp;gt; PIN19 &lt;br /&gt;
 SPIO MISO -&amp;gt; PIN21&lt;br /&gt;
 SCLK -&amp;gt; PIN23&lt;br /&gt;
 SPIO CS0 -&amp;gt; PIN24&lt;br /&gt;
&lt;br /&gt;
Continuation du code pour faire clignoter Led branchée à une arduino depuis la Rpi, en connexion SPI.&lt;br /&gt;
&lt;br /&gt;
===Connexion USB PS4-RPi3===&lt;br /&gt;
Durant cette, nous avons regardé comment faire cohabiter bluetooth, Application Androïd, USB, PS4, SPI et les module. &lt;br /&gt;
&lt;br /&gt;
Il est alors important de savoir comment utiliser le port série sur la RPi3, soit utiliser les UART. &lt;br /&gt;
&lt;br /&gt;
Nous avons réaliser qu'il n'était pas aussi simple d'utiliser le port serie USB de la Raspberry Pi 3, en effet le SoC est un BCM2837 . &lt;br /&gt;
De plus nous ne pouvons pas utiliser le même port pour l'alimentation et la connexion. &lt;br /&gt;
&lt;br /&gt;
Il nous faut alors trouver une alternative ou une solution à ce problème.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 5&amp;lt;/span&amp;gt;==&lt;br /&gt;
 &lt;br /&gt;
===Programmation: Réflexion définitives prototypes filaire ===&lt;br /&gt;
&lt;br /&gt;
La semaine dernière, nous avons rencontré une difficulté liée aux ports séries UART. &lt;br /&gt;
Une des solutions à cette difficulté serait d'utiliser une RPi ZERO W à défaut d'une RPi 3. On pourrait alors avoir un port d'alimentation avec connexion USB mais également retrouver la connexion Bluetooth dont nous avons besoin.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous avons continué la réalisation du prototype filaire par l'avancé du code SPI ainsi que les recherches concernant le protocole PS4. &lt;br /&gt;
&lt;br /&gt;
La Raspberry Pi zero W peut également être utile pour la connexion entre la PS4 et les différents modules en jouant le rôle d'intermédiaire. Nous avons alors commandé une Rpi zero W pour notre projet. &lt;br /&gt;
En attendant la réception de la commande, nous nous sommes penché sur les recherches pour les programmes et la configuration nécessaire à l'utilisation de la RPi zero W.&lt;br /&gt;
&lt;br /&gt;
===Electronique===&lt;br /&gt;
&lt;br /&gt;
[[Fichier: bouton_c1.jpg|100px|thumb|left|PCB bouton]]&lt;br /&gt;
[[Fichier: arduinobb.jpg|200px|thumb|right|atmega328p-pu branchement test]]&lt;br /&gt;
&lt;br /&gt;
Du coté électronique, nous avons réalisé sur fritzing certaines cartes électroniques. Les Arduino Uno servant actuellement de test, seront remplacées par des PCB atmega328p-pu standalone avec des broches permettant les branchements nécessaires SPI ou encore aux modules &amp;quot;boutons/joystick&amp;quot;. Pour les boutons, nous avons également réalisé un pcb afin de faciliter les branchements.  &lt;br /&gt;
&lt;br /&gt;
Il nous faut alors également une 3eme carte qui nous sera nécessaire pour la réalisation du prototype sans fil. Dans notre liste de matériel, nous avons des composants nrf52810 bluetooth, ceci doivent être soudé avec les capacités de protection mais également des broches de communication. Nous avons alors commencé cette carte électronique sur Altium avec le fichier  projet PCB du distributeur à modifier.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: Arduino_c1.jpg|100px|thumb|center|PCB atmega328p-pu]]&lt;br /&gt;
&lt;br /&gt;
=== Construction 3D ===&lt;br /&gt;
&lt;br /&gt;
Enfin, nous avons commencé à réaliser des boîtiers 3D pour certains modules. Par exemple, comme nous l'avions vu précédemment, un des joysticks servira de bouton-gâchette en utilisant un seul de ses axes. Il nous faut alors réaliser un boitier qui bloque l'un des axes, mais également une tige qui nous permettra de pousser le joystick de manière simplifiée.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 6&amp;lt;/span&amp;gt;==&lt;br /&gt;
 &lt;br /&gt;
===Programmation: configuration RPi Zero W ===&lt;br /&gt;
&lt;br /&gt;
Ayant reçu la Raspberry Pi zero W en début de semaine, nous nous sommes concentrés sur la programmation et la configuration de celle-ci.&lt;br /&gt;
Cette partie étant compliquée, elle nous a pris du temps. En effet, il était difficile de connecter la RPi en SSH car il n'est pas possible d'y connecter un clavier directement et on avait besoin de la prise OTG pour &amp;quot;interfacer&amp;quot; la manette.&lt;br /&gt;
&lt;br /&gt;
===Electronique: PCB nrf52810===&lt;br /&gt;
&lt;br /&gt;
Les cartes réalisées en semaine 5 sont validées et en attente de réalisation. &lt;br /&gt;
&lt;br /&gt;
Cette semaine a permis la réalisation et la finalisation de la carte électronique nrf52810. Il nous a fallu recommencé cette carte deux fois. En effet, une fois finie sur Altium nous avons réalisé que les empreintes des CMS sur PCB fourni par le constructeur ne correspondent pas au matériel CMS de l'école. Face à cette inattention de notre part, nous avons décidé de refaire entièrement la carte électronique sur fritzing. Ayant la datasheet et des plans d'inspiration PCB, nous avons pu refaire la carte entièrement. &lt;br /&gt;
Sur celle-ci nous avons ajouté des broches de connexion au besoin, un branchement Jtag et ICSP pour la programmation et la connexion SPI. &lt;br /&gt;
La carte est en attente de validation, puis validation.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: nrf52810_circuit2.jpg||center|400px|PCB carte nrf52810]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Révision matériel ===&lt;br /&gt;
&lt;br /&gt;
Pour la réalisation de nos composants électroniques, il nous a fallu faire une révision des composants disponibles à l'école:&lt;br /&gt;
(les quantités indiquées ci-dessous pourront être augmentée si nécessaire,pour avoir dans l'idéal un module de chaque type de la manette, ici on se concentre sur BOUTON et JOYSTICK)&lt;br /&gt;
&lt;br /&gt;
'''Cartes Arduino:'''&lt;br /&gt;
* 4 capacite 22pF traversantes&lt;br /&gt;
* 2 resistances 10 kOhm traversantes (à récupérer)&lt;br /&gt;
* 2 oscillateurs quartz 16MHz traversante&lt;br /&gt;
* 2 atmega328p-pu et support&lt;br /&gt;
&lt;br /&gt;
'''Cartes nrf52810'''&lt;br /&gt;
* 6 capacités 100nF 0603&lt;br /&gt;
* 6 capacités 12pF 0603&lt;br /&gt;
* 2 capacités 4,7pF 0603&lt;br /&gt;
* 2 capacités 1µF 0603&lt;br /&gt;
* 2 capacités 100pF=0,1nF 0603 (à récupérer)&lt;br /&gt;
* 2 capacités 0,8pF 0603 (commande en cours)&lt;br /&gt;
* 2 inductance 3,9nH 0603 (commande en cours)&lt;br /&gt;
* 2 oscillateur quartz 32 MHz &lt;br /&gt;
&lt;br /&gt;
'''Cartes modules Boutons'''&lt;br /&gt;
* un sachet de broches mâles (qu'on utilisera également pour les autres cartes, à récupérer/acheté) &lt;br /&gt;
&lt;br /&gt;
Nous avons alors mis-à-jour la liste de composant située plus haut, ainsi que celle de la page IMA4 2017/2018 [https://projets-ima.plil.fr/mediawiki/index.php/Projets_IMA4_SC_%26_SA_2017/2018]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 7&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Programmation: connexion wifi RPi Zero W et Bootloader sur Atmega328p-pu ===&lt;br /&gt;
&lt;br /&gt;
Pendant cette semaine, nous avons continué la programmation et la configuration des Raspberry Pi 3 et Zero W afin de les utiliser en connexion Wifi. &lt;br /&gt;
&lt;br /&gt;
Nous avons également continuer les programmes de récupération de données : état des boutons et du joystick. Ces programmes sont appliqué sur l'atmega328p-pu standalone sur la plaque d'essai en attendant que le PCB soit opérationnel.&lt;br /&gt;
Pour pouvoir programmer l'atemega328p-pu comme une arduino UNO, il nous faut suivre plusieurs étapes :&lt;br /&gt;
&lt;br /&gt;
'''1.Flasher le Bootloader'''&lt;br /&gt;
Nous avons 2 Atmega328p-pu neufs, ainsi il nous faut flasher le bootloader sur chacun d'eux afin de pouvoir les utiliser et les programmer sur une breadboard dans un montage minimaliste arduino-standalone. &lt;br /&gt;
Pour cela, on peut utiliser une carte arduino UNO. On vérifie le port et le type de carte sélectionnés dans le menu &amp;gt;Outils. Sur cette carte on téléverse le fichier arduinoISP.ino qui se trouve dans les exemples en étant en progrmamateur AVr ISP mkll (&amp;gt;outils&amp;gt;programmateur) &lt;br /&gt;
Puis on met l'atmega328p-pu qui nous intéresse sur le suppor socket de la carte. On change de nouveau le programmateur pour Arduino as ISP et on fait &amp;gt;tools&amp;gt;burn bootloader, soit &amp;gt;graver la sequence d'initialisation.&lt;br /&gt;
Ces étapes faites, on peut retirer notre microcontroleur et le replacer correctement dans le montage. &lt;br /&gt;
&lt;br /&gt;
'''2.Programmation atmega328 sur breadboard'''&lt;br /&gt;
Une fois l'atmega328p-pu préparé, on peut le programmer. On peut le faire simplement à l'aide de la carte arduino UNO utilisée précédemment.On branche les Tx et Rx en commun ainsi que le reset, le GND et le VCC.&lt;br /&gt;
&lt;br /&gt;
Nous avons réaliser des codes basiques tels que le clignotement d'une led rouge ou encore l'affichage de &amp;quot;hello world&amp;quot; sur le moniteur série pour vérifier la bonne fonctionnalité du montage. Cela fait nous avons pu écrire sous Arduino IDE le code de lecture des états.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: montage_BB_test.jpg||left|200px|programmation modules arduino sur breadboard]]&lt;br /&gt;
&lt;br /&gt;
===Electronique : soudure carte de test modules ===&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons déja vu lors de la réalisation des PCB, si l'on souhaite programmer un atmega328p-pu en bootloader, le montage est simple. Il peut être minimaliste en utilisant une arduino UNO, un atmega328, une breadboard et 3 composants: 1 quartz 16MHZ crystal, 1 résistance 10kOhm et 2 capacitors céramiques de 22pF.&lt;br /&gt;
Durant la semaine 7, nous avons soudé les composants traversants de la carte électronique correspondant à ce montage ainsi que le PCB du bouton.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 8&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Programmation ===&lt;br /&gt;
&lt;br /&gt;
===Electronique : Correction soudure et soudure CMS===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avions souhaité programmer la carte électronique atmega328p-pu. Cependant, nous avons réaliser que nous avions fait une erreur lors de l'envoie du PCB à la production. En effet, celui-ci avait été fait en Top sur le logiciel Fritzing et non en Bottom. Hors nous avions soudé les composants (durant la semaine 7) comme pour un circuit imprimé en bottom, l'atmega328p-pu se retrouve alors inversé par rapport aux pistes. &lt;br /&gt;
Comme solution, nous avons choisi de souder un deuxième support pour l'atmega328 de l'autre coté de la carte avant de la refaire au propre. En effet, avant de la refaire il nous faut vérifier si la carte est bien programmable. &lt;br /&gt;
Une fois cela fait nous avions pu programmer la carte mais, nous avions également réalisé la pin 2 de l'atmega328 était prise par le bouton poussoir. Or, nous avons besoin des pin 2 et 3 pour le RX et TX permettant la programmation de l'atmega à partir d'une arduino, les pistes branchement RX-TX n'ont également pas été prévus pour le téléversement des programmes sur la carte. Il nous faut alors couper une piste et souder des câbles pour utiliser toutes les pistes souhaitées. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: correction_proto_PCB.jpg||right|300px|PCB arduino correction]]&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons également souhaité souder les CMS et le composant bluetooth nrf52810 sur la carte imprimé et reçu lors de la semaine 7. Pour cela, nous avons convenu de travailler dans la C202 durant la séance du mercredi. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: PCB_nrf52810.jpg||left|400px|carte electroniques imprimées]]&lt;br /&gt;
&lt;br /&gt;
====Comment souder des CMS ?====&lt;br /&gt;
&lt;br /&gt;
les CMS sont des composants montés en surface c'est à dire qu'ils sont montés du même côté que les pistes cuivrées (à l'opposé des composants traversants) et sont de petite tailles souvent de l'ordre du millimètre. La taille est déterminée par 4 chiffres : les 2 premiers pour la longueur et les 2 derniers pour la largeur. On a du 1206,0805,0603 ou encore 0402. Il est même possible de trouver plus petit. A l'école nous utilisons souvent du 0603, c'est le cas de nos composants.&lt;br /&gt;
Pour souder des CMS 0603, il nous faut utiliser une autre méthode qui n'est pas le fer à souder :&lt;br /&gt;
# Préparer la veille la pâte à braser la veille (dans une seringue)&lt;br /&gt;
# Gommer la carte pour éviter l'oxydation (attention à ne pas retirer les miettes de gomme en soufflant dessus) &lt;br /&gt;
# Appliquer avec la seringue la pâte sur les empreintes et piste souhaitées. Pour les endroits difficile à atteindre ou avec 2 pistes proches les unes des autres, il est possible de mettre la même goutte de pâte sur les 2 pistes. Cela de causera pas de court-circuit par la suite. En effet, la pâte est composée d’alliage qui sous la chaleur va se fluidifier et se coller uniquement aux pistes métallique. Le reste fondera sous la chaleur du four.&lt;br /&gt;
# Appliquer les CMS sur la pâte au fur et à mesure (attention ! ne jamais toucher les CMS avec les doigts, tjrs utiliser une pince)&lt;br /&gt;
# Mettre au four&lt;br /&gt;
&lt;br /&gt;
====Bilan soudure nrf52810====&lt;br /&gt;
&lt;br /&gt;
Cependant, une fois le matériel nécessaire préparé, et la pâte mise sur les pistes souhaitées, au moment de déposer le composant, nous avons réalisé que celui-ci était beaucoup plus petit que l'empreinte sur le PCB. Il s'agit d'un composant boitier QFN48. Fritzing ne proposant au plus proche des boitiers QFN24 ou LQFP48, celui-ci a basculé automatiquement pour un boitier LQFN48, de dimension plus grande. Face à ce manque de vigilance, nous avions cependant commencer par le nrf52810 (composant concerné) évitant ainsi de gaspiller d'autres CMS. &lt;br /&gt;
Nous avons souhaité refaire la carte sous Altium à partir des fichiers fournis par le concepteur (chose que nous avons commencé à faire aux alentours de la semaine 5) &lt;br /&gt;
Après la réalisation du schématic, et de la modification des empreintes de capacités, inductances et autres composants de 0402 à 0603. Notre matériel ne permettant que des empreintes 0603.&lt;br /&gt;
 &lt;br /&gt;
Lors du routage, une erreur de chevauchement des pistes est notifiée par Altium au niveau du nrf52810. Celles-ci ne présentent pas d'angles et sont déjà de taille 8mil, il nous faut alors passer les pistes en 6mil. Mais 8mil est la taille minimale pour la production à Polytech, nous avons regardé pour envoyer les cartes à faire ailleurs mais le 6mil n'est pas beaucoup conseillé. De plus, il n'est peut-être pas judicieux de continuer avec le composant microcontrôleur-bluetooth Nrf52810 qui prend du temps, donc la carte est difficilement réalisable et peut-être très long à programmer. &lt;br /&gt;
&lt;br /&gt;
Ainsi en cette fin de semaine, nous avons décider face à l'avancer du projet de laisser les nrf52810 de coté et de les remplacer par des modules sans fils plus simples d'utilisation et complets. Ainsi nous aurions plus de chance d'avoir une connexion sans fils entre les modules. Nous pourrions par exemples utiliser des Xbee, des modules Rf...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 9&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation: PS4 et 1er Test SPI sur atmega328p====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
Une carte PCB arduino fonctionnant, nous pouvons la programme pour simuler un module. Celle-ci a été designée afin de s'adapter au module que l'on souhaite. Il suffit de brancher le bouton, le joystick ou autre élèment de manette souhaité.&lt;br /&gt;
Cette semaine ci, nous avons alors configurer la partie communication SPI pour l'arduino.&lt;br /&gt;
&lt;br /&gt;
'''Que voulons-nous faire avec les atmegas ?''' &lt;br /&gt;
Les cartes électroniques atmega328p vont nous permettre de recevoir les requêtes SPI envoyées par la raspberry pi et d'y répondre. La Raspberry enverra un message, par exemple &amp;quot;1&amp;quot;, et l'Arduino lira alors l'état du module qui lui est connecté. Une fois l'état récupéré elle le renvoie à la raspberry pi.&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons programmé l'atmega afin qu'il soit en esclave, qu'il reçoive un de la RPi &amp;quot;1&amp;quot; et retourne une valeur sauvegardé &amp;quot;int envoi&amp;quot;. Nous avons également commencé les tests pour la lecture de l'état d'un bouton (d'après les tests réalisés les semaines précédentes).&lt;br /&gt;
&lt;br /&gt;
'''Code'''&lt;br /&gt;
Comme nous l'avons vu précedement lors de nos recherches (semaines 1 à 4) : &lt;br /&gt;
La communication SPI nécessite l'utilisation des pins: &lt;br /&gt;
&lt;br /&gt;
MOSI -&amp;gt; GPIO11 //PB3  //master OUT to the slave IN&lt;br /&gt;
MISO -&amp;gt; GPIO12 //PB4 //slave OUT to the master IN&lt;br /&gt;
SCLK -&amp;gt; GPIO13 //PB5 //serial clock&lt;br /&gt;
SS -&amp;gt; GPIO10   //PB2  //slave select&lt;br /&gt;
&lt;br /&gt;
Il faut également paramétrer l'atmega328p en Slave. On note que dans un premier temps, le programme sera codé avec l'arduino IDE (fichiers .ino). Une fois l'ensemble SPI RaspberryPi-Arduino fonctionnant, on remplacera ces codes par du langage C ou C++.&lt;br /&gt;
&lt;br /&gt;
Pour faire la connexion SPI sur l'atmega328p,  on utilise la librairie arduino SPI.h, on a alors directement les fonctions nécessaires intervenant sur les registres souhaités : SPCR (spi control register), SPSR (spi status register) et SPDR (spi data register). &lt;br /&gt;
 &lt;br /&gt;
  #include &amp;lt;SPI.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il est important d'initialise d'abord le setup et on active le port série pour pourvoir utiliser le moniteur série. (Cela servira à verifier la valeur envoyée par la RPi) &lt;br /&gt;
&lt;br /&gt;
 void setup (void)&lt;br /&gt;
 {&lt;br /&gt;
   Serial.begin (9600);  &lt;br /&gt;
   pinMode(MISO, OUTPUT);  //configuration en esclave *master in slave out*&lt;br /&gt;
   pinMode(buttonPin,INPUT);  //config pin bouton&lt;br /&gt;
   // turn on SPI in slave mode&lt;br /&gt;
   SPCR |= _BV(SPE);&lt;br /&gt;
   // preparation interruptions&lt;br /&gt;
   pos = 0;   // buffer empty&lt;br /&gt;
   process_it = false;&lt;br /&gt;
   // activation interruptions&lt;br /&gt;
   SPI.attachInterrupt();&lt;br /&gt;
 }  &lt;br /&gt;
 &lt;br /&gt;
On oublie pas de déclarer les interruptions afin de bien lire la requête reçue. &lt;br /&gt;
 &lt;br /&gt;
// SPI interrupt routine&lt;br /&gt;
ISR (SPI_STC_vect)&lt;br /&gt;
{&lt;br /&gt;
  byte c = SPDR;  // grab byte from SPI Data Register&lt;br /&gt;
  // add to buffer if room&lt;br /&gt;
  if (pos &amp;lt; sizeof buf)&lt;br /&gt;
    {&lt;br /&gt;
    buf [pos++] = c;&lt;br /&gt;
    // example: newline means time to process buffer&lt;br /&gt;
    if (c == '\n')&lt;br /&gt;
      process_it = true;&lt;br /&gt;
    }  // end of room available&lt;br /&gt;
}  // end of interrupt routine SPI_STC_vect&lt;br /&gt;
&lt;br /&gt;
Dans la loop main, on traite la requête et on utilise '''SPI.transfer(envoi);''' pour transferer à la RPi les données souhaitées. &lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons également commencé des programmes de test SPI pour la RPi. Il s'agit principalement de programmes de tests tout faits permettant de vérifier la connexion entre cette dernière et l'arduino. Par exemple, la RPI envoie &amp;quot;bonjour&amp;quot; et l'arduino lui retourne ce qu'elle reçoit, soit &amp;quot;bonjour&amp;quot;. Sans succés alors. &lt;br /&gt;
&lt;br /&gt;
====Electronique : Fritzing révision====&lt;br /&gt;
&lt;br /&gt;
Lors de la semaine, le modèle PCB de la carte arduino a été réalisé de nouveau sous fritzing avec les broches et connections manquantes. Nous avons également revu la configuration du bouton reset  et ajouté une led d'état de l'alimentation. Nous avons ainsi envoyé deux cartes identiques à la réalisation.&lt;br /&gt;
La carte déjà soudée lors des derniers jours fonctionnant, elle nous sert de prototype de programmation. Nous pouvons ainsi avancer à la fois sur la programmation des modules mais aussi sur leur réalisation. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 10&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation : PS4 et SPI sur RPi====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Raspberry PI et SPI'''&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, pour la partie Atmega328p-Modules, nous nous sommes concentrés sur la programmation de la communication SPI avec la raspberry pi. Cette semaine a permis une étude plus approfondit sur le fonctionnement pour la RPi. &lt;br /&gt;
&lt;br /&gt;
On rappelle, comme vu des semaines 1 à 4, pour la RPI3 (tout comme la RPi Zero W) utilise les broches : SCLK (23), MISO(21), MOSI (19) et SPI CS0 (24), SPI CS1 (26). &lt;br /&gt;
On la programme en Master. A l'aide des fichiers tests d'inspiration, on pourra directement programmer la RPi en C. Lors de la réalisation du code, il y a 3 étapes : l'initialisation/parametrage en SPI pour être maître, l'envoie de la requête puis la réception de données en retour. &lt;br /&gt;
&lt;br /&gt;
Programmant en C, il ne faut pas oublier les librairies suivantes :&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;getopt.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;sys/ioctl.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/types.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/spi/spidev.h&amp;gt;   //pour SPI&lt;br /&gt;
&lt;br /&gt;
On va déclarer des variables globales permettant le paramétrage :&lt;br /&gt;
&lt;br /&gt;
 static const char *device = &amp;quot;/dev/spidev0.0&amp;quot;;  //si on veut CS0 pour atteindre notre SS&lt;br /&gt;
 static uint8_t mode;       //mode est par défaut à 0&lt;br /&gt;
 static uint8_t bits = 8;    //bits par mot échangé&lt;br /&gt;
 static uint32_t speed = 500000;  &lt;br /&gt;
 static uint16_t delay;&lt;br /&gt;
&lt;br /&gt;
Dans notre main, on ouvre le port (la connexion) au device souhaité,  on vérifie les paramètres (registres, connexions...) puis exécute la fonction transfer(fd). transfer(fd) transmet la requête et s'occupe de la réception. &lt;br /&gt;
&lt;br /&gt;
 fd = open(device, O_RDWR);&lt;br /&gt;
 transfer(fd);&lt;br /&gt;
 close(fd);&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 11&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation: PS4, SSH et tests SPI (RPi3&amp;amp;Atemga328p)====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Raspberry PI, Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
Afin de facilité la programmation en utilisant Ethernet, nous avons installer et configuré la RPi pour l'utiliser en SSH depuis les ordinateurs de la E306. En effet, SSH permet de se connecter à distance sur une machine en utilisant un compte utilisateur de la dite machine. En mettant ssh, on pourra directement agir sur les fichiers de la raspberry depuis un terminal de notre PC. Pour cela, on a d'abord vérifier l'adresse IP de notre raspberry pi : 172.26.145.106 avec un écran mais on peut aussi utiliser les commandes ip a et ifconfig. Puis activer le ssh sur la raspberry pi. &lt;br /&gt;
On modifie alors le fichier config.txt mais également etc/network/interfaces pour configurer la bonne interface Ethernet sur la raspberry pi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: configSSH_raspi.png||left|300px|config ssh ethernet]]&lt;br /&gt;
&lt;br /&gt;
Il nous suffit alors de taper la commande : ssh pi@172.26.145.106  pour accéder à notre RPi. &lt;br /&gt;
&lt;br /&gt;
Nous avons continué à réaliser la communication SPI avec des tests entre une arduino UNO et la RPI3. Nous avons commencé par des tests simples inspirés des études de deux semaines précédentes et modulés selon notre utilité.  &lt;br /&gt;
Nous arrivons alors à lire l'état envoyer &amp;quot;bonjour&amp;quot; et recevoir &amp;quot;ça va&amp;quot; ou encore &amp;quot;1&amp;quot; et recevoir &amp;quot;3&amp;quot;. Il faut noter que le SPI échange des trames, la RPI reçoit alors des hexadécimaux. &lt;br /&gt;
Nous avons alors continué pour recevoir l'état du bouton ou du joystick lors de l'envoie de &amp;quot;1&amp;quot; sur l'Arduino328p. La semaine prochaine nous testerons ces même codes fonctionnels sur les cartes atmeg327p. &lt;br /&gt;
&lt;br /&gt;
A la fin de cette semaine, nous avons alors des codes Arduino-SPI (.ino) et des codes Raspberry-SPI (.c) permettant l'échange de données. Le but est maintenant de l'adapter aux cartes imprimées et de le rendre pleinement fonctionnel pour plusieurs cartes à la fois, puis ajouter une boucle de vérification en continue jusqu'à une deuxième requête de la RPi.&lt;br /&gt;
&lt;br /&gt;
====Electronique: réalisation au propres des PCB modules====&lt;br /&gt;
&lt;br /&gt;
Suite à une nouvelle erreur de réalisation cartes électronique, nous avons  refait et renvoyé à nouveau les cartes imprimées atmega328p.&lt;br /&gt;
Nous les souhaitons au propre pour une version finale. Une fois celle-ci imprimées nous pourrons en avoir 3 , un pour chaque module. Les cartes étaient bien imprimées en bottom mais lors du passage des traversants de bottom à top, le logiciel ne les a pas fait miroiter. Par manque d'attention nous avons alors envoyé les fichiers gerber pour des cartes ayant les composants du même coté que la couche de cuivre. &lt;br /&gt;
Les cartes électroniques actuelles sont alors correctes et fonctionnelles mais difficile à souder. Pour eviter les erreurs et continuer sur des prototypes de carte nous préférons attendre en nous concentrant sur la programmation PSI de la Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 12&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Raspberry PI, Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
-  réflexion: penser à faire boucler sur l'arduino une fois la requête reçu, ça veut dire que la manette est ON et donc vérifier continuellement les modules sur chaque atmega.&lt;br /&gt;
- SPI raspberry pi - arduino recuperation état du bouton avec les cartes modules  (/!\ récuperation à faire dans une variable) &lt;br /&gt;
&lt;br /&gt;
-SSH perso &lt;br /&gt;
adresse Rasppi: 192.168.137.10&lt;br /&gt;
&lt;br /&gt;
====Electronique: Finalisation soudure Modules====&lt;br /&gt;
&lt;br /&gt;
Soudure au propre et finale d'une carte atmega328p et donc envoie pour la réalisation de 2 autres cartes similaires et récupération de matériel&lt;br /&gt;
Soudure des 2 autres cartes, + tests sur les états = fonctionnelles.&lt;br /&gt;
On a donc bien 3 cartes pour les 3 modules de types différents (1 bouton, 1 joystick, 1 gachette)&lt;br /&gt;
PCB pour les 2 joysticks (qui serviront de thumbstick et gachette)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 13 et plus&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
====Electronique====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
(à mettre rapport + git + drive)&lt;br /&gt;
&lt;br /&gt;
=Datasheets=&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=55388</id>
		<title>IMA4 2017/2018 P35</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=55388"/>
				<updated>2018-05-05T18:47:13Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : /* Programmation: Réflexion définitives prototypes filaire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Présentation générale: Manette modulable&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Description&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Tout le monde joue aux jeux vidéo cependant, les manettes ne sont pas adaptées aux personnes ayant un handicap pouvant toucher les bras ou les mains.&lt;br /&gt;
C’est le cas, de plusieurs patients dans les centres de soins et de rééducation.&lt;br /&gt;
&lt;br /&gt;
Pour ce projet IMA4, nous travaillerons avec le centre SSR (soin de suite et de réadaptation) Marc Sautelet de Villeneuve d’Ascq.&lt;br /&gt;
Un adolescent, patient de Marc Sautelet, est passionné par les jeux vidéo. En effet, ayant perdu la motricité d’une partie de son corps, il ne peut pas jouer à deux mains. Pour cela, il bloque la manette entre son épaule et son coude, usant de la mâchoire et des doigts pour contrôler les&lt;br /&gt;
joysticks et les boutons. Cet exercice peut s’avérer fatiguant et pénible.&lt;br /&gt;
&lt;br /&gt;
Ainsi, nous chercherons à concevoir une manette PS4 adaptée au handicap de l’adolescent. &lt;br /&gt;
Cette manette devra aussi être adaptée pour d’autres patients présentant également des handicaps moteurs. Ainsi nous prendrons pour cibles: tous les patients du centre voulant jouer; et non pas que les enfants et adolescents.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Membre du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Transley Gracias et Camille Saad&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Cible&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Patient présentant un handicap moteur&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Période du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
janvier 2018 - mai 2018&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Partenaire/Client&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Centre SSR Marc Sautelet à Villeneuve d'Ascq&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Objectifs&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ce projet a pour objectif de créer un prototype de manette qui puisse interagir avec la console PS4 et dont le paramétrage se fait à l’aide d’une application mobile et/ou web. Cette manette devra suivre les demandes du patient ainsi que des aides-soignantes du centre, dans la mesure du possible.&lt;br /&gt;
&lt;br /&gt;
Plus précisément, pour le premier prototype, nous mettrons en œuvre l'utilisation de quelques boutons spécifiques: &lt;br /&gt;
&lt;br /&gt;
* Un joystick (type L/R)&lt;br /&gt;
* Quelques boutons poussoirs (type Croix/Triangle/Carré/Rond/R1/L1/Start/...)&lt;br /&gt;
* Des boutons gâchettes progressives (type L2/R2).&lt;br /&gt;
&lt;br /&gt;
Le but serait donc dans un premier temps de rendre fonctionnel un bouton de chaque type, puis de les multiplier une fois cela fait. Tous ces boutons réunis constituent une manette fonctionnelle.Ainsi, la manette sera ajustable, c’est à dire qu’elle devra s’adapter aux différents handicaps moteurs possibles.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Analyse du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Positionnement par rapport à l'existant&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre prototype aura une présentation unique par rapport à l’existant. En effet, les concurrents et produits existants ciblent pour la majorité un seul handicap. Cela&lt;br /&gt;
engendre une solution fermée à beaucoup de patients. Notre projet propose une mobilité des mouvements et également un choix large dans la composition et le&lt;br /&gt;
design de notre manette.&lt;br /&gt;
Le patient n’est pas retreint à jouer à une seule main, à utiliser beaucoup de force...Il y a moins de technique dans la manipulation et on ne joue pas avec une&lt;br /&gt;
manette adaptée uniquement pour un droitier ou un gaucher. Cependant, cela nous limitera peut-être dans le choix possible des types de jeux. Tout comme les autres&lt;br /&gt;
manettes adapté, l’utilisateur nécessitera un peu d’entrainement.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du premier concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Jouer aux jeux vidéo à une main n’est pas une idée d’aujourd’hui. En 1990, Nintendo propose le Power Glove. Mais il tombe très rapidement aux oubliettes suite à des problèmes techniques.&lt;br /&gt;
&lt;br /&gt;
Un autre gant a fait son apparition quelques années plus tard. Celui-ci, plus technique, il faut office de manette Play Station: le Reality Quest Power Glove.Cette idée de manette-gant, permet de jouer à la PS avec une seule main, elle a était conçue et présentée pour les E3, un salon d’exposition de gaming.Le gant est conçu pour contrôler l’équivalent des 14 boutons et 2 joysticks à l’aide d’une seule main. La « manette » est fixée dans la pomme de la main. L’utilisateur contrôle les mouvements verticaux et horizontaux en pivotant le poignet, et utilisent les 4 boutons d’action principaux et L1/R1 avec les doigts. Les autres boutons sont accessibles par un seul bouton rond contrôlé par le pouce.&lt;br /&gt;
La manette est adaptée pour beaucoup de jeux vidéo, dont les plus simples sont les jeux de voitures et de combats (arcade).&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec ce gant&lt;br /&gt;
*Design obligatoirement droitier&lt;br /&gt;
*Les boutons de contrôle sont peu sensibles et peuvent nécessiter de la force&lt;br /&gt;
*Design compliqué et nécessitant beaucoup d’entrainement.&lt;br /&gt;
&lt;br /&gt;
;Lien : https://www.youtube.com/watch?v=qV0SxSJDCYg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du second concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ben Heck, de son vrai nom Benjamin J.Heckendorn, est un concepteur de mods de consoles (mods pour modification, soit « manettes modifiées ») et une star&lt;br /&gt;
du net grâce à ses vidéos tutoriels.Il propose alors énormément de produits adaptés ou dérivés en guise de manettes.&lt;br /&gt;
Parmi les mods qu’il a réalisé, il a modifié une manette de PS4 afin de la rendre accessible à une personne ne pouvant jouer qu’à une main. Pour cela, il a déplacé les boutons en respectant l’ergonomie de la main valide et modifie les connexions. Il peut lui arriver de rajouter des boutons pour en remplacer un autre. Il réalise également le même système avec la Xbox. Sur la photo ci-dessous, il a adapté la manette pour un droitier.&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec cette ma&lt;br /&gt;
*Design obligatoirement droitier ou gaucher, une modification = une manette= une personne&lt;br /&gt;
*Besoin obligé du pouce et de l’index, même si avantage : 3 doigts nécessaire.&lt;br /&gt;
&lt;br /&gt;
;Lien :: https://www.youtube.com/watch?v=LieHIscadjk&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Scénario d'usage du produit ou du concept envisagé&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
La technologie est ,aujourd’hui, omniprésente dans notre vie. Les consoles de jeux ont envahies les maisons avec plus de 7 personnes sur 10 jouant aux jeux vidéos sur consoles en France (chiffre de l’Express). 0,18% des français sont handicapés cela représente 12 millions de français. Dans ce chiffre, 13,4% des personnes ont un handicap moteur. En 2017, les grands groupes comme Sony ou Microsoft avec respectivement PlayStation et Xbox ne permettent pas à tout le monde de jouer avec une manette. Les manettes sont prévues pour des personnes ayant leurs membres valides, plus précisément les mains et les bras.&lt;br /&gt;
&lt;br /&gt;
Après un accident de voiture, un jeune garçon a perdu la motricité d’un côté du corps. Passionné de jeux vidéo, il se retrouve avec des difficultés à jouer sur sa console PS4. Ingénieux, il utilise la manette en la coinçant entre son épaule et le creux du cou. Usant de la mâchoire et de sa main valide pour contrôler les joysticks et les boutons. L'exercice étant inconfortable et fatiguant il eu l’idée de proposer à des futurs ingénieurs de lui proposer une manette adaptée à son handicap. &lt;br /&gt;
&lt;br /&gt;
Les deux pré-ingénieurs ,avec leur tuteur, ont une idée révolutionnaire : La manette modulable ! Elle permettrait au jeune garçon, ainsi que d’autres joueurs, de pouvoir continuer de s’amuser ou même de commencer à jouer au jeux sur console. &lt;br /&gt;
Cette manette aidera fortement dans les centre de rééducation pour faire passer le temps et donner du plaisir à des personnes qui ne peuvent plus s’amuser avec leur console traditionnelle. Elle pourra aussi ouvrir de nouvelles possibilités pour certaines personnes qui n’auraient jamais essayé jusqu'à présent.   &lt;br /&gt;
Comme son nom l'indique, elle sera modulaire et s'adaptera à différents handicaps. Accompagnée de son application d’initialisation, elle sera accessible aussi bien aux enfants, patients, parents et aides soignantes.&lt;br /&gt;
&lt;br /&gt;
Quelques mois plus tard...Le jeune patient fan de Need For Speed, peut maintenant piloter sa voiture comme un vrai professionnel grâce à l'un des joysticks qu'il utilisera avec sa main valide et il pourra accélérer à des vitesses folles à l'aide de boutons poussoirs au niveau de son pied valide et gagner la partie. Son ami venu lui rendre visite, pourra en lieu et place des aides soignantes configurer à l'aide de la tablette (portable) la manette du patient. &lt;br /&gt;
Si le patient change de jeu pour Tekken et que la configuration des modules ne lui convient plus, il peut interchanger les éléments de la manette selon son envie et son confort. Ainsi il peut faire sauter son personnage, il utilisera un module bouton supplémentaire, qu'il actionnera avec le poing.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Fonctionnement&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Suite à une analyse fonctionnelle et à la formulation de notre projet, nous avons pu définir le fonctionnement de notre système. Notre produit, la manette, doit être accessible d’après nos objectifs à différents types de handicaps moteurs. Ainsi, l’idéal serait de concevoir une manette modulable afin qu’elle puisse s’adapter à toutes les situations. Ce n’est plus au patient de s’adapter à la manette mais à la manette de s’adapter au patient.&lt;br /&gt;
Cela signifie que la manette sera, dans la limite du possible et de la sensibilité du corps du patient, composée de plusieurs parties dites « modules » comportant un ou plusieurs actionneurs (boutons, joysticks, gâchettes...). Ces modules seront déplaçables afin d’être utilisé avec différents membres du corps : un doigt, une main,&lt;br /&gt;
une jambe ou même un pied. Il suffira de les connectés entre eux suivant l’organisation souhaitée, le Gameplay du jeu ou en fonction du handicap. Le tout sera relié à une application.&lt;br /&gt;
L’application sera alors mise en place pour connecter les différentes parties du point de vue software pour prérégler la manette en fonction du patient. Il pourra alors choisir les boutons en fonction du jeu, de ses mouvements mais aussi choisir la sensibilité.&lt;br /&gt;
&lt;br /&gt;
L’application et les modules devront être intuitifs et faciles d’utilisation. De cette manière des utilisateurs non avertis dans le domaine informatique ou jeunes pourront eux-mêmes gérer les connexions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Réponse à la question difficile&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
'''Question : Comment interconnecter les différents modules de la manette ?'''&lt;br /&gt;
&lt;br /&gt;
Il nous faut pour ce projet interconnecter les modules modélisant la manette qui seront connectés à la consoles PS4 via une Raspberry Pi 3.&lt;br /&gt;
Le choix de la Raspberry Pi 3 nous permet d'utiliser son module Bluetooth pour communiquer avec la PS4, ce choix est plus adaptée au projet que du filaire.&lt;br /&gt;
Concernant l'interconnexion des modules, nous travaillerons en deux étapes &amp;quot;preuves concept&amp;quot; : filaire et sans fils (Bluetooth).&lt;br /&gt;
&lt;br /&gt;
'''Objectif 1 : Preuve concept filaire'''&lt;br /&gt;
&lt;br /&gt;
Dans cette première partie de projet, nous souhaitons avoir une 1ère preuve de prototype rapidement. Nous nous concentrerons alors sur la communication entre la RPi3 et la PS4 ainsi que sur la conception des modules. Pour les modules, nous réaliserons des cartes électronique pour chaque module avec un micro-contrôleur. La communication filaire nous permettra d'interconnecter les modules à la RPi3 avec un bus SPI.&lt;br /&gt;
&lt;br /&gt;
'''Objectif 2: preuve concept sans fils'''&lt;br /&gt;
&lt;br /&gt;
Une deuxième étape du projet est la réalisation de la solution idéale sans fils. Celle-ci pourra commencer à être développée petit à petit en parallèle avec l'objectif 1. Le but ici, est d'interconnecter les modules en Bluetooth. Nous avons choisi le Bluetooth pour garder une connexion commune sur toute la chaîne. &lt;br /&gt;
Nous rajouterons alors un module bluetooth à chaque module de la manette. &lt;br /&gt;
&lt;br /&gt;
'''Objectif 3: possibilité d'adapter les boutons (capuchon en 3D)'''&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Préparation du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Cahier des charges&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
''Chef de projet:'' Alexandre Boé  &amp;lt;br&amp;gt;&lt;br /&gt;
''Responsables:'' Xavier Redon, Thomas Vantroys &amp;lt;br&amp;gt;&lt;br /&gt;
''Partenariat:'' Marc Sautelet (non etablie) &amp;lt;br&amp;gt;&lt;br /&gt;
''Elèves-ingénieurs:'' Camille Saâd, Transley Gracias &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Sujet :''' Manette modulable pour personne à déficience moteur compatible PlayStation 4 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objectifs principal (1er POC) : ===&lt;br /&gt;
Faire transmettre des informations issus des actionneurs (ex:boutons poussoires) via des arduinos jusqu’à la Raspberry Pi 3 en SPI.&amp;lt;br&amp;gt;&lt;br /&gt;
Envoyer les données reçues vers la PS4 en USB  &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objectifs secondaire (2e POC):===&lt;br /&gt;
Créer des modules avec un microcontrôleur et une puce bluetooth pour permettre une meilleurs flexibilité (c-àd pouvoirs avoir une meilleure ergonomie et une connexion sans fil) &amp;lt;br&amp;gt;&lt;br /&gt;
Connecter la Raspberry Pi 3 en Bluetooth à la PS4 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier: beteacorne.jpg||middle|600px|Bete a corne manette]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Choix techniques : matériel et logiciel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Liste de matériel :===&lt;br /&gt;
&lt;br /&gt;
'''Modules boutons/joysticks/gachettes'''&lt;br /&gt;
&lt;br /&gt;
3  Push buttons :&amp;lt;br&amp;gt;&lt;br /&gt;
- O X Y Carré R3 L3 &amp;lt;br&amp;gt;&lt;br /&gt;
- Guide PS &amp;lt;br&amp;gt;&lt;br /&gt;
- start/back &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 0,45€/unité TTC [https://www.gotronic.fr/art-bp-miniature-krs1273-16976.htm] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1  Thumbstick original: &amp;lt;br&amp;gt;&lt;br /&gt;
Joystick analogique 4 directions --&amp;gt; 4,25€/unité TTC [https://www.gotronic.fr/art-joystick-analogique-4-directions-19063.htm] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1 buttons trigger L1 L2 =&amp;gt; 1x Thumbstick original''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Cartes Atmega328p /connexion spi/'''&lt;br /&gt;
&lt;br /&gt;
3   Arduino UNO &amp;lt;br&amp;gt;&lt;br /&gt;
1   Arduino UNO atmega328p retirable &amp;lt;br&amp;gt;&lt;br /&gt;
4   capacite 22pF traversantes &amp;lt;br&amp;gt;&lt;br /&gt;
2   resistances 10 kOhm traversantes (à récupérer) &amp;lt;br&amp;gt;&lt;br /&gt;
2   oscillateurs quartz 16MHz traversante &amp;lt;br&amp;gt;&lt;br /&gt;
2   atmega328p-pu et support &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cartes module bluetooth nrf52810 '''&lt;br /&gt;
&lt;br /&gt;
6   capacités 100nF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
6   capacités 12pF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 4,7pF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 1µF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 100pF=0,1nF 0603 (à récupérer) &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 0,8pF 0603 (a acheter, commande en cours) &amp;lt;br&amp;gt;&lt;br /&gt;
2   inductance 3,9nH 0603 (a acheter, commande en cours) &amp;lt;br&amp;gt;&lt;br /&gt;
2   oscillateur quartz 32 MHz &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''' Connexions et autres '''&lt;br /&gt;
&lt;br /&gt;
1 Led RGB neopixel [https://www.adafruit.com/product/1734] &amp;lt;br&amp;gt;&lt;br /&gt;
1 Raspberry Pi 3 &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; ~36,23€/unité TTC [https://fr.rs-online.com/web/p/processor-microcontroller-development-kits/8968660/?src=raspberrypi] &amp;lt;br&amp;gt;&lt;br /&gt;
1 Raspberry Pi Zero W (commandée) [https://www.raspberrypi.org/products/raspberry-pi-zero-w/] &amp;lt;br&amp;gt;&lt;br /&gt;
6 Alimentations 5V ou 3,3V &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
par exemple, 12 piles de type CR2016 3V rechargeables ou 24 piles AAA 1,5 V rechargeables  &lt;br /&gt;
5 modules Bluetooth nrf de Nordic : nRF52810-QFAA-R &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 3,17€/unité + frais expédition  [https://www.mouser.fr/productdetail/nordic-semiconductor/nrf52810-qfaa-r?qs=sGAEpiMZZMve4%2FbfQkoj%252bG%2FosjLoe2oghFQwQllMrQ4%3D]&lt;br /&gt;
5 Lignes broches mâles &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logiciels:===&lt;br /&gt;
&lt;br /&gt;
- IDE arduino&lt;br /&gt;
- Altium&lt;br /&gt;
- FreeCAD ou Inkscape&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Liste des tâches à effectuer&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 1 : Gestion du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Définition des cahiers des charges fonctionnel et technique, choix d'orientation...&lt;br /&gt;
* Recherche techniques sur les différentes connexions possibles entre les modules, la RPi 3 et la console PS4&lt;br /&gt;
#Recherche connexion SPI entre les modules et la RPi3&lt;br /&gt;
# Recherche connexion bluetooth entre la RPi3 et la PS4&lt;br /&gt;
# Recherche connexion bluetooth pour les modules&lt;br /&gt;
# Recherche carte avec montage Atmega328P-PU et anticipation module bluetooth&lt;br /&gt;
* Détermination du matériel nécessaire&lt;br /&gt;
* Réflexion sur l'application&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 2: Réalisation du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Partie 1: Preuve concept manette en filaire'''&lt;br /&gt;
&lt;br /&gt;
* Conception de cartes électroniques pour 2 modules (/!\ prévoir modules bluetooth)&lt;br /&gt;
* Réalisation connexion SPI avec 2 modules : programmation des Atmega328p en liaison série. &lt;br /&gt;
* Si tests concluant, ajouter des modules jusqu'à en avoir 5 (1 pour chaque type de boutons) &lt;br /&gt;
* Connexion bluetooth entre la PS4 et la RPi3&lt;br /&gt;
* Réalisation du support des modules avec fixations possibles (imprimante 3D)&lt;br /&gt;
&lt;br /&gt;
'''Partie 2: Preuve concept manette en bluetooth'''&lt;br /&gt;
&lt;br /&gt;
* Ajout des modules bluetooth aux cartes électroniques&lt;br /&gt;
* Connexion bluetooth entre les modules&lt;br /&gt;
&lt;br /&gt;
'''Partie 3: Application Android : paramétrage de la manette'''&lt;br /&gt;
&lt;br /&gt;
* Créer une application sur tablette ou smartphone (Android) afin de configurer la manette aux besoins (inter-connexion des modules et console)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Calendrier prévisionnel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Date'''&amp;lt;/u&amp;gt;&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Tache à réaliser''' &amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
17/01/18-24/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Faire des recherches sur les différentes interconnexions du système : Bluetooth, RPi-Atmega328 (SPI), RPi-PS4&lt;br /&gt;
Continuer liste des taches, matériel, Début recherches + réflexion fixation support des modules&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Recherche technique connexion PS4-RPi3 et connexion SPI RPi3-Module + code&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18-07/03/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Réalisation 1er prototype (+ début prototype 2)&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
07/03/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Seance 7 :  Test prototype filaire&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
07/03/18-09/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Réalisation 2eme prototype + application Android&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
09/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Seance 14 :  Test prototype Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
14/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Video projet&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
15/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Finalisation projet et Rapport&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
16/05/18-17/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Soutenances Projet&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Réalisation du Projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Feuille d'heures &amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Voici le tableau d'heures du binôme:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Heures S11 !! Heures S12 !! Heures S13et+ !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 10&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 20min&lt;br /&gt;
|&lt;br /&gt;
| 15h20&lt;br /&gt;
|-&lt;br /&gt;
| Cherches techniques &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 18&lt;br /&gt;
|-&lt;br /&gt;
| Rédaction du wiki et rapport de projet&lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 30min&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| 30min&lt;br /&gt;
| 30min&lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
| 10h30&lt;br /&gt;
|-&lt;br /&gt;
| Programmation&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 3&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 7&lt;br /&gt;
| 8&lt;br /&gt;
| 6&lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
| 43&lt;br /&gt;
|-&lt;br /&gt;
| Cartes électroniques&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 6&lt;br /&gt;
| 8&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| 31&lt;br /&gt;
|-&lt;br /&gt;
| Application&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| Total Semaine&lt;br /&gt;
| 10&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 7&lt;br /&gt;
| 10h30&lt;br /&gt;
| 13&lt;br /&gt;
| 9&lt;br /&gt;
| 12&lt;br /&gt;
| 9h30&lt;br /&gt;
| 10h30&lt;br /&gt;
| 9&lt;br /&gt;
| 9h20&lt;br /&gt;
| &lt;br /&gt;
| '''117h50'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Prologue&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Avant la réalisation et conception d'un projet, il est important d'analyser celui-ci. Nous avons allons consacré le prologue à l'analyse fonctionnelle de la manette. Nous avons également eu une réflexion sur l'analyse technique, cela nous a permis de réaliser une liste de matériel. Il est important de définir les objectifs ainsi que les besoins afin de ne rien oublier. (Voir ci-dessus Analyse projet) &lt;br /&gt;
Nous avons également organisé notre travail, pour le partage de documents de recherches et la rédaction de compte-rendu final nous avons réalisé un google drive. Par la suite, nous créerons un projet Git. &lt;br /&gt;
&lt;br /&gt;
Durant ce temps, nous avons décidé de réaliser 5 modules. Les modules sont les différents boutons de la manettes qui nous pourrons placer selon nos choix (boutons modulaires) pour notre prototype projet pour chaque type des boutons d'une manette PS4. Ces modules devrons être connectés à la console et interconnectés. Le tout sera lié à une application Android. Suite à quelques recherches et nos analyses, nous avons décidé les points suivants :&lt;br /&gt;
&lt;br /&gt;
- On commencera avec 2 modules et on les multipliera par la suite. &lt;br /&gt;
- Les premiers tests sont réalisés avec des boutons petits pour assurer leur caractéristique &amp;quot;modulaires&amp;quot;, par la suite nous pourrons ajouter des capuchons de taille plus importante (imprimante 3D ou achat)&lt;br /&gt;
- Conception modules : réalisation de carte avec un microcontrôleur atmega328 programmable pour chaque module (anticiper le module Bluetooth) &lt;br /&gt;
- Projet en 2 parties : prototype filaire et prototype Bluetooth&lt;br /&gt;
# Prototype filaire : connexions entre les modules et la RPi3 en SPI, connexion Rpi3-PS4 en Bluetooth, avec l'application en filaire à la RPi3&lt;br /&gt;
# Prototype Bluetooth: connexion Bluetooth entre modules-RPi3-PS4-apllication&lt;br /&gt;
&lt;br /&gt;
[[Fichier: structuremanette.png||center|400px|Concept manette modulable]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 1&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous nous sommes concentrés les recherches afin de définir clairement le cahier des charges technique. Il s'agit des réalisations à mettre en œuvre pour les inter-connexions des éléments de la manette.&lt;br /&gt;
Ainsi, nous avons fait des recherches sur :&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI entre les modules (Atmega328p) et la RPi3===&lt;br /&gt;
&lt;br /&gt;
SPI: Serial périphérique interface BUS&lt;br /&gt;
&lt;br /&gt;
[[Fichier: yWGmW.png||right|200px|Concept manette modulable]]&lt;br /&gt;
Comme indiqué sur l'image ci-dessus, la Raspberry pi 3  peut communiquer en SPI avec ses broches CS0 (24), CS1 (26), SCLK (23), MISO (21), MOSI (19). Celles-ci permettent de communiquer avec un ou plusieurs esclaves (dans notre cas, des Atmega328p) en reliant directement les broches concernées de la RPi3 à celles des composants esclaves.&lt;br /&gt;
Chaque broche CS0 (24) ou CS1 (26) ne peut être connectée qu'à l'entrée SS (aussi appelé CS) d'un seul esclave.&lt;br /&gt;
C'est a dire que chaque CS est lié à un esclave afin de choisir avec lequel la communication est établie à un moment donné, et les MISO sont reliées entre elles en cascade, de même pour les SCLK et les MOSI. On peut noter que le maître impose la fréquence d’horloge et sélectionne l’esclave auquel les données sont envoyées.  8 MHz est le plus rapide supportable a 3,3V&lt;br /&gt;
&lt;br /&gt;
[[Fichier: fonctionnementSPI.png||right|200px|Connexion SPI multi-esclaves]]&lt;br /&gt;
&lt;br /&gt;
Voici un schéma du fonctionnement souhaité : &lt;br /&gt;
&lt;br /&gt;
Comme nous souhaitons avoir 5 modules environ il nous faudra rajouter un composant en plus afin d'augmenter les possibilités de sélection, par exemple des démultiplexeurs.&lt;br /&gt;
Dans un premier temps nous essaierons avec 2 esclaves, puis on augmentera le nombre. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Connexion Bluetooth PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Les recherches portent également sur la connexion entre la manette PS4 et la console. Elles concernent le protocole de communication via Bluetooth&lt;br /&gt;
&lt;br /&gt;
Caracteristique pour la PS4:  Bluetooth®v4.0, Qualcomm Atheros AR3002 Buetooth LE: 2,4-2,5 GHz  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caracteristique de la connexion : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Vitesse de transmission &amp;gt;&amp;gt; 3 Mbit/s   8N1 &lt;br /&gt;
*Relevé tous les 1.3 millisecond (peut-être) &lt;br /&gt;
*Chaque manette à une adresse unique BD_ADDR qui correspond à l’adresse MAC de la carte Réseau&lt;br /&gt;
*Protocole de détection est le SDP basé sur une emission reception PDU&lt;br /&gt;
*L’Attribut ID est representer en TLV Type Length Value &lt;br /&gt;
*Communication HCI ACL Data Packet &lt;br /&gt;
&lt;br /&gt;
===Rélisation des cartes électroniques===&lt;br /&gt;
&lt;br /&gt;
matériel nécessaire pour un PCB : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*breadboard&lt;br /&gt;
*câbles&lt;br /&gt;
*1 x 10k Ohm résistance&lt;br /&gt;
*Quartz 16Mhz clock crystal&lt;br /&gt;
*2 x 22 pF capaciteurs&lt;br /&gt;
*Atmega328P-PU&lt;br /&gt;
&lt;br /&gt;
Ressources: &lt;br /&gt;
[[https://www.arduino.cc/en/Main/Standalone]]&lt;br /&gt;
[[http://www.eprojectszone.com/atmega-328-pu-standalone/]]&lt;br /&gt;
[[https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 2&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la semaine deux et durant la séance, nous avons continué et approfondie nos recherches sur le projet. Nous avons pu ainsi affiner nos taches de réalisation et donc notre cahier des charges.&lt;br /&gt;
&lt;br /&gt;
===Connexion aux modules: SPI et Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Green&amp;quot;&amp;gt; CORRIGER&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
voir https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018#Configuration_du_syst.C3.A8me_embarqu.C3.A9&lt;br /&gt;
&lt;br /&gt;
(sudo apt-get install pi-bluetooth)&lt;br /&gt;
&lt;br /&gt;
''connexion sur la raspberry par ssh:''&lt;br /&gt;
 su&lt;br /&gt;
 update-rc.d ssh enable&lt;br /&gt;
 invoke-rc.d ssh start &lt;br /&gt;
 ssh pi@172.26.79.1XX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''bluetooth''&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
 agent on&lt;br /&gt;
 default-agent&lt;br /&gt;
 scan on&lt;br /&gt;
 pair [device Bluetooth address]  (exemple: pair XX:XX:XX:XX:XX:XX )&lt;br /&gt;
&lt;br /&gt;
''NOUVELLE REFLEXION : Connexion SPI entre les modules (Atmega328p) et la RPi3 --&amp;gt; MODULES BLUETOOTH''&lt;br /&gt;
&lt;br /&gt;
Si multi-esclaves= plusieurs modules : &lt;br /&gt;
Il faut ajouter des sélections pour les SPI → démultiplexeurs OU ne pas utiliser les CS0 et CS1, et plutôt des pins entrée/sortie de la RPi3 lié au SS comme ça on choisit direct le module esclave voulu.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' Nous avons étudié à nouveau la datasheet de notre module bluetooth nrf de Nordik. Le module bluetooth comporte  déjà un microprocesseur !&lt;br /&gt;
Un module plutôt peut donc jouer le rôle de notre atmega328p. Il n'y a alors pas besoin de réaliser des cartes électroniques de type arduino standalone. Nos PCB regrouperont alors uniquement l'alimentation, un actionneur (bouton, joystick), le module bluetooth et les broches de connexion si besoin... &lt;br /&gt;
&lt;br /&gt;
Cette séance nous a alors permise de revoir entièrement le matériel nécessaire. Notre liste de matériel nous semble alors plus réfléchie et limitée au nécessaire. &lt;br /&gt;
&lt;br /&gt;
===Connexion Bluetooth PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Suite à nos recherches de la semaine précédente, nous avons sélectionné deux sites bien renseignés : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;SITES&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ils nous ont permis de comprendre la communication entre la manette et la console. En effet, ils nous expliquent les échanges de trames Bluetooth. &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;EXPLICATIONS 1 exemple &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 3 : Début premier prototype&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI RPi3-Arduino===&lt;br /&gt;
&lt;br /&gt;
Comme vu durant les semaines précédentes, nous souhaitons réaliser une connexion Multi-esclaves en SPI entre la Raspberry pi et plusieurs modules.&lt;br /&gt;
Cette semaine nous avons vu que la réalisation de notre premier prototype doit aller vite. Il ne nous est pas nécessaire d’attendre les modules bluetooth si il nous faut dans cette partie uniquement utiliser son microprocesseur. Ainsi pour chaque module nous utilisons une arduino UNO. Nous réaliserons les programmes en C afin de pouvoir les réutiliser avec les modules bluetooth par la suite. &lt;br /&gt;
Une fois la connexion réalisable nous adapterons les programmes aux modules bluetooth Nordik. En effet, ceux-ci comporte déjà un microprocesseur, le module peut jouer le rôle de notre atmega328p. Il n'y a aurait alors pas besoin de réaliser des cartes électroniques arduino standalone sur PCB, mais directement des cartes électronique avec le module et le module voulu (bouton, joystick...) et l'alimentation. &lt;br /&gt;
Durant la séance nous avons alors revu la liste de matériel nécessaire. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: prototype1.jpeg||center|600px|connexion filaire prototype 1 filaire arduino]]&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous avons recherches des exemples de codes et de librairies pour Arduino SPI et RaspberryPI SPI. &lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé le programme de la connexion SPI pour l'arduino et récupéré les bibliothéques SPI.h avec SPI.c. Nous nous sommes alors concentrer à les comprendre, pour pouvoir l'utiliser. &lt;br /&gt;
&lt;br /&gt;
===Réalisation du projet Git===&lt;br /&gt;
&lt;br /&gt;
Création du projet IMA4_Projet35_ManetteModulable sur Git et partage de celui-ci. &lt;br /&gt;
Les premiers dossier crées cette la séance :&lt;br /&gt;
-Arduino (connexion SPI arduino) : ProtoSpi.c + dossier librairie SPI + Makefile&lt;br /&gt;
-RPI (dossier codes pour Rpi) &lt;br /&gt;
-Readme.md&lt;br /&gt;
Ces dossiers seront amenés à être modifiés au cours des séances. &lt;br /&gt;
&lt;br /&gt;
===Protocole Bluetooth PS4===&lt;br /&gt;
&lt;br /&gt;
Suite à l'étude des trames Bluetooth, on a pu voir que ces dernières étaient incomplètes. Le modèle de communication étant propriétaire, on n'y a pas accès directement. Cela nous empêche donc de mettre en oeuvre cette communication. &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt; Déveloper&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On a décidé de commencer par une connexion USB (pour laquelle on dispose de toutes les informations) celle-ci étant plus complète.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 4&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Pour le prototype 1 FILAIRE nous réaliserons les étapes suivantes :&lt;br /&gt;
&lt;br /&gt;
#Réalisation du programme SPI pour arduino&lt;br /&gt;
#Réalisation du programme SPI pour la RPi&lt;br /&gt;
#Connexion USB avec la PS4 ou ordinateur&lt;br /&gt;
#Réalisation de cartes électroniques atmega328p-pu standalone (remplacer les Arduinos) &lt;br /&gt;
#Remplacer les &amp;quot;PCB arduino&amp;quot; par le module bluetooth et adapter la connexion&lt;br /&gt;
#Conception 3D de la délimitation 1 axe pour le joystick &amp;quot;gâchette&amp;quot;&lt;br /&gt;
#Réalisation de l'application Androïde.&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées nous auront alors une preuve de concept filaire et nous pourrons alors passer à une connexion bluetooth. &lt;br /&gt;
Le passage à la connexion bluetooth sera le deuxième prototype et le cas idéal de la réalisation de la manette modulable. &lt;br /&gt;
&lt;br /&gt;
===Mise à jour Matériel===&lt;br /&gt;
&lt;br /&gt;
- Modéliser les boutons gâchettes L1/2 R1/2 de la manette PS4 (boutons sensibles à la pression) --&amp;gt; un joystick dont nous bloquerons un axe (imprimante 3D)&lt;br /&gt;
- Remplacer la RPi 3 par une Rpi zero W qui nous permettrait de réaliser plus facilement une connexion USB tout en gardant l'avantage du bluetooth. &lt;br /&gt;
- Choix de l’alimentation pour les 5 modules Bluetooth: nécessitent 3V --&amp;gt;  utiliser des piles rechargeables 1,2V AAA plutôt que piles rondes 3V.&lt;br /&gt;
&lt;br /&gt;
Nous avons également besoin du matériel cité en semaine 1 pour réaliser des cartes électroniques atmega328p-pu standalone. ( nous revenons alors sur les décisions de la semaine 3)&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI RPi3-Arduino===&lt;br /&gt;
 &lt;br /&gt;
Montage Raspberrypi et 1 arduino en PSI + 1 bouton + 1 led.&lt;br /&gt;
Voici le choix des branchements :&lt;br /&gt;
&lt;br /&gt;
 MASTER = RPi   &lt;br /&gt;
 SLAVE= Arduino&lt;br /&gt;
&lt;br /&gt;
'''SPI sur Arduino:'''&lt;br /&gt;
 MOSI -&amp;gt; GPIO11 //PB3  //master OUT to the slave IN&lt;br /&gt;
 MISO -&amp;gt; GPIO12 //PB4 //slave OUT to the master IN&lt;br /&gt;
 SCLK -&amp;gt; GPIO13 //PB5 //serial clock&lt;br /&gt;
 SS -&amp;gt; GPIO10   //PB2  //slave select&lt;br /&gt;
'''Led, bouton et autre...'''&lt;br /&gt;
 LED --&amp;gt; GPIO6  //PD6&lt;br /&gt;
 GND&lt;br /&gt;
 +5V (if required)&lt;br /&gt;
'''SPI sur la Raspberry Pi'''&lt;br /&gt;
 SPIO MOSI -&amp;gt; PIN19 &lt;br /&gt;
 SPIO MISO -&amp;gt; PIN21&lt;br /&gt;
 SCLK -&amp;gt; PIN23&lt;br /&gt;
 SPIO CS0 -&amp;gt; PIN24&lt;br /&gt;
&lt;br /&gt;
Continuation du code pour faire clignoter Led branchée à une arduino depuis la Rpi, en connexion SPI.&lt;br /&gt;
&lt;br /&gt;
===Connexion USB PS4-RPi3===&lt;br /&gt;
Durant cette, nous avons regardé comment faire cohabiter bluetooth, Application Androïd, USB, PS4, SPI et les module. &lt;br /&gt;
&lt;br /&gt;
Il est alors important de savoir comment utiliser le port série sur la RPi3, soit utiliser les UART. &lt;br /&gt;
&lt;br /&gt;
Nous avons réaliser qu'il n'était pas aussi simple d'utiliser le port serie USB de la Raspberry Pi 3, en effet le SoC est un BCM2837 . &lt;br /&gt;
De plus nous ne pouvons pas utiliser le même port pour l'alimentation et la connexion. &lt;br /&gt;
&lt;br /&gt;
Il nous faut alors trouver une alternative ou une solution à ce problème.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 5&amp;lt;/span&amp;gt;==&lt;br /&gt;
 &lt;br /&gt;
===Programmation: Réflexion définitives prototypes filaire ===&lt;br /&gt;
&lt;br /&gt;
La semaine dernière, nous avons rencontré une difficulté liée aux ports séries UART. &lt;br /&gt;
Une des solutions à cette difficulté serait d'utiliser une RPi ZERO W à défaut d'une RPi 3. On pourrait alors avoir un port d'alimentation avec connexion USB mais également retrouver la connexion Bluetooth dont nous avons besoin.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous avons continué la réalisation du prototype filaire par l'avancé du code SPI ainsi que les recherches concernant le protocole PS4. &lt;br /&gt;
&lt;br /&gt;
La Raspberry Pi zero W peut également être utile pour la connexion entre la PS4 et les différents modules en jouant le rôle d'intermédiaire. Nous avons alors commandé une Rpi zero W pour notre projet. &lt;br /&gt;
En attendant la réception de la commande, nous nous sommes penché sur les recherches pour les programmes et la configuration nécessaire à l'utilisation de la RPi zero W.&lt;br /&gt;
&lt;br /&gt;
===Electronique===&lt;br /&gt;
&lt;br /&gt;
[[Fichier: bouton_c1.jpg|100px|thumb|left|PCB bouton]]&lt;br /&gt;
[[Fichier: arduinobb.jpg|200px|thumb|right|atmega328p-pu branchement test]]&lt;br /&gt;
&lt;br /&gt;
Du coté électronique, nous avons réalisé sur fritzing certaines cartes électroniques. Les Arduino Uno servant actuellement de test, seront remplacées par des PCB atmega328p-pu standalone avec des broches permettant les branchements nécessaires SPI ou encore aux modules &amp;quot;boutons/joystick&amp;quot;. Pour les boutons, nous avons également réalisé un pcb afin de faciliter les branchements.  &lt;br /&gt;
&lt;br /&gt;
Il nous faut alors également une 3eme carte qui nous sera nécessaire pour la réalisation du prototype sans fil. Dans notre liste de matériel, nous avons des composants nrf52810 bluetooth, ceci doivent être soudé avec les capacités de protection mais également des broches de communication. Nous avons alors commencé cette carte électronique sur Altium avec le fichier  projet PCB du distributeur à modifier.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: Arduino_c1.jpg|100px|thumb|center|PCB atmega328p-pu]]&lt;br /&gt;
&lt;br /&gt;
=== Construction 3D ===&lt;br /&gt;
&lt;br /&gt;
Enfin, nous avons commencé à réaliser des boîtiers 3D pour certains modules. Par exemple, comme nous l'avions vu précédemment, un des joysticks servira de bouton-gâchette en utilisant un seul de ses axes. Il nous faut alors réaliser un boitier qui bloque l'un des axes, mais également une tige qui nous permettra de pousser le joystick de manière simplifiée.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 6&amp;lt;/span&amp;gt;==&lt;br /&gt;
 &lt;br /&gt;
===Programmation: configuration RPi Zero W ===&lt;br /&gt;
&lt;br /&gt;
Ayant reçu la Raspberry Pi zero W en début de semaine, nous nous sommes concentrés sur la programmation et la configuration de celle-ci. &lt;br /&gt;
&lt;br /&gt;
===Electronique: PCB nrf52810===&lt;br /&gt;
&lt;br /&gt;
Les cartes réalisées en semaine 5 sont validées et en attente de réalisation. &lt;br /&gt;
&lt;br /&gt;
Cette semaine a permis la réalisation et la finalisation de la carte électronique nrf52810. Il nous a fallu recommencé cette carte deux fois. En effet, une fois finie sur Altium nous avons réalisé que les empreintes des CMS sur PCB fourni par le constructeur ne correspondent pas au matériel CMS de l'école. Face à cette inattention de notre part, nous avons décidé de refaire entièrement la carte électronique sur fritzing. Ayant la datasheet et des plans d'inspiration PCB, nous avons pu refaire la carte entièrement. &lt;br /&gt;
Sur celle-ci nous avons ajouté des broches de connexion au besoin, un branchement Jtag et ICSP pour la programmation et la connexion SPI. &lt;br /&gt;
La carte est en attente de validation, puis validation.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: nrf52810_circuit2.jpg||center|400px|PCB carte nrf52810]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Révision matériel ===&lt;br /&gt;
&lt;br /&gt;
Pour la réalisation de nos composants électroniques, il nous a fallu faire une révision des composants disponibles à l'école:&lt;br /&gt;
(les quantités indiquées ci-dessous pourront être augmentée si nécessaire,pour avoir dans l'idéal un module de chaque type de la manette, ici on se concentre sur BOUTON et JOYSTICK)&lt;br /&gt;
&lt;br /&gt;
'''Cartes Arduino:'''&lt;br /&gt;
* 4 capacite 22pF traversantes&lt;br /&gt;
* 2 resistances 10 kOhm traversantes (à récupérer)&lt;br /&gt;
* 2 oscillateurs quartz 16MHz traversante&lt;br /&gt;
* 2 atmega328p-pu et support&lt;br /&gt;
&lt;br /&gt;
'''Cartes nrf52810'''&lt;br /&gt;
* 6 capacités 100nF 0603&lt;br /&gt;
* 6 capacités 12pF 0603&lt;br /&gt;
* 2 capacités 4,7pF 0603&lt;br /&gt;
* 2 capacités 1µF 0603&lt;br /&gt;
* 2 capacités 100pF=0,1nF 0603 (à récupérer)&lt;br /&gt;
* 2 capacités 0,8pF 0603 (commande en cours)&lt;br /&gt;
* 2 inductance 3,9nH 0603 (commande en cours)&lt;br /&gt;
* 2 oscillateur quartz 32 MHz &lt;br /&gt;
&lt;br /&gt;
'''Cartes modules Boutons'''&lt;br /&gt;
* un sachet de broches mâles (qu'on utilisera également pour les autres cartes, à récupérer/acheté) &lt;br /&gt;
&lt;br /&gt;
Nous avons alors mis-à-jour la liste de composant située plus haut, ainsi que celle de la page IMA4 2017/2018 [https://projets-ima.plil.fr/mediawiki/index.php/Projets_IMA4_SC_%26_SA_2017/2018]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 7&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Programmation: connexion wifi RPi Zero W et Bootloader sur Atmega328p-pu ===&lt;br /&gt;
&lt;br /&gt;
Pendant cette semaine, nous avons continué la programmation et la configuration des Raspberry Pi 3 et Zero W afin de les utiliser en connexion Wifi. &lt;br /&gt;
&lt;br /&gt;
Nous avons également continuer les programmes de récupération de données : état des boutons et du joystick. Ces programmes sont appliqué sur l'atmega328p-pu standalone sur la plaque d'essai en attendant que le PCB soit opérationnel.&lt;br /&gt;
Pour pouvoir programmer l'atemega328p-pu comme une arduino UNO, il nous faut suivre plusieurs étapes :&lt;br /&gt;
&lt;br /&gt;
'''1.Flasher le Bootloader'''&lt;br /&gt;
Nous avons 2 Atmega328p-pu neufs, ainsi il nous faut flasher le bootloader sur chacun d'eux afin de pouvoir les utiliser et les programmer sur une breadboard dans un montage minimaliste arduino-standalone. &lt;br /&gt;
Pour cela, on peut utiliser une carte arduino UNO. On vérifie le port et le type de carte sélectionnés dans le menu &amp;gt;Outils. Sur cette carte on téléverse le fichier arduinoISP.ino qui se trouve dans les exemples en étant en progrmamateur AVr ISP mkll (&amp;gt;outils&amp;gt;programmateur) &lt;br /&gt;
Puis on met l'atmega328p-pu qui nous intéresse sur le suppor socket de la carte. On change de nouveau le programmateur pour Arduino as ISP et on fait &amp;gt;tools&amp;gt;burn bootloader, soit &amp;gt;graver la sequence d'initialisation.&lt;br /&gt;
Ces étapes faites, on peut retirer notre microcontroleur et le replacer correctement dans le montage. &lt;br /&gt;
&lt;br /&gt;
'''2.Programmation atmega328 sur breadboard'''&lt;br /&gt;
Une fois l'atmega328p-pu préparé, on peut le programmer. On peut le faire simplement à l'aide de la carte arduino UNO utilisée précédemment.On branche les Tx et Rx en commun ainsi que le reset, le GND et le VCC.&lt;br /&gt;
&lt;br /&gt;
Nous avons réaliser des codes basiques tels que le clignotement d'une led rouge ou encore l'affichage de &amp;quot;hello world&amp;quot; sur le moniteur série pour vérifier la bonne fonctionnalité du montage. Cela fait nous avons pu écrire sous Arduino IDE le code de lecture des états.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: montage_BB_test.jpg||left|200px|programmation modules arduino sur breadboard]]&lt;br /&gt;
&lt;br /&gt;
===Electronique : soudure carte de test modules ===&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons déja vu lors de la réalisation des PCB, si l'on souhaite programmer un atmega328p-pu en bootloader, le montage est simple. Il peut être minimaliste en utilisant une arduino UNO, un atmega328, une breadboard et 3 composants: 1 quartz 16MHZ crystal, 1 résistance 10kOhm et 2 capacitors céramiques de 22pF.&lt;br /&gt;
Durant la semaine 7, nous avons soudé les composants traversants de la carte électronique correspondant à ce montage ainsi que le PCB du bouton.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 8&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Programmation ===&lt;br /&gt;
&lt;br /&gt;
===Electronique : Correction soudure et soudure CMS===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avions souhaité programmer la carte électronique atmega328p-pu. Cependant, nous avons réaliser que nous avions fait une erreur lors de l'envoie du PCB à la production. En effet, celui-ci avait été fait en Top sur le logiciel Fritzing et non en Bottom. Hors nous avions soudé les composants (durant la semaine 7) comme pour un circuit imprimé en bottom, l'atmega328p-pu se retrouve alors inversé par rapport aux pistes. &lt;br /&gt;
Comme solution, nous avons choisi de souder un deuxième support pour l'atmega328 de l'autre coté de la carte avant de la refaire au propre. En effet, avant de la refaire il nous faut vérifier si la carte est bien programmable. &lt;br /&gt;
Une fois cela fait nous avions pu programmer la carte mais, nous avions également réalisé la pin 2 de l'atmega328 était prise par le bouton poussoir. Or, nous avons besoin des pin 2 et 3 pour le RX et TX permettant la programmation de l'atmega à partir d'une arduino, les pistes branchement RX-TX n'ont également pas été prévus pour le téléversement des programmes sur la carte. Il nous faut alors couper une piste et souder des câbles pour utiliser toutes les pistes souhaitées. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: correction_proto_PCB.jpg||right|300px|PCB arduino correction]]&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons également souhaité souder les CMS et le composant bluetooth nrf52810 sur la carte imprimé et reçu lors de la semaine 7. Pour cela, nous avons convenu de travailler dans la C202 durant la séance du mercredi. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: PCB_nrf52810.jpg||left|400px|carte electroniques imprimées]]&lt;br /&gt;
&lt;br /&gt;
====Comment souder des CMS ?====&lt;br /&gt;
&lt;br /&gt;
les CMS sont des composants montés en surface c'est à dire qu'ils sont montés du même côté que les pistes cuivrées (à l'opposé des composants traversants) et sont de petite tailles souvent de l'ordre du millimètre. La taille est déterminée par 4 chiffres : les 2 premiers pour la longueur et les 2 derniers pour la largeur. On a du 1206,0805,0603 ou encore 0402. Il est même possible de trouver plus petit. A l'école nous utilisons souvent du 0603, c'est le cas de nos composants.&lt;br /&gt;
Pour souder des CMS 0603, il nous faut utiliser une autre méthode qui n'est pas le fer à souder :&lt;br /&gt;
# Préparer la veille la pâte à braser la veille (dans une seringue)&lt;br /&gt;
# Gommer la carte pour éviter l'oxydation (attention à ne pas retirer les miettes de gomme en soufflant dessus) &lt;br /&gt;
# Appliquer avec la seringue la pâte sur les empreintes et piste souhaitées. Pour les endroits difficile à atteindre ou avec 2 pistes proches les unes des autres, il est possible de mettre la même goutte de pâte sur les 2 pistes. Cela de causera pas de court-circuit par la suite. En effet, la pâte est composée d’alliage qui sous la chaleur va se fluidifier et se coller uniquement aux pistes métallique. Le reste fondera sous la chaleur du four.&lt;br /&gt;
# Appliquer les CMS sur la pâte au fur et à mesure (attention ! ne jamais toucher les CMS avec les doigts, tjrs utiliser une pince)&lt;br /&gt;
# Mettre au four&lt;br /&gt;
&lt;br /&gt;
====Bilan soudure nrf52810====&lt;br /&gt;
&lt;br /&gt;
Cependant, une fois le matériel nécessaire préparé, et la pâte mise sur les pistes souhaitées, au moment de déposer le composant, nous avons réalisé que celui-ci était beaucoup plus petit que l'empreinte sur le PCB. Il s'agit d'un composant boitier QFN48. Fritzing ne proposant au plus proche des boitiers QFN24 ou LQFP48, celui-ci a basculé automatiquement pour un boitier LQFN48, de dimension plus grande. Face à ce manque de vigilance, nous avions cependant commencer par le nrf52810 (composant concerné) évitant ainsi de gaspiller d'autres CMS. &lt;br /&gt;
Nous avons souhaité refaire la carte sous Altium à partir des fichiers fournis par le concepteur (chose que nous avons commencé à faire aux alentours de la semaine 5) &lt;br /&gt;
Après la réalisation du schématic, et de la modification des empreintes de capacités, inductances et autres composants de 0402 à 0603. Notre matériel ne permettant que des empreintes 0603.&lt;br /&gt;
 &lt;br /&gt;
Lors du routage, une erreur de chevauchement des pistes est notifiée par Altium au niveau du nrf52810. Celles-ci ne présentent pas d'angles et sont déjà de taille 8mil, il nous faut alors passer les pistes en 6mil. Mais 8mil est la taille minimale pour la production à Polytech, nous avons regardé pour envoyer les cartes à faire ailleurs mais le 6mil n'est pas beaucoup conseillé. De plus, il n'est peut-être pas judicieux de continuer avec le composant microcontrôleur-bluetooth Nrf52810 qui prend du temps, donc la carte est difficilement réalisable et peut-être très long à programmer. &lt;br /&gt;
&lt;br /&gt;
Ainsi en cette fin de semaine, nous avons décider face à l'avancer du projet de laisser les nrf52810 de coté et de les remplacer par des modules sans fils plus simples d'utilisation et complets. Ainsi nous aurions plus de chance d'avoir une connexion sans fils entre les modules. Nous pourrions par exemples utiliser des Xbee, des modules Rf...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 9&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation: PS4 et 1er Test SPI sur atmega328p====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
Une carte PCB arduino fonctionnant, nous pouvons la programme pour simuler un module. Celle-ci a été designée afin de s'adapter au module que l'on souhaite. Il suffit de brancher le bouton, le joystick ou autre élèment de manette souhaité.&lt;br /&gt;
Cette semaine ci, nous avons alors configurer la partie communication SPI pour l'arduino.&lt;br /&gt;
&lt;br /&gt;
'''Que voulons-nous faire avec les atmegas ?''' &lt;br /&gt;
Les cartes électroniques atmega328p vont nous permettre de recevoir les requêtes SPI envoyées par la raspberry pi et d'y répondre. La Raspberry enverra un message, par exemple &amp;quot;1&amp;quot;, et l'Arduino lira alors l'état du module qui lui est connecté. Une fois l'état récupéré elle le renvoie à la raspberry pi.&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons programmé l'atmega afin qu'il soit en esclave, qu'il reçoive un de la RPi &amp;quot;1&amp;quot; et retourne une valeur sauvegardé &amp;quot;int envoi&amp;quot;. Nous avons également commencé les tests pour la lecture de l'état d'un bouton (d'après les tests réalisés les semaines précédentes).&lt;br /&gt;
&lt;br /&gt;
'''Code'''&lt;br /&gt;
Comme nous l'avons vu précedement lors de nos recherches (semaines 1 à 4) : &lt;br /&gt;
La communication SPI nécessite l'utilisation des pins: &lt;br /&gt;
&lt;br /&gt;
MOSI -&amp;gt; GPIO11 //PB3  //master OUT to the slave IN&lt;br /&gt;
MISO -&amp;gt; GPIO12 //PB4 //slave OUT to the master IN&lt;br /&gt;
SCLK -&amp;gt; GPIO13 //PB5 //serial clock&lt;br /&gt;
SS -&amp;gt; GPIO10   //PB2  //slave select&lt;br /&gt;
&lt;br /&gt;
Il faut également paramétrer l'atmega328p en Slave. On note que dans un premier temps, le programme sera codé avec l'arduino IDE (fichiers .ino). Une fois l'ensemble SPI RaspberryPi-Arduino fonctionnant, on remplacera ces codes par du langage C ou C++.&lt;br /&gt;
&lt;br /&gt;
Pour faire la connexion SPI sur l'atmega328p,  on utilise la librairie arduino SPI.h, on a alors directement les fonctions nécessaires intervenant sur les registres souhaités : SPCR (spi control register), SPSR (spi status register) et SPDR (spi data register). &lt;br /&gt;
 &lt;br /&gt;
  #include &amp;lt;SPI.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il est important d'initialise d'abord le setup et on active le port série pour pourvoir utiliser le moniteur série. (Cela servira à verifier la valeur envoyée par la RPi) &lt;br /&gt;
&lt;br /&gt;
 void setup (void)&lt;br /&gt;
 {&lt;br /&gt;
   Serial.begin (9600);  &lt;br /&gt;
   pinMode(MISO, OUTPUT);  //configuration en esclave *master in slave out*&lt;br /&gt;
   pinMode(buttonPin,INPUT);  //config pin bouton&lt;br /&gt;
   // turn on SPI in slave mode&lt;br /&gt;
   SPCR |= _BV(SPE);&lt;br /&gt;
   // preparation interruptions&lt;br /&gt;
   pos = 0;   // buffer empty&lt;br /&gt;
   process_it = false;&lt;br /&gt;
   // activation interruptions&lt;br /&gt;
   SPI.attachInterrupt();&lt;br /&gt;
 }  &lt;br /&gt;
 &lt;br /&gt;
On oublie pas de déclarer les interruptions afin de bien lire la requête reçue. &lt;br /&gt;
 &lt;br /&gt;
// SPI interrupt routine&lt;br /&gt;
ISR (SPI_STC_vect)&lt;br /&gt;
{&lt;br /&gt;
  byte c = SPDR;  // grab byte from SPI Data Register&lt;br /&gt;
  // add to buffer if room&lt;br /&gt;
  if (pos &amp;lt; sizeof buf)&lt;br /&gt;
    {&lt;br /&gt;
    buf [pos++] = c;&lt;br /&gt;
    // example: newline means time to process buffer&lt;br /&gt;
    if (c == '\n')&lt;br /&gt;
      process_it = true;&lt;br /&gt;
    }  // end of room available&lt;br /&gt;
}  // end of interrupt routine SPI_STC_vect&lt;br /&gt;
&lt;br /&gt;
Dans la loop main, on traite la requête et on utilise '''SPI.transfer(envoi);''' pour transferer à la RPi les données souhaitées. &lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons également commencé des programmes de test SPI pour la RPi. Il s'agit principalement de programmes de tests tout faits permettant de vérifier la connexion entre cette dernière et l'arduino. Par exemple, la RPI envoie &amp;quot;bonjour&amp;quot; et l'arduino lui retourne ce qu'elle reçoit, soit &amp;quot;bonjour&amp;quot;. Sans succés alors. &lt;br /&gt;
&lt;br /&gt;
====Electronique : Fritzing révision====&lt;br /&gt;
&lt;br /&gt;
Lors de la semaine, le modèle PCB de la carte arduino a été réalisé de nouveau sous fritzing avec les broches et connections manquantes. Nous avons également revu la configuration du bouton reset  et ajouté une led d'état de l'alimentation. Nous avons ainsi envoyé deux cartes identiques à la réalisation.&lt;br /&gt;
La carte déjà soudée lors des derniers jours fonctionnant, elle nous sert de prototype de programmation. Nous pouvons ainsi avancer à la fois sur la programmation des modules mais aussi sur leur réalisation. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 10&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation : PS4 et SPI sur RPi====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Raspberry PI et SPI'''&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, pour la partie Atmega328p-Modules, nous nous sommes concentrés sur la programmation de la communication SPI avec la raspberry pi. Cette semaine a permis une étude plus approfondit sur le fonctionnement pour la RPi. &lt;br /&gt;
&lt;br /&gt;
On rappelle, comme vu des semaines 1 à 4, pour la RPI3 (tout comme la RPi Zero W) utilise les broches : SCLK (23), MISO(21), MOSI (19) et SPI CS0 (24), SPI CS1 (26). &lt;br /&gt;
On la programme en Master. A l'aide des fichiers tests d'inspiration, on pourra directement programmer la RPi en C. Lors de la réalisation du code, il y a 3 étapes : l'initialisation/parametrage en SPI pour être maître, l'envoie de la requête puis la réception de données en retour. &lt;br /&gt;
&lt;br /&gt;
Programmant en C, il ne faut pas oublier les librairies suivantes :&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;getopt.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;sys/ioctl.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/types.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/spi/spidev.h&amp;gt;   //pour SPI&lt;br /&gt;
&lt;br /&gt;
On va déclarer des variables globales permettant le paramétrage :&lt;br /&gt;
&lt;br /&gt;
 static const char *device = &amp;quot;/dev/spidev0.0&amp;quot;;  //si on veut CS0 pour atteindre notre SS&lt;br /&gt;
 static uint8_t mode;       //mode est par défaut à 0&lt;br /&gt;
 static uint8_t bits = 8;    //bits par mot échangé&lt;br /&gt;
 static uint32_t speed = 500000;  &lt;br /&gt;
 static uint16_t delay;&lt;br /&gt;
&lt;br /&gt;
Dans notre main, on ouvre le port (la connexion) au device souhaité,  on vérifie les paramètres (registres, connexions...) puis exécute la fonction transfer(fd). transfer(fd) transmet la requête et s'occupe de la réception. &lt;br /&gt;
&lt;br /&gt;
 fd = open(device, O_RDWR);&lt;br /&gt;
 transfer(fd);&lt;br /&gt;
 close(fd);&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 11&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation: PS4, SSH et tests SPI (RPi3&amp;amp;Atemga328p)====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Raspberry PI, Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
Afin de facilité la programmation en utilisant Ethernet, nous avons installer et configuré la RPi pour l'utiliser en SSH depuis les ordinateurs de la E306. En effet, SSH permet de se connecter à distance sur une machine en utilisant un compte utilisateur de la dite machine. En mettant ssh, on pourra directement agir sur les fichiers de la raspberry depuis un terminal de notre PC. Pour cela, on a d'abord vérifier l'adresse IP de notre raspberry pi : 172.26.145.106 avec un écran mais on peut aussi utiliser les commandes ip a et ifconfig. Puis activer le ssh sur la raspberry pi. &lt;br /&gt;
On modifie alors le fichier config.txt mais également etc/network/interfaces pour configurer la bonne interface Ethernet sur la raspberry pi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: configSSH_raspi.png||left|300px|config ssh ethernet]]&lt;br /&gt;
&lt;br /&gt;
Il nous suffit alors de taper la commande : ssh pi@172.26.145.106  pour accéder à notre RPi. &lt;br /&gt;
&lt;br /&gt;
Nous avons continué à réaliser la communication SPI avec des tests entre une arduino UNO et la RPI3. Nous avons commencé par des tests simples inspirés des études de deux semaines précédentes et modulés selon notre utilité.  &lt;br /&gt;
Nous arrivons alors à lire l'état envoyer &amp;quot;bonjour&amp;quot; et recevoir &amp;quot;ça va&amp;quot; ou encore &amp;quot;1&amp;quot; et recevoir &amp;quot;3&amp;quot;. Il faut noter que le SPI échange des trames, la RPI reçoit alors des hexadécimaux. &lt;br /&gt;
Nous avons alors continué pour recevoir l'état du bouton ou du joystick lors de l'envoie de &amp;quot;1&amp;quot; sur l'Arduino328p. La semaine prochaine nous testerons ces même codes fonctionnels sur les cartes atmeg327p. &lt;br /&gt;
&lt;br /&gt;
A la fin de cette semaine, nous avons alors des codes Arduino-SPI (.ino) et des codes Raspberry-SPI (.c) permettant l'échange de données. Le but est maintenant de l'adapter aux cartes imprimées et de le rendre pleinement fonctionnel pour plusieurs cartes à la fois, puis ajouter une boucle de vérification en continue jusqu'à une deuxième requête de la RPi.&lt;br /&gt;
&lt;br /&gt;
====Electronique: réalisation au propres des PCB modules====&lt;br /&gt;
&lt;br /&gt;
Suite à une nouvelle erreur de réalisation cartes électronique, nous avons  refait et renvoyé à nouveau les cartes imprimées atmega328p.&lt;br /&gt;
Nous les souhaitons au propre pour une version finale. Une fois celle-ci imprimées nous pourrons en avoir 3 , un pour chaque module. Les cartes étaient bien imprimées en bottom mais lors du passage des traversants de bottom à top, le logiciel ne les a pas fait miroiter. Par manque d'attention nous avons alors envoyé les fichiers gerber pour des cartes ayant les composants du même coté que la couche de cuivre. &lt;br /&gt;
Les cartes électroniques actuelles sont alors correctes et fonctionnelles mais difficile à souder. Pour eviter les erreurs et continuer sur des prototypes de carte nous préférons attendre en nous concentrant sur la programmation PSI de la Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 12&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Raspberry PI, Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
-  réflexion: penser à faire boucler sur l'arduino une fois la requête reçu, ça veut dire que la manette est ON et donc vérifier continuellement les modules sur chaque atmega.&lt;br /&gt;
- SPI raspberry pi - arduino recuperation état du bouton avec les cartes modules  (/!\ récuperation à faire dans une variable) &lt;br /&gt;
&lt;br /&gt;
-SSH perso &lt;br /&gt;
adresse Rasppi: 192.168.137.10&lt;br /&gt;
&lt;br /&gt;
====Electronique: Finalisation soudure Modules====&lt;br /&gt;
&lt;br /&gt;
Soudure au propre et finale d'une carte atmega328p et donc envoie pour la réalisation de 2 autres cartes similaires et récupération de matériel&lt;br /&gt;
Soudure des 2 autres cartes, + tests sur les états = fonctionnelles.&lt;br /&gt;
On a donc bien 3 cartes pour les 3 modules de types différents (1 bouton, 1 joystick, 1 gachette)&lt;br /&gt;
PCB pour les 2 joysticks (qui serviront de thumbstick et gachette)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 13 et plus&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
====Electronique====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
(à mettre rapport + git + drive)&lt;br /&gt;
&lt;br /&gt;
=Datasheets=&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=55387</id>
		<title>IMA4 2017/2018 P35</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=55387"/>
				<updated>2018-05-05T18:45:41Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : /* Semaine 5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Présentation générale: Manette modulable&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Description&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Tout le monde joue aux jeux vidéo cependant, les manettes ne sont pas adaptées aux personnes ayant un handicap pouvant toucher les bras ou les mains.&lt;br /&gt;
C’est le cas, de plusieurs patients dans les centres de soins et de rééducation.&lt;br /&gt;
&lt;br /&gt;
Pour ce projet IMA4, nous travaillerons avec le centre SSR (soin de suite et de réadaptation) Marc Sautelet de Villeneuve d’Ascq.&lt;br /&gt;
Un adolescent, patient de Marc Sautelet, est passionné par les jeux vidéo. En effet, ayant perdu la motricité d’une partie de son corps, il ne peut pas jouer à deux mains. Pour cela, il bloque la manette entre son épaule et son coude, usant de la mâchoire et des doigts pour contrôler les&lt;br /&gt;
joysticks et les boutons. Cet exercice peut s’avérer fatiguant et pénible.&lt;br /&gt;
&lt;br /&gt;
Ainsi, nous chercherons à concevoir une manette PS4 adaptée au handicap de l’adolescent. &lt;br /&gt;
Cette manette devra aussi être adaptée pour d’autres patients présentant également des handicaps moteurs. Ainsi nous prendrons pour cibles: tous les patients du centre voulant jouer; et non pas que les enfants et adolescents.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Membre du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Transley Gracias et Camille Saad&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Cible&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Patient présentant un handicap moteur&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Période du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
janvier 2018 - mai 2018&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Partenaire/Client&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Centre SSR Marc Sautelet à Villeneuve d'Ascq&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Objectifs&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ce projet a pour objectif de créer un prototype de manette qui puisse interagir avec la console PS4 et dont le paramétrage se fait à l’aide d’une application mobile et/ou web. Cette manette devra suivre les demandes du patient ainsi que des aides-soignantes du centre, dans la mesure du possible.&lt;br /&gt;
&lt;br /&gt;
Plus précisément, pour le premier prototype, nous mettrons en œuvre l'utilisation de quelques boutons spécifiques: &lt;br /&gt;
&lt;br /&gt;
* Un joystick (type L/R)&lt;br /&gt;
* Quelques boutons poussoirs (type Croix/Triangle/Carré/Rond/R1/L1/Start/...)&lt;br /&gt;
* Des boutons gâchettes progressives (type L2/R2).&lt;br /&gt;
&lt;br /&gt;
Le but serait donc dans un premier temps de rendre fonctionnel un bouton de chaque type, puis de les multiplier une fois cela fait. Tous ces boutons réunis constituent une manette fonctionnelle.Ainsi, la manette sera ajustable, c’est à dire qu’elle devra s’adapter aux différents handicaps moteurs possibles.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Analyse du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Positionnement par rapport à l'existant&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre prototype aura une présentation unique par rapport à l’existant. En effet, les concurrents et produits existants ciblent pour la majorité un seul handicap. Cela&lt;br /&gt;
engendre une solution fermée à beaucoup de patients. Notre projet propose une mobilité des mouvements et également un choix large dans la composition et le&lt;br /&gt;
design de notre manette.&lt;br /&gt;
Le patient n’est pas retreint à jouer à une seule main, à utiliser beaucoup de force...Il y a moins de technique dans la manipulation et on ne joue pas avec une&lt;br /&gt;
manette adaptée uniquement pour un droitier ou un gaucher. Cependant, cela nous limitera peut-être dans le choix possible des types de jeux. Tout comme les autres&lt;br /&gt;
manettes adapté, l’utilisateur nécessitera un peu d’entrainement.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du premier concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Jouer aux jeux vidéo à une main n’est pas une idée d’aujourd’hui. En 1990, Nintendo propose le Power Glove. Mais il tombe très rapidement aux oubliettes suite à des problèmes techniques.&lt;br /&gt;
&lt;br /&gt;
Un autre gant a fait son apparition quelques années plus tard. Celui-ci, plus technique, il faut office de manette Play Station: le Reality Quest Power Glove.Cette idée de manette-gant, permet de jouer à la PS avec une seule main, elle a était conçue et présentée pour les E3, un salon d’exposition de gaming.Le gant est conçu pour contrôler l’équivalent des 14 boutons et 2 joysticks à l’aide d’une seule main. La « manette » est fixée dans la pomme de la main. L’utilisateur contrôle les mouvements verticaux et horizontaux en pivotant le poignet, et utilisent les 4 boutons d’action principaux et L1/R1 avec les doigts. Les autres boutons sont accessibles par un seul bouton rond contrôlé par le pouce.&lt;br /&gt;
La manette est adaptée pour beaucoup de jeux vidéo, dont les plus simples sont les jeux de voitures et de combats (arcade).&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec ce gant&lt;br /&gt;
*Design obligatoirement droitier&lt;br /&gt;
*Les boutons de contrôle sont peu sensibles et peuvent nécessiter de la force&lt;br /&gt;
*Design compliqué et nécessitant beaucoup d’entrainement.&lt;br /&gt;
&lt;br /&gt;
;Lien : https://www.youtube.com/watch?v=qV0SxSJDCYg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du second concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ben Heck, de son vrai nom Benjamin J.Heckendorn, est un concepteur de mods de consoles (mods pour modification, soit « manettes modifiées ») et une star&lt;br /&gt;
du net grâce à ses vidéos tutoriels.Il propose alors énormément de produits adaptés ou dérivés en guise de manettes.&lt;br /&gt;
Parmi les mods qu’il a réalisé, il a modifié une manette de PS4 afin de la rendre accessible à une personne ne pouvant jouer qu’à une main. Pour cela, il a déplacé les boutons en respectant l’ergonomie de la main valide et modifie les connexions. Il peut lui arriver de rajouter des boutons pour en remplacer un autre. Il réalise également le même système avec la Xbox. Sur la photo ci-dessous, il a adapté la manette pour un droitier.&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec cette ma&lt;br /&gt;
*Design obligatoirement droitier ou gaucher, une modification = une manette= une personne&lt;br /&gt;
*Besoin obligé du pouce et de l’index, même si avantage : 3 doigts nécessaire.&lt;br /&gt;
&lt;br /&gt;
;Lien :: https://www.youtube.com/watch?v=LieHIscadjk&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Scénario d'usage du produit ou du concept envisagé&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
La technologie est ,aujourd’hui, omniprésente dans notre vie. Les consoles de jeux ont envahies les maisons avec plus de 7 personnes sur 10 jouant aux jeux vidéos sur consoles en France (chiffre de l’Express). 0,18% des français sont handicapés cela représente 12 millions de français. Dans ce chiffre, 13,4% des personnes ont un handicap moteur. En 2017, les grands groupes comme Sony ou Microsoft avec respectivement PlayStation et Xbox ne permettent pas à tout le monde de jouer avec une manette. Les manettes sont prévues pour des personnes ayant leurs membres valides, plus précisément les mains et les bras.&lt;br /&gt;
&lt;br /&gt;
Après un accident de voiture, un jeune garçon a perdu la motricité d’un côté du corps. Passionné de jeux vidéo, il se retrouve avec des difficultés à jouer sur sa console PS4. Ingénieux, il utilise la manette en la coinçant entre son épaule et le creux du cou. Usant de la mâchoire et de sa main valide pour contrôler les joysticks et les boutons. L'exercice étant inconfortable et fatiguant il eu l’idée de proposer à des futurs ingénieurs de lui proposer une manette adaptée à son handicap. &lt;br /&gt;
&lt;br /&gt;
Les deux pré-ingénieurs ,avec leur tuteur, ont une idée révolutionnaire : La manette modulable ! Elle permettrait au jeune garçon, ainsi que d’autres joueurs, de pouvoir continuer de s’amuser ou même de commencer à jouer au jeux sur console. &lt;br /&gt;
Cette manette aidera fortement dans les centre de rééducation pour faire passer le temps et donner du plaisir à des personnes qui ne peuvent plus s’amuser avec leur console traditionnelle. Elle pourra aussi ouvrir de nouvelles possibilités pour certaines personnes qui n’auraient jamais essayé jusqu'à présent.   &lt;br /&gt;
Comme son nom l'indique, elle sera modulaire et s'adaptera à différents handicaps. Accompagnée de son application d’initialisation, elle sera accessible aussi bien aux enfants, patients, parents et aides soignantes.&lt;br /&gt;
&lt;br /&gt;
Quelques mois plus tard...Le jeune patient fan de Need For Speed, peut maintenant piloter sa voiture comme un vrai professionnel grâce à l'un des joysticks qu'il utilisera avec sa main valide et il pourra accélérer à des vitesses folles à l'aide de boutons poussoirs au niveau de son pied valide et gagner la partie. Son ami venu lui rendre visite, pourra en lieu et place des aides soignantes configurer à l'aide de la tablette (portable) la manette du patient. &lt;br /&gt;
Si le patient change de jeu pour Tekken et que la configuration des modules ne lui convient plus, il peut interchanger les éléments de la manette selon son envie et son confort. Ainsi il peut faire sauter son personnage, il utilisera un module bouton supplémentaire, qu'il actionnera avec le poing.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Fonctionnement&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Suite à une analyse fonctionnelle et à la formulation de notre projet, nous avons pu définir le fonctionnement de notre système. Notre produit, la manette, doit être accessible d’après nos objectifs à différents types de handicaps moteurs. Ainsi, l’idéal serait de concevoir une manette modulable afin qu’elle puisse s’adapter à toutes les situations. Ce n’est plus au patient de s’adapter à la manette mais à la manette de s’adapter au patient.&lt;br /&gt;
Cela signifie que la manette sera, dans la limite du possible et de la sensibilité du corps du patient, composée de plusieurs parties dites « modules » comportant un ou plusieurs actionneurs (boutons, joysticks, gâchettes...). Ces modules seront déplaçables afin d’être utilisé avec différents membres du corps : un doigt, une main,&lt;br /&gt;
une jambe ou même un pied. Il suffira de les connectés entre eux suivant l’organisation souhaitée, le Gameplay du jeu ou en fonction du handicap. Le tout sera relié à une application.&lt;br /&gt;
L’application sera alors mise en place pour connecter les différentes parties du point de vue software pour prérégler la manette en fonction du patient. Il pourra alors choisir les boutons en fonction du jeu, de ses mouvements mais aussi choisir la sensibilité.&lt;br /&gt;
&lt;br /&gt;
L’application et les modules devront être intuitifs et faciles d’utilisation. De cette manière des utilisateurs non avertis dans le domaine informatique ou jeunes pourront eux-mêmes gérer les connexions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Réponse à la question difficile&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
'''Question : Comment interconnecter les différents modules de la manette ?'''&lt;br /&gt;
&lt;br /&gt;
Il nous faut pour ce projet interconnecter les modules modélisant la manette qui seront connectés à la consoles PS4 via une Raspberry Pi 3.&lt;br /&gt;
Le choix de la Raspberry Pi 3 nous permet d'utiliser son module Bluetooth pour communiquer avec la PS4, ce choix est plus adaptée au projet que du filaire.&lt;br /&gt;
Concernant l'interconnexion des modules, nous travaillerons en deux étapes &amp;quot;preuves concept&amp;quot; : filaire et sans fils (Bluetooth).&lt;br /&gt;
&lt;br /&gt;
'''Objectif 1 : Preuve concept filaire'''&lt;br /&gt;
&lt;br /&gt;
Dans cette première partie de projet, nous souhaitons avoir une 1ère preuve de prototype rapidement. Nous nous concentrerons alors sur la communication entre la RPi3 et la PS4 ainsi que sur la conception des modules. Pour les modules, nous réaliserons des cartes électronique pour chaque module avec un micro-contrôleur. La communication filaire nous permettra d'interconnecter les modules à la RPi3 avec un bus SPI.&lt;br /&gt;
&lt;br /&gt;
'''Objectif 2: preuve concept sans fils'''&lt;br /&gt;
&lt;br /&gt;
Une deuxième étape du projet est la réalisation de la solution idéale sans fils. Celle-ci pourra commencer à être développée petit à petit en parallèle avec l'objectif 1. Le but ici, est d'interconnecter les modules en Bluetooth. Nous avons choisi le Bluetooth pour garder une connexion commune sur toute la chaîne. &lt;br /&gt;
Nous rajouterons alors un module bluetooth à chaque module de la manette. &lt;br /&gt;
&lt;br /&gt;
'''Objectif 3: possibilité d'adapter les boutons (capuchon en 3D)'''&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Préparation du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Cahier des charges&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
''Chef de projet:'' Alexandre Boé  &amp;lt;br&amp;gt;&lt;br /&gt;
''Responsables:'' Xavier Redon, Thomas Vantroys &amp;lt;br&amp;gt;&lt;br /&gt;
''Partenariat:'' Marc Sautelet (non etablie) &amp;lt;br&amp;gt;&lt;br /&gt;
''Elèves-ingénieurs:'' Camille Saâd, Transley Gracias &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Sujet :''' Manette modulable pour personne à déficience moteur compatible PlayStation 4 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objectifs principal (1er POC) : ===&lt;br /&gt;
Faire transmettre des informations issus des actionneurs (ex:boutons poussoires) via des arduinos jusqu’à la Raspberry Pi 3 en SPI.&amp;lt;br&amp;gt;&lt;br /&gt;
Envoyer les données reçues vers la PS4 en USB  &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objectifs secondaire (2e POC):===&lt;br /&gt;
Créer des modules avec un microcontrôleur et une puce bluetooth pour permettre une meilleurs flexibilité (c-àd pouvoirs avoir une meilleure ergonomie et une connexion sans fil) &amp;lt;br&amp;gt;&lt;br /&gt;
Connecter la Raspberry Pi 3 en Bluetooth à la PS4 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier: beteacorne.jpg||middle|600px|Bete a corne manette]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Choix techniques : matériel et logiciel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Liste de matériel :===&lt;br /&gt;
&lt;br /&gt;
'''Modules boutons/joysticks/gachettes'''&lt;br /&gt;
&lt;br /&gt;
3  Push buttons :&amp;lt;br&amp;gt;&lt;br /&gt;
- O X Y Carré R3 L3 &amp;lt;br&amp;gt;&lt;br /&gt;
- Guide PS &amp;lt;br&amp;gt;&lt;br /&gt;
- start/back &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 0,45€/unité TTC [https://www.gotronic.fr/art-bp-miniature-krs1273-16976.htm] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1  Thumbstick original: &amp;lt;br&amp;gt;&lt;br /&gt;
Joystick analogique 4 directions --&amp;gt; 4,25€/unité TTC [https://www.gotronic.fr/art-joystick-analogique-4-directions-19063.htm] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1 buttons trigger L1 L2 =&amp;gt; 1x Thumbstick original''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Cartes Atmega328p /connexion spi/'''&lt;br /&gt;
&lt;br /&gt;
3   Arduino UNO &amp;lt;br&amp;gt;&lt;br /&gt;
1   Arduino UNO atmega328p retirable &amp;lt;br&amp;gt;&lt;br /&gt;
4   capacite 22pF traversantes &amp;lt;br&amp;gt;&lt;br /&gt;
2   resistances 10 kOhm traversantes (à récupérer) &amp;lt;br&amp;gt;&lt;br /&gt;
2   oscillateurs quartz 16MHz traversante &amp;lt;br&amp;gt;&lt;br /&gt;
2   atmega328p-pu et support &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cartes module bluetooth nrf52810 '''&lt;br /&gt;
&lt;br /&gt;
6   capacités 100nF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
6   capacités 12pF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 4,7pF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 1µF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 100pF=0,1nF 0603 (à récupérer) &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 0,8pF 0603 (a acheter, commande en cours) &amp;lt;br&amp;gt;&lt;br /&gt;
2   inductance 3,9nH 0603 (a acheter, commande en cours) &amp;lt;br&amp;gt;&lt;br /&gt;
2   oscillateur quartz 32 MHz &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''' Connexions et autres '''&lt;br /&gt;
&lt;br /&gt;
1 Led RGB neopixel [https://www.adafruit.com/product/1734] &amp;lt;br&amp;gt;&lt;br /&gt;
1 Raspberry Pi 3 &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; ~36,23€/unité TTC [https://fr.rs-online.com/web/p/processor-microcontroller-development-kits/8968660/?src=raspberrypi] &amp;lt;br&amp;gt;&lt;br /&gt;
1 Raspberry Pi Zero W (commandée) [https://www.raspberrypi.org/products/raspberry-pi-zero-w/] &amp;lt;br&amp;gt;&lt;br /&gt;
6 Alimentations 5V ou 3,3V &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
par exemple, 12 piles de type CR2016 3V rechargeables ou 24 piles AAA 1,5 V rechargeables  &lt;br /&gt;
5 modules Bluetooth nrf de Nordic : nRF52810-QFAA-R &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 3,17€/unité + frais expédition  [https://www.mouser.fr/productdetail/nordic-semiconductor/nrf52810-qfaa-r?qs=sGAEpiMZZMve4%2FbfQkoj%252bG%2FosjLoe2oghFQwQllMrQ4%3D]&lt;br /&gt;
5 Lignes broches mâles &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logiciels:===&lt;br /&gt;
&lt;br /&gt;
- IDE arduino&lt;br /&gt;
- Altium&lt;br /&gt;
- FreeCAD ou Inkscape&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Liste des tâches à effectuer&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 1 : Gestion du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Définition des cahiers des charges fonctionnel et technique, choix d'orientation...&lt;br /&gt;
* Recherche techniques sur les différentes connexions possibles entre les modules, la RPi 3 et la console PS4&lt;br /&gt;
#Recherche connexion SPI entre les modules et la RPi3&lt;br /&gt;
# Recherche connexion bluetooth entre la RPi3 et la PS4&lt;br /&gt;
# Recherche connexion bluetooth pour les modules&lt;br /&gt;
# Recherche carte avec montage Atmega328P-PU et anticipation module bluetooth&lt;br /&gt;
* Détermination du matériel nécessaire&lt;br /&gt;
* Réflexion sur l'application&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 2: Réalisation du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Partie 1: Preuve concept manette en filaire'''&lt;br /&gt;
&lt;br /&gt;
* Conception de cartes électroniques pour 2 modules (/!\ prévoir modules bluetooth)&lt;br /&gt;
* Réalisation connexion SPI avec 2 modules : programmation des Atmega328p en liaison série. &lt;br /&gt;
* Si tests concluant, ajouter des modules jusqu'à en avoir 5 (1 pour chaque type de boutons) &lt;br /&gt;
* Connexion bluetooth entre la PS4 et la RPi3&lt;br /&gt;
* Réalisation du support des modules avec fixations possibles (imprimante 3D)&lt;br /&gt;
&lt;br /&gt;
'''Partie 2: Preuve concept manette en bluetooth'''&lt;br /&gt;
&lt;br /&gt;
* Ajout des modules bluetooth aux cartes électroniques&lt;br /&gt;
* Connexion bluetooth entre les modules&lt;br /&gt;
&lt;br /&gt;
'''Partie 3: Application Android : paramétrage de la manette'''&lt;br /&gt;
&lt;br /&gt;
* Créer une application sur tablette ou smartphone (Android) afin de configurer la manette aux besoins (inter-connexion des modules et console)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Calendrier prévisionnel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Date'''&amp;lt;/u&amp;gt;&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Tache à réaliser''' &amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
17/01/18-24/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Faire des recherches sur les différentes interconnexions du système : Bluetooth, RPi-Atmega328 (SPI), RPi-PS4&lt;br /&gt;
Continuer liste des taches, matériel, Début recherches + réflexion fixation support des modules&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Recherche technique connexion PS4-RPi3 et connexion SPI RPi3-Module + code&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18-07/03/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Réalisation 1er prototype (+ début prototype 2)&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
07/03/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Seance 7 :  Test prototype filaire&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
07/03/18-09/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Réalisation 2eme prototype + application Android&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
09/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Seance 14 :  Test prototype Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
14/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Video projet&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
15/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Finalisation projet et Rapport&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
16/05/18-17/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Soutenances Projet&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Réalisation du Projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Feuille d'heures &amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Voici le tableau d'heures du binôme:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Heures S11 !! Heures S12 !! Heures S13et+ !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 10&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 20min&lt;br /&gt;
|&lt;br /&gt;
| 15h20&lt;br /&gt;
|-&lt;br /&gt;
| Cherches techniques &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 18&lt;br /&gt;
|-&lt;br /&gt;
| Rédaction du wiki et rapport de projet&lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 30min&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| 30min&lt;br /&gt;
| 30min&lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
| 10h30&lt;br /&gt;
|-&lt;br /&gt;
| Programmation&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 3&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 7&lt;br /&gt;
| 8&lt;br /&gt;
| 6&lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
| 43&lt;br /&gt;
|-&lt;br /&gt;
| Cartes électroniques&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 6&lt;br /&gt;
| 8&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| 31&lt;br /&gt;
|-&lt;br /&gt;
| Application&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| Total Semaine&lt;br /&gt;
| 10&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 7&lt;br /&gt;
| 10h30&lt;br /&gt;
| 13&lt;br /&gt;
| 9&lt;br /&gt;
| 12&lt;br /&gt;
| 9h30&lt;br /&gt;
| 10h30&lt;br /&gt;
| 9&lt;br /&gt;
| 9h20&lt;br /&gt;
| &lt;br /&gt;
| '''117h50'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Prologue&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Avant la réalisation et conception d'un projet, il est important d'analyser celui-ci. Nous avons allons consacré le prologue à l'analyse fonctionnelle de la manette. Nous avons également eu une réflexion sur l'analyse technique, cela nous a permis de réaliser une liste de matériel. Il est important de définir les objectifs ainsi que les besoins afin de ne rien oublier. (Voir ci-dessus Analyse projet) &lt;br /&gt;
Nous avons également organisé notre travail, pour le partage de documents de recherches et la rédaction de compte-rendu final nous avons réalisé un google drive. Par la suite, nous créerons un projet Git. &lt;br /&gt;
&lt;br /&gt;
Durant ce temps, nous avons décidé de réaliser 5 modules. Les modules sont les différents boutons de la manettes qui nous pourrons placer selon nos choix (boutons modulaires) pour notre prototype projet pour chaque type des boutons d'une manette PS4. Ces modules devrons être connectés à la console et interconnectés. Le tout sera lié à une application Android. Suite à quelques recherches et nos analyses, nous avons décidé les points suivants :&lt;br /&gt;
&lt;br /&gt;
- On commencera avec 2 modules et on les multipliera par la suite. &lt;br /&gt;
- Les premiers tests sont réalisés avec des boutons petits pour assurer leur caractéristique &amp;quot;modulaires&amp;quot;, par la suite nous pourrons ajouter des capuchons de taille plus importante (imprimante 3D ou achat)&lt;br /&gt;
- Conception modules : réalisation de carte avec un microcontrôleur atmega328 programmable pour chaque module (anticiper le module Bluetooth) &lt;br /&gt;
- Projet en 2 parties : prototype filaire et prototype Bluetooth&lt;br /&gt;
# Prototype filaire : connexions entre les modules et la RPi3 en SPI, connexion Rpi3-PS4 en Bluetooth, avec l'application en filaire à la RPi3&lt;br /&gt;
# Prototype Bluetooth: connexion Bluetooth entre modules-RPi3-PS4-apllication&lt;br /&gt;
&lt;br /&gt;
[[Fichier: structuremanette.png||center|400px|Concept manette modulable]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 1&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous nous sommes concentrés les recherches afin de définir clairement le cahier des charges technique. Il s'agit des réalisations à mettre en œuvre pour les inter-connexions des éléments de la manette.&lt;br /&gt;
Ainsi, nous avons fait des recherches sur :&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI entre les modules (Atmega328p) et la RPi3===&lt;br /&gt;
&lt;br /&gt;
SPI: Serial périphérique interface BUS&lt;br /&gt;
&lt;br /&gt;
[[Fichier: yWGmW.png||right|200px|Concept manette modulable]]&lt;br /&gt;
Comme indiqué sur l'image ci-dessus, la Raspberry pi 3  peut communiquer en SPI avec ses broches CS0 (24), CS1 (26), SCLK (23), MISO (21), MOSI (19). Celles-ci permettent de communiquer avec un ou plusieurs esclaves (dans notre cas, des Atmega328p) en reliant directement les broches concernées de la RPi3 à celles des composants esclaves.&lt;br /&gt;
Chaque broche CS0 (24) ou CS1 (26) ne peut être connectée qu'à l'entrée SS (aussi appelé CS) d'un seul esclave.&lt;br /&gt;
C'est a dire que chaque CS est lié à un esclave afin de choisir avec lequel la communication est établie à un moment donné, et les MISO sont reliées entre elles en cascade, de même pour les SCLK et les MOSI. On peut noter que le maître impose la fréquence d’horloge et sélectionne l’esclave auquel les données sont envoyées.  8 MHz est le plus rapide supportable a 3,3V&lt;br /&gt;
&lt;br /&gt;
[[Fichier: fonctionnementSPI.png||right|200px|Connexion SPI multi-esclaves]]&lt;br /&gt;
&lt;br /&gt;
Voici un schéma du fonctionnement souhaité : &lt;br /&gt;
&lt;br /&gt;
Comme nous souhaitons avoir 5 modules environ il nous faudra rajouter un composant en plus afin d'augmenter les possibilités de sélection, par exemple des démultiplexeurs.&lt;br /&gt;
Dans un premier temps nous essaierons avec 2 esclaves, puis on augmentera le nombre. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Connexion Bluetooth PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Les recherches portent également sur la connexion entre la manette PS4 et la console. Elles concernent le protocole de communication via Bluetooth&lt;br /&gt;
&lt;br /&gt;
Caracteristique pour la PS4:  Bluetooth®v4.0, Qualcomm Atheros AR3002 Buetooth LE: 2,4-2,5 GHz  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caracteristique de la connexion : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Vitesse de transmission &amp;gt;&amp;gt; 3 Mbit/s   8N1 &lt;br /&gt;
*Relevé tous les 1.3 millisecond (peut-être) &lt;br /&gt;
*Chaque manette à une adresse unique BD_ADDR qui correspond à l’adresse MAC de la carte Réseau&lt;br /&gt;
*Protocole de détection est le SDP basé sur une emission reception PDU&lt;br /&gt;
*L’Attribut ID est representer en TLV Type Length Value &lt;br /&gt;
*Communication HCI ACL Data Packet &lt;br /&gt;
&lt;br /&gt;
===Rélisation des cartes électroniques===&lt;br /&gt;
&lt;br /&gt;
matériel nécessaire pour un PCB : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*breadboard&lt;br /&gt;
*câbles&lt;br /&gt;
*1 x 10k Ohm résistance&lt;br /&gt;
*Quartz 16Mhz clock crystal&lt;br /&gt;
*2 x 22 pF capaciteurs&lt;br /&gt;
*Atmega328P-PU&lt;br /&gt;
&lt;br /&gt;
Ressources: &lt;br /&gt;
[[https://www.arduino.cc/en/Main/Standalone]]&lt;br /&gt;
[[http://www.eprojectszone.com/atmega-328-pu-standalone/]]&lt;br /&gt;
[[https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 2&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la semaine deux et durant la séance, nous avons continué et approfondie nos recherches sur le projet. Nous avons pu ainsi affiner nos taches de réalisation et donc notre cahier des charges.&lt;br /&gt;
&lt;br /&gt;
===Connexion aux modules: SPI et Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Green&amp;quot;&amp;gt; CORRIGER&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
voir https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018#Configuration_du_syst.C3.A8me_embarqu.C3.A9&lt;br /&gt;
&lt;br /&gt;
(sudo apt-get install pi-bluetooth)&lt;br /&gt;
&lt;br /&gt;
''connexion sur la raspberry par ssh:''&lt;br /&gt;
 su&lt;br /&gt;
 update-rc.d ssh enable&lt;br /&gt;
 invoke-rc.d ssh start &lt;br /&gt;
 ssh pi@172.26.79.1XX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''bluetooth''&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
 agent on&lt;br /&gt;
 default-agent&lt;br /&gt;
 scan on&lt;br /&gt;
 pair [device Bluetooth address]  (exemple: pair XX:XX:XX:XX:XX:XX )&lt;br /&gt;
&lt;br /&gt;
''NOUVELLE REFLEXION : Connexion SPI entre les modules (Atmega328p) et la RPi3 --&amp;gt; MODULES BLUETOOTH''&lt;br /&gt;
&lt;br /&gt;
Si multi-esclaves= plusieurs modules : &lt;br /&gt;
Il faut ajouter des sélections pour les SPI → démultiplexeurs OU ne pas utiliser les CS0 et CS1, et plutôt des pins entrée/sortie de la RPi3 lié au SS comme ça on choisit direct le module esclave voulu.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' Nous avons étudié à nouveau la datasheet de notre module bluetooth nrf de Nordik. Le module bluetooth comporte  déjà un microprocesseur !&lt;br /&gt;
Un module plutôt peut donc jouer le rôle de notre atmega328p. Il n'y a alors pas besoin de réaliser des cartes électroniques de type arduino standalone. Nos PCB regrouperont alors uniquement l'alimentation, un actionneur (bouton, joystick), le module bluetooth et les broches de connexion si besoin... &lt;br /&gt;
&lt;br /&gt;
Cette séance nous a alors permise de revoir entièrement le matériel nécessaire. Notre liste de matériel nous semble alors plus réfléchie et limitée au nécessaire. &lt;br /&gt;
&lt;br /&gt;
===Connexion Bluetooth PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Suite à nos recherches de la semaine précédente, nous avons sélectionné deux sites bien renseignés : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;SITES&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ils nous ont permis de comprendre la communication entre la manette et la console. En effet, ils nous expliquent les échanges de trames Bluetooth. &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;EXPLICATIONS 1 exemple &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 3 : Début premier prototype&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI RPi3-Arduino===&lt;br /&gt;
&lt;br /&gt;
Comme vu durant les semaines précédentes, nous souhaitons réaliser une connexion Multi-esclaves en SPI entre la Raspberry pi et plusieurs modules.&lt;br /&gt;
Cette semaine nous avons vu que la réalisation de notre premier prototype doit aller vite. Il ne nous est pas nécessaire d’attendre les modules bluetooth si il nous faut dans cette partie uniquement utiliser son microprocesseur. Ainsi pour chaque module nous utilisons une arduino UNO. Nous réaliserons les programmes en C afin de pouvoir les réutiliser avec les modules bluetooth par la suite. &lt;br /&gt;
Une fois la connexion réalisable nous adapterons les programmes aux modules bluetooth Nordik. En effet, ceux-ci comporte déjà un microprocesseur, le module peut jouer le rôle de notre atmega328p. Il n'y a aurait alors pas besoin de réaliser des cartes électroniques arduino standalone sur PCB, mais directement des cartes électronique avec le module et le module voulu (bouton, joystick...) et l'alimentation. &lt;br /&gt;
Durant la séance nous avons alors revu la liste de matériel nécessaire. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: prototype1.jpeg||center|600px|connexion filaire prototype 1 filaire arduino]]&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous avons recherches des exemples de codes et de librairies pour Arduino SPI et RaspberryPI SPI. &lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé le programme de la connexion SPI pour l'arduino et récupéré les bibliothéques SPI.h avec SPI.c. Nous nous sommes alors concentrer à les comprendre, pour pouvoir l'utiliser. &lt;br /&gt;
&lt;br /&gt;
===Réalisation du projet Git===&lt;br /&gt;
&lt;br /&gt;
Création du projet IMA4_Projet35_ManetteModulable sur Git et partage de celui-ci. &lt;br /&gt;
Les premiers dossier crées cette la séance :&lt;br /&gt;
-Arduino (connexion SPI arduino) : ProtoSpi.c + dossier librairie SPI + Makefile&lt;br /&gt;
-RPI (dossier codes pour Rpi) &lt;br /&gt;
-Readme.md&lt;br /&gt;
Ces dossiers seront amenés à être modifiés au cours des séances. &lt;br /&gt;
&lt;br /&gt;
===Protocole Bluetooth PS4===&lt;br /&gt;
&lt;br /&gt;
Suite à l'étude des trames Bluetooth, on a pu voir que ces dernières étaient incomplètes. Le modèle de communication étant propriétaire, on n'y a pas accès directement. Cela nous empêche donc de mettre en oeuvre cette communication. &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt; Déveloper&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On a décidé de commencer par une connexion USB (pour laquelle on dispose de toutes les informations) celle-ci étant plus complète.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 4&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Pour le prototype 1 FILAIRE nous réaliserons les étapes suivantes :&lt;br /&gt;
&lt;br /&gt;
#Réalisation du programme SPI pour arduino&lt;br /&gt;
#Réalisation du programme SPI pour la RPi&lt;br /&gt;
#Connexion USB avec la PS4 ou ordinateur&lt;br /&gt;
#Réalisation de cartes électroniques atmega328p-pu standalone (remplacer les Arduinos) &lt;br /&gt;
#Remplacer les &amp;quot;PCB arduino&amp;quot; par le module bluetooth et adapter la connexion&lt;br /&gt;
#Conception 3D de la délimitation 1 axe pour le joystick &amp;quot;gâchette&amp;quot;&lt;br /&gt;
#Réalisation de l'application Androïde.&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées nous auront alors une preuve de concept filaire et nous pourrons alors passer à une connexion bluetooth. &lt;br /&gt;
Le passage à la connexion bluetooth sera le deuxième prototype et le cas idéal de la réalisation de la manette modulable. &lt;br /&gt;
&lt;br /&gt;
===Mise à jour Matériel===&lt;br /&gt;
&lt;br /&gt;
- Modéliser les boutons gâchettes L1/2 R1/2 de la manette PS4 (boutons sensibles à la pression) --&amp;gt; un joystick dont nous bloquerons un axe (imprimante 3D)&lt;br /&gt;
- Remplacer la RPi 3 par une Rpi zero W qui nous permettrait de réaliser plus facilement une connexion USB tout en gardant l'avantage du bluetooth. &lt;br /&gt;
- Choix de l’alimentation pour les 5 modules Bluetooth: nécessitent 3V --&amp;gt;  utiliser des piles rechargeables 1,2V AAA plutôt que piles rondes 3V.&lt;br /&gt;
&lt;br /&gt;
Nous avons également besoin du matériel cité en semaine 1 pour réaliser des cartes électroniques atmega328p-pu standalone. ( nous revenons alors sur les décisions de la semaine 3)&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI RPi3-Arduino===&lt;br /&gt;
 &lt;br /&gt;
Montage Raspberrypi et 1 arduino en PSI + 1 bouton + 1 led.&lt;br /&gt;
Voici le choix des branchements :&lt;br /&gt;
&lt;br /&gt;
 MASTER = RPi   &lt;br /&gt;
 SLAVE= Arduino&lt;br /&gt;
&lt;br /&gt;
'''SPI sur Arduino:'''&lt;br /&gt;
 MOSI -&amp;gt; GPIO11 //PB3  //master OUT to the slave IN&lt;br /&gt;
 MISO -&amp;gt; GPIO12 //PB4 //slave OUT to the master IN&lt;br /&gt;
 SCLK -&amp;gt; GPIO13 //PB5 //serial clock&lt;br /&gt;
 SS -&amp;gt; GPIO10   //PB2  //slave select&lt;br /&gt;
'''Led, bouton et autre...'''&lt;br /&gt;
 LED --&amp;gt; GPIO6  //PD6&lt;br /&gt;
 GND&lt;br /&gt;
 +5V (if required)&lt;br /&gt;
'''SPI sur la Raspberry Pi'''&lt;br /&gt;
 SPIO MOSI -&amp;gt; PIN19 &lt;br /&gt;
 SPIO MISO -&amp;gt; PIN21&lt;br /&gt;
 SCLK -&amp;gt; PIN23&lt;br /&gt;
 SPIO CS0 -&amp;gt; PIN24&lt;br /&gt;
&lt;br /&gt;
Continuation du code pour faire clignoter Led branchée à une arduino depuis la Rpi, en connexion SPI.&lt;br /&gt;
&lt;br /&gt;
===Connexion USB PS4-RPi3===&lt;br /&gt;
Durant cette, nous avons regardé comment faire cohabiter bluetooth, Application Androïd, USB, PS4, SPI et les module. &lt;br /&gt;
&lt;br /&gt;
Il est alors important de savoir comment utiliser le port série sur la RPi3, soit utiliser les UART. &lt;br /&gt;
&lt;br /&gt;
Nous avons réaliser qu'il n'était pas aussi simple d'utiliser le port serie USB de la Raspberry Pi 3, en effet le SoC est un BCM2837 . &lt;br /&gt;
De plus nous ne pouvons pas utiliser le même port pour l'alimentation et la connexion. &lt;br /&gt;
&lt;br /&gt;
Il nous faut alors trouver une alternative ou une solution à ce problème.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 5&amp;lt;/span&amp;gt;==&lt;br /&gt;
 &lt;br /&gt;
===Programmation: Réflexion définitives prototypes filaire ===&lt;br /&gt;
&lt;br /&gt;
La semaine dernière, nous avons rencontré une difficulté liée aux ports séries UART. &lt;br /&gt;
Une des solutions à cette difficulté serait d'utiliser une RPi ZERO W à défaut d'une RPi 3. On pourrait alors avoir un port d'alimentation avec connexion USB mais également retrouver la connexion Bluetooth dont nous avons besoin.&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous avons continué la réalisation du prototype filaire par l'avancé du code SPI ainsi que les recherches concernant le protocole PS4. &lt;br /&gt;
&lt;br /&gt;
La Raspberry Pi zero W peut également être utile pour la connexion entre la PS4 et les différents modules en jouant le rôle d'intermédiaire. Nous avons alors commandé une Rpi zero W pour notre projet. &lt;br /&gt;
Cela nous permet d'utiliser le bluetooth mais  également de réaliser un réseau local sans fil. Ce qui peut être pratique dans la mesure où notre projet est modulable. &lt;br /&gt;
En attendant la réception de la commande, nous nous sommes penché sur les recherches pour les programmes et la configuration nécessaire à l'utilisation de la RPi zero W.&lt;br /&gt;
&lt;br /&gt;
===Electronique===&lt;br /&gt;
&lt;br /&gt;
[[Fichier: bouton_c1.jpg|100px|thumb|left|PCB bouton]]&lt;br /&gt;
[[Fichier: arduinobb.jpg|200px|thumb|right|atmega328p-pu branchement test]]&lt;br /&gt;
&lt;br /&gt;
Du coté électronique, nous avons réalisé sur fritzing certaines cartes électroniques. Les Arduino Uno servant actuellement de test, seront remplacées par des PCB atmega328p-pu standalone avec des broches permettant les branchements nécessaires SPI ou encore aux modules &amp;quot;boutons/joystick&amp;quot;. Pour les boutons, nous avons également réalisé un pcb afin de faciliter les branchements.  &lt;br /&gt;
&lt;br /&gt;
Il nous faut alors également une 3eme carte qui nous sera nécessaire pour la réalisation du prototype sans fil. Dans notre liste de matériel, nous avons des composants nrf52810 bluetooth, ceci doivent être soudé avec les capacités de protection mais également des broches de communication. Nous avons alors commencé cette carte électronique sur Altium avec le fichier  projet PCB du distributeur à modifier.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: Arduino_c1.jpg|100px|thumb|center|PCB atmega328p-pu]]&lt;br /&gt;
&lt;br /&gt;
=== Construction 3D ===&lt;br /&gt;
&lt;br /&gt;
Enfin, nous avons commencé à réaliser des boîtiers 3D pour certains modules. Par exemple, comme nous l'avions vu précédemment, un des joysticks servira de bouton-gâchette en utilisant un seul de ses axes. Il nous faut alors réaliser un boitier qui bloque l'un des axes, mais également une tige qui nous permettra de pousser le joystick de manière simplifiée.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 6&amp;lt;/span&amp;gt;==&lt;br /&gt;
 &lt;br /&gt;
===Programmation: configuration RPi Zero W ===&lt;br /&gt;
&lt;br /&gt;
Ayant reçu la Raspberry Pi zero W en début de semaine, nous nous sommes concentrés sur la programmation et la configuration de celle-ci. &lt;br /&gt;
&lt;br /&gt;
===Electronique: PCB nrf52810===&lt;br /&gt;
&lt;br /&gt;
Les cartes réalisées en semaine 5 sont validées et en attente de réalisation. &lt;br /&gt;
&lt;br /&gt;
Cette semaine a permis la réalisation et la finalisation de la carte électronique nrf52810. Il nous a fallu recommencé cette carte deux fois. En effet, une fois finie sur Altium nous avons réalisé que les empreintes des CMS sur PCB fourni par le constructeur ne correspondent pas au matériel CMS de l'école. Face à cette inattention de notre part, nous avons décidé de refaire entièrement la carte électronique sur fritzing. Ayant la datasheet et des plans d'inspiration PCB, nous avons pu refaire la carte entièrement. &lt;br /&gt;
Sur celle-ci nous avons ajouté des broches de connexion au besoin, un branchement Jtag et ICSP pour la programmation et la connexion SPI. &lt;br /&gt;
La carte est en attente de validation, puis validation.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: nrf52810_circuit2.jpg||center|400px|PCB carte nrf52810]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Révision matériel ===&lt;br /&gt;
&lt;br /&gt;
Pour la réalisation de nos composants électroniques, il nous a fallu faire une révision des composants disponibles à l'école:&lt;br /&gt;
(les quantités indiquées ci-dessous pourront être augmentée si nécessaire,pour avoir dans l'idéal un module de chaque type de la manette, ici on se concentre sur BOUTON et JOYSTICK)&lt;br /&gt;
&lt;br /&gt;
'''Cartes Arduino:'''&lt;br /&gt;
* 4 capacite 22pF traversantes&lt;br /&gt;
* 2 resistances 10 kOhm traversantes (à récupérer)&lt;br /&gt;
* 2 oscillateurs quartz 16MHz traversante&lt;br /&gt;
* 2 atmega328p-pu et support&lt;br /&gt;
&lt;br /&gt;
'''Cartes nrf52810'''&lt;br /&gt;
* 6 capacités 100nF 0603&lt;br /&gt;
* 6 capacités 12pF 0603&lt;br /&gt;
* 2 capacités 4,7pF 0603&lt;br /&gt;
* 2 capacités 1µF 0603&lt;br /&gt;
* 2 capacités 100pF=0,1nF 0603 (à récupérer)&lt;br /&gt;
* 2 capacités 0,8pF 0603 (commande en cours)&lt;br /&gt;
* 2 inductance 3,9nH 0603 (commande en cours)&lt;br /&gt;
* 2 oscillateur quartz 32 MHz &lt;br /&gt;
&lt;br /&gt;
'''Cartes modules Boutons'''&lt;br /&gt;
* un sachet de broches mâles (qu'on utilisera également pour les autres cartes, à récupérer/acheté) &lt;br /&gt;
&lt;br /&gt;
Nous avons alors mis-à-jour la liste de composant située plus haut, ainsi que celle de la page IMA4 2017/2018 [https://projets-ima.plil.fr/mediawiki/index.php/Projets_IMA4_SC_%26_SA_2017/2018]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 7&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Programmation: connexion wifi RPi Zero W et Bootloader sur Atmega328p-pu ===&lt;br /&gt;
&lt;br /&gt;
Pendant cette semaine, nous avons continué la programmation et la configuration des Raspberry Pi 3 et Zero W afin de les utiliser en connexion Wifi. &lt;br /&gt;
&lt;br /&gt;
Nous avons également continuer les programmes de récupération de données : état des boutons et du joystick. Ces programmes sont appliqué sur l'atmega328p-pu standalone sur la plaque d'essai en attendant que le PCB soit opérationnel.&lt;br /&gt;
Pour pouvoir programmer l'atemega328p-pu comme une arduino UNO, il nous faut suivre plusieurs étapes :&lt;br /&gt;
&lt;br /&gt;
'''1.Flasher le Bootloader'''&lt;br /&gt;
Nous avons 2 Atmega328p-pu neufs, ainsi il nous faut flasher le bootloader sur chacun d'eux afin de pouvoir les utiliser et les programmer sur une breadboard dans un montage minimaliste arduino-standalone. &lt;br /&gt;
Pour cela, on peut utiliser une carte arduino UNO. On vérifie le port et le type de carte sélectionnés dans le menu &amp;gt;Outils. Sur cette carte on téléverse le fichier arduinoISP.ino qui se trouve dans les exemples en étant en progrmamateur AVr ISP mkll (&amp;gt;outils&amp;gt;programmateur) &lt;br /&gt;
Puis on met l'atmega328p-pu qui nous intéresse sur le suppor socket de la carte. On change de nouveau le programmateur pour Arduino as ISP et on fait &amp;gt;tools&amp;gt;burn bootloader, soit &amp;gt;graver la sequence d'initialisation.&lt;br /&gt;
Ces étapes faites, on peut retirer notre microcontroleur et le replacer correctement dans le montage. &lt;br /&gt;
&lt;br /&gt;
'''2.Programmation atmega328 sur breadboard'''&lt;br /&gt;
Une fois l'atmega328p-pu préparé, on peut le programmer. On peut le faire simplement à l'aide de la carte arduino UNO utilisée précédemment.On branche les Tx et Rx en commun ainsi que le reset, le GND et le VCC.&lt;br /&gt;
&lt;br /&gt;
Nous avons réaliser des codes basiques tels que le clignotement d'une led rouge ou encore l'affichage de &amp;quot;hello world&amp;quot; sur le moniteur série pour vérifier la bonne fonctionnalité du montage. Cela fait nous avons pu écrire sous Arduino IDE le code de lecture des états.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: montage_BB_test.jpg||left|200px|programmation modules arduino sur breadboard]]&lt;br /&gt;
&lt;br /&gt;
===Electronique : soudure carte de test modules ===&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons déja vu lors de la réalisation des PCB, si l'on souhaite programmer un atmega328p-pu en bootloader, le montage est simple. Il peut être minimaliste en utilisant une arduino UNO, un atmega328, une breadboard et 3 composants: 1 quartz 16MHZ crystal, 1 résistance 10kOhm et 2 capacitors céramiques de 22pF.&lt;br /&gt;
Durant la semaine 7, nous avons soudé les composants traversants de la carte électronique correspondant à ce montage ainsi que le PCB du bouton.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 8&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Programmation ===&lt;br /&gt;
&lt;br /&gt;
===Electronique : Correction soudure et soudure CMS===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avions souhaité programmer la carte électronique atmega328p-pu. Cependant, nous avons réaliser que nous avions fait une erreur lors de l'envoie du PCB à la production. En effet, celui-ci avait été fait en Top sur le logiciel Fritzing et non en Bottom. Hors nous avions soudé les composants (durant la semaine 7) comme pour un circuit imprimé en bottom, l'atmega328p-pu se retrouve alors inversé par rapport aux pistes. &lt;br /&gt;
Comme solution, nous avons choisi de souder un deuxième support pour l'atmega328 de l'autre coté de la carte avant de la refaire au propre. En effet, avant de la refaire il nous faut vérifier si la carte est bien programmable. &lt;br /&gt;
Une fois cela fait nous avions pu programmer la carte mais, nous avions également réalisé la pin 2 de l'atmega328 était prise par le bouton poussoir. Or, nous avons besoin des pin 2 et 3 pour le RX et TX permettant la programmation de l'atmega à partir d'une arduino, les pistes branchement RX-TX n'ont également pas été prévus pour le téléversement des programmes sur la carte. Il nous faut alors couper une piste et souder des câbles pour utiliser toutes les pistes souhaitées. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: correction_proto_PCB.jpg||right|300px|PCB arduino correction]]&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons également souhaité souder les CMS et le composant bluetooth nrf52810 sur la carte imprimé et reçu lors de la semaine 7. Pour cela, nous avons convenu de travailler dans la C202 durant la séance du mercredi. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: PCB_nrf52810.jpg||left|400px|carte electroniques imprimées]]&lt;br /&gt;
&lt;br /&gt;
====Comment souder des CMS ?====&lt;br /&gt;
&lt;br /&gt;
les CMS sont des composants montés en surface c'est à dire qu'ils sont montés du même côté que les pistes cuivrées (à l'opposé des composants traversants) et sont de petite tailles souvent de l'ordre du millimètre. La taille est déterminée par 4 chiffres : les 2 premiers pour la longueur et les 2 derniers pour la largeur. On a du 1206,0805,0603 ou encore 0402. Il est même possible de trouver plus petit. A l'école nous utilisons souvent du 0603, c'est le cas de nos composants.&lt;br /&gt;
Pour souder des CMS 0603, il nous faut utiliser une autre méthode qui n'est pas le fer à souder :&lt;br /&gt;
# Préparer la veille la pâte à braser la veille (dans une seringue)&lt;br /&gt;
# Gommer la carte pour éviter l'oxydation (attention à ne pas retirer les miettes de gomme en soufflant dessus) &lt;br /&gt;
# Appliquer avec la seringue la pâte sur les empreintes et piste souhaitées. Pour les endroits difficile à atteindre ou avec 2 pistes proches les unes des autres, il est possible de mettre la même goutte de pâte sur les 2 pistes. Cela de causera pas de court-circuit par la suite. En effet, la pâte est composée d’alliage qui sous la chaleur va se fluidifier et se coller uniquement aux pistes métallique. Le reste fondera sous la chaleur du four.&lt;br /&gt;
# Appliquer les CMS sur la pâte au fur et à mesure (attention ! ne jamais toucher les CMS avec les doigts, tjrs utiliser une pince)&lt;br /&gt;
# Mettre au four&lt;br /&gt;
&lt;br /&gt;
====Bilan soudure nrf52810====&lt;br /&gt;
&lt;br /&gt;
Cependant, une fois le matériel nécessaire préparé, et la pâte mise sur les pistes souhaitées, au moment de déposer le composant, nous avons réalisé que celui-ci était beaucoup plus petit que l'empreinte sur le PCB. Il s'agit d'un composant boitier QFN48. Fritzing ne proposant au plus proche des boitiers QFN24 ou LQFP48, celui-ci a basculé automatiquement pour un boitier LQFN48, de dimension plus grande. Face à ce manque de vigilance, nous avions cependant commencer par le nrf52810 (composant concerné) évitant ainsi de gaspiller d'autres CMS. &lt;br /&gt;
Nous avons souhaité refaire la carte sous Altium à partir des fichiers fournis par le concepteur (chose que nous avons commencé à faire aux alentours de la semaine 5) &lt;br /&gt;
Après la réalisation du schématic, et de la modification des empreintes de capacités, inductances et autres composants de 0402 à 0603. Notre matériel ne permettant que des empreintes 0603.&lt;br /&gt;
 &lt;br /&gt;
Lors du routage, une erreur de chevauchement des pistes est notifiée par Altium au niveau du nrf52810. Celles-ci ne présentent pas d'angles et sont déjà de taille 8mil, il nous faut alors passer les pistes en 6mil. Mais 8mil est la taille minimale pour la production à Polytech, nous avons regardé pour envoyer les cartes à faire ailleurs mais le 6mil n'est pas beaucoup conseillé. De plus, il n'est peut-être pas judicieux de continuer avec le composant microcontrôleur-bluetooth Nrf52810 qui prend du temps, donc la carte est difficilement réalisable et peut-être très long à programmer. &lt;br /&gt;
&lt;br /&gt;
Ainsi en cette fin de semaine, nous avons décider face à l'avancer du projet de laisser les nrf52810 de coté et de les remplacer par des modules sans fils plus simples d'utilisation et complets. Ainsi nous aurions plus de chance d'avoir une connexion sans fils entre les modules. Nous pourrions par exemples utiliser des Xbee, des modules Rf...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 9&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation: PS4 et 1er Test SPI sur atmega328p====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
Une carte PCB arduino fonctionnant, nous pouvons la programme pour simuler un module. Celle-ci a été designée afin de s'adapter au module que l'on souhaite. Il suffit de brancher le bouton, le joystick ou autre élèment de manette souhaité.&lt;br /&gt;
Cette semaine ci, nous avons alors configurer la partie communication SPI pour l'arduino.&lt;br /&gt;
&lt;br /&gt;
'''Que voulons-nous faire avec les atmegas ?''' &lt;br /&gt;
Les cartes électroniques atmega328p vont nous permettre de recevoir les requêtes SPI envoyées par la raspberry pi et d'y répondre. La Raspberry enverra un message, par exemple &amp;quot;1&amp;quot;, et l'Arduino lira alors l'état du module qui lui est connecté. Une fois l'état récupéré elle le renvoie à la raspberry pi.&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons programmé l'atmega afin qu'il soit en esclave, qu'il reçoive un de la RPi &amp;quot;1&amp;quot; et retourne une valeur sauvegardé &amp;quot;int envoi&amp;quot;. Nous avons également commencé les tests pour la lecture de l'état d'un bouton (d'après les tests réalisés les semaines précédentes).&lt;br /&gt;
&lt;br /&gt;
'''Code'''&lt;br /&gt;
Comme nous l'avons vu précedement lors de nos recherches (semaines 1 à 4) : &lt;br /&gt;
La communication SPI nécessite l'utilisation des pins: &lt;br /&gt;
&lt;br /&gt;
MOSI -&amp;gt; GPIO11 //PB3  //master OUT to the slave IN&lt;br /&gt;
MISO -&amp;gt; GPIO12 //PB4 //slave OUT to the master IN&lt;br /&gt;
SCLK -&amp;gt; GPIO13 //PB5 //serial clock&lt;br /&gt;
SS -&amp;gt; GPIO10   //PB2  //slave select&lt;br /&gt;
&lt;br /&gt;
Il faut également paramétrer l'atmega328p en Slave. On note que dans un premier temps, le programme sera codé avec l'arduino IDE (fichiers .ino). Une fois l'ensemble SPI RaspberryPi-Arduino fonctionnant, on remplacera ces codes par du langage C ou C++.&lt;br /&gt;
&lt;br /&gt;
Pour faire la connexion SPI sur l'atmega328p,  on utilise la librairie arduino SPI.h, on a alors directement les fonctions nécessaires intervenant sur les registres souhaités : SPCR (spi control register), SPSR (spi status register) et SPDR (spi data register). &lt;br /&gt;
 &lt;br /&gt;
  #include &amp;lt;SPI.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il est important d'initialise d'abord le setup et on active le port série pour pourvoir utiliser le moniteur série. (Cela servira à verifier la valeur envoyée par la RPi) &lt;br /&gt;
&lt;br /&gt;
 void setup (void)&lt;br /&gt;
 {&lt;br /&gt;
   Serial.begin (9600);  &lt;br /&gt;
   pinMode(MISO, OUTPUT);  //configuration en esclave *master in slave out*&lt;br /&gt;
   pinMode(buttonPin,INPUT);  //config pin bouton&lt;br /&gt;
   // turn on SPI in slave mode&lt;br /&gt;
   SPCR |= _BV(SPE);&lt;br /&gt;
   // preparation interruptions&lt;br /&gt;
   pos = 0;   // buffer empty&lt;br /&gt;
   process_it = false;&lt;br /&gt;
   // activation interruptions&lt;br /&gt;
   SPI.attachInterrupt();&lt;br /&gt;
 }  &lt;br /&gt;
 &lt;br /&gt;
On oublie pas de déclarer les interruptions afin de bien lire la requête reçue. &lt;br /&gt;
 &lt;br /&gt;
// SPI interrupt routine&lt;br /&gt;
ISR (SPI_STC_vect)&lt;br /&gt;
{&lt;br /&gt;
  byte c = SPDR;  // grab byte from SPI Data Register&lt;br /&gt;
  // add to buffer if room&lt;br /&gt;
  if (pos &amp;lt; sizeof buf)&lt;br /&gt;
    {&lt;br /&gt;
    buf [pos++] = c;&lt;br /&gt;
    // example: newline means time to process buffer&lt;br /&gt;
    if (c == '\n')&lt;br /&gt;
      process_it = true;&lt;br /&gt;
    }  // end of room available&lt;br /&gt;
}  // end of interrupt routine SPI_STC_vect&lt;br /&gt;
&lt;br /&gt;
Dans la loop main, on traite la requête et on utilise '''SPI.transfer(envoi);''' pour transferer à la RPi les données souhaitées. &lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons également commencé des programmes de test SPI pour la RPi. Il s'agit principalement de programmes de tests tout faits permettant de vérifier la connexion entre cette dernière et l'arduino. Par exemple, la RPI envoie &amp;quot;bonjour&amp;quot; et l'arduino lui retourne ce qu'elle reçoit, soit &amp;quot;bonjour&amp;quot;. Sans succés alors. &lt;br /&gt;
&lt;br /&gt;
====Electronique : Fritzing révision====&lt;br /&gt;
&lt;br /&gt;
Lors de la semaine, le modèle PCB de la carte arduino a été réalisé de nouveau sous fritzing avec les broches et connections manquantes. Nous avons également revu la configuration du bouton reset  et ajouté une led d'état de l'alimentation. Nous avons ainsi envoyé deux cartes identiques à la réalisation.&lt;br /&gt;
La carte déjà soudée lors des derniers jours fonctionnant, elle nous sert de prototype de programmation. Nous pouvons ainsi avancer à la fois sur la programmation des modules mais aussi sur leur réalisation. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 10&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation : PS4 et SPI sur RPi====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Raspberry PI et SPI'''&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, pour la partie Atmega328p-Modules, nous nous sommes concentrés sur la programmation de la communication SPI avec la raspberry pi. Cette semaine a permis une étude plus approfondit sur le fonctionnement pour la RPi. &lt;br /&gt;
&lt;br /&gt;
On rappelle, comme vu des semaines 1 à 4, pour la RPI3 (tout comme la RPi Zero W) utilise les broches : SCLK (23), MISO(21), MOSI (19) et SPI CS0 (24), SPI CS1 (26). &lt;br /&gt;
On la programme en Master. A l'aide des fichiers tests d'inspiration, on pourra directement programmer la RPi en C. Lors de la réalisation du code, il y a 3 étapes : l'initialisation/parametrage en SPI pour être maître, l'envoie de la requête puis la réception de données en retour. &lt;br /&gt;
&lt;br /&gt;
Programmant en C, il ne faut pas oublier les librairies suivantes :&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;getopt.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;sys/ioctl.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/types.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/spi/spidev.h&amp;gt;   //pour SPI&lt;br /&gt;
&lt;br /&gt;
On va déclarer des variables globales permettant le paramétrage :&lt;br /&gt;
&lt;br /&gt;
 static const char *device = &amp;quot;/dev/spidev0.0&amp;quot;;  //si on veut CS0 pour atteindre notre SS&lt;br /&gt;
 static uint8_t mode;       //mode est par défaut à 0&lt;br /&gt;
 static uint8_t bits = 8;    //bits par mot échangé&lt;br /&gt;
 static uint32_t speed = 500000;  &lt;br /&gt;
 static uint16_t delay;&lt;br /&gt;
&lt;br /&gt;
Dans notre main, on ouvre le port (la connexion) au device souhaité,  on vérifie les paramètres (registres, connexions...) puis exécute la fonction transfer(fd). transfer(fd) transmet la requête et s'occupe de la réception. &lt;br /&gt;
&lt;br /&gt;
 fd = open(device, O_RDWR);&lt;br /&gt;
 transfer(fd);&lt;br /&gt;
 close(fd);&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 11&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation: PS4, SSH et tests SPI (RPi3&amp;amp;Atemga328p)====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Raspberry PI, Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
Afin de facilité la programmation en utilisant Ethernet, nous avons installer et configuré la RPi pour l'utiliser en SSH depuis les ordinateurs de la E306. En effet, SSH permet de se connecter à distance sur une machine en utilisant un compte utilisateur de la dite machine. En mettant ssh, on pourra directement agir sur les fichiers de la raspberry depuis un terminal de notre PC. Pour cela, on a d'abord vérifier l'adresse IP de notre raspberry pi : 172.26.145.106 avec un écran mais on peut aussi utiliser les commandes ip a et ifconfig. Puis activer le ssh sur la raspberry pi. &lt;br /&gt;
On modifie alors le fichier config.txt mais également etc/network/interfaces pour configurer la bonne interface Ethernet sur la raspberry pi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: configSSH_raspi.png||left|300px|config ssh ethernet]]&lt;br /&gt;
&lt;br /&gt;
Il nous suffit alors de taper la commande : ssh pi@172.26.145.106  pour accéder à notre RPi. &lt;br /&gt;
&lt;br /&gt;
Nous avons continué à réaliser la communication SPI avec des tests entre une arduino UNO et la RPI3. Nous avons commencé par des tests simples inspirés des études de deux semaines précédentes et modulés selon notre utilité.  &lt;br /&gt;
Nous arrivons alors à lire l'état envoyer &amp;quot;bonjour&amp;quot; et recevoir &amp;quot;ça va&amp;quot; ou encore &amp;quot;1&amp;quot; et recevoir &amp;quot;3&amp;quot;. Il faut noter que le SPI échange des trames, la RPI reçoit alors des hexadécimaux. &lt;br /&gt;
Nous avons alors continué pour recevoir l'état du bouton ou du joystick lors de l'envoie de &amp;quot;1&amp;quot; sur l'Arduino328p. La semaine prochaine nous testerons ces même codes fonctionnels sur les cartes atmeg327p. &lt;br /&gt;
&lt;br /&gt;
A la fin de cette semaine, nous avons alors des codes Arduino-SPI (.ino) et des codes Raspberry-SPI (.c) permettant l'échange de données. Le but est maintenant de l'adapter aux cartes imprimées et de le rendre pleinement fonctionnel pour plusieurs cartes à la fois, puis ajouter une boucle de vérification en continue jusqu'à une deuxième requête de la RPi.&lt;br /&gt;
&lt;br /&gt;
====Electronique: réalisation au propres des PCB modules====&lt;br /&gt;
&lt;br /&gt;
Suite à une nouvelle erreur de réalisation cartes électronique, nous avons  refait et renvoyé à nouveau les cartes imprimées atmega328p.&lt;br /&gt;
Nous les souhaitons au propre pour une version finale. Une fois celle-ci imprimées nous pourrons en avoir 3 , un pour chaque module. Les cartes étaient bien imprimées en bottom mais lors du passage des traversants de bottom à top, le logiciel ne les a pas fait miroiter. Par manque d'attention nous avons alors envoyé les fichiers gerber pour des cartes ayant les composants du même coté que la couche de cuivre. &lt;br /&gt;
Les cartes électroniques actuelles sont alors correctes et fonctionnelles mais difficile à souder. Pour eviter les erreurs et continuer sur des prototypes de carte nous préférons attendre en nous concentrant sur la programmation PSI de la Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 12&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Raspberry PI, Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
-  réflexion: penser à faire boucler sur l'arduino une fois la requête reçu, ça veut dire que la manette est ON et donc vérifier continuellement les modules sur chaque atmega.&lt;br /&gt;
- SPI raspberry pi - arduino recuperation état du bouton avec les cartes modules  (/!\ récuperation à faire dans une variable) &lt;br /&gt;
&lt;br /&gt;
-SSH perso &lt;br /&gt;
adresse Rasppi: 192.168.137.10&lt;br /&gt;
&lt;br /&gt;
====Electronique: Finalisation soudure Modules====&lt;br /&gt;
&lt;br /&gt;
Soudure au propre et finale d'une carte atmega328p et donc envoie pour la réalisation de 2 autres cartes similaires et récupération de matériel&lt;br /&gt;
Soudure des 2 autres cartes, + tests sur les états = fonctionnelles.&lt;br /&gt;
On a donc bien 3 cartes pour les 3 modules de types différents (1 bouton, 1 joystick, 1 gachette)&lt;br /&gt;
PCB pour les 2 joysticks (qui serviront de thumbstick et gachette)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 13 et plus&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
====Electronique====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
(à mettre rapport + git + drive)&lt;br /&gt;
&lt;br /&gt;
=Datasheets=&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=55386</id>
		<title>IMA4 2017/2018 P35</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=55386"/>
				<updated>2018-05-05T18:37:57Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : /* Connexion USB PS4-RPi3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Présentation générale: Manette modulable&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Description&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Tout le monde joue aux jeux vidéo cependant, les manettes ne sont pas adaptées aux personnes ayant un handicap pouvant toucher les bras ou les mains.&lt;br /&gt;
C’est le cas, de plusieurs patients dans les centres de soins et de rééducation.&lt;br /&gt;
&lt;br /&gt;
Pour ce projet IMA4, nous travaillerons avec le centre SSR (soin de suite et de réadaptation) Marc Sautelet de Villeneuve d’Ascq.&lt;br /&gt;
Un adolescent, patient de Marc Sautelet, est passionné par les jeux vidéo. En effet, ayant perdu la motricité d’une partie de son corps, il ne peut pas jouer à deux mains. Pour cela, il bloque la manette entre son épaule et son coude, usant de la mâchoire et des doigts pour contrôler les&lt;br /&gt;
joysticks et les boutons. Cet exercice peut s’avérer fatiguant et pénible.&lt;br /&gt;
&lt;br /&gt;
Ainsi, nous chercherons à concevoir une manette PS4 adaptée au handicap de l’adolescent. &lt;br /&gt;
Cette manette devra aussi être adaptée pour d’autres patients présentant également des handicaps moteurs. Ainsi nous prendrons pour cibles: tous les patients du centre voulant jouer; et non pas que les enfants et adolescents.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Membre du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Transley Gracias et Camille Saad&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Cible&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Patient présentant un handicap moteur&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Période du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
janvier 2018 - mai 2018&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Partenaire/Client&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Centre SSR Marc Sautelet à Villeneuve d'Ascq&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Objectifs&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ce projet a pour objectif de créer un prototype de manette qui puisse interagir avec la console PS4 et dont le paramétrage se fait à l’aide d’une application mobile et/ou web. Cette manette devra suivre les demandes du patient ainsi que des aides-soignantes du centre, dans la mesure du possible.&lt;br /&gt;
&lt;br /&gt;
Plus précisément, pour le premier prototype, nous mettrons en œuvre l'utilisation de quelques boutons spécifiques: &lt;br /&gt;
&lt;br /&gt;
* Un joystick (type L/R)&lt;br /&gt;
* Quelques boutons poussoirs (type Croix/Triangle/Carré/Rond/R1/L1/Start/...)&lt;br /&gt;
* Des boutons gâchettes progressives (type L2/R2).&lt;br /&gt;
&lt;br /&gt;
Le but serait donc dans un premier temps de rendre fonctionnel un bouton de chaque type, puis de les multiplier une fois cela fait. Tous ces boutons réunis constituent une manette fonctionnelle.Ainsi, la manette sera ajustable, c’est à dire qu’elle devra s’adapter aux différents handicaps moteurs possibles.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Analyse du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Positionnement par rapport à l'existant&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre prototype aura une présentation unique par rapport à l’existant. En effet, les concurrents et produits existants ciblent pour la majorité un seul handicap. Cela&lt;br /&gt;
engendre une solution fermée à beaucoup de patients. Notre projet propose une mobilité des mouvements et également un choix large dans la composition et le&lt;br /&gt;
design de notre manette.&lt;br /&gt;
Le patient n’est pas retreint à jouer à une seule main, à utiliser beaucoup de force...Il y a moins de technique dans la manipulation et on ne joue pas avec une&lt;br /&gt;
manette adaptée uniquement pour un droitier ou un gaucher. Cependant, cela nous limitera peut-être dans le choix possible des types de jeux. Tout comme les autres&lt;br /&gt;
manettes adapté, l’utilisateur nécessitera un peu d’entrainement.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du premier concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Jouer aux jeux vidéo à une main n’est pas une idée d’aujourd’hui. En 1990, Nintendo propose le Power Glove. Mais il tombe très rapidement aux oubliettes suite à des problèmes techniques.&lt;br /&gt;
&lt;br /&gt;
Un autre gant a fait son apparition quelques années plus tard. Celui-ci, plus technique, il faut office de manette Play Station: le Reality Quest Power Glove.Cette idée de manette-gant, permet de jouer à la PS avec une seule main, elle a était conçue et présentée pour les E3, un salon d’exposition de gaming.Le gant est conçu pour contrôler l’équivalent des 14 boutons et 2 joysticks à l’aide d’une seule main. La « manette » est fixée dans la pomme de la main. L’utilisateur contrôle les mouvements verticaux et horizontaux en pivotant le poignet, et utilisent les 4 boutons d’action principaux et L1/R1 avec les doigts. Les autres boutons sont accessibles par un seul bouton rond contrôlé par le pouce.&lt;br /&gt;
La manette est adaptée pour beaucoup de jeux vidéo, dont les plus simples sont les jeux de voitures et de combats (arcade).&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec ce gant&lt;br /&gt;
*Design obligatoirement droitier&lt;br /&gt;
*Les boutons de contrôle sont peu sensibles et peuvent nécessiter de la force&lt;br /&gt;
*Design compliqué et nécessitant beaucoup d’entrainement.&lt;br /&gt;
&lt;br /&gt;
;Lien : https://www.youtube.com/watch?v=qV0SxSJDCYg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du second concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ben Heck, de son vrai nom Benjamin J.Heckendorn, est un concepteur de mods de consoles (mods pour modification, soit « manettes modifiées ») et une star&lt;br /&gt;
du net grâce à ses vidéos tutoriels.Il propose alors énormément de produits adaptés ou dérivés en guise de manettes.&lt;br /&gt;
Parmi les mods qu’il a réalisé, il a modifié une manette de PS4 afin de la rendre accessible à une personne ne pouvant jouer qu’à une main. Pour cela, il a déplacé les boutons en respectant l’ergonomie de la main valide et modifie les connexions. Il peut lui arriver de rajouter des boutons pour en remplacer un autre. Il réalise également le même système avec la Xbox. Sur la photo ci-dessous, il a adapté la manette pour un droitier.&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec cette ma&lt;br /&gt;
*Design obligatoirement droitier ou gaucher, une modification = une manette= une personne&lt;br /&gt;
*Besoin obligé du pouce et de l’index, même si avantage : 3 doigts nécessaire.&lt;br /&gt;
&lt;br /&gt;
;Lien :: https://www.youtube.com/watch?v=LieHIscadjk&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Scénario d'usage du produit ou du concept envisagé&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
La technologie est ,aujourd’hui, omniprésente dans notre vie. Les consoles de jeux ont envahies les maisons avec plus de 7 personnes sur 10 jouant aux jeux vidéos sur consoles en France (chiffre de l’Express). 0,18% des français sont handicapés cela représente 12 millions de français. Dans ce chiffre, 13,4% des personnes ont un handicap moteur. En 2017, les grands groupes comme Sony ou Microsoft avec respectivement PlayStation et Xbox ne permettent pas à tout le monde de jouer avec une manette. Les manettes sont prévues pour des personnes ayant leurs membres valides, plus précisément les mains et les bras.&lt;br /&gt;
&lt;br /&gt;
Après un accident de voiture, un jeune garçon a perdu la motricité d’un côté du corps. Passionné de jeux vidéo, il se retrouve avec des difficultés à jouer sur sa console PS4. Ingénieux, il utilise la manette en la coinçant entre son épaule et le creux du cou. Usant de la mâchoire et de sa main valide pour contrôler les joysticks et les boutons. L'exercice étant inconfortable et fatiguant il eu l’idée de proposer à des futurs ingénieurs de lui proposer une manette adaptée à son handicap. &lt;br /&gt;
&lt;br /&gt;
Les deux pré-ingénieurs ,avec leur tuteur, ont une idée révolutionnaire : La manette modulable ! Elle permettrait au jeune garçon, ainsi que d’autres joueurs, de pouvoir continuer de s’amuser ou même de commencer à jouer au jeux sur console. &lt;br /&gt;
Cette manette aidera fortement dans les centre de rééducation pour faire passer le temps et donner du plaisir à des personnes qui ne peuvent plus s’amuser avec leur console traditionnelle. Elle pourra aussi ouvrir de nouvelles possibilités pour certaines personnes qui n’auraient jamais essayé jusqu'à présent.   &lt;br /&gt;
Comme son nom l'indique, elle sera modulaire et s'adaptera à différents handicaps. Accompagnée de son application d’initialisation, elle sera accessible aussi bien aux enfants, patients, parents et aides soignantes.&lt;br /&gt;
&lt;br /&gt;
Quelques mois plus tard...Le jeune patient fan de Need For Speed, peut maintenant piloter sa voiture comme un vrai professionnel grâce à l'un des joysticks qu'il utilisera avec sa main valide et il pourra accélérer à des vitesses folles à l'aide de boutons poussoirs au niveau de son pied valide et gagner la partie. Son ami venu lui rendre visite, pourra en lieu et place des aides soignantes configurer à l'aide de la tablette (portable) la manette du patient. &lt;br /&gt;
Si le patient change de jeu pour Tekken et que la configuration des modules ne lui convient plus, il peut interchanger les éléments de la manette selon son envie et son confort. Ainsi il peut faire sauter son personnage, il utilisera un module bouton supplémentaire, qu'il actionnera avec le poing.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Fonctionnement&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Suite à une analyse fonctionnelle et à la formulation de notre projet, nous avons pu définir le fonctionnement de notre système. Notre produit, la manette, doit être accessible d’après nos objectifs à différents types de handicaps moteurs. Ainsi, l’idéal serait de concevoir une manette modulable afin qu’elle puisse s’adapter à toutes les situations. Ce n’est plus au patient de s’adapter à la manette mais à la manette de s’adapter au patient.&lt;br /&gt;
Cela signifie que la manette sera, dans la limite du possible et de la sensibilité du corps du patient, composée de plusieurs parties dites « modules » comportant un ou plusieurs actionneurs (boutons, joysticks, gâchettes...). Ces modules seront déplaçables afin d’être utilisé avec différents membres du corps : un doigt, une main,&lt;br /&gt;
une jambe ou même un pied. Il suffira de les connectés entre eux suivant l’organisation souhaitée, le Gameplay du jeu ou en fonction du handicap. Le tout sera relié à une application.&lt;br /&gt;
L’application sera alors mise en place pour connecter les différentes parties du point de vue software pour prérégler la manette en fonction du patient. Il pourra alors choisir les boutons en fonction du jeu, de ses mouvements mais aussi choisir la sensibilité.&lt;br /&gt;
&lt;br /&gt;
L’application et les modules devront être intuitifs et faciles d’utilisation. De cette manière des utilisateurs non avertis dans le domaine informatique ou jeunes pourront eux-mêmes gérer les connexions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Réponse à la question difficile&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
'''Question : Comment interconnecter les différents modules de la manette ?'''&lt;br /&gt;
&lt;br /&gt;
Il nous faut pour ce projet interconnecter les modules modélisant la manette qui seront connectés à la consoles PS4 via une Raspberry Pi 3.&lt;br /&gt;
Le choix de la Raspberry Pi 3 nous permet d'utiliser son module Bluetooth pour communiquer avec la PS4, ce choix est plus adaptée au projet que du filaire.&lt;br /&gt;
Concernant l'interconnexion des modules, nous travaillerons en deux étapes &amp;quot;preuves concept&amp;quot; : filaire et sans fils (Bluetooth).&lt;br /&gt;
&lt;br /&gt;
'''Objectif 1 : Preuve concept filaire'''&lt;br /&gt;
&lt;br /&gt;
Dans cette première partie de projet, nous souhaitons avoir une 1ère preuve de prototype rapidement. Nous nous concentrerons alors sur la communication entre la RPi3 et la PS4 ainsi que sur la conception des modules. Pour les modules, nous réaliserons des cartes électronique pour chaque module avec un micro-contrôleur. La communication filaire nous permettra d'interconnecter les modules à la RPi3 avec un bus SPI.&lt;br /&gt;
&lt;br /&gt;
'''Objectif 2: preuve concept sans fils'''&lt;br /&gt;
&lt;br /&gt;
Une deuxième étape du projet est la réalisation de la solution idéale sans fils. Celle-ci pourra commencer à être développée petit à petit en parallèle avec l'objectif 1. Le but ici, est d'interconnecter les modules en Bluetooth. Nous avons choisi le Bluetooth pour garder une connexion commune sur toute la chaîne. &lt;br /&gt;
Nous rajouterons alors un module bluetooth à chaque module de la manette. &lt;br /&gt;
&lt;br /&gt;
'''Objectif 3: possibilité d'adapter les boutons (capuchon en 3D)'''&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Préparation du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Cahier des charges&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
''Chef de projet:'' Alexandre Boé  &amp;lt;br&amp;gt;&lt;br /&gt;
''Responsables:'' Xavier Redon, Thomas Vantroys &amp;lt;br&amp;gt;&lt;br /&gt;
''Partenariat:'' Marc Sautelet (non etablie) &amp;lt;br&amp;gt;&lt;br /&gt;
''Elèves-ingénieurs:'' Camille Saâd, Transley Gracias &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Sujet :''' Manette modulable pour personne à déficience moteur compatible PlayStation 4 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objectifs principal (1er POC) : ===&lt;br /&gt;
Faire transmettre des informations issus des actionneurs (ex:boutons poussoires) via des arduinos jusqu’à la Raspberry Pi 3 en SPI.&amp;lt;br&amp;gt;&lt;br /&gt;
Envoyer les données reçues vers la PS4 en USB  &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objectifs secondaire (2e POC):===&lt;br /&gt;
Créer des modules avec un microcontrôleur et une puce bluetooth pour permettre une meilleurs flexibilité (c-àd pouvoirs avoir une meilleure ergonomie et une connexion sans fil) &amp;lt;br&amp;gt;&lt;br /&gt;
Connecter la Raspberry Pi 3 en Bluetooth à la PS4 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier: beteacorne.jpg||middle|600px|Bete a corne manette]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Choix techniques : matériel et logiciel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Liste de matériel :===&lt;br /&gt;
&lt;br /&gt;
'''Modules boutons/joysticks/gachettes'''&lt;br /&gt;
&lt;br /&gt;
3  Push buttons :&amp;lt;br&amp;gt;&lt;br /&gt;
- O X Y Carré R3 L3 &amp;lt;br&amp;gt;&lt;br /&gt;
- Guide PS &amp;lt;br&amp;gt;&lt;br /&gt;
- start/back &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 0,45€/unité TTC [https://www.gotronic.fr/art-bp-miniature-krs1273-16976.htm] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1  Thumbstick original: &amp;lt;br&amp;gt;&lt;br /&gt;
Joystick analogique 4 directions --&amp;gt; 4,25€/unité TTC [https://www.gotronic.fr/art-joystick-analogique-4-directions-19063.htm] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1 buttons trigger L1 L2 =&amp;gt; 1x Thumbstick original''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Cartes Atmega328p /connexion spi/'''&lt;br /&gt;
&lt;br /&gt;
3   Arduino UNO &amp;lt;br&amp;gt;&lt;br /&gt;
1   Arduino UNO atmega328p retirable &amp;lt;br&amp;gt;&lt;br /&gt;
4   capacite 22pF traversantes &amp;lt;br&amp;gt;&lt;br /&gt;
2   resistances 10 kOhm traversantes (à récupérer) &amp;lt;br&amp;gt;&lt;br /&gt;
2   oscillateurs quartz 16MHz traversante &amp;lt;br&amp;gt;&lt;br /&gt;
2   atmega328p-pu et support &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cartes module bluetooth nrf52810 '''&lt;br /&gt;
&lt;br /&gt;
6   capacités 100nF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
6   capacités 12pF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 4,7pF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 1µF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 100pF=0,1nF 0603 (à récupérer) &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 0,8pF 0603 (a acheter, commande en cours) &amp;lt;br&amp;gt;&lt;br /&gt;
2   inductance 3,9nH 0603 (a acheter, commande en cours) &amp;lt;br&amp;gt;&lt;br /&gt;
2   oscillateur quartz 32 MHz &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''' Connexions et autres '''&lt;br /&gt;
&lt;br /&gt;
1 Led RGB neopixel [https://www.adafruit.com/product/1734] &amp;lt;br&amp;gt;&lt;br /&gt;
1 Raspberry Pi 3 &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; ~36,23€/unité TTC [https://fr.rs-online.com/web/p/processor-microcontroller-development-kits/8968660/?src=raspberrypi] &amp;lt;br&amp;gt;&lt;br /&gt;
1 Raspberry Pi Zero W (commandée) [https://www.raspberrypi.org/products/raspberry-pi-zero-w/] &amp;lt;br&amp;gt;&lt;br /&gt;
6 Alimentations 5V ou 3,3V &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
par exemple, 12 piles de type CR2016 3V rechargeables ou 24 piles AAA 1,5 V rechargeables  &lt;br /&gt;
5 modules Bluetooth nrf de Nordic : nRF52810-QFAA-R &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 3,17€/unité + frais expédition  [https://www.mouser.fr/productdetail/nordic-semiconductor/nrf52810-qfaa-r?qs=sGAEpiMZZMve4%2FbfQkoj%252bG%2FosjLoe2oghFQwQllMrQ4%3D]&lt;br /&gt;
5 Lignes broches mâles &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logiciels:===&lt;br /&gt;
&lt;br /&gt;
- IDE arduino&lt;br /&gt;
- Altium&lt;br /&gt;
- FreeCAD ou Inkscape&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Liste des tâches à effectuer&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 1 : Gestion du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Définition des cahiers des charges fonctionnel et technique, choix d'orientation...&lt;br /&gt;
* Recherche techniques sur les différentes connexions possibles entre les modules, la RPi 3 et la console PS4&lt;br /&gt;
#Recherche connexion SPI entre les modules et la RPi3&lt;br /&gt;
# Recherche connexion bluetooth entre la RPi3 et la PS4&lt;br /&gt;
# Recherche connexion bluetooth pour les modules&lt;br /&gt;
# Recherche carte avec montage Atmega328P-PU et anticipation module bluetooth&lt;br /&gt;
* Détermination du matériel nécessaire&lt;br /&gt;
* Réflexion sur l'application&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 2: Réalisation du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Partie 1: Preuve concept manette en filaire'''&lt;br /&gt;
&lt;br /&gt;
* Conception de cartes électroniques pour 2 modules (/!\ prévoir modules bluetooth)&lt;br /&gt;
* Réalisation connexion SPI avec 2 modules : programmation des Atmega328p en liaison série. &lt;br /&gt;
* Si tests concluant, ajouter des modules jusqu'à en avoir 5 (1 pour chaque type de boutons) &lt;br /&gt;
* Connexion bluetooth entre la PS4 et la RPi3&lt;br /&gt;
* Réalisation du support des modules avec fixations possibles (imprimante 3D)&lt;br /&gt;
&lt;br /&gt;
'''Partie 2: Preuve concept manette en bluetooth'''&lt;br /&gt;
&lt;br /&gt;
* Ajout des modules bluetooth aux cartes électroniques&lt;br /&gt;
* Connexion bluetooth entre les modules&lt;br /&gt;
&lt;br /&gt;
'''Partie 3: Application Android : paramétrage de la manette'''&lt;br /&gt;
&lt;br /&gt;
* Créer une application sur tablette ou smartphone (Android) afin de configurer la manette aux besoins (inter-connexion des modules et console)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Calendrier prévisionnel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Date'''&amp;lt;/u&amp;gt;&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Tache à réaliser''' &amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
17/01/18-24/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Faire des recherches sur les différentes interconnexions du système : Bluetooth, RPi-Atmega328 (SPI), RPi-PS4&lt;br /&gt;
Continuer liste des taches, matériel, Début recherches + réflexion fixation support des modules&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Recherche technique connexion PS4-RPi3 et connexion SPI RPi3-Module + code&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18-07/03/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Réalisation 1er prototype (+ début prototype 2)&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
07/03/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Seance 7 :  Test prototype filaire&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
07/03/18-09/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Réalisation 2eme prototype + application Android&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
09/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Seance 14 :  Test prototype Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
14/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Video projet&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
15/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Finalisation projet et Rapport&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
16/05/18-17/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Soutenances Projet&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Réalisation du Projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Feuille d'heures &amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Voici le tableau d'heures du binôme:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Heures S11 !! Heures S12 !! Heures S13et+ !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 10&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 20min&lt;br /&gt;
|&lt;br /&gt;
| 15h20&lt;br /&gt;
|-&lt;br /&gt;
| Cherches techniques &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 18&lt;br /&gt;
|-&lt;br /&gt;
| Rédaction du wiki et rapport de projet&lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 30min&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| 30min&lt;br /&gt;
| 30min&lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
| 10h30&lt;br /&gt;
|-&lt;br /&gt;
| Programmation&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 3&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 7&lt;br /&gt;
| 8&lt;br /&gt;
| 6&lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
| 43&lt;br /&gt;
|-&lt;br /&gt;
| Cartes électroniques&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 6&lt;br /&gt;
| 8&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| 31&lt;br /&gt;
|-&lt;br /&gt;
| Application&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| Total Semaine&lt;br /&gt;
| 10&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 7&lt;br /&gt;
| 10h30&lt;br /&gt;
| 13&lt;br /&gt;
| 9&lt;br /&gt;
| 12&lt;br /&gt;
| 9h30&lt;br /&gt;
| 10h30&lt;br /&gt;
| 9&lt;br /&gt;
| 9h20&lt;br /&gt;
| &lt;br /&gt;
| '''117h50'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Prologue&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Avant la réalisation et conception d'un projet, il est important d'analyser celui-ci. Nous avons allons consacré le prologue à l'analyse fonctionnelle de la manette. Nous avons également eu une réflexion sur l'analyse technique, cela nous a permis de réaliser une liste de matériel. Il est important de définir les objectifs ainsi que les besoins afin de ne rien oublier. (Voir ci-dessus Analyse projet) &lt;br /&gt;
Nous avons également organisé notre travail, pour le partage de documents de recherches et la rédaction de compte-rendu final nous avons réalisé un google drive. Par la suite, nous créerons un projet Git. &lt;br /&gt;
&lt;br /&gt;
Durant ce temps, nous avons décidé de réaliser 5 modules. Les modules sont les différents boutons de la manettes qui nous pourrons placer selon nos choix (boutons modulaires) pour notre prototype projet pour chaque type des boutons d'une manette PS4. Ces modules devrons être connectés à la console et interconnectés. Le tout sera lié à une application Android. Suite à quelques recherches et nos analyses, nous avons décidé les points suivants :&lt;br /&gt;
&lt;br /&gt;
- On commencera avec 2 modules et on les multipliera par la suite. &lt;br /&gt;
- Les premiers tests sont réalisés avec des boutons petits pour assurer leur caractéristique &amp;quot;modulaires&amp;quot;, par la suite nous pourrons ajouter des capuchons de taille plus importante (imprimante 3D ou achat)&lt;br /&gt;
- Conception modules : réalisation de carte avec un microcontrôleur atmega328 programmable pour chaque module (anticiper le module Bluetooth) &lt;br /&gt;
- Projet en 2 parties : prototype filaire et prototype Bluetooth&lt;br /&gt;
# Prototype filaire : connexions entre les modules et la RPi3 en SPI, connexion Rpi3-PS4 en Bluetooth, avec l'application en filaire à la RPi3&lt;br /&gt;
# Prototype Bluetooth: connexion Bluetooth entre modules-RPi3-PS4-apllication&lt;br /&gt;
&lt;br /&gt;
[[Fichier: structuremanette.png||center|400px|Concept manette modulable]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 1&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous nous sommes concentrés les recherches afin de définir clairement le cahier des charges technique. Il s'agit des réalisations à mettre en œuvre pour les inter-connexions des éléments de la manette.&lt;br /&gt;
Ainsi, nous avons fait des recherches sur :&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI entre les modules (Atmega328p) et la RPi3===&lt;br /&gt;
&lt;br /&gt;
SPI: Serial périphérique interface BUS&lt;br /&gt;
&lt;br /&gt;
[[Fichier: yWGmW.png||right|200px|Concept manette modulable]]&lt;br /&gt;
Comme indiqué sur l'image ci-dessus, la Raspberry pi 3  peut communiquer en SPI avec ses broches CS0 (24), CS1 (26), SCLK (23), MISO (21), MOSI (19). Celles-ci permettent de communiquer avec un ou plusieurs esclaves (dans notre cas, des Atmega328p) en reliant directement les broches concernées de la RPi3 à celles des composants esclaves.&lt;br /&gt;
Chaque broche CS0 (24) ou CS1 (26) ne peut être connectée qu'à l'entrée SS (aussi appelé CS) d'un seul esclave.&lt;br /&gt;
C'est a dire que chaque CS est lié à un esclave afin de choisir avec lequel la communication est établie à un moment donné, et les MISO sont reliées entre elles en cascade, de même pour les SCLK et les MOSI. On peut noter que le maître impose la fréquence d’horloge et sélectionne l’esclave auquel les données sont envoyées.  8 MHz est le plus rapide supportable a 3,3V&lt;br /&gt;
&lt;br /&gt;
[[Fichier: fonctionnementSPI.png||right|200px|Connexion SPI multi-esclaves]]&lt;br /&gt;
&lt;br /&gt;
Voici un schéma du fonctionnement souhaité : &lt;br /&gt;
&lt;br /&gt;
Comme nous souhaitons avoir 5 modules environ il nous faudra rajouter un composant en plus afin d'augmenter les possibilités de sélection, par exemple des démultiplexeurs.&lt;br /&gt;
Dans un premier temps nous essaierons avec 2 esclaves, puis on augmentera le nombre. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Connexion Bluetooth PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Les recherches portent également sur la connexion entre la manette PS4 et la console. Elles concernent le protocole de communication via Bluetooth&lt;br /&gt;
&lt;br /&gt;
Caracteristique pour la PS4:  Bluetooth®v4.0, Qualcomm Atheros AR3002 Buetooth LE: 2,4-2,5 GHz  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caracteristique de la connexion : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Vitesse de transmission &amp;gt;&amp;gt; 3 Mbit/s   8N1 &lt;br /&gt;
*Relevé tous les 1.3 millisecond (peut-être) &lt;br /&gt;
*Chaque manette à une adresse unique BD_ADDR qui correspond à l’adresse MAC de la carte Réseau&lt;br /&gt;
*Protocole de détection est le SDP basé sur une emission reception PDU&lt;br /&gt;
*L’Attribut ID est representer en TLV Type Length Value &lt;br /&gt;
*Communication HCI ACL Data Packet &lt;br /&gt;
&lt;br /&gt;
===Rélisation des cartes électroniques===&lt;br /&gt;
&lt;br /&gt;
matériel nécessaire pour un PCB : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*breadboard&lt;br /&gt;
*câbles&lt;br /&gt;
*1 x 10k Ohm résistance&lt;br /&gt;
*Quartz 16Mhz clock crystal&lt;br /&gt;
*2 x 22 pF capaciteurs&lt;br /&gt;
*Atmega328P-PU&lt;br /&gt;
&lt;br /&gt;
Ressources: &lt;br /&gt;
[[https://www.arduino.cc/en/Main/Standalone]]&lt;br /&gt;
[[http://www.eprojectszone.com/atmega-328-pu-standalone/]]&lt;br /&gt;
[[https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 2&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la semaine deux et durant la séance, nous avons continué et approfondie nos recherches sur le projet. Nous avons pu ainsi affiner nos taches de réalisation et donc notre cahier des charges.&lt;br /&gt;
&lt;br /&gt;
===Connexion aux modules: SPI et Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Green&amp;quot;&amp;gt; CORRIGER&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
voir https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018#Configuration_du_syst.C3.A8me_embarqu.C3.A9&lt;br /&gt;
&lt;br /&gt;
(sudo apt-get install pi-bluetooth)&lt;br /&gt;
&lt;br /&gt;
''connexion sur la raspberry par ssh:''&lt;br /&gt;
 su&lt;br /&gt;
 update-rc.d ssh enable&lt;br /&gt;
 invoke-rc.d ssh start &lt;br /&gt;
 ssh pi@172.26.79.1XX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''bluetooth''&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
 agent on&lt;br /&gt;
 default-agent&lt;br /&gt;
 scan on&lt;br /&gt;
 pair [device Bluetooth address]  (exemple: pair XX:XX:XX:XX:XX:XX )&lt;br /&gt;
&lt;br /&gt;
''NOUVELLE REFLEXION : Connexion SPI entre les modules (Atmega328p) et la RPi3 --&amp;gt; MODULES BLUETOOTH''&lt;br /&gt;
&lt;br /&gt;
Si multi-esclaves= plusieurs modules : &lt;br /&gt;
Il faut ajouter des sélections pour les SPI → démultiplexeurs OU ne pas utiliser les CS0 et CS1, et plutôt des pins entrée/sortie de la RPi3 lié au SS comme ça on choisit direct le module esclave voulu.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' Nous avons étudié à nouveau la datasheet de notre module bluetooth nrf de Nordik. Le module bluetooth comporte  déjà un microprocesseur !&lt;br /&gt;
Un module plutôt peut donc jouer le rôle de notre atmega328p. Il n'y a alors pas besoin de réaliser des cartes électroniques de type arduino standalone. Nos PCB regrouperont alors uniquement l'alimentation, un actionneur (bouton, joystick), le module bluetooth et les broches de connexion si besoin... &lt;br /&gt;
&lt;br /&gt;
Cette séance nous a alors permise de revoir entièrement le matériel nécessaire. Notre liste de matériel nous semble alors plus réfléchie et limitée au nécessaire. &lt;br /&gt;
&lt;br /&gt;
===Connexion Bluetooth PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Suite à nos recherches de la semaine précédente, nous avons sélectionné deux sites bien renseignés : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;SITES&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ils nous ont permis de comprendre la communication entre la manette et la console. En effet, ils nous expliquent les échanges de trames Bluetooth. &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;EXPLICATIONS 1 exemple &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 3 : Début premier prototype&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI RPi3-Arduino===&lt;br /&gt;
&lt;br /&gt;
Comme vu durant les semaines précédentes, nous souhaitons réaliser une connexion Multi-esclaves en SPI entre la Raspberry pi et plusieurs modules.&lt;br /&gt;
Cette semaine nous avons vu que la réalisation de notre premier prototype doit aller vite. Il ne nous est pas nécessaire d’attendre les modules bluetooth si il nous faut dans cette partie uniquement utiliser son microprocesseur. Ainsi pour chaque module nous utilisons une arduino UNO. Nous réaliserons les programmes en C afin de pouvoir les réutiliser avec les modules bluetooth par la suite. &lt;br /&gt;
Une fois la connexion réalisable nous adapterons les programmes aux modules bluetooth Nordik. En effet, ceux-ci comporte déjà un microprocesseur, le module peut jouer le rôle de notre atmega328p. Il n'y a aurait alors pas besoin de réaliser des cartes électroniques arduino standalone sur PCB, mais directement des cartes électronique avec le module et le module voulu (bouton, joystick...) et l'alimentation. &lt;br /&gt;
Durant la séance nous avons alors revu la liste de matériel nécessaire. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: prototype1.jpeg||center|600px|connexion filaire prototype 1 filaire arduino]]&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous avons recherches des exemples de codes et de librairies pour Arduino SPI et RaspberryPI SPI. &lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé le programme de la connexion SPI pour l'arduino et récupéré les bibliothéques SPI.h avec SPI.c. Nous nous sommes alors concentrer à les comprendre, pour pouvoir l'utiliser. &lt;br /&gt;
&lt;br /&gt;
===Réalisation du projet Git===&lt;br /&gt;
&lt;br /&gt;
Création du projet IMA4_Projet35_ManetteModulable sur Git et partage de celui-ci. &lt;br /&gt;
Les premiers dossier crées cette la séance :&lt;br /&gt;
-Arduino (connexion SPI arduino) : ProtoSpi.c + dossier librairie SPI + Makefile&lt;br /&gt;
-RPI (dossier codes pour Rpi) &lt;br /&gt;
-Readme.md&lt;br /&gt;
Ces dossiers seront amenés à être modifiés au cours des séances. &lt;br /&gt;
&lt;br /&gt;
===Protocole Bluetooth PS4===&lt;br /&gt;
&lt;br /&gt;
Suite à l'étude des trames Bluetooth, on a pu voir que ces dernières étaient incomplètes. Le modèle de communication étant propriétaire, on n'y a pas accès directement. Cela nous empêche donc de mettre en oeuvre cette communication. &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt; Déveloper&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On a décidé de commencer par une connexion USB (pour laquelle on dispose de toutes les informations) celle-ci étant plus complète.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 4&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Pour le prototype 1 FILAIRE nous réaliserons les étapes suivantes :&lt;br /&gt;
&lt;br /&gt;
#Réalisation du programme SPI pour arduino&lt;br /&gt;
#Réalisation du programme SPI pour la RPi&lt;br /&gt;
#Connexion USB avec la PS4 ou ordinateur&lt;br /&gt;
#Réalisation de cartes électroniques atmega328p-pu standalone (remplacer les Arduinos) &lt;br /&gt;
#Remplacer les &amp;quot;PCB arduino&amp;quot; par le module bluetooth et adapter la connexion&lt;br /&gt;
#Conception 3D de la délimitation 1 axe pour le joystick &amp;quot;gâchette&amp;quot;&lt;br /&gt;
#Réalisation de l'application Androïde.&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées nous auront alors une preuve de concept filaire et nous pourrons alors passer à une connexion bluetooth. &lt;br /&gt;
Le passage à la connexion bluetooth sera le deuxième prototype et le cas idéal de la réalisation de la manette modulable. &lt;br /&gt;
&lt;br /&gt;
===Mise à jour Matériel===&lt;br /&gt;
&lt;br /&gt;
- Modéliser les boutons gâchettes L1/2 R1/2 de la manette PS4 (boutons sensibles à la pression) --&amp;gt; un joystick dont nous bloquerons un axe (imprimante 3D)&lt;br /&gt;
- Remplacer la RPi 3 par une Rpi zero W qui nous permettrait de réaliser plus facilement une connexion USB tout en gardant l'avantage du bluetooth. &lt;br /&gt;
- Choix de l’alimentation pour les 5 modules Bluetooth: nécessitent 3V --&amp;gt;  utiliser des piles rechargeables 1,2V AAA plutôt que piles rondes 3V.&lt;br /&gt;
&lt;br /&gt;
Nous avons également besoin du matériel cité en semaine 1 pour réaliser des cartes électroniques atmega328p-pu standalone. ( nous revenons alors sur les décisions de la semaine 3)&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI RPi3-Arduino===&lt;br /&gt;
 &lt;br /&gt;
Montage Raspberrypi et 1 arduino en PSI + 1 bouton + 1 led.&lt;br /&gt;
Voici le choix des branchements :&lt;br /&gt;
&lt;br /&gt;
 MASTER = RPi   &lt;br /&gt;
 SLAVE= Arduino&lt;br /&gt;
&lt;br /&gt;
'''SPI sur Arduino:'''&lt;br /&gt;
 MOSI -&amp;gt; GPIO11 //PB3  //master OUT to the slave IN&lt;br /&gt;
 MISO -&amp;gt; GPIO12 //PB4 //slave OUT to the master IN&lt;br /&gt;
 SCLK -&amp;gt; GPIO13 //PB5 //serial clock&lt;br /&gt;
 SS -&amp;gt; GPIO10   //PB2  //slave select&lt;br /&gt;
'''Led, bouton et autre...'''&lt;br /&gt;
 LED --&amp;gt; GPIO6  //PD6&lt;br /&gt;
 GND&lt;br /&gt;
 +5V (if required)&lt;br /&gt;
'''SPI sur la Raspberry Pi'''&lt;br /&gt;
 SPIO MOSI -&amp;gt; PIN19 &lt;br /&gt;
 SPIO MISO -&amp;gt; PIN21&lt;br /&gt;
 SCLK -&amp;gt; PIN23&lt;br /&gt;
 SPIO CS0 -&amp;gt; PIN24&lt;br /&gt;
&lt;br /&gt;
Continuation du code pour faire clignoter Led branchée à une arduino depuis la Rpi, en connexion SPI.&lt;br /&gt;
&lt;br /&gt;
===Connexion USB PS4-RPi3===&lt;br /&gt;
Durant cette, nous avons regardé comment faire cohabiter bluetooth, Application Androïd, USB, PS4, SPI et les module. &lt;br /&gt;
&lt;br /&gt;
Il est alors important de savoir comment utiliser le port série sur la RPi3, soit utiliser les UART. &lt;br /&gt;
&lt;br /&gt;
Nous avons réaliser qu'il n'était pas aussi simple d'utiliser le port serie USB de la Raspberry Pi 3, en effet le SoC est un BCM2837 . &lt;br /&gt;
De plus nous ne pouvons pas utiliser le même port pour l'alimentation et la connexion. &lt;br /&gt;
&lt;br /&gt;
Il nous faut alors trouver une alternative ou une solution à ce problème.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 5&amp;lt;/span&amp;gt;==&lt;br /&gt;
 &lt;br /&gt;
===Programmation: Réflexion définitives prototypes filaire ===&lt;br /&gt;
&lt;br /&gt;
Durant la semaine 5, nous avons continué la réalisation du prototype filaire par l'avancé du code SPI ainsi que les recherches concernant le protocole PS4. &lt;br /&gt;
&lt;br /&gt;
Pour réaliser la connexion entre la PS4 et les différents modules, nous avons vu la semaine dernière que nous utiliserons une RPi zero W (que nous avons commandé). Celle-ci nous permet d'utiliser le bluetooth mais elle nous permet également de réaliser un réseau local sans fil. Ce qui peut être pratique dans la mesure où notre projet est modulable. &lt;br /&gt;
En attendant la réception de la commande, nous nous sommes penché sur les programmes et la configuration nécessaire à l'utilisation de la RPi zero W.&lt;br /&gt;
&lt;br /&gt;
===Electronique===&lt;br /&gt;
&lt;br /&gt;
[[Fichier: bouton_c1.jpg|100px|thumb|left|PCB bouton]]&lt;br /&gt;
[[Fichier: arduinobb.jpg|200px|thumb|right|atmega328p-pu branchement test]]&lt;br /&gt;
&lt;br /&gt;
Du coté électronique, nous avons réalisé sur fritzing certaines cartes électroniques. Les Arduino Uno servant actuellement de test, seront remplacées par des PCB atmega328p-pu standalone avec des broches permettant les branchements nécessaires SPI ou encore aux modules &amp;quot;boutons/joystick&amp;quot;. Pour les boutons, nous avons également réalisé un pcb afin de faciliter les branchements.  &lt;br /&gt;
&lt;br /&gt;
Il nous faut alors également une 3eme carte qui nous sera nécessaire pour la réalisation du prototype sans fil. Dans notre liste de matériel, nous avons des composants nrf52810 bluetooth, ceci doivent être soudé avec les capacités de protection mais également des broches de communication. Nous avons alors commencé cette carte électronique sur Altium avec le fichier  projet PCB du distributeur à modifier.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: Arduino_c1.jpg|100px|thumb|center|PCB atmega328p-pu]]&lt;br /&gt;
&lt;br /&gt;
=== Construction 3D ===&lt;br /&gt;
&lt;br /&gt;
Enfin, nous avons commencé à réaliser des boîtiers 3D pour certains modules. Par exemple, comme nous l'avions vu précédemment, un des joysticks servira de bouton-gâchette en utilisant un seul de ses axes. Il nous faut alors réaliser un boitier qui bloque l'un des axes, mais également une tige qui nous permettra de pousser le joystick de manière simplifiée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 6&amp;lt;/span&amp;gt;==&lt;br /&gt;
 &lt;br /&gt;
===Programmation: configuration RPi Zero W ===&lt;br /&gt;
&lt;br /&gt;
Ayant reçu la Raspberry Pi zero W en début de semaine, nous nous sommes concentrés sur la programmation et la configuration de celle-ci. &lt;br /&gt;
&lt;br /&gt;
===Electronique: PCB nrf52810===&lt;br /&gt;
&lt;br /&gt;
Les cartes réalisées en semaine 5 sont validées et en attente de réalisation. &lt;br /&gt;
&lt;br /&gt;
Cette semaine a permis la réalisation et la finalisation de la carte électronique nrf52810. Il nous a fallu recommencé cette carte deux fois. En effet, une fois finie sur Altium nous avons réalisé que les empreintes des CMS sur PCB fourni par le constructeur ne correspondent pas au matériel CMS de l'école. Face à cette inattention de notre part, nous avons décidé de refaire entièrement la carte électronique sur fritzing. Ayant la datasheet et des plans d'inspiration PCB, nous avons pu refaire la carte entièrement. &lt;br /&gt;
Sur celle-ci nous avons ajouté des broches de connexion au besoin, un branchement Jtag et ICSP pour la programmation et la connexion SPI. &lt;br /&gt;
La carte est en attente de validation, puis validation.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: nrf52810_circuit2.jpg||center|400px|PCB carte nrf52810]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Révision matériel ===&lt;br /&gt;
&lt;br /&gt;
Pour la réalisation de nos composants électroniques, il nous a fallu faire une révision des composants disponibles à l'école:&lt;br /&gt;
(les quantités indiquées ci-dessous pourront être augmentée si nécessaire,pour avoir dans l'idéal un module de chaque type de la manette, ici on se concentre sur BOUTON et JOYSTICK)&lt;br /&gt;
&lt;br /&gt;
'''Cartes Arduino:'''&lt;br /&gt;
* 4 capacite 22pF traversantes&lt;br /&gt;
* 2 resistances 10 kOhm traversantes (à récupérer)&lt;br /&gt;
* 2 oscillateurs quartz 16MHz traversante&lt;br /&gt;
* 2 atmega328p-pu et support&lt;br /&gt;
&lt;br /&gt;
'''Cartes nrf52810'''&lt;br /&gt;
* 6 capacités 100nF 0603&lt;br /&gt;
* 6 capacités 12pF 0603&lt;br /&gt;
* 2 capacités 4,7pF 0603&lt;br /&gt;
* 2 capacités 1µF 0603&lt;br /&gt;
* 2 capacités 100pF=0,1nF 0603 (à récupérer)&lt;br /&gt;
* 2 capacités 0,8pF 0603 (commande en cours)&lt;br /&gt;
* 2 inductance 3,9nH 0603 (commande en cours)&lt;br /&gt;
* 2 oscillateur quartz 32 MHz &lt;br /&gt;
&lt;br /&gt;
'''Cartes modules Boutons'''&lt;br /&gt;
* un sachet de broches mâles (qu'on utilisera également pour les autres cartes, à récupérer/acheté) &lt;br /&gt;
&lt;br /&gt;
Nous avons alors mis-à-jour la liste de composant située plus haut, ainsi que celle de la page IMA4 2017/2018 [https://projets-ima.plil.fr/mediawiki/index.php/Projets_IMA4_SC_%26_SA_2017/2018]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 7&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Programmation: connexion wifi RPi Zero W et Bootloader sur Atmega328p-pu ===&lt;br /&gt;
&lt;br /&gt;
Pendant cette semaine, nous avons continué la programmation et la configuration des Raspberry Pi 3 et Zero W afin de les utiliser en connexion Wifi. &lt;br /&gt;
&lt;br /&gt;
Nous avons également continuer les programmes de récupération de données : état des boutons et du joystick. Ces programmes sont appliqué sur l'atmega328p-pu standalone sur la plaque d'essai en attendant que le PCB soit opérationnel.&lt;br /&gt;
Pour pouvoir programmer l'atemega328p-pu comme une arduino UNO, il nous faut suivre plusieurs étapes :&lt;br /&gt;
&lt;br /&gt;
'''1.Flasher le Bootloader'''&lt;br /&gt;
Nous avons 2 Atmega328p-pu neufs, ainsi il nous faut flasher le bootloader sur chacun d'eux afin de pouvoir les utiliser et les programmer sur une breadboard dans un montage minimaliste arduino-standalone. &lt;br /&gt;
Pour cela, on peut utiliser une carte arduino UNO. On vérifie le port et le type de carte sélectionnés dans le menu &amp;gt;Outils. Sur cette carte on téléverse le fichier arduinoISP.ino qui se trouve dans les exemples en étant en progrmamateur AVr ISP mkll (&amp;gt;outils&amp;gt;programmateur) &lt;br /&gt;
Puis on met l'atmega328p-pu qui nous intéresse sur le suppor socket de la carte. On change de nouveau le programmateur pour Arduino as ISP et on fait &amp;gt;tools&amp;gt;burn bootloader, soit &amp;gt;graver la sequence d'initialisation.&lt;br /&gt;
Ces étapes faites, on peut retirer notre microcontroleur et le replacer correctement dans le montage. &lt;br /&gt;
&lt;br /&gt;
'''2.Programmation atmega328 sur breadboard'''&lt;br /&gt;
Une fois l'atmega328p-pu préparé, on peut le programmer. On peut le faire simplement à l'aide de la carte arduino UNO utilisée précédemment.On branche les Tx et Rx en commun ainsi que le reset, le GND et le VCC.&lt;br /&gt;
&lt;br /&gt;
Nous avons réaliser des codes basiques tels que le clignotement d'une led rouge ou encore l'affichage de &amp;quot;hello world&amp;quot; sur le moniteur série pour vérifier la bonne fonctionnalité du montage. Cela fait nous avons pu écrire sous Arduino IDE le code de lecture des états.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: montage_BB_test.jpg||left|200px|programmation modules arduino sur breadboard]]&lt;br /&gt;
&lt;br /&gt;
===Electronique : soudure carte de test modules ===&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons déja vu lors de la réalisation des PCB, si l'on souhaite programmer un atmega328p-pu en bootloader, le montage est simple. Il peut être minimaliste en utilisant une arduino UNO, un atmega328, une breadboard et 3 composants: 1 quartz 16MHZ crystal, 1 résistance 10kOhm et 2 capacitors céramiques de 22pF.&lt;br /&gt;
Durant la semaine 7, nous avons soudé les composants traversants de la carte électronique correspondant à ce montage ainsi que le PCB du bouton.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 8&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Programmation ===&lt;br /&gt;
&lt;br /&gt;
===Electronique : Correction soudure et soudure CMS===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avions souhaité programmer la carte électronique atmega328p-pu. Cependant, nous avons réaliser que nous avions fait une erreur lors de l'envoie du PCB à la production. En effet, celui-ci avait été fait en Top sur le logiciel Fritzing et non en Bottom. Hors nous avions soudé les composants (durant la semaine 7) comme pour un circuit imprimé en bottom, l'atmega328p-pu se retrouve alors inversé par rapport aux pistes. &lt;br /&gt;
Comme solution, nous avons choisi de souder un deuxième support pour l'atmega328 de l'autre coté de la carte avant de la refaire au propre. En effet, avant de la refaire il nous faut vérifier si la carte est bien programmable. &lt;br /&gt;
Une fois cela fait nous avions pu programmer la carte mais, nous avions également réalisé la pin 2 de l'atmega328 était prise par le bouton poussoir. Or, nous avons besoin des pin 2 et 3 pour le RX et TX permettant la programmation de l'atmega à partir d'une arduino, les pistes branchement RX-TX n'ont également pas été prévus pour le téléversement des programmes sur la carte. Il nous faut alors couper une piste et souder des câbles pour utiliser toutes les pistes souhaitées. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: correction_proto_PCB.jpg||right|300px|PCB arduino correction]]&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons également souhaité souder les CMS et le composant bluetooth nrf52810 sur la carte imprimé et reçu lors de la semaine 7. Pour cela, nous avons convenu de travailler dans la C202 durant la séance du mercredi. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: PCB_nrf52810.jpg||left|400px|carte electroniques imprimées]]&lt;br /&gt;
&lt;br /&gt;
====Comment souder des CMS ?====&lt;br /&gt;
&lt;br /&gt;
les CMS sont des composants montés en surface c'est à dire qu'ils sont montés du même côté que les pistes cuivrées (à l'opposé des composants traversants) et sont de petite tailles souvent de l'ordre du millimètre. La taille est déterminée par 4 chiffres : les 2 premiers pour la longueur et les 2 derniers pour la largeur. On a du 1206,0805,0603 ou encore 0402. Il est même possible de trouver plus petit. A l'école nous utilisons souvent du 0603, c'est le cas de nos composants.&lt;br /&gt;
Pour souder des CMS 0603, il nous faut utiliser une autre méthode qui n'est pas le fer à souder :&lt;br /&gt;
# Préparer la veille la pâte à braser la veille (dans une seringue)&lt;br /&gt;
# Gommer la carte pour éviter l'oxydation (attention à ne pas retirer les miettes de gomme en soufflant dessus) &lt;br /&gt;
# Appliquer avec la seringue la pâte sur les empreintes et piste souhaitées. Pour les endroits difficile à atteindre ou avec 2 pistes proches les unes des autres, il est possible de mettre la même goutte de pâte sur les 2 pistes. Cela de causera pas de court-circuit par la suite. En effet, la pâte est composée d’alliage qui sous la chaleur va se fluidifier et se coller uniquement aux pistes métallique. Le reste fondera sous la chaleur du four.&lt;br /&gt;
# Appliquer les CMS sur la pâte au fur et à mesure (attention ! ne jamais toucher les CMS avec les doigts, tjrs utiliser une pince)&lt;br /&gt;
# Mettre au four&lt;br /&gt;
&lt;br /&gt;
====Bilan soudure nrf52810====&lt;br /&gt;
&lt;br /&gt;
Cependant, une fois le matériel nécessaire préparé, et la pâte mise sur les pistes souhaitées, au moment de déposer le composant, nous avons réalisé que celui-ci était beaucoup plus petit que l'empreinte sur le PCB. Il s'agit d'un composant boitier QFN48. Fritzing ne proposant au plus proche des boitiers QFN24 ou LQFP48, celui-ci a basculé automatiquement pour un boitier LQFN48, de dimension plus grande. Face à ce manque de vigilance, nous avions cependant commencer par le nrf52810 (composant concerné) évitant ainsi de gaspiller d'autres CMS. &lt;br /&gt;
Nous avons souhaité refaire la carte sous Altium à partir des fichiers fournis par le concepteur (chose que nous avons commencé à faire aux alentours de la semaine 5) &lt;br /&gt;
Après la réalisation du schématic, et de la modification des empreintes de capacités, inductances et autres composants de 0402 à 0603. Notre matériel ne permettant que des empreintes 0603.&lt;br /&gt;
 &lt;br /&gt;
Lors du routage, une erreur de chevauchement des pistes est notifiée par Altium au niveau du nrf52810. Celles-ci ne présentent pas d'angles et sont déjà de taille 8mil, il nous faut alors passer les pistes en 6mil. Mais 8mil est la taille minimale pour la production à Polytech, nous avons regardé pour envoyer les cartes à faire ailleurs mais le 6mil n'est pas beaucoup conseillé. De plus, il n'est peut-être pas judicieux de continuer avec le composant microcontrôleur-bluetooth Nrf52810 qui prend du temps, donc la carte est difficilement réalisable et peut-être très long à programmer. &lt;br /&gt;
&lt;br /&gt;
Ainsi en cette fin de semaine, nous avons décider face à l'avancer du projet de laisser les nrf52810 de coté et de les remplacer par des modules sans fils plus simples d'utilisation et complets. Ainsi nous aurions plus de chance d'avoir une connexion sans fils entre les modules. Nous pourrions par exemples utiliser des Xbee, des modules Rf...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 9&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation: PS4 et 1er Test SPI sur atmega328p====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
Une carte PCB arduino fonctionnant, nous pouvons la programme pour simuler un module. Celle-ci a été designée afin de s'adapter au module que l'on souhaite. Il suffit de brancher le bouton, le joystick ou autre élèment de manette souhaité.&lt;br /&gt;
Cette semaine ci, nous avons alors configurer la partie communication SPI pour l'arduino.&lt;br /&gt;
&lt;br /&gt;
'''Que voulons-nous faire avec les atmegas ?''' &lt;br /&gt;
Les cartes électroniques atmega328p vont nous permettre de recevoir les requêtes SPI envoyées par la raspberry pi et d'y répondre. La Raspberry enverra un message, par exemple &amp;quot;1&amp;quot;, et l'Arduino lira alors l'état du module qui lui est connecté. Une fois l'état récupéré elle le renvoie à la raspberry pi.&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons programmé l'atmega afin qu'il soit en esclave, qu'il reçoive un de la RPi &amp;quot;1&amp;quot; et retourne une valeur sauvegardé &amp;quot;int envoi&amp;quot;. Nous avons également commencé les tests pour la lecture de l'état d'un bouton (d'après les tests réalisés les semaines précédentes).&lt;br /&gt;
&lt;br /&gt;
'''Code'''&lt;br /&gt;
Comme nous l'avons vu précedement lors de nos recherches (semaines 1 à 4) : &lt;br /&gt;
La communication SPI nécessite l'utilisation des pins: &lt;br /&gt;
&lt;br /&gt;
MOSI -&amp;gt; GPIO11 //PB3  //master OUT to the slave IN&lt;br /&gt;
MISO -&amp;gt; GPIO12 //PB4 //slave OUT to the master IN&lt;br /&gt;
SCLK -&amp;gt; GPIO13 //PB5 //serial clock&lt;br /&gt;
SS -&amp;gt; GPIO10   //PB2  //slave select&lt;br /&gt;
&lt;br /&gt;
Il faut également paramétrer l'atmega328p en Slave. On note que dans un premier temps, le programme sera codé avec l'arduino IDE (fichiers .ino). Une fois l'ensemble SPI RaspberryPi-Arduino fonctionnant, on remplacera ces codes par du langage C ou C++.&lt;br /&gt;
&lt;br /&gt;
Pour faire la connexion SPI sur l'atmega328p,  on utilise la librairie arduino SPI.h, on a alors directement les fonctions nécessaires intervenant sur les registres souhaités : SPCR (spi control register), SPSR (spi status register) et SPDR (spi data register). &lt;br /&gt;
 &lt;br /&gt;
  #include &amp;lt;SPI.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il est important d'initialise d'abord le setup et on active le port série pour pourvoir utiliser le moniteur série. (Cela servira à verifier la valeur envoyée par la RPi) &lt;br /&gt;
&lt;br /&gt;
 void setup (void)&lt;br /&gt;
 {&lt;br /&gt;
   Serial.begin (9600);  &lt;br /&gt;
   pinMode(MISO, OUTPUT);  //configuration en esclave *master in slave out*&lt;br /&gt;
   pinMode(buttonPin,INPUT);  //config pin bouton&lt;br /&gt;
   // turn on SPI in slave mode&lt;br /&gt;
   SPCR |= _BV(SPE);&lt;br /&gt;
   // preparation interruptions&lt;br /&gt;
   pos = 0;   // buffer empty&lt;br /&gt;
   process_it = false;&lt;br /&gt;
   // activation interruptions&lt;br /&gt;
   SPI.attachInterrupt();&lt;br /&gt;
 }  &lt;br /&gt;
 &lt;br /&gt;
On oublie pas de déclarer les interruptions afin de bien lire la requête reçue. &lt;br /&gt;
 &lt;br /&gt;
// SPI interrupt routine&lt;br /&gt;
ISR (SPI_STC_vect)&lt;br /&gt;
{&lt;br /&gt;
  byte c = SPDR;  // grab byte from SPI Data Register&lt;br /&gt;
  // add to buffer if room&lt;br /&gt;
  if (pos &amp;lt; sizeof buf)&lt;br /&gt;
    {&lt;br /&gt;
    buf [pos++] = c;&lt;br /&gt;
    // example: newline means time to process buffer&lt;br /&gt;
    if (c == '\n')&lt;br /&gt;
      process_it = true;&lt;br /&gt;
    }  // end of room available&lt;br /&gt;
}  // end of interrupt routine SPI_STC_vect&lt;br /&gt;
&lt;br /&gt;
Dans la loop main, on traite la requête et on utilise '''SPI.transfer(envoi);''' pour transferer à la RPi les données souhaitées. &lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons également commencé des programmes de test SPI pour la RPi. Il s'agit principalement de programmes de tests tout faits permettant de vérifier la connexion entre cette dernière et l'arduino. Par exemple, la RPI envoie &amp;quot;bonjour&amp;quot; et l'arduino lui retourne ce qu'elle reçoit, soit &amp;quot;bonjour&amp;quot;. Sans succés alors. &lt;br /&gt;
&lt;br /&gt;
====Electronique : Fritzing révision====&lt;br /&gt;
&lt;br /&gt;
Lors de la semaine, le modèle PCB de la carte arduino a été réalisé de nouveau sous fritzing avec les broches et connections manquantes. Nous avons également revu la configuration du bouton reset  et ajouté une led d'état de l'alimentation. Nous avons ainsi envoyé deux cartes identiques à la réalisation.&lt;br /&gt;
La carte déjà soudée lors des derniers jours fonctionnant, elle nous sert de prototype de programmation. Nous pouvons ainsi avancer à la fois sur la programmation des modules mais aussi sur leur réalisation. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 10&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation : PS4 et SPI sur RPi====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Raspberry PI et SPI'''&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, pour la partie Atmega328p-Modules, nous nous sommes concentrés sur la programmation de la communication SPI avec la raspberry pi. Cette semaine a permis une étude plus approfondit sur le fonctionnement pour la RPi. &lt;br /&gt;
&lt;br /&gt;
On rappelle, comme vu des semaines 1 à 4, pour la RPI3 (tout comme la RPi Zero W) utilise les broches : SCLK (23), MISO(21), MOSI (19) et SPI CS0 (24), SPI CS1 (26). &lt;br /&gt;
On la programme en Master. A l'aide des fichiers tests d'inspiration, on pourra directement programmer la RPi en C. Lors de la réalisation du code, il y a 3 étapes : l'initialisation/parametrage en SPI pour être maître, l'envoie de la requête puis la réception de données en retour. &lt;br /&gt;
&lt;br /&gt;
Programmant en C, il ne faut pas oublier les librairies suivantes :&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;getopt.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;sys/ioctl.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/types.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/spi/spidev.h&amp;gt;   //pour SPI&lt;br /&gt;
&lt;br /&gt;
On va déclarer des variables globales permettant le paramétrage :&lt;br /&gt;
&lt;br /&gt;
 static const char *device = &amp;quot;/dev/spidev0.0&amp;quot;;  //si on veut CS0 pour atteindre notre SS&lt;br /&gt;
 static uint8_t mode;       //mode est par défaut à 0&lt;br /&gt;
 static uint8_t bits = 8;    //bits par mot échangé&lt;br /&gt;
 static uint32_t speed = 500000;  &lt;br /&gt;
 static uint16_t delay;&lt;br /&gt;
&lt;br /&gt;
Dans notre main, on ouvre le port (la connexion) au device souhaité,  on vérifie les paramètres (registres, connexions...) puis exécute la fonction transfer(fd). transfer(fd) transmet la requête et s'occupe de la réception. &lt;br /&gt;
&lt;br /&gt;
 fd = open(device, O_RDWR);&lt;br /&gt;
 transfer(fd);&lt;br /&gt;
 close(fd);&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 11&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation: PS4, SSH et tests SPI (RPi3&amp;amp;Atemga328p)====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Raspberry PI, Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
Afin de facilité la programmation en utilisant Ethernet, nous avons installer et configuré la RPi pour l'utiliser en SSH depuis les ordinateurs de la E306. En effet, SSH permet de se connecter à distance sur une machine en utilisant un compte utilisateur de la dite machine. En mettant ssh, on pourra directement agir sur les fichiers de la raspberry depuis un terminal de notre PC. Pour cela, on a d'abord vérifier l'adresse IP de notre raspberry pi : 172.26.145.106 avec un écran mais on peut aussi utiliser les commandes ip a et ifconfig. Puis activer le ssh sur la raspberry pi. &lt;br /&gt;
On modifie alors le fichier config.txt mais également etc/network/interfaces pour configurer la bonne interface Ethernet sur la raspberry pi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: configSSH_raspi.png||left|300px|config ssh ethernet]]&lt;br /&gt;
&lt;br /&gt;
Il nous suffit alors de taper la commande : ssh pi@172.26.145.106  pour accéder à notre RPi. &lt;br /&gt;
&lt;br /&gt;
Nous avons continué à réaliser la communication SPI avec des tests entre une arduino UNO et la RPI3. Nous avons commencé par des tests simples inspirés des études de deux semaines précédentes et modulés selon notre utilité.  &lt;br /&gt;
Nous arrivons alors à lire l'état envoyer &amp;quot;bonjour&amp;quot; et recevoir &amp;quot;ça va&amp;quot; ou encore &amp;quot;1&amp;quot; et recevoir &amp;quot;3&amp;quot;. Il faut noter que le SPI échange des trames, la RPI reçoit alors des hexadécimaux. &lt;br /&gt;
Nous avons alors continué pour recevoir l'état du bouton ou du joystick lors de l'envoie de &amp;quot;1&amp;quot; sur l'Arduino328p. La semaine prochaine nous testerons ces même codes fonctionnels sur les cartes atmeg327p. &lt;br /&gt;
&lt;br /&gt;
A la fin de cette semaine, nous avons alors des codes Arduino-SPI (.ino) et des codes Raspberry-SPI (.c) permettant l'échange de données. Le but est maintenant de l'adapter aux cartes imprimées et de le rendre pleinement fonctionnel pour plusieurs cartes à la fois, puis ajouter une boucle de vérification en continue jusqu'à une deuxième requête de la RPi.&lt;br /&gt;
&lt;br /&gt;
====Electronique: réalisation au propres des PCB modules====&lt;br /&gt;
&lt;br /&gt;
Suite à une nouvelle erreur de réalisation cartes électronique, nous avons  refait et renvoyé à nouveau les cartes imprimées atmega328p.&lt;br /&gt;
Nous les souhaitons au propre pour une version finale. Une fois celle-ci imprimées nous pourrons en avoir 3 , un pour chaque module. Les cartes étaient bien imprimées en bottom mais lors du passage des traversants de bottom à top, le logiciel ne les a pas fait miroiter. Par manque d'attention nous avons alors envoyé les fichiers gerber pour des cartes ayant les composants du même coté que la couche de cuivre. &lt;br /&gt;
Les cartes électroniques actuelles sont alors correctes et fonctionnelles mais difficile à souder. Pour eviter les erreurs et continuer sur des prototypes de carte nous préférons attendre en nous concentrant sur la programmation PSI de la Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 12&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Raspberry PI, Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
-  réflexion: penser à faire boucler sur l'arduino une fois la requête reçu, ça veut dire que la manette est ON et donc vérifier continuellement les modules sur chaque atmega.&lt;br /&gt;
- SPI raspberry pi - arduino recuperation état du bouton avec les cartes modules  (/!\ récuperation à faire dans une variable) &lt;br /&gt;
&lt;br /&gt;
-SSH perso &lt;br /&gt;
adresse Rasppi: 192.168.137.10&lt;br /&gt;
&lt;br /&gt;
====Electronique: Finalisation soudure Modules====&lt;br /&gt;
&lt;br /&gt;
Soudure au propre et finale d'une carte atmega328p et donc envoie pour la réalisation de 2 autres cartes similaires et récupération de matériel&lt;br /&gt;
Soudure des 2 autres cartes, + tests sur les états = fonctionnelles.&lt;br /&gt;
On a donc bien 3 cartes pour les 3 modules de types différents (1 bouton, 1 joystick, 1 gachette)&lt;br /&gt;
PCB pour les 2 joysticks (qui serviront de thumbstick et gachette)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 13 et plus&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
====Electronique====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
(à mettre rapport + git + drive)&lt;br /&gt;
&lt;br /&gt;
=Datasheets=&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=55385</id>
		<title>IMA4 2017/2018 P35</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=55385"/>
				<updated>2018-05-05T18:32:04Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : /* Semaine 3 : Début premier prototype */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Présentation générale: Manette modulable&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Description&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Tout le monde joue aux jeux vidéo cependant, les manettes ne sont pas adaptées aux personnes ayant un handicap pouvant toucher les bras ou les mains.&lt;br /&gt;
C’est le cas, de plusieurs patients dans les centres de soins et de rééducation.&lt;br /&gt;
&lt;br /&gt;
Pour ce projet IMA4, nous travaillerons avec le centre SSR (soin de suite et de réadaptation) Marc Sautelet de Villeneuve d’Ascq.&lt;br /&gt;
Un adolescent, patient de Marc Sautelet, est passionné par les jeux vidéo. En effet, ayant perdu la motricité d’une partie de son corps, il ne peut pas jouer à deux mains. Pour cela, il bloque la manette entre son épaule et son coude, usant de la mâchoire et des doigts pour contrôler les&lt;br /&gt;
joysticks et les boutons. Cet exercice peut s’avérer fatiguant et pénible.&lt;br /&gt;
&lt;br /&gt;
Ainsi, nous chercherons à concevoir une manette PS4 adaptée au handicap de l’adolescent. &lt;br /&gt;
Cette manette devra aussi être adaptée pour d’autres patients présentant également des handicaps moteurs. Ainsi nous prendrons pour cibles: tous les patients du centre voulant jouer; et non pas que les enfants et adolescents.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Membre du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Transley Gracias et Camille Saad&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Cible&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Patient présentant un handicap moteur&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Période du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
janvier 2018 - mai 2018&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Partenaire/Client&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Centre SSR Marc Sautelet à Villeneuve d'Ascq&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Objectifs&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ce projet a pour objectif de créer un prototype de manette qui puisse interagir avec la console PS4 et dont le paramétrage se fait à l’aide d’une application mobile et/ou web. Cette manette devra suivre les demandes du patient ainsi que des aides-soignantes du centre, dans la mesure du possible.&lt;br /&gt;
&lt;br /&gt;
Plus précisément, pour le premier prototype, nous mettrons en œuvre l'utilisation de quelques boutons spécifiques: &lt;br /&gt;
&lt;br /&gt;
* Un joystick (type L/R)&lt;br /&gt;
* Quelques boutons poussoirs (type Croix/Triangle/Carré/Rond/R1/L1/Start/...)&lt;br /&gt;
* Des boutons gâchettes progressives (type L2/R2).&lt;br /&gt;
&lt;br /&gt;
Le but serait donc dans un premier temps de rendre fonctionnel un bouton de chaque type, puis de les multiplier une fois cela fait. Tous ces boutons réunis constituent une manette fonctionnelle.Ainsi, la manette sera ajustable, c’est à dire qu’elle devra s’adapter aux différents handicaps moteurs possibles.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Analyse du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Positionnement par rapport à l'existant&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre prototype aura une présentation unique par rapport à l’existant. En effet, les concurrents et produits existants ciblent pour la majorité un seul handicap. Cela&lt;br /&gt;
engendre une solution fermée à beaucoup de patients. Notre projet propose une mobilité des mouvements et également un choix large dans la composition et le&lt;br /&gt;
design de notre manette.&lt;br /&gt;
Le patient n’est pas retreint à jouer à une seule main, à utiliser beaucoup de force...Il y a moins de technique dans la manipulation et on ne joue pas avec une&lt;br /&gt;
manette adaptée uniquement pour un droitier ou un gaucher. Cependant, cela nous limitera peut-être dans le choix possible des types de jeux. Tout comme les autres&lt;br /&gt;
manettes adapté, l’utilisateur nécessitera un peu d’entrainement.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du premier concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Jouer aux jeux vidéo à une main n’est pas une idée d’aujourd’hui. En 1990, Nintendo propose le Power Glove. Mais il tombe très rapidement aux oubliettes suite à des problèmes techniques.&lt;br /&gt;
&lt;br /&gt;
Un autre gant a fait son apparition quelques années plus tard. Celui-ci, plus technique, il faut office de manette Play Station: le Reality Quest Power Glove.Cette idée de manette-gant, permet de jouer à la PS avec une seule main, elle a était conçue et présentée pour les E3, un salon d’exposition de gaming.Le gant est conçu pour contrôler l’équivalent des 14 boutons et 2 joysticks à l’aide d’une seule main. La « manette » est fixée dans la pomme de la main. L’utilisateur contrôle les mouvements verticaux et horizontaux en pivotant le poignet, et utilisent les 4 boutons d’action principaux et L1/R1 avec les doigts. Les autres boutons sont accessibles par un seul bouton rond contrôlé par le pouce.&lt;br /&gt;
La manette est adaptée pour beaucoup de jeux vidéo, dont les plus simples sont les jeux de voitures et de combats (arcade).&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec ce gant&lt;br /&gt;
*Design obligatoirement droitier&lt;br /&gt;
*Les boutons de contrôle sont peu sensibles et peuvent nécessiter de la force&lt;br /&gt;
*Design compliqué et nécessitant beaucoup d’entrainement.&lt;br /&gt;
&lt;br /&gt;
;Lien : https://www.youtube.com/watch?v=qV0SxSJDCYg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du second concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ben Heck, de son vrai nom Benjamin J.Heckendorn, est un concepteur de mods de consoles (mods pour modification, soit « manettes modifiées ») et une star&lt;br /&gt;
du net grâce à ses vidéos tutoriels.Il propose alors énormément de produits adaptés ou dérivés en guise de manettes.&lt;br /&gt;
Parmi les mods qu’il a réalisé, il a modifié une manette de PS4 afin de la rendre accessible à une personne ne pouvant jouer qu’à une main. Pour cela, il a déplacé les boutons en respectant l’ergonomie de la main valide et modifie les connexions. Il peut lui arriver de rajouter des boutons pour en remplacer un autre. Il réalise également le même système avec la Xbox. Sur la photo ci-dessous, il a adapté la manette pour un droitier.&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec cette ma&lt;br /&gt;
*Design obligatoirement droitier ou gaucher, une modification = une manette= une personne&lt;br /&gt;
*Besoin obligé du pouce et de l’index, même si avantage : 3 doigts nécessaire.&lt;br /&gt;
&lt;br /&gt;
;Lien :: https://www.youtube.com/watch?v=LieHIscadjk&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Scénario d'usage du produit ou du concept envisagé&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
La technologie est ,aujourd’hui, omniprésente dans notre vie. Les consoles de jeux ont envahies les maisons avec plus de 7 personnes sur 10 jouant aux jeux vidéos sur consoles en France (chiffre de l’Express). 0,18% des français sont handicapés cela représente 12 millions de français. Dans ce chiffre, 13,4% des personnes ont un handicap moteur. En 2017, les grands groupes comme Sony ou Microsoft avec respectivement PlayStation et Xbox ne permettent pas à tout le monde de jouer avec une manette. Les manettes sont prévues pour des personnes ayant leurs membres valides, plus précisément les mains et les bras.&lt;br /&gt;
&lt;br /&gt;
Après un accident de voiture, un jeune garçon a perdu la motricité d’un côté du corps. Passionné de jeux vidéo, il se retrouve avec des difficultés à jouer sur sa console PS4. Ingénieux, il utilise la manette en la coinçant entre son épaule et le creux du cou. Usant de la mâchoire et de sa main valide pour contrôler les joysticks et les boutons. L'exercice étant inconfortable et fatiguant il eu l’idée de proposer à des futurs ingénieurs de lui proposer une manette adaptée à son handicap. &lt;br /&gt;
&lt;br /&gt;
Les deux pré-ingénieurs ,avec leur tuteur, ont une idée révolutionnaire : La manette modulable ! Elle permettrait au jeune garçon, ainsi que d’autres joueurs, de pouvoir continuer de s’amuser ou même de commencer à jouer au jeux sur console. &lt;br /&gt;
Cette manette aidera fortement dans les centre de rééducation pour faire passer le temps et donner du plaisir à des personnes qui ne peuvent plus s’amuser avec leur console traditionnelle. Elle pourra aussi ouvrir de nouvelles possibilités pour certaines personnes qui n’auraient jamais essayé jusqu'à présent.   &lt;br /&gt;
Comme son nom l'indique, elle sera modulaire et s'adaptera à différents handicaps. Accompagnée de son application d’initialisation, elle sera accessible aussi bien aux enfants, patients, parents et aides soignantes.&lt;br /&gt;
&lt;br /&gt;
Quelques mois plus tard...Le jeune patient fan de Need For Speed, peut maintenant piloter sa voiture comme un vrai professionnel grâce à l'un des joysticks qu'il utilisera avec sa main valide et il pourra accélérer à des vitesses folles à l'aide de boutons poussoirs au niveau de son pied valide et gagner la partie. Son ami venu lui rendre visite, pourra en lieu et place des aides soignantes configurer à l'aide de la tablette (portable) la manette du patient. &lt;br /&gt;
Si le patient change de jeu pour Tekken et que la configuration des modules ne lui convient plus, il peut interchanger les éléments de la manette selon son envie et son confort. Ainsi il peut faire sauter son personnage, il utilisera un module bouton supplémentaire, qu'il actionnera avec le poing.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Fonctionnement&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Suite à une analyse fonctionnelle et à la formulation de notre projet, nous avons pu définir le fonctionnement de notre système. Notre produit, la manette, doit être accessible d’après nos objectifs à différents types de handicaps moteurs. Ainsi, l’idéal serait de concevoir une manette modulable afin qu’elle puisse s’adapter à toutes les situations. Ce n’est plus au patient de s’adapter à la manette mais à la manette de s’adapter au patient.&lt;br /&gt;
Cela signifie que la manette sera, dans la limite du possible et de la sensibilité du corps du patient, composée de plusieurs parties dites « modules » comportant un ou plusieurs actionneurs (boutons, joysticks, gâchettes...). Ces modules seront déplaçables afin d’être utilisé avec différents membres du corps : un doigt, une main,&lt;br /&gt;
une jambe ou même un pied. Il suffira de les connectés entre eux suivant l’organisation souhaitée, le Gameplay du jeu ou en fonction du handicap. Le tout sera relié à une application.&lt;br /&gt;
L’application sera alors mise en place pour connecter les différentes parties du point de vue software pour prérégler la manette en fonction du patient. Il pourra alors choisir les boutons en fonction du jeu, de ses mouvements mais aussi choisir la sensibilité.&lt;br /&gt;
&lt;br /&gt;
L’application et les modules devront être intuitifs et faciles d’utilisation. De cette manière des utilisateurs non avertis dans le domaine informatique ou jeunes pourront eux-mêmes gérer les connexions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Réponse à la question difficile&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
'''Question : Comment interconnecter les différents modules de la manette ?'''&lt;br /&gt;
&lt;br /&gt;
Il nous faut pour ce projet interconnecter les modules modélisant la manette qui seront connectés à la consoles PS4 via une Raspberry Pi 3.&lt;br /&gt;
Le choix de la Raspberry Pi 3 nous permet d'utiliser son module Bluetooth pour communiquer avec la PS4, ce choix est plus adaptée au projet que du filaire.&lt;br /&gt;
Concernant l'interconnexion des modules, nous travaillerons en deux étapes &amp;quot;preuves concept&amp;quot; : filaire et sans fils (Bluetooth).&lt;br /&gt;
&lt;br /&gt;
'''Objectif 1 : Preuve concept filaire'''&lt;br /&gt;
&lt;br /&gt;
Dans cette première partie de projet, nous souhaitons avoir une 1ère preuve de prototype rapidement. Nous nous concentrerons alors sur la communication entre la RPi3 et la PS4 ainsi que sur la conception des modules. Pour les modules, nous réaliserons des cartes électronique pour chaque module avec un micro-contrôleur. La communication filaire nous permettra d'interconnecter les modules à la RPi3 avec un bus SPI.&lt;br /&gt;
&lt;br /&gt;
'''Objectif 2: preuve concept sans fils'''&lt;br /&gt;
&lt;br /&gt;
Une deuxième étape du projet est la réalisation de la solution idéale sans fils. Celle-ci pourra commencer à être développée petit à petit en parallèle avec l'objectif 1. Le but ici, est d'interconnecter les modules en Bluetooth. Nous avons choisi le Bluetooth pour garder une connexion commune sur toute la chaîne. &lt;br /&gt;
Nous rajouterons alors un module bluetooth à chaque module de la manette. &lt;br /&gt;
&lt;br /&gt;
'''Objectif 3: possibilité d'adapter les boutons (capuchon en 3D)'''&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Préparation du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Cahier des charges&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
''Chef de projet:'' Alexandre Boé  &amp;lt;br&amp;gt;&lt;br /&gt;
''Responsables:'' Xavier Redon, Thomas Vantroys &amp;lt;br&amp;gt;&lt;br /&gt;
''Partenariat:'' Marc Sautelet (non etablie) &amp;lt;br&amp;gt;&lt;br /&gt;
''Elèves-ingénieurs:'' Camille Saâd, Transley Gracias &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Sujet :''' Manette modulable pour personne à déficience moteur compatible PlayStation 4 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objectifs principal (1er POC) : ===&lt;br /&gt;
Faire transmettre des informations issus des actionneurs (ex:boutons poussoires) via des arduinos jusqu’à la Raspberry Pi 3 en SPI.&amp;lt;br&amp;gt;&lt;br /&gt;
Envoyer les données reçues vers la PS4 en USB  &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objectifs secondaire (2e POC):===&lt;br /&gt;
Créer des modules avec un microcontrôleur et une puce bluetooth pour permettre une meilleurs flexibilité (c-àd pouvoirs avoir une meilleure ergonomie et une connexion sans fil) &amp;lt;br&amp;gt;&lt;br /&gt;
Connecter la Raspberry Pi 3 en Bluetooth à la PS4 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier: beteacorne.jpg||middle|600px|Bete a corne manette]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Choix techniques : matériel et logiciel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Liste de matériel :===&lt;br /&gt;
&lt;br /&gt;
'''Modules boutons/joysticks/gachettes'''&lt;br /&gt;
&lt;br /&gt;
3  Push buttons :&amp;lt;br&amp;gt;&lt;br /&gt;
- O X Y Carré R3 L3 &amp;lt;br&amp;gt;&lt;br /&gt;
- Guide PS &amp;lt;br&amp;gt;&lt;br /&gt;
- start/back &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 0,45€/unité TTC [https://www.gotronic.fr/art-bp-miniature-krs1273-16976.htm] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1  Thumbstick original: &amp;lt;br&amp;gt;&lt;br /&gt;
Joystick analogique 4 directions --&amp;gt; 4,25€/unité TTC [https://www.gotronic.fr/art-joystick-analogique-4-directions-19063.htm] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1 buttons trigger L1 L2 =&amp;gt; 1x Thumbstick original''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Cartes Atmega328p /connexion spi/'''&lt;br /&gt;
&lt;br /&gt;
3   Arduino UNO &amp;lt;br&amp;gt;&lt;br /&gt;
1   Arduino UNO atmega328p retirable &amp;lt;br&amp;gt;&lt;br /&gt;
4   capacite 22pF traversantes &amp;lt;br&amp;gt;&lt;br /&gt;
2   resistances 10 kOhm traversantes (à récupérer) &amp;lt;br&amp;gt;&lt;br /&gt;
2   oscillateurs quartz 16MHz traversante &amp;lt;br&amp;gt;&lt;br /&gt;
2   atmega328p-pu et support &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cartes module bluetooth nrf52810 '''&lt;br /&gt;
&lt;br /&gt;
6   capacités 100nF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
6   capacités 12pF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 4,7pF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 1µF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 100pF=0,1nF 0603 (à récupérer) &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 0,8pF 0603 (a acheter, commande en cours) &amp;lt;br&amp;gt;&lt;br /&gt;
2   inductance 3,9nH 0603 (a acheter, commande en cours) &amp;lt;br&amp;gt;&lt;br /&gt;
2   oscillateur quartz 32 MHz &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''' Connexions et autres '''&lt;br /&gt;
&lt;br /&gt;
1 Led RGB neopixel [https://www.adafruit.com/product/1734] &amp;lt;br&amp;gt;&lt;br /&gt;
1 Raspberry Pi 3 &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; ~36,23€/unité TTC [https://fr.rs-online.com/web/p/processor-microcontroller-development-kits/8968660/?src=raspberrypi] &amp;lt;br&amp;gt;&lt;br /&gt;
1 Raspberry Pi Zero W (commandée) [https://www.raspberrypi.org/products/raspberry-pi-zero-w/] &amp;lt;br&amp;gt;&lt;br /&gt;
6 Alimentations 5V ou 3,3V &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
par exemple, 12 piles de type CR2016 3V rechargeables ou 24 piles AAA 1,5 V rechargeables  &lt;br /&gt;
5 modules Bluetooth nrf de Nordic : nRF52810-QFAA-R &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 3,17€/unité + frais expédition  [https://www.mouser.fr/productdetail/nordic-semiconductor/nrf52810-qfaa-r?qs=sGAEpiMZZMve4%2FbfQkoj%252bG%2FosjLoe2oghFQwQllMrQ4%3D]&lt;br /&gt;
5 Lignes broches mâles &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logiciels:===&lt;br /&gt;
&lt;br /&gt;
- IDE arduino&lt;br /&gt;
- Altium&lt;br /&gt;
- FreeCAD ou Inkscape&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Liste des tâches à effectuer&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 1 : Gestion du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Définition des cahiers des charges fonctionnel et technique, choix d'orientation...&lt;br /&gt;
* Recherche techniques sur les différentes connexions possibles entre les modules, la RPi 3 et la console PS4&lt;br /&gt;
#Recherche connexion SPI entre les modules et la RPi3&lt;br /&gt;
# Recherche connexion bluetooth entre la RPi3 et la PS4&lt;br /&gt;
# Recherche connexion bluetooth pour les modules&lt;br /&gt;
# Recherche carte avec montage Atmega328P-PU et anticipation module bluetooth&lt;br /&gt;
* Détermination du matériel nécessaire&lt;br /&gt;
* Réflexion sur l'application&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 2: Réalisation du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Partie 1: Preuve concept manette en filaire'''&lt;br /&gt;
&lt;br /&gt;
* Conception de cartes électroniques pour 2 modules (/!\ prévoir modules bluetooth)&lt;br /&gt;
* Réalisation connexion SPI avec 2 modules : programmation des Atmega328p en liaison série. &lt;br /&gt;
* Si tests concluant, ajouter des modules jusqu'à en avoir 5 (1 pour chaque type de boutons) &lt;br /&gt;
* Connexion bluetooth entre la PS4 et la RPi3&lt;br /&gt;
* Réalisation du support des modules avec fixations possibles (imprimante 3D)&lt;br /&gt;
&lt;br /&gt;
'''Partie 2: Preuve concept manette en bluetooth'''&lt;br /&gt;
&lt;br /&gt;
* Ajout des modules bluetooth aux cartes électroniques&lt;br /&gt;
* Connexion bluetooth entre les modules&lt;br /&gt;
&lt;br /&gt;
'''Partie 3: Application Android : paramétrage de la manette'''&lt;br /&gt;
&lt;br /&gt;
* Créer une application sur tablette ou smartphone (Android) afin de configurer la manette aux besoins (inter-connexion des modules et console)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Calendrier prévisionnel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Date'''&amp;lt;/u&amp;gt;&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Tache à réaliser''' &amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
17/01/18-24/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Faire des recherches sur les différentes interconnexions du système : Bluetooth, RPi-Atmega328 (SPI), RPi-PS4&lt;br /&gt;
Continuer liste des taches, matériel, Début recherches + réflexion fixation support des modules&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Recherche technique connexion PS4-RPi3 et connexion SPI RPi3-Module + code&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18-07/03/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Réalisation 1er prototype (+ début prototype 2)&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
07/03/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Seance 7 :  Test prototype filaire&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
07/03/18-09/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Réalisation 2eme prototype + application Android&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
09/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Seance 14 :  Test prototype Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
14/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Video projet&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
15/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Finalisation projet et Rapport&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
16/05/18-17/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Soutenances Projet&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Réalisation du Projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Feuille d'heures &amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Voici le tableau d'heures du binôme:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Heures S11 !! Heures S12 !! Heures S13et+ !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 10&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 20min&lt;br /&gt;
|&lt;br /&gt;
| 15h20&lt;br /&gt;
|-&lt;br /&gt;
| Cherches techniques &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 18&lt;br /&gt;
|-&lt;br /&gt;
| Rédaction du wiki et rapport de projet&lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 30min&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| 30min&lt;br /&gt;
| 30min&lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
| 10h30&lt;br /&gt;
|-&lt;br /&gt;
| Programmation&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 3&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 7&lt;br /&gt;
| 8&lt;br /&gt;
| 6&lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
| 43&lt;br /&gt;
|-&lt;br /&gt;
| Cartes électroniques&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 6&lt;br /&gt;
| 8&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| 31&lt;br /&gt;
|-&lt;br /&gt;
| Application&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| Total Semaine&lt;br /&gt;
| 10&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 7&lt;br /&gt;
| 10h30&lt;br /&gt;
| 13&lt;br /&gt;
| 9&lt;br /&gt;
| 12&lt;br /&gt;
| 9h30&lt;br /&gt;
| 10h30&lt;br /&gt;
| 9&lt;br /&gt;
| 9h20&lt;br /&gt;
| &lt;br /&gt;
| '''117h50'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Prologue&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Avant la réalisation et conception d'un projet, il est important d'analyser celui-ci. Nous avons allons consacré le prologue à l'analyse fonctionnelle de la manette. Nous avons également eu une réflexion sur l'analyse technique, cela nous a permis de réaliser une liste de matériel. Il est important de définir les objectifs ainsi que les besoins afin de ne rien oublier. (Voir ci-dessus Analyse projet) &lt;br /&gt;
Nous avons également organisé notre travail, pour le partage de documents de recherches et la rédaction de compte-rendu final nous avons réalisé un google drive. Par la suite, nous créerons un projet Git. &lt;br /&gt;
&lt;br /&gt;
Durant ce temps, nous avons décidé de réaliser 5 modules. Les modules sont les différents boutons de la manettes qui nous pourrons placer selon nos choix (boutons modulaires) pour notre prototype projet pour chaque type des boutons d'une manette PS4. Ces modules devrons être connectés à la console et interconnectés. Le tout sera lié à une application Android. Suite à quelques recherches et nos analyses, nous avons décidé les points suivants :&lt;br /&gt;
&lt;br /&gt;
- On commencera avec 2 modules et on les multipliera par la suite. &lt;br /&gt;
- Les premiers tests sont réalisés avec des boutons petits pour assurer leur caractéristique &amp;quot;modulaires&amp;quot;, par la suite nous pourrons ajouter des capuchons de taille plus importante (imprimante 3D ou achat)&lt;br /&gt;
- Conception modules : réalisation de carte avec un microcontrôleur atmega328 programmable pour chaque module (anticiper le module Bluetooth) &lt;br /&gt;
- Projet en 2 parties : prototype filaire et prototype Bluetooth&lt;br /&gt;
# Prototype filaire : connexions entre les modules et la RPi3 en SPI, connexion Rpi3-PS4 en Bluetooth, avec l'application en filaire à la RPi3&lt;br /&gt;
# Prototype Bluetooth: connexion Bluetooth entre modules-RPi3-PS4-apllication&lt;br /&gt;
&lt;br /&gt;
[[Fichier: structuremanette.png||center|400px|Concept manette modulable]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 1&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous nous sommes concentrés les recherches afin de définir clairement le cahier des charges technique. Il s'agit des réalisations à mettre en œuvre pour les inter-connexions des éléments de la manette.&lt;br /&gt;
Ainsi, nous avons fait des recherches sur :&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI entre les modules (Atmega328p) et la RPi3===&lt;br /&gt;
&lt;br /&gt;
SPI: Serial périphérique interface BUS&lt;br /&gt;
&lt;br /&gt;
[[Fichier: yWGmW.png||right|200px|Concept manette modulable]]&lt;br /&gt;
Comme indiqué sur l'image ci-dessus, la Raspberry pi 3  peut communiquer en SPI avec ses broches CS0 (24), CS1 (26), SCLK (23), MISO (21), MOSI (19). Celles-ci permettent de communiquer avec un ou plusieurs esclaves (dans notre cas, des Atmega328p) en reliant directement les broches concernées de la RPi3 à celles des composants esclaves.&lt;br /&gt;
Chaque broche CS0 (24) ou CS1 (26) ne peut être connectée qu'à l'entrée SS (aussi appelé CS) d'un seul esclave.&lt;br /&gt;
C'est a dire que chaque CS est lié à un esclave afin de choisir avec lequel la communication est établie à un moment donné, et les MISO sont reliées entre elles en cascade, de même pour les SCLK et les MOSI. On peut noter que le maître impose la fréquence d’horloge et sélectionne l’esclave auquel les données sont envoyées.  8 MHz est le plus rapide supportable a 3,3V&lt;br /&gt;
&lt;br /&gt;
[[Fichier: fonctionnementSPI.png||right|200px|Connexion SPI multi-esclaves]]&lt;br /&gt;
&lt;br /&gt;
Voici un schéma du fonctionnement souhaité : &lt;br /&gt;
&lt;br /&gt;
Comme nous souhaitons avoir 5 modules environ il nous faudra rajouter un composant en plus afin d'augmenter les possibilités de sélection, par exemple des démultiplexeurs.&lt;br /&gt;
Dans un premier temps nous essaierons avec 2 esclaves, puis on augmentera le nombre. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Connexion Bluetooth PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Les recherches portent également sur la connexion entre la manette PS4 et la console. Elles concernent le protocole de communication via Bluetooth&lt;br /&gt;
&lt;br /&gt;
Caracteristique pour la PS4:  Bluetooth®v4.0, Qualcomm Atheros AR3002 Buetooth LE: 2,4-2,5 GHz  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caracteristique de la connexion : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Vitesse de transmission &amp;gt;&amp;gt; 3 Mbit/s   8N1 &lt;br /&gt;
*Relevé tous les 1.3 millisecond (peut-être) &lt;br /&gt;
*Chaque manette à une adresse unique BD_ADDR qui correspond à l’adresse MAC de la carte Réseau&lt;br /&gt;
*Protocole de détection est le SDP basé sur une emission reception PDU&lt;br /&gt;
*L’Attribut ID est representer en TLV Type Length Value &lt;br /&gt;
*Communication HCI ACL Data Packet &lt;br /&gt;
&lt;br /&gt;
===Rélisation des cartes électroniques===&lt;br /&gt;
&lt;br /&gt;
matériel nécessaire pour un PCB : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*breadboard&lt;br /&gt;
*câbles&lt;br /&gt;
*1 x 10k Ohm résistance&lt;br /&gt;
*Quartz 16Mhz clock crystal&lt;br /&gt;
*2 x 22 pF capaciteurs&lt;br /&gt;
*Atmega328P-PU&lt;br /&gt;
&lt;br /&gt;
Ressources: &lt;br /&gt;
[[https://www.arduino.cc/en/Main/Standalone]]&lt;br /&gt;
[[http://www.eprojectszone.com/atmega-328-pu-standalone/]]&lt;br /&gt;
[[https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 2&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la semaine deux et durant la séance, nous avons continué et approfondie nos recherches sur le projet. Nous avons pu ainsi affiner nos taches de réalisation et donc notre cahier des charges.&lt;br /&gt;
&lt;br /&gt;
===Connexion aux modules: SPI et Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Green&amp;quot;&amp;gt; CORRIGER&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
voir https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018#Configuration_du_syst.C3.A8me_embarqu.C3.A9&lt;br /&gt;
&lt;br /&gt;
(sudo apt-get install pi-bluetooth)&lt;br /&gt;
&lt;br /&gt;
''connexion sur la raspberry par ssh:''&lt;br /&gt;
 su&lt;br /&gt;
 update-rc.d ssh enable&lt;br /&gt;
 invoke-rc.d ssh start &lt;br /&gt;
 ssh pi@172.26.79.1XX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''bluetooth''&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
 agent on&lt;br /&gt;
 default-agent&lt;br /&gt;
 scan on&lt;br /&gt;
 pair [device Bluetooth address]  (exemple: pair XX:XX:XX:XX:XX:XX )&lt;br /&gt;
&lt;br /&gt;
''NOUVELLE REFLEXION : Connexion SPI entre les modules (Atmega328p) et la RPi3 --&amp;gt; MODULES BLUETOOTH''&lt;br /&gt;
&lt;br /&gt;
Si multi-esclaves= plusieurs modules : &lt;br /&gt;
Il faut ajouter des sélections pour les SPI → démultiplexeurs OU ne pas utiliser les CS0 et CS1, et plutôt des pins entrée/sortie de la RPi3 lié au SS comme ça on choisit direct le module esclave voulu.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' Nous avons étudié à nouveau la datasheet de notre module bluetooth nrf de Nordik. Le module bluetooth comporte  déjà un microprocesseur !&lt;br /&gt;
Un module plutôt peut donc jouer le rôle de notre atmega328p. Il n'y a alors pas besoin de réaliser des cartes électroniques de type arduino standalone. Nos PCB regrouperont alors uniquement l'alimentation, un actionneur (bouton, joystick), le module bluetooth et les broches de connexion si besoin... &lt;br /&gt;
&lt;br /&gt;
Cette séance nous a alors permise de revoir entièrement le matériel nécessaire. Notre liste de matériel nous semble alors plus réfléchie et limitée au nécessaire. &lt;br /&gt;
&lt;br /&gt;
===Connexion Bluetooth PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Suite à nos recherches de la semaine précédente, nous avons sélectionné deux sites bien renseignés : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;SITES&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ils nous ont permis de comprendre la communication entre la manette et la console. En effet, ils nous expliquent les échanges de trames Bluetooth. &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;EXPLICATIONS 1 exemple &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 3 : Début premier prototype&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI RPi3-Arduino===&lt;br /&gt;
&lt;br /&gt;
Comme vu durant les semaines précédentes, nous souhaitons réaliser une connexion Multi-esclaves en SPI entre la Raspberry pi et plusieurs modules.&lt;br /&gt;
Cette semaine nous avons vu que la réalisation de notre premier prototype doit aller vite. Il ne nous est pas nécessaire d’attendre les modules bluetooth si il nous faut dans cette partie uniquement utiliser son microprocesseur. Ainsi pour chaque module nous utilisons une arduino UNO. Nous réaliserons les programmes en C afin de pouvoir les réutiliser avec les modules bluetooth par la suite. &lt;br /&gt;
Une fois la connexion réalisable nous adapterons les programmes aux modules bluetooth Nordik. En effet, ceux-ci comporte déjà un microprocesseur, le module peut jouer le rôle de notre atmega328p. Il n'y a aurait alors pas besoin de réaliser des cartes électroniques arduino standalone sur PCB, mais directement des cartes électronique avec le module et le module voulu (bouton, joystick...) et l'alimentation. &lt;br /&gt;
Durant la séance nous avons alors revu la liste de matériel nécessaire. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: prototype1.jpeg||center|600px|connexion filaire prototype 1 filaire arduino]]&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous avons recherches des exemples de codes et de librairies pour Arduino SPI et RaspberryPI SPI. &lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé le programme de la connexion SPI pour l'arduino et récupéré les bibliothéques SPI.h avec SPI.c. Nous nous sommes alors concentrer à les comprendre, pour pouvoir l'utiliser. &lt;br /&gt;
&lt;br /&gt;
===Réalisation du projet Git===&lt;br /&gt;
&lt;br /&gt;
Création du projet IMA4_Projet35_ManetteModulable sur Git et partage de celui-ci. &lt;br /&gt;
Les premiers dossier crées cette la séance :&lt;br /&gt;
-Arduino (connexion SPI arduino) : ProtoSpi.c + dossier librairie SPI + Makefile&lt;br /&gt;
-RPI (dossier codes pour Rpi) &lt;br /&gt;
-Readme.md&lt;br /&gt;
Ces dossiers seront amenés à être modifiés au cours des séances. &lt;br /&gt;
&lt;br /&gt;
===Protocole Bluetooth PS4===&lt;br /&gt;
&lt;br /&gt;
Suite à l'étude des trames Bluetooth, on a pu voir que ces dernières étaient incomplètes. Le modèle de communication étant propriétaire, on n'y a pas accès directement. Cela nous empêche donc de mettre en oeuvre cette communication. &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt; Déveloper&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On a décidé de commencer par une connexion USB (pour laquelle on dispose de toutes les informations) celle-ci étant plus complète.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 4&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Pour le prototype 1 FILAIRE nous réaliserons les étapes suivantes :&lt;br /&gt;
&lt;br /&gt;
#Réalisation du programme SPI pour arduino&lt;br /&gt;
#Réalisation du programme SPI pour la RPi&lt;br /&gt;
#Connexion USB avec la PS4 ou ordinateur&lt;br /&gt;
#Réalisation de cartes électroniques atmega328p-pu standalone (remplacer les Arduinos) &lt;br /&gt;
#Remplacer les &amp;quot;PCB arduino&amp;quot; par le module bluetooth et adapter la connexion&lt;br /&gt;
#Conception 3D de la délimitation 1 axe pour le joystick &amp;quot;gâchette&amp;quot;&lt;br /&gt;
#Réalisation de l'application Androïde.&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées nous auront alors une preuve de concept filaire et nous pourrons alors passer à une connexion bluetooth. &lt;br /&gt;
Le passage à la connexion bluetooth sera le deuxième prototype et le cas idéal de la réalisation de la manette modulable. &lt;br /&gt;
&lt;br /&gt;
===Mise à jour Matériel===&lt;br /&gt;
&lt;br /&gt;
- Modéliser les boutons gâchettes L1/2 R1/2 de la manette PS4 (boutons sensibles à la pression) --&amp;gt; un joystick dont nous bloquerons un axe (imprimante 3D)&lt;br /&gt;
- Remplacer la RPi 3 par une Rpi zero W qui nous permettrait de réaliser plus facilement une connexion USB tout en gardant l'avantage du bluetooth. &lt;br /&gt;
- Choix de l’alimentation pour les 5 modules Bluetooth: nécessitent 3V --&amp;gt;  utiliser des piles rechargeables 1,2V AAA plutôt que piles rondes 3V.&lt;br /&gt;
&lt;br /&gt;
Nous avons également besoin du matériel cité en semaine 1 pour réaliser des cartes électroniques atmega328p-pu standalone. ( nous revenons alors sur les décisions de la semaine 3)&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI RPi3-Arduino===&lt;br /&gt;
 &lt;br /&gt;
Montage Raspberrypi et 1 arduino en PSI + 1 bouton + 1 led.&lt;br /&gt;
Voici le choix des branchements :&lt;br /&gt;
&lt;br /&gt;
 MASTER = RPi   &lt;br /&gt;
 SLAVE= Arduino&lt;br /&gt;
&lt;br /&gt;
'''SPI sur Arduino:'''&lt;br /&gt;
 MOSI -&amp;gt; GPIO11 //PB3  //master OUT to the slave IN&lt;br /&gt;
 MISO -&amp;gt; GPIO12 //PB4 //slave OUT to the master IN&lt;br /&gt;
 SCLK -&amp;gt; GPIO13 //PB5 //serial clock&lt;br /&gt;
 SS -&amp;gt; GPIO10   //PB2  //slave select&lt;br /&gt;
'''Led, bouton et autre...'''&lt;br /&gt;
 LED --&amp;gt; GPIO6  //PD6&lt;br /&gt;
 GND&lt;br /&gt;
 +5V (if required)&lt;br /&gt;
'''SPI sur la Raspberry Pi'''&lt;br /&gt;
 SPIO MOSI -&amp;gt; PIN19 &lt;br /&gt;
 SPIO MISO -&amp;gt; PIN21&lt;br /&gt;
 SCLK -&amp;gt; PIN23&lt;br /&gt;
 SPIO CS0 -&amp;gt; PIN24&lt;br /&gt;
&lt;br /&gt;
Continuation du code pour faire clignoter Led branchée à une arduino depuis la Rpi, en connexion SPI.&lt;br /&gt;
&lt;br /&gt;
===Connexion USB PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous avons regardé comment utiliser le port série sur la RPi3, soit utiliser les UART. &lt;br /&gt;
&lt;br /&gt;
Nous avons réaliser qu'il n'était pas aussi simple d'utiliser le port serie USB de la Raspberry Pi 3, en effet le SoC est un BCM2837 . &lt;br /&gt;
De plus nous ne pouvons pas utiliser le même port pour l'alimentation et la connexion. &lt;br /&gt;
&lt;br /&gt;
Une des solutions à cette difficulté serait d'utiliser une RPi ZERO W à défaut d'une RPi 3. On pourrait alors avoir un port d'alimentation avec connexion USB mais également retrouver la connexion bluetooth dont nous avons besoin.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 5&amp;lt;/span&amp;gt;==&lt;br /&gt;
 &lt;br /&gt;
===Programmation: Réflexion définitives prototypes filaire ===&lt;br /&gt;
&lt;br /&gt;
Durant la semaine 5, nous avons continué la réalisation du prototype filaire par l'avancé du code SPI ainsi que les recherches concernant le protocole PS4. &lt;br /&gt;
&lt;br /&gt;
Pour réaliser la connexion entre la PS4 et les différents modules, nous avons vu la semaine dernière que nous utiliserons une RPi zero W (que nous avons commandé). Celle-ci nous permet d'utiliser le bluetooth mais elle nous permet également de réaliser un réseau local sans fil. Ce qui peut être pratique dans la mesure où notre projet est modulable. &lt;br /&gt;
En attendant la réception de la commande, nous nous sommes penché sur les programmes et la configuration nécessaire à l'utilisation de la RPi zero W.&lt;br /&gt;
&lt;br /&gt;
===Electronique===&lt;br /&gt;
&lt;br /&gt;
[[Fichier: bouton_c1.jpg|100px|thumb|left|PCB bouton]]&lt;br /&gt;
[[Fichier: arduinobb.jpg|200px|thumb|right|atmega328p-pu branchement test]]&lt;br /&gt;
&lt;br /&gt;
Du coté électronique, nous avons réalisé sur fritzing certaines cartes électroniques. Les Arduino Uno servant actuellement de test, seront remplacées par des PCB atmega328p-pu standalone avec des broches permettant les branchements nécessaires SPI ou encore aux modules &amp;quot;boutons/joystick&amp;quot;. Pour les boutons, nous avons également réalisé un pcb afin de faciliter les branchements.  &lt;br /&gt;
&lt;br /&gt;
Il nous faut alors également une 3eme carte qui nous sera nécessaire pour la réalisation du prototype sans fil. Dans notre liste de matériel, nous avons des composants nrf52810 bluetooth, ceci doivent être soudé avec les capacités de protection mais également des broches de communication. Nous avons alors commencé cette carte électronique sur Altium avec le fichier  projet PCB du distributeur à modifier.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: Arduino_c1.jpg|100px|thumb|center|PCB atmega328p-pu]]&lt;br /&gt;
&lt;br /&gt;
=== Construction 3D ===&lt;br /&gt;
&lt;br /&gt;
Enfin, nous avons commencé à réaliser des boîtiers 3D pour certains modules. Par exemple, comme nous l'avions vu précédemment, un des joysticks servira de bouton-gâchette en utilisant un seul de ses axes. Il nous faut alors réaliser un boitier qui bloque l'un des axes, mais également une tige qui nous permettra de pousser le joystick de manière simplifiée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 6&amp;lt;/span&amp;gt;==&lt;br /&gt;
 &lt;br /&gt;
===Programmation: configuration RPi Zero W ===&lt;br /&gt;
&lt;br /&gt;
Ayant reçu la Raspberry Pi zero W en début de semaine, nous nous sommes concentrés sur la programmation et la configuration de celle-ci. &lt;br /&gt;
&lt;br /&gt;
===Electronique: PCB nrf52810===&lt;br /&gt;
&lt;br /&gt;
Les cartes réalisées en semaine 5 sont validées et en attente de réalisation. &lt;br /&gt;
&lt;br /&gt;
Cette semaine a permis la réalisation et la finalisation de la carte électronique nrf52810. Il nous a fallu recommencé cette carte deux fois. En effet, une fois finie sur Altium nous avons réalisé que les empreintes des CMS sur PCB fourni par le constructeur ne correspondent pas au matériel CMS de l'école. Face à cette inattention de notre part, nous avons décidé de refaire entièrement la carte électronique sur fritzing. Ayant la datasheet et des plans d'inspiration PCB, nous avons pu refaire la carte entièrement. &lt;br /&gt;
Sur celle-ci nous avons ajouté des broches de connexion au besoin, un branchement Jtag et ICSP pour la programmation et la connexion SPI. &lt;br /&gt;
La carte est en attente de validation, puis validation.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: nrf52810_circuit2.jpg||center|400px|PCB carte nrf52810]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Révision matériel ===&lt;br /&gt;
&lt;br /&gt;
Pour la réalisation de nos composants électroniques, il nous a fallu faire une révision des composants disponibles à l'école:&lt;br /&gt;
(les quantités indiquées ci-dessous pourront être augmentée si nécessaire,pour avoir dans l'idéal un module de chaque type de la manette, ici on se concentre sur BOUTON et JOYSTICK)&lt;br /&gt;
&lt;br /&gt;
'''Cartes Arduino:'''&lt;br /&gt;
* 4 capacite 22pF traversantes&lt;br /&gt;
* 2 resistances 10 kOhm traversantes (à récupérer)&lt;br /&gt;
* 2 oscillateurs quartz 16MHz traversante&lt;br /&gt;
* 2 atmega328p-pu et support&lt;br /&gt;
&lt;br /&gt;
'''Cartes nrf52810'''&lt;br /&gt;
* 6 capacités 100nF 0603&lt;br /&gt;
* 6 capacités 12pF 0603&lt;br /&gt;
* 2 capacités 4,7pF 0603&lt;br /&gt;
* 2 capacités 1µF 0603&lt;br /&gt;
* 2 capacités 100pF=0,1nF 0603 (à récupérer)&lt;br /&gt;
* 2 capacités 0,8pF 0603 (commande en cours)&lt;br /&gt;
* 2 inductance 3,9nH 0603 (commande en cours)&lt;br /&gt;
* 2 oscillateur quartz 32 MHz &lt;br /&gt;
&lt;br /&gt;
'''Cartes modules Boutons'''&lt;br /&gt;
* un sachet de broches mâles (qu'on utilisera également pour les autres cartes, à récupérer/acheté) &lt;br /&gt;
&lt;br /&gt;
Nous avons alors mis-à-jour la liste de composant située plus haut, ainsi que celle de la page IMA4 2017/2018 [https://projets-ima.plil.fr/mediawiki/index.php/Projets_IMA4_SC_%26_SA_2017/2018]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 7&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Programmation: connexion wifi RPi Zero W et Bootloader sur Atmega328p-pu ===&lt;br /&gt;
&lt;br /&gt;
Pendant cette semaine, nous avons continué la programmation et la configuration des Raspberry Pi 3 et Zero W afin de les utiliser en connexion Wifi. &lt;br /&gt;
&lt;br /&gt;
Nous avons également continuer les programmes de récupération de données : état des boutons et du joystick. Ces programmes sont appliqué sur l'atmega328p-pu standalone sur la plaque d'essai en attendant que le PCB soit opérationnel.&lt;br /&gt;
Pour pouvoir programmer l'atemega328p-pu comme une arduino UNO, il nous faut suivre plusieurs étapes :&lt;br /&gt;
&lt;br /&gt;
'''1.Flasher le Bootloader'''&lt;br /&gt;
Nous avons 2 Atmega328p-pu neufs, ainsi il nous faut flasher le bootloader sur chacun d'eux afin de pouvoir les utiliser et les programmer sur une breadboard dans un montage minimaliste arduino-standalone. &lt;br /&gt;
Pour cela, on peut utiliser une carte arduino UNO. On vérifie le port et le type de carte sélectionnés dans le menu &amp;gt;Outils. Sur cette carte on téléverse le fichier arduinoISP.ino qui se trouve dans les exemples en étant en progrmamateur AVr ISP mkll (&amp;gt;outils&amp;gt;programmateur) &lt;br /&gt;
Puis on met l'atmega328p-pu qui nous intéresse sur le suppor socket de la carte. On change de nouveau le programmateur pour Arduino as ISP et on fait &amp;gt;tools&amp;gt;burn bootloader, soit &amp;gt;graver la sequence d'initialisation.&lt;br /&gt;
Ces étapes faites, on peut retirer notre microcontroleur et le replacer correctement dans le montage. &lt;br /&gt;
&lt;br /&gt;
'''2.Programmation atmega328 sur breadboard'''&lt;br /&gt;
Une fois l'atmega328p-pu préparé, on peut le programmer. On peut le faire simplement à l'aide de la carte arduino UNO utilisée précédemment.On branche les Tx et Rx en commun ainsi que le reset, le GND et le VCC.&lt;br /&gt;
&lt;br /&gt;
Nous avons réaliser des codes basiques tels que le clignotement d'une led rouge ou encore l'affichage de &amp;quot;hello world&amp;quot; sur le moniteur série pour vérifier la bonne fonctionnalité du montage. Cela fait nous avons pu écrire sous Arduino IDE le code de lecture des états.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: montage_BB_test.jpg||left|200px|programmation modules arduino sur breadboard]]&lt;br /&gt;
&lt;br /&gt;
===Electronique : soudure carte de test modules ===&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons déja vu lors de la réalisation des PCB, si l'on souhaite programmer un atmega328p-pu en bootloader, le montage est simple. Il peut être minimaliste en utilisant une arduino UNO, un atmega328, une breadboard et 3 composants: 1 quartz 16MHZ crystal, 1 résistance 10kOhm et 2 capacitors céramiques de 22pF.&lt;br /&gt;
Durant la semaine 7, nous avons soudé les composants traversants de la carte électronique correspondant à ce montage ainsi que le PCB du bouton.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 8&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Programmation ===&lt;br /&gt;
&lt;br /&gt;
===Electronique : Correction soudure et soudure CMS===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avions souhaité programmer la carte électronique atmega328p-pu. Cependant, nous avons réaliser que nous avions fait une erreur lors de l'envoie du PCB à la production. En effet, celui-ci avait été fait en Top sur le logiciel Fritzing et non en Bottom. Hors nous avions soudé les composants (durant la semaine 7) comme pour un circuit imprimé en bottom, l'atmega328p-pu se retrouve alors inversé par rapport aux pistes. &lt;br /&gt;
Comme solution, nous avons choisi de souder un deuxième support pour l'atmega328 de l'autre coté de la carte avant de la refaire au propre. En effet, avant de la refaire il nous faut vérifier si la carte est bien programmable. &lt;br /&gt;
Une fois cela fait nous avions pu programmer la carte mais, nous avions également réalisé la pin 2 de l'atmega328 était prise par le bouton poussoir. Or, nous avons besoin des pin 2 et 3 pour le RX et TX permettant la programmation de l'atmega à partir d'une arduino, les pistes branchement RX-TX n'ont également pas été prévus pour le téléversement des programmes sur la carte. Il nous faut alors couper une piste et souder des câbles pour utiliser toutes les pistes souhaitées. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: correction_proto_PCB.jpg||right|300px|PCB arduino correction]]&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons également souhaité souder les CMS et le composant bluetooth nrf52810 sur la carte imprimé et reçu lors de la semaine 7. Pour cela, nous avons convenu de travailler dans la C202 durant la séance du mercredi. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: PCB_nrf52810.jpg||left|400px|carte electroniques imprimées]]&lt;br /&gt;
&lt;br /&gt;
====Comment souder des CMS ?====&lt;br /&gt;
&lt;br /&gt;
les CMS sont des composants montés en surface c'est à dire qu'ils sont montés du même côté que les pistes cuivrées (à l'opposé des composants traversants) et sont de petite tailles souvent de l'ordre du millimètre. La taille est déterminée par 4 chiffres : les 2 premiers pour la longueur et les 2 derniers pour la largeur. On a du 1206,0805,0603 ou encore 0402. Il est même possible de trouver plus petit. A l'école nous utilisons souvent du 0603, c'est le cas de nos composants.&lt;br /&gt;
Pour souder des CMS 0603, il nous faut utiliser une autre méthode qui n'est pas le fer à souder :&lt;br /&gt;
# Préparer la veille la pâte à braser la veille (dans une seringue)&lt;br /&gt;
# Gommer la carte pour éviter l'oxydation (attention à ne pas retirer les miettes de gomme en soufflant dessus) &lt;br /&gt;
# Appliquer avec la seringue la pâte sur les empreintes et piste souhaitées. Pour les endroits difficile à atteindre ou avec 2 pistes proches les unes des autres, il est possible de mettre la même goutte de pâte sur les 2 pistes. Cela de causera pas de court-circuit par la suite. En effet, la pâte est composée d’alliage qui sous la chaleur va se fluidifier et se coller uniquement aux pistes métallique. Le reste fondera sous la chaleur du four.&lt;br /&gt;
# Appliquer les CMS sur la pâte au fur et à mesure (attention ! ne jamais toucher les CMS avec les doigts, tjrs utiliser une pince)&lt;br /&gt;
# Mettre au four&lt;br /&gt;
&lt;br /&gt;
====Bilan soudure nrf52810====&lt;br /&gt;
&lt;br /&gt;
Cependant, une fois le matériel nécessaire préparé, et la pâte mise sur les pistes souhaitées, au moment de déposer le composant, nous avons réalisé que celui-ci était beaucoup plus petit que l'empreinte sur le PCB. Il s'agit d'un composant boitier QFN48. Fritzing ne proposant au plus proche des boitiers QFN24 ou LQFP48, celui-ci a basculé automatiquement pour un boitier LQFN48, de dimension plus grande. Face à ce manque de vigilance, nous avions cependant commencer par le nrf52810 (composant concerné) évitant ainsi de gaspiller d'autres CMS. &lt;br /&gt;
Nous avons souhaité refaire la carte sous Altium à partir des fichiers fournis par le concepteur (chose que nous avons commencé à faire aux alentours de la semaine 5) &lt;br /&gt;
Après la réalisation du schématic, et de la modification des empreintes de capacités, inductances et autres composants de 0402 à 0603. Notre matériel ne permettant que des empreintes 0603.&lt;br /&gt;
 &lt;br /&gt;
Lors du routage, une erreur de chevauchement des pistes est notifiée par Altium au niveau du nrf52810. Celles-ci ne présentent pas d'angles et sont déjà de taille 8mil, il nous faut alors passer les pistes en 6mil. Mais 8mil est la taille minimale pour la production à Polytech, nous avons regardé pour envoyer les cartes à faire ailleurs mais le 6mil n'est pas beaucoup conseillé. De plus, il n'est peut-être pas judicieux de continuer avec le composant microcontrôleur-bluetooth Nrf52810 qui prend du temps, donc la carte est difficilement réalisable et peut-être très long à programmer. &lt;br /&gt;
&lt;br /&gt;
Ainsi en cette fin de semaine, nous avons décider face à l'avancer du projet de laisser les nrf52810 de coté et de les remplacer par des modules sans fils plus simples d'utilisation et complets. Ainsi nous aurions plus de chance d'avoir une connexion sans fils entre les modules. Nous pourrions par exemples utiliser des Xbee, des modules Rf...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 9&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation: PS4 et 1er Test SPI sur atmega328p====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
Une carte PCB arduino fonctionnant, nous pouvons la programme pour simuler un module. Celle-ci a été designée afin de s'adapter au module que l'on souhaite. Il suffit de brancher le bouton, le joystick ou autre élèment de manette souhaité.&lt;br /&gt;
Cette semaine ci, nous avons alors configurer la partie communication SPI pour l'arduino.&lt;br /&gt;
&lt;br /&gt;
'''Que voulons-nous faire avec les atmegas ?''' &lt;br /&gt;
Les cartes électroniques atmega328p vont nous permettre de recevoir les requêtes SPI envoyées par la raspberry pi et d'y répondre. La Raspberry enverra un message, par exemple &amp;quot;1&amp;quot;, et l'Arduino lira alors l'état du module qui lui est connecté. Une fois l'état récupéré elle le renvoie à la raspberry pi.&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons programmé l'atmega afin qu'il soit en esclave, qu'il reçoive un de la RPi &amp;quot;1&amp;quot; et retourne une valeur sauvegardé &amp;quot;int envoi&amp;quot;. Nous avons également commencé les tests pour la lecture de l'état d'un bouton (d'après les tests réalisés les semaines précédentes).&lt;br /&gt;
&lt;br /&gt;
'''Code'''&lt;br /&gt;
Comme nous l'avons vu précedement lors de nos recherches (semaines 1 à 4) : &lt;br /&gt;
La communication SPI nécessite l'utilisation des pins: &lt;br /&gt;
&lt;br /&gt;
MOSI -&amp;gt; GPIO11 //PB3  //master OUT to the slave IN&lt;br /&gt;
MISO -&amp;gt; GPIO12 //PB4 //slave OUT to the master IN&lt;br /&gt;
SCLK -&amp;gt; GPIO13 //PB5 //serial clock&lt;br /&gt;
SS -&amp;gt; GPIO10   //PB2  //slave select&lt;br /&gt;
&lt;br /&gt;
Il faut également paramétrer l'atmega328p en Slave. On note que dans un premier temps, le programme sera codé avec l'arduino IDE (fichiers .ino). Une fois l'ensemble SPI RaspberryPi-Arduino fonctionnant, on remplacera ces codes par du langage C ou C++.&lt;br /&gt;
&lt;br /&gt;
Pour faire la connexion SPI sur l'atmega328p,  on utilise la librairie arduino SPI.h, on a alors directement les fonctions nécessaires intervenant sur les registres souhaités : SPCR (spi control register), SPSR (spi status register) et SPDR (spi data register). &lt;br /&gt;
 &lt;br /&gt;
  #include &amp;lt;SPI.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il est important d'initialise d'abord le setup et on active le port série pour pourvoir utiliser le moniteur série. (Cela servira à verifier la valeur envoyée par la RPi) &lt;br /&gt;
&lt;br /&gt;
 void setup (void)&lt;br /&gt;
 {&lt;br /&gt;
   Serial.begin (9600);  &lt;br /&gt;
   pinMode(MISO, OUTPUT);  //configuration en esclave *master in slave out*&lt;br /&gt;
   pinMode(buttonPin,INPUT);  //config pin bouton&lt;br /&gt;
   // turn on SPI in slave mode&lt;br /&gt;
   SPCR |= _BV(SPE);&lt;br /&gt;
   // preparation interruptions&lt;br /&gt;
   pos = 0;   // buffer empty&lt;br /&gt;
   process_it = false;&lt;br /&gt;
   // activation interruptions&lt;br /&gt;
   SPI.attachInterrupt();&lt;br /&gt;
 }  &lt;br /&gt;
 &lt;br /&gt;
On oublie pas de déclarer les interruptions afin de bien lire la requête reçue. &lt;br /&gt;
 &lt;br /&gt;
// SPI interrupt routine&lt;br /&gt;
ISR (SPI_STC_vect)&lt;br /&gt;
{&lt;br /&gt;
  byte c = SPDR;  // grab byte from SPI Data Register&lt;br /&gt;
  // add to buffer if room&lt;br /&gt;
  if (pos &amp;lt; sizeof buf)&lt;br /&gt;
    {&lt;br /&gt;
    buf [pos++] = c;&lt;br /&gt;
    // example: newline means time to process buffer&lt;br /&gt;
    if (c == '\n')&lt;br /&gt;
      process_it = true;&lt;br /&gt;
    }  // end of room available&lt;br /&gt;
}  // end of interrupt routine SPI_STC_vect&lt;br /&gt;
&lt;br /&gt;
Dans la loop main, on traite la requête et on utilise '''SPI.transfer(envoi);''' pour transferer à la RPi les données souhaitées. &lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons également commencé des programmes de test SPI pour la RPi. Il s'agit principalement de programmes de tests tout faits permettant de vérifier la connexion entre cette dernière et l'arduino. Par exemple, la RPI envoie &amp;quot;bonjour&amp;quot; et l'arduino lui retourne ce qu'elle reçoit, soit &amp;quot;bonjour&amp;quot;. Sans succés alors. &lt;br /&gt;
&lt;br /&gt;
====Electronique : Fritzing révision====&lt;br /&gt;
&lt;br /&gt;
Lors de la semaine, le modèle PCB de la carte arduino a été réalisé de nouveau sous fritzing avec les broches et connections manquantes. Nous avons également revu la configuration du bouton reset  et ajouté une led d'état de l'alimentation. Nous avons ainsi envoyé deux cartes identiques à la réalisation.&lt;br /&gt;
La carte déjà soudée lors des derniers jours fonctionnant, elle nous sert de prototype de programmation. Nous pouvons ainsi avancer à la fois sur la programmation des modules mais aussi sur leur réalisation. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 10&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation : PS4 et SPI sur RPi====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Raspberry PI et SPI'''&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, pour la partie Atmega328p-Modules, nous nous sommes concentrés sur la programmation de la communication SPI avec la raspberry pi. Cette semaine a permis une étude plus approfondit sur le fonctionnement pour la RPi. &lt;br /&gt;
&lt;br /&gt;
On rappelle, comme vu des semaines 1 à 4, pour la RPI3 (tout comme la RPi Zero W) utilise les broches : SCLK (23), MISO(21), MOSI (19) et SPI CS0 (24), SPI CS1 (26). &lt;br /&gt;
On la programme en Master. A l'aide des fichiers tests d'inspiration, on pourra directement programmer la RPi en C. Lors de la réalisation du code, il y a 3 étapes : l'initialisation/parametrage en SPI pour être maître, l'envoie de la requête puis la réception de données en retour. &lt;br /&gt;
&lt;br /&gt;
Programmant en C, il ne faut pas oublier les librairies suivantes :&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;getopt.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;sys/ioctl.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/types.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/spi/spidev.h&amp;gt;   //pour SPI&lt;br /&gt;
&lt;br /&gt;
On va déclarer des variables globales permettant le paramétrage :&lt;br /&gt;
&lt;br /&gt;
 static const char *device = &amp;quot;/dev/spidev0.0&amp;quot;;  //si on veut CS0 pour atteindre notre SS&lt;br /&gt;
 static uint8_t mode;       //mode est par défaut à 0&lt;br /&gt;
 static uint8_t bits = 8;    //bits par mot échangé&lt;br /&gt;
 static uint32_t speed = 500000;  &lt;br /&gt;
 static uint16_t delay;&lt;br /&gt;
&lt;br /&gt;
Dans notre main, on ouvre le port (la connexion) au device souhaité,  on vérifie les paramètres (registres, connexions...) puis exécute la fonction transfer(fd). transfer(fd) transmet la requête et s'occupe de la réception. &lt;br /&gt;
&lt;br /&gt;
 fd = open(device, O_RDWR);&lt;br /&gt;
 transfer(fd);&lt;br /&gt;
 close(fd);&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 11&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation: PS4, SSH et tests SPI (RPi3&amp;amp;Atemga328p)====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Raspberry PI, Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
Afin de facilité la programmation en utilisant Ethernet, nous avons installer et configuré la RPi pour l'utiliser en SSH depuis les ordinateurs de la E306. En effet, SSH permet de se connecter à distance sur une machine en utilisant un compte utilisateur de la dite machine. En mettant ssh, on pourra directement agir sur les fichiers de la raspberry depuis un terminal de notre PC. Pour cela, on a d'abord vérifier l'adresse IP de notre raspberry pi : 172.26.145.106 avec un écran mais on peut aussi utiliser les commandes ip a et ifconfig. Puis activer le ssh sur la raspberry pi. &lt;br /&gt;
On modifie alors le fichier config.txt mais également etc/network/interfaces pour configurer la bonne interface Ethernet sur la raspberry pi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: configSSH_raspi.png||left|300px|config ssh ethernet]]&lt;br /&gt;
&lt;br /&gt;
Il nous suffit alors de taper la commande : ssh pi@172.26.145.106  pour accéder à notre RPi. &lt;br /&gt;
&lt;br /&gt;
Nous avons continué à réaliser la communication SPI avec des tests entre une arduino UNO et la RPI3. Nous avons commencé par des tests simples inspirés des études de deux semaines précédentes et modulés selon notre utilité.  &lt;br /&gt;
Nous arrivons alors à lire l'état envoyer &amp;quot;bonjour&amp;quot; et recevoir &amp;quot;ça va&amp;quot; ou encore &amp;quot;1&amp;quot; et recevoir &amp;quot;3&amp;quot;. Il faut noter que le SPI échange des trames, la RPI reçoit alors des hexadécimaux. &lt;br /&gt;
Nous avons alors continué pour recevoir l'état du bouton ou du joystick lors de l'envoie de &amp;quot;1&amp;quot; sur l'Arduino328p. La semaine prochaine nous testerons ces même codes fonctionnels sur les cartes atmeg327p. &lt;br /&gt;
&lt;br /&gt;
A la fin de cette semaine, nous avons alors des codes Arduino-SPI (.ino) et des codes Raspberry-SPI (.c) permettant l'échange de données. Le but est maintenant de l'adapter aux cartes imprimées et de le rendre pleinement fonctionnel pour plusieurs cartes à la fois, puis ajouter une boucle de vérification en continue jusqu'à une deuxième requête de la RPi.&lt;br /&gt;
&lt;br /&gt;
====Electronique: réalisation au propres des PCB modules====&lt;br /&gt;
&lt;br /&gt;
Suite à une nouvelle erreur de réalisation cartes électronique, nous avons  refait et renvoyé à nouveau les cartes imprimées atmega328p.&lt;br /&gt;
Nous les souhaitons au propre pour une version finale. Une fois celle-ci imprimées nous pourrons en avoir 3 , un pour chaque module. Les cartes étaient bien imprimées en bottom mais lors du passage des traversants de bottom à top, le logiciel ne les a pas fait miroiter. Par manque d'attention nous avons alors envoyé les fichiers gerber pour des cartes ayant les composants du même coté que la couche de cuivre. &lt;br /&gt;
Les cartes électroniques actuelles sont alors correctes et fonctionnelles mais difficile à souder. Pour eviter les erreurs et continuer sur des prototypes de carte nous préférons attendre en nous concentrant sur la programmation PSI de la Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 12&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Raspberry PI, Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
-  réflexion: penser à faire boucler sur l'arduino une fois la requête reçu, ça veut dire que la manette est ON et donc vérifier continuellement les modules sur chaque atmega.&lt;br /&gt;
- SPI raspberry pi - arduino recuperation état du bouton avec les cartes modules  (/!\ récuperation à faire dans une variable) &lt;br /&gt;
&lt;br /&gt;
-SSH perso &lt;br /&gt;
adresse Rasppi: 192.168.137.10&lt;br /&gt;
&lt;br /&gt;
====Electronique: Finalisation soudure Modules====&lt;br /&gt;
&lt;br /&gt;
Soudure au propre et finale d'une carte atmega328p et donc envoie pour la réalisation de 2 autres cartes similaires et récupération de matériel&lt;br /&gt;
Soudure des 2 autres cartes, + tests sur les états = fonctionnelles.&lt;br /&gt;
On a donc bien 3 cartes pour les 3 modules de types différents (1 bouton, 1 joystick, 1 gachette)&lt;br /&gt;
PCB pour les 2 joysticks (qui serviront de thumbstick et gachette)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 13 et plus&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
====Electronique====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
(à mettre rapport + git + drive)&lt;br /&gt;
&lt;br /&gt;
=Datasheets=&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=55384</id>
		<title>IMA4 2017/2018 P35</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=55384"/>
				<updated>2018-05-05T18:23:23Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : /* Semaine 3 : Début premier prototype */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Présentation générale: Manette modulable&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Description&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Tout le monde joue aux jeux vidéo cependant, les manettes ne sont pas adaptées aux personnes ayant un handicap pouvant toucher les bras ou les mains.&lt;br /&gt;
C’est le cas, de plusieurs patients dans les centres de soins et de rééducation.&lt;br /&gt;
&lt;br /&gt;
Pour ce projet IMA4, nous travaillerons avec le centre SSR (soin de suite et de réadaptation) Marc Sautelet de Villeneuve d’Ascq.&lt;br /&gt;
Un adolescent, patient de Marc Sautelet, est passionné par les jeux vidéo. En effet, ayant perdu la motricité d’une partie de son corps, il ne peut pas jouer à deux mains. Pour cela, il bloque la manette entre son épaule et son coude, usant de la mâchoire et des doigts pour contrôler les&lt;br /&gt;
joysticks et les boutons. Cet exercice peut s’avérer fatiguant et pénible.&lt;br /&gt;
&lt;br /&gt;
Ainsi, nous chercherons à concevoir une manette PS4 adaptée au handicap de l’adolescent. &lt;br /&gt;
Cette manette devra aussi être adaptée pour d’autres patients présentant également des handicaps moteurs. Ainsi nous prendrons pour cibles: tous les patients du centre voulant jouer; et non pas que les enfants et adolescents.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Membre du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Transley Gracias et Camille Saad&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Cible&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Patient présentant un handicap moteur&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Période du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
janvier 2018 - mai 2018&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Partenaire/Client&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Centre SSR Marc Sautelet à Villeneuve d'Ascq&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Objectifs&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ce projet a pour objectif de créer un prototype de manette qui puisse interagir avec la console PS4 et dont le paramétrage se fait à l’aide d’une application mobile et/ou web. Cette manette devra suivre les demandes du patient ainsi que des aides-soignantes du centre, dans la mesure du possible.&lt;br /&gt;
&lt;br /&gt;
Plus précisément, pour le premier prototype, nous mettrons en œuvre l'utilisation de quelques boutons spécifiques: &lt;br /&gt;
&lt;br /&gt;
* Un joystick (type L/R)&lt;br /&gt;
* Quelques boutons poussoirs (type Croix/Triangle/Carré/Rond/R1/L1/Start/...)&lt;br /&gt;
* Des boutons gâchettes progressives (type L2/R2).&lt;br /&gt;
&lt;br /&gt;
Le but serait donc dans un premier temps de rendre fonctionnel un bouton de chaque type, puis de les multiplier une fois cela fait. Tous ces boutons réunis constituent une manette fonctionnelle.Ainsi, la manette sera ajustable, c’est à dire qu’elle devra s’adapter aux différents handicaps moteurs possibles.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Analyse du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Positionnement par rapport à l'existant&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre prototype aura une présentation unique par rapport à l’existant. En effet, les concurrents et produits existants ciblent pour la majorité un seul handicap. Cela&lt;br /&gt;
engendre une solution fermée à beaucoup de patients. Notre projet propose une mobilité des mouvements et également un choix large dans la composition et le&lt;br /&gt;
design de notre manette.&lt;br /&gt;
Le patient n’est pas retreint à jouer à une seule main, à utiliser beaucoup de force...Il y a moins de technique dans la manipulation et on ne joue pas avec une&lt;br /&gt;
manette adaptée uniquement pour un droitier ou un gaucher. Cependant, cela nous limitera peut-être dans le choix possible des types de jeux. Tout comme les autres&lt;br /&gt;
manettes adapté, l’utilisateur nécessitera un peu d’entrainement.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du premier concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Jouer aux jeux vidéo à une main n’est pas une idée d’aujourd’hui. En 1990, Nintendo propose le Power Glove. Mais il tombe très rapidement aux oubliettes suite à des problèmes techniques.&lt;br /&gt;
&lt;br /&gt;
Un autre gant a fait son apparition quelques années plus tard. Celui-ci, plus technique, il faut office de manette Play Station: le Reality Quest Power Glove.Cette idée de manette-gant, permet de jouer à la PS avec une seule main, elle a était conçue et présentée pour les E3, un salon d’exposition de gaming.Le gant est conçu pour contrôler l’équivalent des 14 boutons et 2 joysticks à l’aide d’une seule main. La « manette » est fixée dans la pomme de la main. L’utilisateur contrôle les mouvements verticaux et horizontaux en pivotant le poignet, et utilisent les 4 boutons d’action principaux et L1/R1 avec les doigts. Les autres boutons sont accessibles par un seul bouton rond contrôlé par le pouce.&lt;br /&gt;
La manette est adaptée pour beaucoup de jeux vidéo, dont les plus simples sont les jeux de voitures et de combats (arcade).&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec ce gant&lt;br /&gt;
*Design obligatoirement droitier&lt;br /&gt;
*Les boutons de contrôle sont peu sensibles et peuvent nécessiter de la force&lt;br /&gt;
*Design compliqué et nécessitant beaucoup d’entrainement.&lt;br /&gt;
&lt;br /&gt;
;Lien : https://www.youtube.com/watch?v=qV0SxSJDCYg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du second concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ben Heck, de son vrai nom Benjamin J.Heckendorn, est un concepteur de mods de consoles (mods pour modification, soit « manettes modifiées ») et une star&lt;br /&gt;
du net grâce à ses vidéos tutoriels.Il propose alors énormément de produits adaptés ou dérivés en guise de manettes.&lt;br /&gt;
Parmi les mods qu’il a réalisé, il a modifié une manette de PS4 afin de la rendre accessible à une personne ne pouvant jouer qu’à une main. Pour cela, il a déplacé les boutons en respectant l’ergonomie de la main valide et modifie les connexions. Il peut lui arriver de rajouter des boutons pour en remplacer un autre. Il réalise également le même système avec la Xbox. Sur la photo ci-dessous, il a adapté la manette pour un droitier.&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec cette ma&lt;br /&gt;
*Design obligatoirement droitier ou gaucher, une modification = une manette= une personne&lt;br /&gt;
*Besoin obligé du pouce et de l’index, même si avantage : 3 doigts nécessaire.&lt;br /&gt;
&lt;br /&gt;
;Lien :: https://www.youtube.com/watch?v=LieHIscadjk&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Scénario d'usage du produit ou du concept envisagé&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
La technologie est ,aujourd’hui, omniprésente dans notre vie. Les consoles de jeux ont envahies les maisons avec plus de 7 personnes sur 10 jouant aux jeux vidéos sur consoles en France (chiffre de l’Express). 0,18% des français sont handicapés cela représente 12 millions de français. Dans ce chiffre, 13,4% des personnes ont un handicap moteur. En 2017, les grands groupes comme Sony ou Microsoft avec respectivement PlayStation et Xbox ne permettent pas à tout le monde de jouer avec une manette. Les manettes sont prévues pour des personnes ayant leurs membres valides, plus précisément les mains et les bras.&lt;br /&gt;
&lt;br /&gt;
Après un accident de voiture, un jeune garçon a perdu la motricité d’un côté du corps. Passionné de jeux vidéo, il se retrouve avec des difficultés à jouer sur sa console PS4. Ingénieux, il utilise la manette en la coinçant entre son épaule et le creux du cou. Usant de la mâchoire et de sa main valide pour contrôler les joysticks et les boutons. L'exercice étant inconfortable et fatiguant il eu l’idée de proposer à des futurs ingénieurs de lui proposer une manette adaptée à son handicap. &lt;br /&gt;
&lt;br /&gt;
Les deux pré-ingénieurs ,avec leur tuteur, ont une idée révolutionnaire : La manette modulable ! Elle permettrait au jeune garçon, ainsi que d’autres joueurs, de pouvoir continuer de s’amuser ou même de commencer à jouer au jeux sur console. &lt;br /&gt;
Cette manette aidera fortement dans les centre de rééducation pour faire passer le temps et donner du plaisir à des personnes qui ne peuvent plus s’amuser avec leur console traditionnelle. Elle pourra aussi ouvrir de nouvelles possibilités pour certaines personnes qui n’auraient jamais essayé jusqu'à présent.   &lt;br /&gt;
Comme son nom l'indique, elle sera modulaire et s'adaptera à différents handicaps. Accompagnée de son application d’initialisation, elle sera accessible aussi bien aux enfants, patients, parents et aides soignantes.&lt;br /&gt;
&lt;br /&gt;
Quelques mois plus tard...Le jeune patient fan de Need For Speed, peut maintenant piloter sa voiture comme un vrai professionnel grâce à l'un des joysticks qu'il utilisera avec sa main valide et il pourra accélérer à des vitesses folles à l'aide de boutons poussoirs au niveau de son pied valide et gagner la partie. Son ami venu lui rendre visite, pourra en lieu et place des aides soignantes configurer à l'aide de la tablette (portable) la manette du patient. &lt;br /&gt;
Si le patient change de jeu pour Tekken et que la configuration des modules ne lui convient plus, il peut interchanger les éléments de la manette selon son envie et son confort. Ainsi il peut faire sauter son personnage, il utilisera un module bouton supplémentaire, qu'il actionnera avec le poing.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Fonctionnement&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Suite à une analyse fonctionnelle et à la formulation de notre projet, nous avons pu définir le fonctionnement de notre système. Notre produit, la manette, doit être accessible d’après nos objectifs à différents types de handicaps moteurs. Ainsi, l’idéal serait de concevoir une manette modulable afin qu’elle puisse s’adapter à toutes les situations. Ce n’est plus au patient de s’adapter à la manette mais à la manette de s’adapter au patient.&lt;br /&gt;
Cela signifie que la manette sera, dans la limite du possible et de la sensibilité du corps du patient, composée de plusieurs parties dites « modules » comportant un ou plusieurs actionneurs (boutons, joysticks, gâchettes...). Ces modules seront déplaçables afin d’être utilisé avec différents membres du corps : un doigt, une main,&lt;br /&gt;
une jambe ou même un pied. Il suffira de les connectés entre eux suivant l’organisation souhaitée, le Gameplay du jeu ou en fonction du handicap. Le tout sera relié à une application.&lt;br /&gt;
L’application sera alors mise en place pour connecter les différentes parties du point de vue software pour prérégler la manette en fonction du patient. Il pourra alors choisir les boutons en fonction du jeu, de ses mouvements mais aussi choisir la sensibilité.&lt;br /&gt;
&lt;br /&gt;
L’application et les modules devront être intuitifs et faciles d’utilisation. De cette manière des utilisateurs non avertis dans le domaine informatique ou jeunes pourront eux-mêmes gérer les connexions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Réponse à la question difficile&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
'''Question : Comment interconnecter les différents modules de la manette ?'''&lt;br /&gt;
&lt;br /&gt;
Il nous faut pour ce projet interconnecter les modules modélisant la manette qui seront connectés à la consoles PS4 via une Raspberry Pi 3.&lt;br /&gt;
Le choix de la Raspberry Pi 3 nous permet d'utiliser son module Bluetooth pour communiquer avec la PS4, ce choix est plus adaptée au projet que du filaire.&lt;br /&gt;
Concernant l'interconnexion des modules, nous travaillerons en deux étapes &amp;quot;preuves concept&amp;quot; : filaire et sans fils (Bluetooth).&lt;br /&gt;
&lt;br /&gt;
'''Objectif 1 : Preuve concept filaire'''&lt;br /&gt;
&lt;br /&gt;
Dans cette première partie de projet, nous souhaitons avoir une 1ère preuve de prototype rapidement. Nous nous concentrerons alors sur la communication entre la RPi3 et la PS4 ainsi que sur la conception des modules. Pour les modules, nous réaliserons des cartes électronique pour chaque module avec un micro-contrôleur. La communication filaire nous permettra d'interconnecter les modules à la RPi3 avec un bus SPI.&lt;br /&gt;
&lt;br /&gt;
'''Objectif 2: preuve concept sans fils'''&lt;br /&gt;
&lt;br /&gt;
Une deuxième étape du projet est la réalisation de la solution idéale sans fils. Celle-ci pourra commencer à être développée petit à petit en parallèle avec l'objectif 1. Le but ici, est d'interconnecter les modules en Bluetooth. Nous avons choisi le Bluetooth pour garder une connexion commune sur toute la chaîne. &lt;br /&gt;
Nous rajouterons alors un module bluetooth à chaque module de la manette. &lt;br /&gt;
&lt;br /&gt;
'''Objectif 3: possibilité d'adapter les boutons (capuchon en 3D)'''&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Préparation du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Cahier des charges&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
''Chef de projet:'' Alexandre Boé  &amp;lt;br&amp;gt;&lt;br /&gt;
''Responsables:'' Xavier Redon, Thomas Vantroys &amp;lt;br&amp;gt;&lt;br /&gt;
''Partenariat:'' Marc Sautelet (non etablie) &amp;lt;br&amp;gt;&lt;br /&gt;
''Elèves-ingénieurs:'' Camille Saâd, Transley Gracias &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Sujet :''' Manette modulable pour personne à déficience moteur compatible PlayStation 4 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objectifs principal (1er POC) : ===&lt;br /&gt;
Faire transmettre des informations issus des actionneurs (ex:boutons poussoires) via des arduinos jusqu’à la Raspberry Pi 3 en SPI.&amp;lt;br&amp;gt;&lt;br /&gt;
Envoyer les données reçues vers la PS4 en USB  &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objectifs secondaire (2e POC):===&lt;br /&gt;
Créer des modules avec un microcontrôleur et une puce bluetooth pour permettre une meilleurs flexibilité (c-àd pouvoirs avoir une meilleure ergonomie et une connexion sans fil) &amp;lt;br&amp;gt;&lt;br /&gt;
Connecter la Raspberry Pi 3 en Bluetooth à la PS4 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier: beteacorne.jpg||middle|600px|Bete a corne manette]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Choix techniques : matériel et logiciel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Liste de matériel :===&lt;br /&gt;
&lt;br /&gt;
'''Modules boutons/joysticks/gachettes'''&lt;br /&gt;
&lt;br /&gt;
3  Push buttons :&amp;lt;br&amp;gt;&lt;br /&gt;
- O X Y Carré R3 L3 &amp;lt;br&amp;gt;&lt;br /&gt;
- Guide PS &amp;lt;br&amp;gt;&lt;br /&gt;
- start/back &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 0,45€/unité TTC [https://www.gotronic.fr/art-bp-miniature-krs1273-16976.htm] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1  Thumbstick original: &amp;lt;br&amp;gt;&lt;br /&gt;
Joystick analogique 4 directions --&amp;gt; 4,25€/unité TTC [https://www.gotronic.fr/art-joystick-analogique-4-directions-19063.htm] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1 buttons trigger L1 L2 =&amp;gt; 1x Thumbstick original''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Cartes Atmega328p /connexion spi/'''&lt;br /&gt;
&lt;br /&gt;
3   Arduino UNO &amp;lt;br&amp;gt;&lt;br /&gt;
1   Arduino UNO atmega328p retirable &amp;lt;br&amp;gt;&lt;br /&gt;
4   capacite 22pF traversantes &amp;lt;br&amp;gt;&lt;br /&gt;
2   resistances 10 kOhm traversantes (à récupérer) &amp;lt;br&amp;gt;&lt;br /&gt;
2   oscillateurs quartz 16MHz traversante &amp;lt;br&amp;gt;&lt;br /&gt;
2   atmega328p-pu et support &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cartes module bluetooth nrf52810 '''&lt;br /&gt;
&lt;br /&gt;
6   capacités 100nF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
6   capacités 12pF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 4,7pF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 1µF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 100pF=0,1nF 0603 (à récupérer) &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 0,8pF 0603 (a acheter, commande en cours) &amp;lt;br&amp;gt;&lt;br /&gt;
2   inductance 3,9nH 0603 (a acheter, commande en cours) &amp;lt;br&amp;gt;&lt;br /&gt;
2   oscillateur quartz 32 MHz &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''' Connexions et autres '''&lt;br /&gt;
&lt;br /&gt;
1 Led RGB neopixel [https://www.adafruit.com/product/1734] &amp;lt;br&amp;gt;&lt;br /&gt;
1 Raspberry Pi 3 &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; ~36,23€/unité TTC [https://fr.rs-online.com/web/p/processor-microcontroller-development-kits/8968660/?src=raspberrypi] &amp;lt;br&amp;gt;&lt;br /&gt;
1 Raspberry Pi Zero W (commandée) [https://www.raspberrypi.org/products/raspberry-pi-zero-w/] &amp;lt;br&amp;gt;&lt;br /&gt;
6 Alimentations 5V ou 3,3V &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
par exemple, 12 piles de type CR2016 3V rechargeables ou 24 piles AAA 1,5 V rechargeables  &lt;br /&gt;
5 modules Bluetooth nrf de Nordic : nRF52810-QFAA-R &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 3,17€/unité + frais expédition  [https://www.mouser.fr/productdetail/nordic-semiconductor/nrf52810-qfaa-r?qs=sGAEpiMZZMve4%2FbfQkoj%252bG%2FosjLoe2oghFQwQllMrQ4%3D]&lt;br /&gt;
5 Lignes broches mâles &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logiciels:===&lt;br /&gt;
&lt;br /&gt;
- IDE arduino&lt;br /&gt;
- Altium&lt;br /&gt;
- FreeCAD ou Inkscape&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Liste des tâches à effectuer&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 1 : Gestion du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Définition des cahiers des charges fonctionnel et technique, choix d'orientation...&lt;br /&gt;
* Recherche techniques sur les différentes connexions possibles entre les modules, la RPi 3 et la console PS4&lt;br /&gt;
#Recherche connexion SPI entre les modules et la RPi3&lt;br /&gt;
# Recherche connexion bluetooth entre la RPi3 et la PS4&lt;br /&gt;
# Recherche connexion bluetooth pour les modules&lt;br /&gt;
# Recherche carte avec montage Atmega328P-PU et anticipation module bluetooth&lt;br /&gt;
* Détermination du matériel nécessaire&lt;br /&gt;
* Réflexion sur l'application&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 2: Réalisation du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Partie 1: Preuve concept manette en filaire'''&lt;br /&gt;
&lt;br /&gt;
* Conception de cartes électroniques pour 2 modules (/!\ prévoir modules bluetooth)&lt;br /&gt;
* Réalisation connexion SPI avec 2 modules : programmation des Atmega328p en liaison série. &lt;br /&gt;
* Si tests concluant, ajouter des modules jusqu'à en avoir 5 (1 pour chaque type de boutons) &lt;br /&gt;
* Connexion bluetooth entre la PS4 et la RPi3&lt;br /&gt;
* Réalisation du support des modules avec fixations possibles (imprimante 3D)&lt;br /&gt;
&lt;br /&gt;
'''Partie 2: Preuve concept manette en bluetooth'''&lt;br /&gt;
&lt;br /&gt;
* Ajout des modules bluetooth aux cartes électroniques&lt;br /&gt;
* Connexion bluetooth entre les modules&lt;br /&gt;
&lt;br /&gt;
'''Partie 3: Application Android : paramétrage de la manette'''&lt;br /&gt;
&lt;br /&gt;
* Créer une application sur tablette ou smartphone (Android) afin de configurer la manette aux besoins (inter-connexion des modules et console)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Calendrier prévisionnel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Date'''&amp;lt;/u&amp;gt;&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Tache à réaliser''' &amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
17/01/18-24/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Faire des recherches sur les différentes interconnexions du système : Bluetooth, RPi-Atmega328 (SPI), RPi-PS4&lt;br /&gt;
Continuer liste des taches, matériel, Début recherches + réflexion fixation support des modules&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Recherche technique connexion PS4-RPi3 et connexion SPI RPi3-Module + code&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18-07/03/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Réalisation 1er prototype (+ début prototype 2)&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
07/03/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Seance 7 :  Test prototype filaire&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
07/03/18-09/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Réalisation 2eme prototype + application Android&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
09/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Seance 14 :  Test prototype Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
14/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Video projet&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
15/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Finalisation projet et Rapport&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
16/05/18-17/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Soutenances Projet&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Réalisation du Projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Feuille d'heures &amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Voici le tableau d'heures du binôme:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Heures S11 !! Heures S12 !! Heures S13et+ !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 10&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 20min&lt;br /&gt;
|&lt;br /&gt;
| 15h20&lt;br /&gt;
|-&lt;br /&gt;
| Cherches techniques &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 18&lt;br /&gt;
|-&lt;br /&gt;
| Rédaction du wiki et rapport de projet&lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 30min&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| 30min&lt;br /&gt;
| 30min&lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
| 10h30&lt;br /&gt;
|-&lt;br /&gt;
| Programmation&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 3&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 7&lt;br /&gt;
| 8&lt;br /&gt;
| 6&lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
| 43&lt;br /&gt;
|-&lt;br /&gt;
| Cartes électroniques&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 6&lt;br /&gt;
| 8&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| 31&lt;br /&gt;
|-&lt;br /&gt;
| Application&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| Total Semaine&lt;br /&gt;
| 10&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 7&lt;br /&gt;
| 10h30&lt;br /&gt;
| 13&lt;br /&gt;
| 9&lt;br /&gt;
| 12&lt;br /&gt;
| 9h30&lt;br /&gt;
| 10h30&lt;br /&gt;
| 9&lt;br /&gt;
| 9h20&lt;br /&gt;
| &lt;br /&gt;
| '''117h50'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Prologue&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Avant la réalisation et conception d'un projet, il est important d'analyser celui-ci. Nous avons allons consacré le prologue à l'analyse fonctionnelle de la manette. Nous avons également eu une réflexion sur l'analyse technique, cela nous a permis de réaliser une liste de matériel. Il est important de définir les objectifs ainsi que les besoins afin de ne rien oublier. (Voir ci-dessus Analyse projet) &lt;br /&gt;
Nous avons également organisé notre travail, pour le partage de documents de recherches et la rédaction de compte-rendu final nous avons réalisé un google drive. Par la suite, nous créerons un projet Git. &lt;br /&gt;
&lt;br /&gt;
Durant ce temps, nous avons décidé de réaliser 5 modules. Les modules sont les différents boutons de la manettes qui nous pourrons placer selon nos choix (boutons modulaires) pour notre prototype projet pour chaque type des boutons d'une manette PS4. Ces modules devrons être connectés à la console et interconnectés. Le tout sera lié à une application Android. Suite à quelques recherches et nos analyses, nous avons décidé les points suivants :&lt;br /&gt;
&lt;br /&gt;
- On commencera avec 2 modules et on les multipliera par la suite. &lt;br /&gt;
- Les premiers tests sont réalisés avec des boutons petits pour assurer leur caractéristique &amp;quot;modulaires&amp;quot;, par la suite nous pourrons ajouter des capuchons de taille plus importante (imprimante 3D ou achat)&lt;br /&gt;
- Conception modules : réalisation de carte avec un microcontrôleur atmega328 programmable pour chaque module (anticiper le module Bluetooth) &lt;br /&gt;
- Projet en 2 parties : prototype filaire et prototype Bluetooth&lt;br /&gt;
# Prototype filaire : connexions entre les modules et la RPi3 en SPI, connexion Rpi3-PS4 en Bluetooth, avec l'application en filaire à la RPi3&lt;br /&gt;
# Prototype Bluetooth: connexion Bluetooth entre modules-RPi3-PS4-apllication&lt;br /&gt;
&lt;br /&gt;
[[Fichier: structuremanette.png||center|400px|Concept manette modulable]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 1&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous nous sommes concentrés les recherches afin de définir clairement le cahier des charges technique. Il s'agit des réalisations à mettre en œuvre pour les inter-connexions des éléments de la manette.&lt;br /&gt;
Ainsi, nous avons fait des recherches sur :&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI entre les modules (Atmega328p) et la RPi3===&lt;br /&gt;
&lt;br /&gt;
SPI: Serial périphérique interface BUS&lt;br /&gt;
&lt;br /&gt;
[[Fichier: yWGmW.png||right|200px|Concept manette modulable]]&lt;br /&gt;
Comme indiqué sur l'image ci-dessus, la Raspberry pi 3  peut communiquer en SPI avec ses broches CS0 (24), CS1 (26), SCLK (23), MISO (21), MOSI (19). Celles-ci permettent de communiquer avec un ou plusieurs esclaves (dans notre cas, des Atmega328p) en reliant directement les broches concernées de la RPi3 à celles des composants esclaves.&lt;br /&gt;
Chaque broche CS0 (24) ou CS1 (26) ne peut être connectée qu'à l'entrée SS (aussi appelé CS) d'un seul esclave.&lt;br /&gt;
C'est a dire que chaque CS est lié à un esclave afin de choisir avec lequel la communication est établie à un moment donné, et les MISO sont reliées entre elles en cascade, de même pour les SCLK et les MOSI. On peut noter que le maître impose la fréquence d’horloge et sélectionne l’esclave auquel les données sont envoyées.  8 MHz est le plus rapide supportable a 3,3V&lt;br /&gt;
&lt;br /&gt;
[[Fichier: fonctionnementSPI.png||right|200px|Connexion SPI multi-esclaves]]&lt;br /&gt;
&lt;br /&gt;
Voici un schéma du fonctionnement souhaité : &lt;br /&gt;
&lt;br /&gt;
Comme nous souhaitons avoir 5 modules environ il nous faudra rajouter un composant en plus afin d'augmenter les possibilités de sélection, par exemple des démultiplexeurs.&lt;br /&gt;
Dans un premier temps nous essaierons avec 2 esclaves, puis on augmentera le nombre. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Connexion Bluetooth PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Les recherches portent également sur la connexion entre la manette PS4 et la console. Elles concernent le protocole de communication via Bluetooth&lt;br /&gt;
&lt;br /&gt;
Caracteristique pour la PS4:  Bluetooth®v4.0, Qualcomm Atheros AR3002 Buetooth LE: 2,4-2,5 GHz  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caracteristique de la connexion : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Vitesse de transmission &amp;gt;&amp;gt; 3 Mbit/s   8N1 &lt;br /&gt;
*Relevé tous les 1.3 millisecond (peut-être) &lt;br /&gt;
*Chaque manette à une adresse unique BD_ADDR qui correspond à l’adresse MAC de la carte Réseau&lt;br /&gt;
*Protocole de détection est le SDP basé sur une emission reception PDU&lt;br /&gt;
*L’Attribut ID est representer en TLV Type Length Value &lt;br /&gt;
*Communication HCI ACL Data Packet &lt;br /&gt;
&lt;br /&gt;
===Rélisation des cartes électroniques===&lt;br /&gt;
&lt;br /&gt;
matériel nécessaire pour un PCB : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*breadboard&lt;br /&gt;
*câbles&lt;br /&gt;
*1 x 10k Ohm résistance&lt;br /&gt;
*Quartz 16Mhz clock crystal&lt;br /&gt;
*2 x 22 pF capaciteurs&lt;br /&gt;
*Atmega328P-PU&lt;br /&gt;
&lt;br /&gt;
Ressources: &lt;br /&gt;
[[https://www.arduino.cc/en/Main/Standalone]]&lt;br /&gt;
[[http://www.eprojectszone.com/atmega-328-pu-standalone/]]&lt;br /&gt;
[[https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 2&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la semaine deux et durant la séance, nous avons continué et approfondie nos recherches sur le projet. Nous avons pu ainsi affiner nos taches de réalisation et donc notre cahier des charges.&lt;br /&gt;
&lt;br /&gt;
===Connexion aux modules: SPI et Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Green&amp;quot;&amp;gt; CORRIGER&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
voir https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018#Configuration_du_syst.C3.A8me_embarqu.C3.A9&lt;br /&gt;
&lt;br /&gt;
(sudo apt-get install pi-bluetooth)&lt;br /&gt;
&lt;br /&gt;
''connexion sur la raspberry par ssh:''&lt;br /&gt;
 su&lt;br /&gt;
 update-rc.d ssh enable&lt;br /&gt;
 invoke-rc.d ssh start &lt;br /&gt;
 ssh pi@172.26.79.1XX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''bluetooth''&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
 agent on&lt;br /&gt;
 default-agent&lt;br /&gt;
 scan on&lt;br /&gt;
 pair [device Bluetooth address]  (exemple: pair XX:XX:XX:XX:XX:XX )&lt;br /&gt;
&lt;br /&gt;
''NOUVELLE REFLEXION : Connexion SPI entre les modules (Atmega328p) et la RPi3 --&amp;gt; MODULES BLUETOOTH''&lt;br /&gt;
&lt;br /&gt;
Si multi-esclaves= plusieurs modules : &lt;br /&gt;
Il faut ajouter des sélections pour les SPI → démultiplexeurs OU ne pas utiliser les CS0 et CS1, et plutôt des pins entrée/sortie de la RPi3 lié au SS comme ça on choisit direct le module esclave voulu.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' Nous avons étudié à nouveau la datasheet de notre module bluetooth nrf de Nordik. Le module bluetooth comporte  déjà un microprocesseur !&lt;br /&gt;
Un module plutôt peut donc jouer le rôle de notre atmega328p. Il n'y a alors pas besoin de réaliser des cartes électroniques de type arduino standalone. Nos PCB regrouperont alors uniquement l'alimentation, un actionneur (bouton, joystick), le module bluetooth et les broches de connexion si besoin... &lt;br /&gt;
&lt;br /&gt;
Cette séance nous a alors permise de revoir entièrement le matériel nécessaire. Notre liste de matériel nous semble alors plus réfléchie et limitée au nécessaire. &lt;br /&gt;
&lt;br /&gt;
===Connexion Bluetooth PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Suite à nos recherches de la semaine précédente, nous avons sélectionné deux sites bien renseignés : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;SITES&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ils nous ont permis de comprendre la communication entre la manette et la console. En effet, ils nous expliquent les échanges de trames Bluetooth. &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;EXPLICATIONS 1 exemple &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 3 : Début premier prototype&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI RPi3-Arduino===&lt;br /&gt;
&lt;br /&gt;
Comme vu durant les semaines précédentes, nous souhaitons réaliser une connexion Multi-esclaves en SPI entre la Raspberry pi et plusieurs modules.&lt;br /&gt;
Cette semaine nous avons vu que la réalisation de notre premier prototype doit aller vite. Il ne nous est pas nécessaire d’attendre les modules bluetooth si il nous faut dans cette partie uniquement utiliser son microprocesseur. Ainsi pour chaque module nous utilisons une arduino UNO. Nous réaliserons les programmes en C afin de pouvoir les réutiliser avec les modules bluetooth par la suite. &lt;br /&gt;
Une fois la connexion réalisable nous adapterons les programmes aux modules bluetooth Nordik. En effet, ceux-ci comporte déjà un microprocesseur, le module peut jouer le rôle de notre atmega328p. Il n'y a aurait alors pas besoin de réaliser des cartes électroniques arduino standalone sur PCB, mais directement des cartes électronique avec le module et le module voulu (bouton, joystick...) et l'alimentation. &lt;br /&gt;
Durant la séance nous avons alors revu la liste de matériel nécessaire. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: prototype1.jpeg||center|600px|connexion filaire prototype 1 filaire arduino]]&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous avons recherches des exemples de codes et de librairies pour Arduino SPI et RaspberryPI SPI. &lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé le programme de la connexion SPI pour l'arduino et récupéré les bibliothéques SPI.h avec SPI.c. Nous nous sommes alors concentrer à les comprendre, pour pouvoir l'utiliser. &lt;br /&gt;
&lt;br /&gt;
*'''Réalisation du projet Git'''&lt;br /&gt;
&lt;br /&gt;
Création du projet IMA4_Projet35_ManetteModulable sur Git et partage de celui-ci. &lt;br /&gt;
Les premiers dossier crées durant la séance :&lt;br /&gt;
-Arduino (connexion SPI arduino) : ProtoSpi.c + dossier librairie SPI + Makefile&lt;br /&gt;
-RPI (dossier codes pour Rpi) &lt;br /&gt;
-Readme.md&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le site qui détaille le protocole Bluetooth PS4n'est pas complet et de plus n'ayant pas accès à une PS4 (pour le moment) nous avons décidé de commencer par une connexion USB (pour laquelle on dispose de toutes les informations) et qu'on pourra tester plus facilement.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 4&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Pour le prototype 1 FILAIRE nous réaliserons les étapes suivantes :&lt;br /&gt;
&lt;br /&gt;
#Réalisation du programme SPI pour arduino&lt;br /&gt;
#Réalisation du programme SPI pour la RPi&lt;br /&gt;
#Connexion USB avec la PS4 ou ordinateur&lt;br /&gt;
#Réalisation de cartes électroniques atmega328p-pu standalone (remplacer les Arduinos) &lt;br /&gt;
#Remplacer les &amp;quot;PCB arduino&amp;quot; par le module bluetooth et adapter la connexion&lt;br /&gt;
#Conception 3D de la délimitation 1 axe pour le joystick &amp;quot;gâchette&amp;quot;&lt;br /&gt;
#Réalisation de l'application Androïde.&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées nous auront alors une preuve de concept filaire et nous pourrons alors passer à une connexion bluetooth. &lt;br /&gt;
Le passage à la connexion bluetooth sera le deuxième prototype et le cas idéal de la réalisation de la manette modulable. &lt;br /&gt;
&lt;br /&gt;
===Mise à jour Matériel===&lt;br /&gt;
&lt;br /&gt;
- Modéliser les boutons gâchettes L1/2 R1/2 de la manette PS4 (boutons sensibles à la pression) --&amp;gt; un joystick dont nous bloquerons un axe (imprimante 3D)&lt;br /&gt;
- Remplacer la RPi 3 par une Rpi zero W qui nous permettrait de réaliser plus facilement une connexion USB tout en gardant l'avantage du bluetooth. &lt;br /&gt;
- Choix de l’alimentation pour les 5 modules Bluetooth: nécessitent 3V --&amp;gt;  utiliser des piles rechargeables 1,2V AAA plutôt que piles rondes 3V.&lt;br /&gt;
&lt;br /&gt;
Nous avons également besoin du matériel cité en semaine 1 pour réaliser des cartes électroniques atmega328p-pu standalone. ( nous revenons alors sur les décisions de la semaine 3)&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI RPi3-Arduino===&lt;br /&gt;
 &lt;br /&gt;
Montage Raspberrypi et 1 arduino en PSI + 1 bouton + 1 led.&lt;br /&gt;
Voici le choix des branchements :&lt;br /&gt;
&lt;br /&gt;
 MASTER = RPi   &lt;br /&gt;
 SLAVE= Arduino&lt;br /&gt;
&lt;br /&gt;
'''SPI sur Arduino:'''&lt;br /&gt;
 MOSI -&amp;gt; GPIO11 //PB3  //master OUT to the slave IN&lt;br /&gt;
 MISO -&amp;gt; GPIO12 //PB4 //slave OUT to the master IN&lt;br /&gt;
 SCLK -&amp;gt; GPIO13 //PB5 //serial clock&lt;br /&gt;
 SS -&amp;gt; GPIO10   //PB2  //slave select&lt;br /&gt;
'''Led, bouton et autre...'''&lt;br /&gt;
 LED --&amp;gt; GPIO6  //PD6&lt;br /&gt;
 GND&lt;br /&gt;
 +5V (if required)&lt;br /&gt;
'''SPI sur la Raspberry Pi'''&lt;br /&gt;
 SPIO MOSI -&amp;gt; PIN19 &lt;br /&gt;
 SPIO MISO -&amp;gt; PIN21&lt;br /&gt;
 SCLK -&amp;gt; PIN23&lt;br /&gt;
 SPIO CS0 -&amp;gt; PIN24&lt;br /&gt;
&lt;br /&gt;
Continuation du code pour faire clignoter Led branchée à une arduino depuis la Rpi, en connexion SPI.&lt;br /&gt;
&lt;br /&gt;
===Connexion USB PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous avons regardé comment utiliser le port série sur la RPi3, soit utiliser les UART. &lt;br /&gt;
&lt;br /&gt;
Nous avons réaliser qu'il n'était pas aussi simple d'utiliser le port serie USB de la Raspberry Pi 3, en effet le SoC est un BCM2837 . &lt;br /&gt;
De plus nous ne pouvons pas utiliser le même port pour l'alimentation et la connexion. &lt;br /&gt;
&lt;br /&gt;
Une des solutions à cette difficulté serait d'utiliser une RPi ZERO W à défaut d'une RPi 3. On pourrait alors avoir un port d'alimentation avec connexion USB mais également retrouver la connexion bluetooth dont nous avons besoin.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 5&amp;lt;/span&amp;gt;==&lt;br /&gt;
 &lt;br /&gt;
===Programmation: Réflexion définitives prototypes filaire ===&lt;br /&gt;
&lt;br /&gt;
Durant la semaine 5, nous avons continué la réalisation du prototype filaire par l'avancé du code SPI ainsi que les recherches concernant le protocole PS4. &lt;br /&gt;
&lt;br /&gt;
Pour réaliser la connexion entre la PS4 et les différents modules, nous avons vu la semaine dernière que nous utiliserons une RPi zero W (que nous avons commandé). Celle-ci nous permet d'utiliser le bluetooth mais elle nous permet également de réaliser un réseau local sans fil. Ce qui peut être pratique dans la mesure où notre projet est modulable. &lt;br /&gt;
En attendant la réception de la commande, nous nous sommes penché sur les programmes et la configuration nécessaire à l'utilisation de la RPi zero W.&lt;br /&gt;
&lt;br /&gt;
===Electronique===&lt;br /&gt;
&lt;br /&gt;
[[Fichier: bouton_c1.jpg|100px|thumb|left|PCB bouton]]&lt;br /&gt;
[[Fichier: arduinobb.jpg|200px|thumb|right|atmega328p-pu branchement test]]&lt;br /&gt;
&lt;br /&gt;
Du coté électronique, nous avons réalisé sur fritzing certaines cartes électroniques. Les Arduino Uno servant actuellement de test, seront remplacées par des PCB atmega328p-pu standalone avec des broches permettant les branchements nécessaires SPI ou encore aux modules &amp;quot;boutons/joystick&amp;quot;. Pour les boutons, nous avons également réalisé un pcb afin de faciliter les branchements.  &lt;br /&gt;
&lt;br /&gt;
Il nous faut alors également une 3eme carte qui nous sera nécessaire pour la réalisation du prototype sans fil. Dans notre liste de matériel, nous avons des composants nrf52810 bluetooth, ceci doivent être soudé avec les capacités de protection mais également des broches de communication. Nous avons alors commencé cette carte électronique sur Altium avec le fichier  projet PCB du distributeur à modifier.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: Arduino_c1.jpg|100px|thumb|center|PCB atmega328p-pu]]&lt;br /&gt;
&lt;br /&gt;
=== Construction 3D ===&lt;br /&gt;
&lt;br /&gt;
Enfin, nous avons commencé à réaliser des boîtiers 3D pour certains modules. Par exemple, comme nous l'avions vu précédemment, un des joysticks servira de bouton-gâchette en utilisant un seul de ses axes. Il nous faut alors réaliser un boitier qui bloque l'un des axes, mais également une tige qui nous permettra de pousser le joystick de manière simplifiée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 6&amp;lt;/span&amp;gt;==&lt;br /&gt;
 &lt;br /&gt;
===Programmation: configuration RPi Zero W ===&lt;br /&gt;
&lt;br /&gt;
Ayant reçu la Raspberry Pi zero W en début de semaine, nous nous sommes concentrés sur la programmation et la configuration de celle-ci. &lt;br /&gt;
&lt;br /&gt;
===Electronique: PCB nrf52810===&lt;br /&gt;
&lt;br /&gt;
Les cartes réalisées en semaine 5 sont validées et en attente de réalisation. &lt;br /&gt;
&lt;br /&gt;
Cette semaine a permis la réalisation et la finalisation de la carte électronique nrf52810. Il nous a fallu recommencé cette carte deux fois. En effet, une fois finie sur Altium nous avons réalisé que les empreintes des CMS sur PCB fourni par le constructeur ne correspondent pas au matériel CMS de l'école. Face à cette inattention de notre part, nous avons décidé de refaire entièrement la carte électronique sur fritzing. Ayant la datasheet et des plans d'inspiration PCB, nous avons pu refaire la carte entièrement. &lt;br /&gt;
Sur celle-ci nous avons ajouté des broches de connexion au besoin, un branchement Jtag et ICSP pour la programmation et la connexion SPI. &lt;br /&gt;
La carte est en attente de validation, puis validation.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: nrf52810_circuit2.jpg||center|400px|PCB carte nrf52810]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Révision matériel ===&lt;br /&gt;
&lt;br /&gt;
Pour la réalisation de nos composants électroniques, il nous a fallu faire une révision des composants disponibles à l'école:&lt;br /&gt;
(les quantités indiquées ci-dessous pourront être augmentée si nécessaire,pour avoir dans l'idéal un module de chaque type de la manette, ici on se concentre sur BOUTON et JOYSTICK)&lt;br /&gt;
&lt;br /&gt;
'''Cartes Arduino:'''&lt;br /&gt;
* 4 capacite 22pF traversantes&lt;br /&gt;
* 2 resistances 10 kOhm traversantes (à récupérer)&lt;br /&gt;
* 2 oscillateurs quartz 16MHz traversante&lt;br /&gt;
* 2 atmega328p-pu et support&lt;br /&gt;
&lt;br /&gt;
'''Cartes nrf52810'''&lt;br /&gt;
* 6 capacités 100nF 0603&lt;br /&gt;
* 6 capacités 12pF 0603&lt;br /&gt;
* 2 capacités 4,7pF 0603&lt;br /&gt;
* 2 capacités 1µF 0603&lt;br /&gt;
* 2 capacités 100pF=0,1nF 0603 (à récupérer)&lt;br /&gt;
* 2 capacités 0,8pF 0603 (commande en cours)&lt;br /&gt;
* 2 inductance 3,9nH 0603 (commande en cours)&lt;br /&gt;
* 2 oscillateur quartz 32 MHz &lt;br /&gt;
&lt;br /&gt;
'''Cartes modules Boutons'''&lt;br /&gt;
* un sachet de broches mâles (qu'on utilisera également pour les autres cartes, à récupérer/acheté) &lt;br /&gt;
&lt;br /&gt;
Nous avons alors mis-à-jour la liste de composant située plus haut, ainsi que celle de la page IMA4 2017/2018 [https://projets-ima.plil.fr/mediawiki/index.php/Projets_IMA4_SC_%26_SA_2017/2018]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 7&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Programmation: connexion wifi RPi Zero W et Bootloader sur Atmega328p-pu ===&lt;br /&gt;
&lt;br /&gt;
Pendant cette semaine, nous avons continué la programmation et la configuration des Raspberry Pi 3 et Zero W afin de les utiliser en connexion Wifi. &lt;br /&gt;
&lt;br /&gt;
Nous avons également continuer les programmes de récupération de données : état des boutons et du joystick. Ces programmes sont appliqué sur l'atmega328p-pu standalone sur la plaque d'essai en attendant que le PCB soit opérationnel.&lt;br /&gt;
Pour pouvoir programmer l'atemega328p-pu comme une arduino UNO, il nous faut suivre plusieurs étapes :&lt;br /&gt;
&lt;br /&gt;
'''1.Flasher le Bootloader'''&lt;br /&gt;
Nous avons 2 Atmega328p-pu neufs, ainsi il nous faut flasher le bootloader sur chacun d'eux afin de pouvoir les utiliser et les programmer sur une breadboard dans un montage minimaliste arduino-standalone. &lt;br /&gt;
Pour cela, on peut utiliser une carte arduino UNO. On vérifie le port et le type de carte sélectionnés dans le menu &amp;gt;Outils. Sur cette carte on téléverse le fichier arduinoISP.ino qui se trouve dans les exemples en étant en progrmamateur AVr ISP mkll (&amp;gt;outils&amp;gt;programmateur) &lt;br /&gt;
Puis on met l'atmega328p-pu qui nous intéresse sur le suppor socket de la carte. On change de nouveau le programmateur pour Arduino as ISP et on fait &amp;gt;tools&amp;gt;burn bootloader, soit &amp;gt;graver la sequence d'initialisation.&lt;br /&gt;
Ces étapes faites, on peut retirer notre microcontroleur et le replacer correctement dans le montage. &lt;br /&gt;
&lt;br /&gt;
'''2.Programmation atmega328 sur breadboard'''&lt;br /&gt;
Une fois l'atmega328p-pu préparé, on peut le programmer. On peut le faire simplement à l'aide de la carte arduino UNO utilisée précédemment.On branche les Tx et Rx en commun ainsi que le reset, le GND et le VCC.&lt;br /&gt;
&lt;br /&gt;
Nous avons réaliser des codes basiques tels que le clignotement d'une led rouge ou encore l'affichage de &amp;quot;hello world&amp;quot; sur le moniteur série pour vérifier la bonne fonctionnalité du montage. Cela fait nous avons pu écrire sous Arduino IDE le code de lecture des états.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: montage_BB_test.jpg||left|200px|programmation modules arduino sur breadboard]]&lt;br /&gt;
&lt;br /&gt;
===Electronique : soudure carte de test modules ===&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons déja vu lors de la réalisation des PCB, si l'on souhaite programmer un atmega328p-pu en bootloader, le montage est simple. Il peut être minimaliste en utilisant une arduino UNO, un atmega328, une breadboard et 3 composants: 1 quartz 16MHZ crystal, 1 résistance 10kOhm et 2 capacitors céramiques de 22pF.&lt;br /&gt;
Durant la semaine 7, nous avons soudé les composants traversants de la carte électronique correspondant à ce montage ainsi que le PCB du bouton.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 8&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Programmation ===&lt;br /&gt;
&lt;br /&gt;
===Electronique : Correction soudure et soudure CMS===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avions souhaité programmer la carte électronique atmega328p-pu. Cependant, nous avons réaliser que nous avions fait une erreur lors de l'envoie du PCB à la production. En effet, celui-ci avait été fait en Top sur le logiciel Fritzing et non en Bottom. Hors nous avions soudé les composants (durant la semaine 7) comme pour un circuit imprimé en bottom, l'atmega328p-pu se retrouve alors inversé par rapport aux pistes. &lt;br /&gt;
Comme solution, nous avons choisi de souder un deuxième support pour l'atmega328 de l'autre coté de la carte avant de la refaire au propre. En effet, avant de la refaire il nous faut vérifier si la carte est bien programmable. &lt;br /&gt;
Une fois cela fait nous avions pu programmer la carte mais, nous avions également réalisé la pin 2 de l'atmega328 était prise par le bouton poussoir. Or, nous avons besoin des pin 2 et 3 pour le RX et TX permettant la programmation de l'atmega à partir d'une arduino, les pistes branchement RX-TX n'ont également pas été prévus pour le téléversement des programmes sur la carte. Il nous faut alors couper une piste et souder des câbles pour utiliser toutes les pistes souhaitées. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: correction_proto_PCB.jpg||right|300px|PCB arduino correction]]&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons également souhaité souder les CMS et le composant bluetooth nrf52810 sur la carte imprimé et reçu lors de la semaine 7. Pour cela, nous avons convenu de travailler dans la C202 durant la séance du mercredi. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: PCB_nrf52810.jpg||left|400px|carte electroniques imprimées]]&lt;br /&gt;
&lt;br /&gt;
====Comment souder des CMS ?====&lt;br /&gt;
&lt;br /&gt;
les CMS sont des composants montés en surface c'est à dire qu'ils sont montés du même côté que les pistes cuivrées (à l'opposé des composants traversants) et sont de petite tailles souvent de l'ordre du millimètre. La taille est déterminée par 4 chiffres : les 2 premiers pour la longueur et les 2 derniers pour la largeur. On a du 1206,0805,0603 ou encore 0402. Il est même possible de trouver plus petit. A l'école nous utilisons souvent du 0603, c'est le cas de nos composants.&lt;br /&gt;
Pour souder des CMS 0603, il nous faut utiliser une autre méthode qui n'est pas le fer à souder :&lt;br /&gt;
# Préparer la veille la pâte à braser la veille (dans une seringue)&lt;br /&gt;
# Gommer la carte pour éviter l'oxydation (attention à ne pas retirer les miettes de gomme en soufflant dessus) &lt;br /&gt;
# Appliquer avec la seringue la pâte sur les empreintes et piste souhaitées. Pour les endroits difficile à atteindre ou avec 2 pistes proches les unes des autres, il est possible de mettre la même goutte de pâte sur les 2 pistes. Cela de causera pas de court-circuit par la suite. En effet, la pâte est composée d’alliage qui sous la chaleur va se fluidifier et se coller uniquement aux pistes métallique. Le reste fondera sous la chaleur du four.&lt;br /&gt;
# Appliquer les CMS sur la pâte au fur et à mesure (attention ! ne jamais toucher les CMS avec les doigts, tjrs utiliser une pince)&lt;br /&gt;
# Mettre au four&lt;br /&gt;
&lt;br /&gt;
====Bilan soudure nrf52810====&lt;br /&gt;
&lt;br /&gt;
Cependant, une fois le matériel nécessaire préparé, et la pâte mise sur les pistes souhaitées, au moment de déposer le composant, nous avons réalisé que celui-ci était beaucoup plus petit que l'empreinte sur le PCB. Il s'agit d'un composant boitier QFN48. Fritzing ne proposant au plus proche des boitiers QFN24 ou LQFP48, celui-ci a basculé automatiquement pour un boitier LQFN48, de dimension plus grande. Face à ce manque de vigilance, nous avions cependant commencer par le nrf52810 (composant concerné) évitant ainsi de gaspiller d'autres CMS. &lt;br /&gt;
Nous avons souhaité refaire la carte sous Altium à partir des fichiers fournis par le concepteur (chose que nous avons commencé à faire aux alentours de la semaine 5) &lt;br /&gt;
Après la réalisation du schématic, et de la modification des empreintes de capacités, inductances et autres composants de 0402 à 0603. Notre matériel ne permettant que des empreintes 0603.&lt;br /&gt;
 &lt;br /&gt;
Lors du routage, une erreur de chevauchement des pistes est notifiée par Altium au niveau du nrf52810. Celles-ci ne présentent pas d'angles et sont déjà de taille 8mil, il nous faut alors passer les pistes en 6mil. Mais 8mil est la taille minimale pour la production à Polytech, nous avons regardé pour envoyer les cartes à faire ailleurs mais le 6mil n'est pas beaucoup conseillé. De plus, il n'est peut-être pas judicieux de continuer avec le composant microcontrôleur-bluetooth Nrf52810 qui prend du temps, donc la carte est difficilement réalisable et peut-être très long à programmer. &lt;br /&gt;
&lt;br /&gt;
Ainsi en cette fin de semaine, nous avons décider face à l'avancer du projet de laisser les nrf52810 de coté et de les remplacer par des modules sans fils plus simples d'utilisation et complets. Ainsi nous aurions plus de chance d'avoir une connexion sans fils entre les modules. Nous pourrions par exemples utiliser des Xbee, des modules Rf...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 9&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation: PS4 et 1er Test SPI sur atmega328p====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
Une carte PCB arduino fonctionnant, nous pouvons la programme pour simuler un module. Celle-ci a été designée afin de s'adapter au module que l'on souhaite. Il suffit de brancher le bouton, le joystick ou autre élèment de manette souhaité.&lt;br /&gt;
Cette semaine ci, nous avons alors configurer la partie communication SPI pour l'arduino.&lt;br /&gt;
&lt;br /&gt;
'''Que voulons-nous faire avec les atmegas ?''' &lt;br /&gt;
Les cartes électroniques atmega328p vont nous permettre de recevoir les requêtes SPI envoyées par la raspberry pi et d'y répondre. La Raspberry enverra un message, par exemple &amp;quot;1&amp;quot;, et l'Arduino lira alors l'état du module qui lui est connecté. Une fois l'état récupéré elle le renvoie à la raspberry pi.&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons programmé l'atmega afin qu'il soit en esclave, qu'il reçoive un de la RPi &amp;quot;1&amp;quot; et retourne une valeur sauvegardé &amp;quot;int envoi&amp;quot;. Nous avons également commencé les tests pour la lecture de l'état d'un bouton (d'après les tests réalisés les semaines précédentes).&lt;br /&gt;
&lt;br /&gt;
'''Code'''&lt;br /&gt;
Comme nous l'avons vu précedement lors de nos recherches (semaines 1 à 4) : &lt;br /&gt;
La communication SPI nécessite l'utilisation des pins: &lt;br /&gt;
&lt;br /&gt;
MOSI -&amp;gt; GPIO11 //PB3  //master OUT to the slave IN&lt;br /&gt;
MISO -&amp;gt; GPIO12 //PB4 //slave OUT to the master IN&lt;br /&gt;
SCLK -&amp;gt; GPIO13 //PB5 //serial clock&lt;br /&gt;
SS -&amp;gt; GPIO10   //PB2  //slave select&lt;br /&gt;
&lt;br /&gt;
Il faut également paramétrer l'atmega328p en Slave. On note que dans un premier temps, le programme sera codé avec l'arduino IDE (fichiers .ino). Une fois l'ensemble SPI RaspberryPi-Arduino fonctionnant, on remplacera ces codes par du langage C ou C++.&lt;br /&gt;
&lt;br /&gt;
Pour faire la connexion SPI sur l'atmega328p,  on utilise la librairie arduino SPI.h, on a alors directement les fonctions nécessaires intervenant sur les registres souhaités : SPCR (spi control register), SPSR (spi status register) et SPDR (spi data register). &lt;br /&gt;
 &lt;br /&gt;
  #include &amp;lt;SPI.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il est important d'initialise d'abord le setup et on active le port série pour pourvoir utiliser le moniteur série. (Cela servira à verifier la valeur envoyée par la RPi) &lt;br /&gt;
&lt;br /&gt;
 void setup (void)&lt;br /&gt;
 {&lt;br /&gt;
   Serial.begin (9600);  &lt;br /&gt;
   pinMode(MISO, OUTPUT);  //configuration en esclave *master in slave out*&lt;br /&gt;
   pinMode(buttonPin,INPUT);  //config pin bouton&lt;br /&gt;
   // turn on SPI in slave mode&lt;br /&gt;
   SPCR |= _BV(SPE);&lt;br /&gt;
   // preparation interruptions&lt;br /&gt;
   pos = 0;   // buffer empty&lt;br /&gt;
   process_it = false;&lt;br /&gt;
   // activation interruptions&lt;br /&gt;
   SPI.attachInterrupt();&lt;br /&gt;
 }  &lt;br /&gt;
 &lt;br /&gt;
On oublie pas de déclarer les interruptions afin de bien lire la requête reçue. &lt;br /&gt;
 &lt;br /&gt;
// SPI interrupt routine&lt;br /&gt;
ISR (SPI_STC_vect)&lt;br /&gt;
{&lt;br /&gt;
  byte c = SPDR;  // grab byte from SPI Data Register&lt;br /&gt;
  // add to buffer if room&lt;br /&gt;
  if (pos &amp;lt; sizeof buf)&lt;br /&gt;
    {&lt;br /&gt;
    buf [pos++] = c;&lt;br /&gt;
    // example: newline means time to process buffer&lt;br /&gt;
    if (c == '\n')&lt;br /&gt;
      process_it = true;&lt;br /&gt;
    }  // end of room available&lt;br /&gt;
}  // end of interrupt routine SPI_STC_vect&lt;br /&gt;
&lt;br /&gt;
Dans la loop main, on traite la requête et on utilise '''SPI.transfer(envoi);''' pour transferer à la RPi les données souhaitées. &lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons également commencé des programmes de test SPI pour la RPi. Il s'agit principalement de programmes de tests tout faits permettant de vérifier la connexion entre cette dernière et l'arduino. Par exemple, la RPI envoie &amp;quot;bonjour&amp;quot; et l'arduino lui retourne ce qu'elle reçoit, soit &amp;quot;bonjour&amp;quot;. Sans succés alors. &lt;br /&gt;
&lt;br /&gt;
====Electronique : Fritzing révision====&lt;br /&gt;
&lt;br /&gt;
Lors de la semaine, le modèle PCB de la carte arduino a été réalisé de nouveau sous fritzing avec les broches et connections manquantes. Nous avons également revu la configuration du bouton reset  et ajouté une led d'état de l'alimentation. Nous avons ainsi envoyé deux cartes identiques à la réalisation.&lt;br /&gt;
La carte déjà soudée lors des derniers jours fonctionnant, elle nous sert de prototype de programmation. Nous pouvons ainsi avancer à la fois sur la programmation des modules mais aussi sur leur réalisation. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 10&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation : PS4 et SPI sur RPi====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Raspberry PI et SPI'''&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, pour la partie Atmega328p-Modules, nous nous sommes concentrés sur la programmation de la communication SPI avec la raspberry pi. Cette semaine a permis une étude plus approfondit sur le fonctionnement pour la RPi. &lt;br /&gt;
&lt;br /&gt;
On rappelle, comme vu des semaines 1 à 4, pour la RPI3 (tout comme la RPi Zero W) utilise les broches : SCLK (23), MISO(21), MOSI (19) et SPI CS0 (24), SPI CS1 (26). &lt;br /&gt;
On la programme en Master. A l'aide des fichiers tests d'inspiration, on pourra directement programmer la RPi en C. Lors de la réalisation du code, il y a 3 étapes : l'initialisation/parametrage en SPI pour être maître, l'envoie de la requête puis la réception de données en retour. &lt;br /&gt;
&lt;br /&gt;
Programmant en C, il ne faut pas oublier les librairies suivantes :&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;getopt.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;sys/ioctl.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/types.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/spi/spidev.h&amp;gt;   //pour SPI&lt;br /&gt;
&lt;br /&gt;
On va déclarer des variables globales permettant le paramétrage :&lt;br /&gt;
&lt;br /&gt;
 static const char *device = &amp;quot;/dev/spidev0.0&amp;quot;;  //si on veut CS0 pour atteindre notre SS&lt;br /&gt;
 static uint8_t mode;       //mode est par défaut à 0&lt;br /&gt;
 static uint8_t bits = 8;    //bits par mot échangé&lt;br /&gt;
 static uint32_t speed = 500000;  &lt;br /&gt;
 static uint16_t delay;&lt;br /&gt;
&lt;br /&gt;
Dans notre main, on ouvre le port (la connexion) au device souhaité,  on vérifie les paramètres (registres, connexions...) puis exécute la fonction transfer(fd). transfer(fd) transmet la requête et s'occupe de la réception. &lt;br /&gt;
&lt;br /&gt;
 fd = open(device, O_RDWR);&lt;br /&gt;
 transfer(fd);&lt;br /&gt;
 close(fd);&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 11&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation: PS4, SSH et tests SPI (RPi3&amp;amp;Atemga328p)====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Raspberry PI, Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
Afin de facilité la programmation en utilisant Ethernet, nous avons installer et configuré la RPi pour l'utiliser en SSH depuis les ordinateurs de la E306. En effet, SSH permet de se connecter à distance sur une machine en utilisant un compte utilisateur de la dite machine. En mettant ssh, on pourra directement agir sur les fichiers de la raspberry depuis un terminal de notre PC. Pour cela, on a d'abord vérifier l'adresse IP de notre raspberry pi : 172.26.145.106 avec un écran mais on peut aussi utiliser les commandes ip a et ifconfig. Puis activer le ssh sur la raspberry pi. &lt;br /&gt;
On modifie alors le fichier config.txt mais également etc/network/interfaces pour configurer la bonne interface Ethernet sur la raspberry pi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: configSSH_raspi.png||left|300px|config ssh ethernet]]&lt;br /&gt;
&lt;br /&gt;
Il nous suffit alors de taper la commande : ssh pi@172.26.145.106  pour accéder à notre RPi. &lt;br /&gt;
&lt;br /&gt;
Nous avons continué à réaliser la communication SPI avec des tests entre une arduino UNO et la RPI3. Nous avons commencé par des tests simples inspirés des études de deux semaines précédentes et modulés selon notre utilité.  &lt;br /&gt;
Nous arrivons alors à lire l'état envoyer &amp;quot;bonjour&amp;quot; et recevoir &amp;quot;ça va&amp;quot; ou encore &amp;quot;1&amp;quot; et recevoir &amp;quot;3&amp;quot;. Il faut noter que le SPI échange des trames, la RPI reçoit alors des hexadécimaux. &lt;br /&gt;
Nous avons alors continué pour recevoir l'état du bouton ou du joystick lors de l'envoie de &amp;quot;1&amp;quot; sur l'Arduino328p. La semaine prochaine nous testerons ces même codes fonctionnels sur les cartes atmeg327p. &lt;br /&gt;
&lt;br /&gt;
A la fin de cette semaine, nous avons alors des codes Arduino-SPI (.ino) et des codes Raspberry-SPI (.c) permettant l'échange de données. Le but est maintenant de l'adapter aux cartes imprimées et de le rendre pleinement fonctionnel pour plusieurs cartes à la fois, puis ajouter une boucle de vérification en continue jusqu'à une deuxième requête de la RPi.&lt;br /&gt;
&lt;br /&gt;
====Electronique: réalisation au propres des PCB modules====&lt;br /&gt;
&lt;br /&gt;
Suite à une nouvelle erreur de réalisation cartes électronique, nous avons  refait et renvoyé à nouveau les cartes imprimées atmega328p.&lt;br /&gt;
Nous les souhaitons au propre pour une version finale. Une fois celle-ci imprimées nous pourrons en avoir 3 , un pour chaque module. Les cartes étaient bien imprimées en bottom mais lors du passage des traversants de bottom à top, le logiciel ne les a pas fait miroiter. Par manque d'attention nous avons alors envoyé les fichiers gerber pour des cartes ayant les composants du même coté que la couche de cuivre. &lt;br /&gt;
Les cartes électroniques actuelles sont alors correctes et fonctionnelles mais difficile à souder. Pour eviter les erreurs et continuer sur des prototypes de carte nous préférons attendre en nous concentrant sur la programmation PSI de la Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 12&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Raspberry PI, Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
-  réflexion: penser à faire boucler sur l'arduino une fois la requête reçu, ça veut dire que la manette est ON et donc vérifier continuellement les modules sur chaque atmega.&lt;br /&gt;
- SPI raspberry pi - arduino recuperation état du bouton avec les cartes modules  (/!\ récuperation à faire dans une variable) &lt;br /&gt;
&lt;br /&gt;
-SSH perso &lt;br /&gt;
adresse Rasppi: 192.168.137.10&lt;br /&gt;
&lt;br /&gt;
====Electronique: Finalisation soudure Modules====&lt;br /&gt;
&lt;br /&gt;
Soudure au propre et finale d'une carte atmega328p et donc envoie pour la réalisation de 2 autres cartes similaires et récupération de matériel&lt;br /&gt;
Soudure des 2 autres cartes, + tests sur les états = fonctionnelles.&lt;br /&gt;
On a donc bien 3 cartes pour les 3 modules de types différents (1 bouton, 1 joystick, 1 gachette)&lt;br /&gt;
PCB pour les 2 joysticks (qui serviront de thumbstick et gachette)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 13 et plus&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
====Electronique====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
(à mettre rapport + git + drive)&lt;br /&gt;
&lt;br /&gt;
=Datasheets=&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=55383</id>
		<title>IMA4 2017/2018 P35</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=55383"/>
				<updated>2018-05-05T18:20:52Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : /* Semaine 3 : Début premier prototype */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Présentation générale: Manette modulable&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Description&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Tout le monde joue aux jeux vidéo cependant, les manettes ne sont pas adaptées aux personnes ayant un handicap pouvant toucher les bras ou les mains.&lt;br /&gt;
C’est le cas, de plusieurs patients dans les centres de soins et de rééducation.&lt;br /&gt;
&lt;br /&gt;
Pour ce projet IMA4, nous travaillerons avec le centre SSR (soin de suite et de réadaptation) Marc Sautelet de Villeneuve d’Ascq.&lt;br /&gt;
Un adolescent, patient de Marc Sautelet, est passionné par les jeux vidéo. En effet, ayant perdu la motricité d’une partie de son corps, il ne peut pas jouer à deux mains. Pour cela, il bloque la manette entre son épaule et son coude, usant de la mâchoire et des doigts pour contrôler les&lt;br /&gt;
joysticks et les boutons. Cet exercice peut s’avérer fatiguant et pénible.&lt;br /&gt;
&lt;br /&gt;
Ainsi, nous chercherons à concevoir une manette PS4 adaptée au handicap de l’adolescent. &lt;br /&gt;
Cette manette devra aussi être adaptée pour d’autres patients présentant également des handicaps moteurs. Ainsi nous prendrons pour cibles: tous les patients du centre voulant jouer; et non pas que les enfants et adolescents.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Membre du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Transley Gracias et Camille Saad&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Cible&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Patient présentant un handicap moteur&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Période du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
janvier 2018 - mai 2018&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Partenaire/Client&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Centre SSR Marc Sautelet à Villeneuve d'Ascq&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Objectifs&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ce projet a pour objectif de créer un prototype de manette qui puisse interagir avec la console PS4 et dont le paramétrage se fait à l’aide d’une application mobile et/ou web. Cette manette devra suivre les demandes du patient ainsi que des aides-soignantes du centre, dans la mesure du possible.&lt;br /&gt;
&lt;br /&gt;
Plus précisément, pour le premier prototype, nous mettrons en œuvre l'utilisation de quelques boutons spécifiques: &lt;br /&gt;
&lt;br /&gt;
* Un joystick (type L/R)&lt;br /&gt;
* Quelques boutons poussoirs (type Croix/Triangle/Carré/Rond/R1/L1/Start/...)&lt;br /&gt;
* Des boutons gâchettes progressives (type L2/R2).&lt;br /&gt;
&lt;br /&gt;
Le but serait donc dans un premier temps de rendre fonctionnel un bouton de chaque type, puis de les multiplier une fois cela fait. Tous ces boutons réunis constituent une manette fonctionnelle.Ainsi, la manette sera ajustable, c’est à dire qu’elle devra s’adapter aux différents handicaps moteurs possibles.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Analyse du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Positionnement par rapport à l'existant&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre prototype aura une présentation unique par rapport à l’existant. En effet, les concurrents et produits existants ciblent pour la majorité un seul handicap. Cela&lt;br /&gt;
engendre une solution fermée à beaucoup de patients. Notre projet propose une mobilité des mouvements et également un choix large dans la composition et le&lt;br /&gt;
design de notre manette.&lt;br /&gt;
Le patient n’est pas retreint à jouer à une seule main, à utiliser beaucoup de force...Il y a moins de technique dans la manipulation et on ne joue pas avec une&lt;br /&gt;
manette adaptée uniquement pour un droitier ou un gaucher. Cependant, cela nous limitera peut-être dans le choix possible des types de jeux. Tout comme les autres&lt;br /&gt;
manettes adapté, l’utilisateur nécessitera un peu d’entrainement.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du premier concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Jouer aux jeux vidéo à une main n’est pas une idée d’aujourd’hui. En 1990, Nintendo propose le Power Glove. Mais il tombe très rapidement aux oubliettes suite à des problèmes techniques.&lt;br /&gt;
&lt;br /&gt;
Un autre gant a fait son apparition quelques années plus tard. Celui-ci, plus technique, il faut office de manette Play Station: le Reality Quest Power Glove.Cette idée de manette-gant, permet de jouer à la PS avec une seule main, elle a était conçue et présentée pour les E3, un salon d’exposition de gaming.Le gant est conçu pour contrôler l’équivalent des 14 boutons et 2 joysticks à l’aide d’une seule main. La « manette » est fixée dans la pomme de la main. L’utilisateur contrôle les mouvements verticaux et horizontaux en pivotant le poignet, et utilisent les 4 boutons d’action principaux et L1/R1 avec les doigts. Les autres boutons sont accessibles par un seul bouton rond contrôlé par le pouce.&lt;br /&gt;
La manette est adaptée pour beaucoup de jeux vidéo, dont les plus simples sont les jeux de voitures et de combats (arcade).&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec ce gant&lt;br /&gt;
*Design obligatoirement droitier&lt;br /&gt;
*Les boutons de contrôle sont peu sensibles et peuvent nécessiter de la force&lt;br /&gt;
*Design compliqué et nécessitant beaucoup d’entrainement.&lt;br /&gt;
&lt;br /&gt;
;Lien : https://www.youtube.com/watch?v=qV0SxSJDCYg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du second concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ben Heck, de son vrai nom Benjamin J.Heckendorn, est un concepteur de mods de consoles (mods pour modification, soit « manettes modifiées ») et une star&lt;br /&gt;
du net grâce à ses vidéos tutoriels.Il propose alors énormément de produits adaptés ou dérivés en guise de manettes.&lt;br /&gt;
Parmi les mods qu’il a réalisé, il a modifié une manette de PS4 afin de la rendre accessible à une personne ne pouvant jouer qu’à une main. Pour cela, il a déplacé les boutons en respectant l’ergonomie de la main valide et modifie les connexions. Il peut lui arriver de rajouter des boutons pour en remplacer un autre. Il réalise également le même système avec la Xbox. Sur la photo ci-dessous, il a adapté la manette pour un droitier.&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec cette ma&lt;br /&gt;
*Design obligatoirement droitier ou gaucher, une modification = une manette= une personne&lt;br /&gt;
*Besoin obligé du pouce et de l’index, même si avantage : 3 doigts nécessaire.&lt;br /&gt;
&lt;br /&gt;
;Lien :: https://www.youtube.com/watch?v=LieHIscadjk&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Scénario d'usage du produit ou du concept envisagé&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
La technologie est ,aujourd’hui, omniprésente dans notre vie. Les consoles de jeux ont envahies les maisons avec plus de 7 personnes sur 10 jouant aux jeux vidéos sur consoles en France (chiffre de l’Express). 0,18% des français sont handicapés cela représente 12 millions de français. Dans ce chiffre, 13,4% des personnes ont un handicap moteur. En 2017, les grands groupes comme Sony ou Microsoft avec respectivement PlayStation et Xbox ne permettent pas à tout le monde de jouer avec une manette. Les manettes sont prévues pour des personnes ayant leurs membres valides, plus précisément les mains et les bras.&lt;br /&gt;
&lt;br /&gt;
Après un accident de voiture, un jeune garçon a perdu la motricité d’un côté du corps. Passionné de jeux vidéo, il se retrouve avec des difficultés à jouer sur sa console PS4. Ingénieux, il utilise la manette en la coinçant entre son épaule et le creux du cou. Usant de la mâchoire et de sa main valide pour contrôler les joysticks et les boutons. L'exercice étant inconfortable et fatiguant il eu l’idée de proposer à des futurs ingénieurs de lui proposer une manette adaptée à son handicap. &lt;br /&gt;
&lt;br /&gt;
Les deux pré-ingénieurs ,avec leur tuteur, ont une idée révolutionnaire : La manette modulable ! Elle permettrait au jeune garçon, ainsi que d’autres joueurs, de pouvoir continuer de s’amuser ou même de commencer à jouer au jeux sur console. &lt;br /&gt;
Cette manette aidera fortement dans les centre de rééducation pour faire passer le temps et donner du plaisir à des personnes qui ne peuvent plus s’amuser avec leur console traditionnelle. Elle pourra aussi ouvrir de nouvelles possibilités pour certaines personnes qui n’auraient jamais essayé jusqu'à présent.   &lt;br /&gt;
Comme son nom l'indique, elle sera modulaire et s'adaptera à différents handicaps. Accompagnée de son application d’initialisation, elle sera accessible aussi bien aux enfants, patients, parents et aides soignantes.&lt;br /&gt;
&lt;br /&gt;
Quelques mois plus tard...Le jeune patient fan de Need For Speed, peut maintenant piloter sa voiture comme un vrai professionnel grâce à l'un des joysticks qu'il utilisera avec sa main valide et il pourra accélérer à des vitesses folles à l'aide de boutons poussoirs au niveau de son pied valide et gagner la partie. Son ami venu lui rendre visite, pourra en lieu et place des aides soignantes configurer à l'aide de la tablette (portable) la manette du patient. &lt;br /&gt;
Si le patient change de jeu pour Tekken et que la configuration des modules ne lui convient plus, il peut interchanger les éléments de la manette selon son envie et son confort. Ainsi il peut faire sauter son personnage, il utilisera un module bouton supplémentaire, qu'il actionnera avec le poing.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Fonctionnement&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Suite à une analyse fonctionnelle et à la formulation de notre projet, nous avons pu définir le fonctionnement de notre système. Notre produit, la manette, doit être accessible d’après nos objectifs à différents types de handicaps moteurs. Ainsi, l’idéal serait de concevoir une manette modulable afin qu’elle puisse s’adapter à toutes les situations. Ce n’est plus au patient de s’adapter à la manette mais à la manette de s’adapter au patient.&lt;br /&gt;
Cela signifie que la manette sera, dans la limite du possible et de la sensibilité du corps du patient, composée de plusieurs parties dites « modules » comportant un ou plusieurs actionneurs (boutons, joysticks, gâchettes...). Ces modules seront déplaçables afin d’être utilisé avec différents membres du corps : un doigt, une main,&lt;br /&gt;
une jambe ou même un pied. Il suffira de les connectés entre eux suivant l’organisation souhaitée, le Gameplay du jeu ou en fonction du handicap. Le tout sera relié à une application.&lt;br /&gt;
L’application sera alors mise en place pour connecter les différentes parties du point de vue software pour prérégler la manette en fonction du patient. Il pourra alors choisir les boutons en fonction du jeu, de ses mouvements mais aussi choisir la sensibilité.&lt;br /&gt;
&lt;br /&gt;
L’application et les modules devront être intuitifs et faciles d’utilisation. De cette manière des utilisateurs non avertis dans le domaine informatique ou jeunes pourront eux-mêmes gérer les connexions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Réponse à la question difficile&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
'''Question : Comment interconnecter les différents modules de la manette ?'''&lt;br /&gt;
&lt;br /&gt;
Il nous faut pour ce projet interconnecter les modules modélisant la manette qui seront connectés à la consoles PS4 via une Raspberry Pi 3.&lt;br /&gt;
Le choix de la Raspberry Pi 3 nous permet d'utiliser son module Bluetooth pour communiquer avec la PS4, ce choix est plus adaptée au projet que du filaire.&lt;br /&gt;
Concernant l'interconnexion des modules, nous travaillerons en deux étapes &amp;quot;preuves concept&amp;quot; : filaire et sans fils (Bluetooth).&lt;br /&gt;
&lt;br /&gt;
'''Objectif 1 : Preuve concept filaire'''&lt;br /&gt;
&lt;br /&gt;
Dans cette première partie de projet, nous souhaitons avoir une 1ère preuve de prototype rapidement. Nous nous concentrerons alors sur la communication entre la RPi3 et la PS4 ainsi que sur la conception des modules. Pour les modules, nous réaliserons des cartes électronique pour chaque module avec un micro-contrôleur. La communication filaire nous permettra d'interconnecter les modules à la RPi3 avec un bus SPI.&lt;br /&gt;
&lt;br /&gt;
'''Objectif 2: preuve concept sans fils'''&lt;br /&gt;
&lt;br /&gt;
Une deuxième étape du projet est la réalisation de la solution idéale sans fils. Celle-ci pourra commencer à être développée petit à petit en parallèle avec l'objectif 1. Le but ici, est d'interconnecter les modules en Bluetooth. Nous avons choisi le Bluetooth pour garder une connexion commune sur toute la chaîne. &lt;br /&gt;
Nous rajouterons alors un module bluetooth à chaque module de la manette. &lt;br /&gt;
&lt;br /&gt;
'''Objectif 3: possibilité d'adapter les boutons (capuchon en 3D)'''&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Préparation du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Cahier des charges&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
''Chef de projet:'' Alexandre Boé  &amp;lt;br&amp;gt;&lt;br /&gt;
''Responsables:'' Xavier Redon, Thomas Vantroys &amp;lt;br&amp;gt;&lt;br /&gt;
''Partenariat:'' Marc Sautelet (non etablie) &amp;lt;br&amp;gt;&lt;br /&gt;
''Elèves-ingénieurs:'' Camille Saâd, Transley Gracias &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Sujet :''' Manette modulable pour personne à déficience moteur compatible PlayStation 4 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objectifs principal (1er POC) : ===&lt;br /&gt;
Faire transmettre des informations issus des actionneurs (ex:boutons poussoires) via des arduinos jusqu’à la Raspberry Pi 3 en SPI.&amp;lt;br&amp;gt;&lt;br /&gt;
Envoyer les données reçues vers la PS4 en USB  &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objectifs secondaire (2e POC):===&lt;br /&gt;
Créer des modules avec un microcontrôleur et une puce bluetooth pour permettre une meilleurs flexibilité (c-àd pouvoirs avoir une meilleure ergonomie et une connexion sans fil) &amp;lt;br&amp;gt;&lt;br /&gt;
Connecter la Raspberry Pi 3 en Bluetooth à la PS4 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier: beteacorne.jpg||middle|600px|Bete a corne manette]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Choix techniques : matériel et logiciel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Liste de matériel :===&lt;br /&gt;
&lt;br /&gt;
'''Modules boutons/joysticks/gachettes'''&lt;br /&gt;
&lt;br /&gt;
3  Push buttons :&amp;lt;br&amp;gt;&lt;br /&gt;
- O X Y Carré R3 L3 &amp;lt;br&amp;gt;&lt;br /&gt;
- Guide PS &amp;lt;br&amp;gt;&lt;br /&gt;
- start/back &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 0,45€/unité TTC [https://www.gotronic.fr/art-bp-miniature-krs1273-16976.htm] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1  Thumbstick original: &amp;lt;br&amp;gt;&lt;br /&gt;
Joystick analogique 4 directions --&amp;gt; 4,25€/unité TTC [https://www.gotronic.fr/art-joystick-analogique-4-directions-19063.htm] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1 buttons trigger L1 L2 =&amp;gt; 1x Thumbstick original''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Cartes Atmega328p /connexion spi/'''&lt;br /&gt;
&lt;br /&gt;
3   Arduino UNO &amp;lt;br&amp;gt;&lt;br /&gt;
1   Arduino UNO atmega328p retirable &amp;lt;br&amp;gt;&lt;br /&gt;
4   capacite 22pF traversantes &amp;lt;br&amp;gt;&lt;br /&gt;
2   resistances 10 kOhm traversantes (à récupérer) &amp;lt;br&amp;gt;&lt;br /&gt;
2   oscillateurs quartz 16MHz traversante &amp;lt;br&amp;gt;&lt;br /&gt;
2   atmega328p-pu et support &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cartes module bluetooth nrf52810 '''&lt;br /&gt;
&lt;br /&gt;
6   capacités 100nF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
6   capacités 12pF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 4,7pF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 1µF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 100pF=0,1nF 0603 (à récupérer) &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 0,8pF 0603 (a acheter, commande en cours) &amp;lt;br&amp;gt;&lt;br /&gt;
2   inductance 3,9nH 0603 (a acheter, commande en cours) &amp;lt;br&amp;gt;&lt;br /&gt;
2   oscillateur quartz 32 MHz &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''' Connexions et autres '''&lt;br /&gt;
&lt;br /&gt;
1 Led RGB neopixel [https://www.adafruit.com/product/1734] &amp;lt;br&amp;gt;&lt;br /&gt;
1 Raspberry Pi 3 &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; ~36,23€/unité TTC [https://fr.rs-online.com/web/p/processor-microcontroller-development-kits/8968660/?src=raspberrypi] &amp;lt;br&amp;gt;&lt;br /&gt;
1 Raspberry Pi Zero W (commandée) [https://www.raspberrypi.org/products/raspberry-pi-zero-w/] &amp;lt;br&amp;gt;&lt;br /&gt;
6 Alimentations 5V ou 3,3V &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
par exemple, 12 piles de type CR2016 3V rechargeables ou 24 piles AAA 1,5 V rechargeables  &lt;br /&gt;
5 modules Bluetooth nrf de Nordic : nRF52810-QFAA-R &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 3,17€/unité + frais expédition  [https://www.mouser.fr/productdetail/nordic-semiconductor/nrf52810-qfaa-r?qs=sGAEpiMZZMve4%2FbfQkoj%252bG%2FosjLoe2oghFQwQllMrQ4%3D]&lt;br /&gt;
5 Lignes broches mâles &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logiciels:===&lt;br /&gt;
&lt;br /&gt;
- IDE arduino&lt;br /&gt;
- Altium&lt;br /&gt;
- FreeCAD ou Inkscape&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Liste des tâches à effectuer&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 1 : Gestion du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Définition des cahiers des charges fonctionnel et technique, choix d'orientation...&lt;br /&gt;
* Recherche techniques sur les différentes connexions possibles entre les modules, la RPi 3 et la console PS4&lt;br /&gt;
#Recherche connexion SPI entre les modules et la RPi3&lt;br /&gt;
# Recherche connexion bluetooth entre la RPi3 et la PS4&lt;br /&gt;
# Recherche connexion bluetooth pour les modules&lt;br /&gt;
# Recherche carte avec montage Atmega328P-PU et anticipation module bluetooth&lt;br /&gt;
* Détermination du matériel nécessaire&lt;br /&gt;
* Réflexion sur l'application&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 2: Réalisation du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Partie 1: Preuve concept manette en filaire'''&lt;br /&gt;
&lt;br /&gt;
* Conception de cartes électroniques pour 2 modules (/!\ prévoir modules bluetooth)&lt;br /&gt;
* Réalisation connexion SPI avec 2 modules : programmation des Atmega328p en liaison série. &lt;br /&gt;
* Si tests concluant, ajouter des modules jusqu'à en avoir 5 (1 pour chaque type de boutons) &lt;br /&gt;
* Connexion bluetooth entre la PS4 et la RPi3&lt;br /&gt;
* Réalisation du support des modules avec fixations possibles (imprimante 3D)&lt;br /&gt;
&lt;br /&gt;
'''Partie 2: Preuve concept manette en bluetooth'''&lt;br /&gt;
&lt;br /&gt;
* Ajout des modules bluetooth aux cartes électroniques&lt;br /&gt;
* Connexion bluetooth entre les modules&lt;br /&gt;
&lt;br /&gt;
'''Partie 3: Application Android : paramétrage de la manette'''&lt;br /&gt;
&lt;br /&gt;
* Créer une application sur tablette ou smartphone (Android) afin de configurer la manette aux besoins (inter-connexion des modules et console)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Calendrier prévisionnel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Date'''&amp;lt;/u&amp;gt;&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Tache à réaliser''' &amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
17/01/18-24/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Faire des recherches sur les différentes interconnexions du système : Bluetooth, RPi-Atmega328 (SPI), RPi-PS4&lt;br /&gt;
Continuer liste des taches, matériel, Début recherches + réflexion fixation support des modules&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Recherche technique connexion PS4-RPi3 et connexion SPI RPi3-Module + code&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18-07/03/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Réalisation 1er prototype (+ début prototype 2)&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
07/03/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Seance 7 :  Test prototype filaire&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
07/03/18-09/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Réalisation 2eme prototype + application Android&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
09/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Seance 14 :  Test prototype Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
14/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Video projet&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
15/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Finalisation projet et Rapport&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
16/05/18-17/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Soutenances Projet&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Réalisation du Projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Feuille d'heures &amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Voici le tableau d'heures du binôme:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Heures S11 !! Heures S12 !! Heures S13et+ !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 10&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 20min&lt;br /&gt;
|&lt;br /&gt;
| 15h20&lt;br /&gt;
|-&lt;br /&gt;
| Cherches techniques &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 18&lt;br /&gt;
|-&lt;br /&gt;
| Rédaction du wiki et rapport de projet&lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 30min&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| 30min&lt;br /&gt;
| 30min&lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
| 10h30&lt;br /&gt;
|-&lt;br /&gt;
| Programmation&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 3&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 7&lt;br /&gt;
| 8&lt;br /&gt;
| 6&lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
| 43&lt;br /&gt;
|-&lt;br /&gt;
| Cartes électroniques&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 6&lt;br /&gt;
| 8&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| 31&lt;br /&gt;
|-&lt;br /&gt;
| Application&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| Total Semaine&lt;br /&gt;
| 10&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 7&lt;br /&gt;
| 10h30&lt;br /&gt;
| 13&lt;br /&gt;
| 9&lt;br /&gt;
| 12&lt;br /&gt;
| 9h30&lt;br /&gt;
| 10h30&lt;br /&gt;
| 9&lt;br /&gt;
| 9h20&lt;br /&gt;
| &lt;br /&gt;
| '''117h50'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Prologue&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Avant la réalisation et conception d'un projet, il est important d'analyser celui-ci. Nous avons allons consacré le prologue à l'analyse fonctionnelle de la manette. Nous avons également eu une réflexion sur l'analyse technique, cela nous a permis de réaliser une liste de matériel. Il est important de définir les objectifs ainsi que les besoins afin de ne rien oublier. (Voir ci-dessus Analyse projet) &lt;br /&gt;
Nous avons également organisé notre travail, pour le partage de documents de recherches et la rédaction de compte-rendu final nous avons réalisé un google drive. Par la suite, nous créerons un projet Git. &lt;br /&gt;
&lt;br /&gt;
Durant ce temps, nous avons décidé de réaliser 5 modules. Les modules sont les différents boutons de la manettes qui nous pourrons placer selon nos choix (boutons modulaires) pour notre prototype projet pour chaque type des boutons d'une manette PS4. Ces modules devrons être connectés à la console et interconnectés. Le tout sera lié à une application Android. Suite à quelques recherches et nos analyses, nous avons décidé les points suivants :&lt;br /&gt;
&lt;br /&gt;
- On commencera avec 2 modules et on les multipliera par la suite. &lt;br /&gt;
- Les premiers tests sont réalisés avec des boutons petits pour assurer leur caractéristique &amp;quot;modulaires&amp;quot;, par la suite nous pourrons ajouter des capuchons de taille plus importante (imprimante 3D ou achat)&lt;br /&gt;
- Conception modules : réalisation de carte avec un microcontrôleur atmega328 programmable pour chaque module (anticiper le module Bluetooth) &lt;br /&gt;
- Projet en 2 parties : prototype filaire et prototype Bluetooth&lt;br /&gt;
# Prototype filaire : connexions entre les modules et la RPi3 en SPI, connexion Rpi3-PS4 en Bluetooth, avec l'application en filaire à la RPi3&lt;br /&gt;
# Prototype Bluetooth: connexion Bluetooth entre modules-RPi3-PS4-apllication&lt;br /&gt;
&lt;br /&gt;
[[Fichier: structuremanette.png||center|400px|Concept manette modulable]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 1&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous nous sommes concentrés les recherches afin de définir clairement le cahier des charges technique. Il s'agit des réalisations à mettre en œuvre pour les inter-connexions des éléments de la manette.&lt;br /&gt;
Ainsi, nous avons fait des recherches sur :&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI entre les modules (Atmega328p) et la RPi3===&lt;br /&gt;
&lt;br /&gt;
SPI: Serial périphérique interface BUS&lt;br /&gt;
&lt;br /&gt;
[[Fichier: yWGmW.png||right|200px|Concept manette modulable]]&lt;br /&gt;
Comme indiqué sur l'image ci-dessus, la Raspberry pi 3  peut communiquer en SPI avec ses broches CS0 (24), CS1 (26), SCLK (23), MISO (21), MOSI (19). Celles-ci permettent de communiquer avec un ou plusieurs esclaves (dans notre cas, des Atmega328p) en reliant directement les broches concernées de la RPi3 à celles des composants esclaves.&lt;br /&gt;
Chaque broche CS0 (24) ou CS1 (26) ne peut être connectée qu'à l'entrée SS (aussi appelé CS) d'un seul esclave.&lt;br /&gt;
C'est a dire que chaque CS est lié à un esclave afin de choisir avec lequel la communication est établie à un moment donné, et les MISO sont reliées entre elles en cascade, de même pour les SCLK et les MOSI. On peut noter que le maître impose la fréquence d’horloge et sélectionne l’esclave auquel les données sont envoyées.  8 MHz est le plus rapide supportable a 3,3V&lt;br /&gt;
&lt;br /&gt;
[[Fichier: fonctionnementSPI.png||right|200px|Connexion SPI multi-esclaves]]&lt;br /&gt;
&lt;br /&gt;
Voici un schéma du fonctionnement souhaité : &lt;br /&gt;
&lt;br /&gt;
Comme nous souhaitons avoir 5 modules environ il nous faudra rajouter un composant en plus afin d'augmenter les possibilités de sélection, par exemple des démultiplexeurs.&lt;br /&gt;
Dans un premier temps nous essaierons avec 2 esclaves, puis on augmentera le nombre. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Connexion Bluetooth PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Les recherches portent également sur la connexion entre la manette PS4 et la console. Elles concernent le protocole de communication via Bluetooth&lt;br /&gt;
&lt;br /&gt;
Caracteristique pour la PS4:  Bluetooth®v4.0, Qualcomm Atheros AR3002 Buetooth LE: 2,4-2,5 GHz  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caracteristique de la connexion : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Vitesse de transmission &amp;gt;&amp;gt; 3 Mbit/s   8N1 &lt;br /&gt;
*Relevé tous les 1.3 millisecond (peut-être) &lt;br /&gt;
*Chaque manette à une adresse unique BD_ADDR qui correspond à l’adresse MAC de la carte Réseau&lt;br /&gt;
*Protocole de détection est le SDP basé sur une emission reception PDU&lt;br /&gt;
*L’Attribut ID est representer en TLV Type Length Value &lt;br /&gt;
*Communication HCI ACL Data Packet &lt;br /&gt;
&lt;br /&gt;
===Rélisation des cartes électroniques===&lt;br /&gt;
&lt;br /&gt;
matériel nécessaire pour un PCB : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*breadboard&lt;br /&gt;
*câbles&lt;br /&gt;
*1 x 10k Ohm résistance&lt;br /&gt;
*Quartz 16Mhz clock crystal&lt;br /&gt;
*2 x 22 pF capaciteurs&lt;br /&gt;
*Atmega328P-PU&lt;br /&gt;
&lt;br /&gt;
Ressources: &lt;br /&gt;
[[https://www.arduino.cc/en/Main/Standalone]]&lt;br /&gt;
[[http://www.eprojectszone.com/atmega-328-pu-standalone/]]&lt;br /&gt;
[[https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 2&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la semaine deux et durant la séance, nous avons continué et approfondie nos recherches sur le projet. Nous avons pu ainsi affiner nos taches de réalisation et donc notre cahier des charges.&lt;br /&gt;
&lt;br /&gt;
===Connexion aux modules: SPI et Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Green&amp;quot;&amp;gt; CORRIGER&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
voir https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018#Configuration_du_syst.C3.A8me_embarqu.C3.A9&lt;br /&gt;
&lt;br /&gt;
(sudo apt-get install pi-bluetooth)&lt;br /&gt;
&lt;br /&gt;
''connexion sur la raspberry par ssh:''&lt;br /&gt;
 su&lt;br /&gt;
 update-rc.d ssh enable&lt;br /&gt;
 invoke-rc.d ssh start &lt;br /&gt;
 ssh pi@172.26.79.1XX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''bluetooth''&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
 agent on&lt;br /&gt;
 default-agent&lt;br /&gt;
 scan on&lt;br /&gt;
 pair [device Bluetooth address]  (exemple: pair XX:XX:XX:XX:XX:XX )&lt;br /&gt;
&lt;br /&gt;
''NOUVELLE REFLEXION : Connexion SPI entre les modules (Atmega328p) et la RPi3 --&amp;gt; MODULES BLUETOOTH''&lt;br /&gt;
&lt;br /&gt;
Si multi-esclaves= plusieurs modules : &lt;br /&gt;
Il faut ajouter des sélections pour les SPI → démultiplexeurs OU ne pas utiliser les CS0 et CS1, et plutôt des pins entrée/sortie de la RPi3 lié au SS comme ça on choisit direct le module esclave voulu.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' Nous avons étudié à nouveau la datasheet de notre module bluetooth nrf de Nordik. Le module bluetooth comporte  déjà un microprocesseur !&lt;br /&gt;
Un module plutôt peut donc jouer le rôle de notre atmega328p. Il n'y a alors pas besoin de réaliser des cartes électroniques de type arduino standalone. Nos PCB regrouperont alors uniquement l'alimentation, un actionneur (bouton, joystick), le module bluetooth et les broches de connexion si besoin... &lt;br /&gt;
&lt;br /&gt;
Cette séance nous a alors permise de revoir entièrement le matériel nécessaire. Notre liste de matériel nous semble alors plus réfléchie et limitée au nécessaire. &lt;br /&gt;
&lt;br /&gt;
===Connexion Bluetooth PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Suite à nos recherches de la semaine précédente, nous avons sélectionné deux sites bien renseignés : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;SITES&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ils nous ont permis de comprendre la communication entre la manette et la console. En effet, ils nous expliquent les échanges de trames Bluetooth. &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;EXPLICATIONS 1 exemple &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 3 : Début premier prototype&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
*'''Connexion SPI RPi3-Arduino'''&lt;br /&gt;
&lt;br /&gt;
Comme vu durant les semaines précédentes, nous souhaitons réaliser une connexion Multi-esclaves en SPI entre la Raspberry pi et plusieurs modules.&lt;br /&gt;
Cette semaine nous avons vu que la réalisation de notre premier prototype doit aller vite. Il ne nous est pas nécessaire d’attendre les modules bluetooth si il nous faut dans cette partie uniquement utiliser son microprocesseur. Ainsi pour chaque module nous utilisons une arduino UNO. Nous réaliserons les programmes en C afin de pouvoir les réutiliser avec les modules bluetooth par la suite. &lt;br /&gt;
Une fois la connexion réalisable nous adapterons les programmes aux modules bluetooth Nordik. En effet, ceux-ci comporte déjà un microprocesseur, le module peut jouer le rôle de notre atmega328p. Il n'y a aurait alors pas besoin de réaliser des cartes électroniques arduino standalone sur PCB, mais directement des cartes électronique avec le module et le module voulu (bouton, joystick...) et l'alimentation. &lt;br /&gt;
Durant la séance nous avons alors revu la liste de matériel nécessaire. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: prototype1.jpeg||center|600px|connexion filaire prototype 1 filaire arduino]]&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous avons recherches des exemples de codes et de librairies pour Arduino SPI et RaspberryPI SPI. &lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé le programme de la connexion SPI pour l'arduino et récupéré les bibliothéques SPI.h avec SPI.c. Nous nous sommes alors concentrer à les comprendre, pour pouvoir l'utiliser. &lt;br /&gt;
&lt;br /&gt;
*'''Réalisation du projet Git'''&lt;br /&gt;
&lt;br /&gt;
Création du projet IMA4_Projet35_ManetteModulable sur Git et partage de celui-ci. &lt;br /&gt;
Les premiers dossier crées durant la séance :&lt;br /&gt;
-Arduino (connexion SPI arduino) : ProtoSpi.c + dossier librairie SPI + Makefile&lt;br /&gt;
-RPI (dossier codes pour Rpi) &lt;br /&gt;
-Readme.md&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le site qui détaille le protocole Bluetooth PS4n'est pas complet et de plus n'ayant pas accès à une PS4 (pour le moment) nous avons décidé de commencer par une connexion USB (pour laquelle on dispose de toutes les informations) et qu'on pourra tester plus facilement.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 4&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Pour le prototype 1 FILAIRE nous réaliserons les étapes suivantes :&lt;br /&gt;
&lt;br /&gt;
#Réalisation du programme SPI pour arduino&lt;br /&gt;
#Réalisation du programme SPI pour la RPi&lt;br /&gt;
#Connexion USB avec la PS4 ou ordinateur&lt;br /&gt;
#Réalisation de cartes électroniques atmega328p-pu standalone (remplacer les Arduinos) &lt;br /&gt;
#Remplacer les &amp;quot;PCB arduino&amp;quot; par le module bluetooth et adapter la connexion&lt;br /&gt;
#Conception 3D de la délimitation 1 axe pour le joystick &amp;quot;gâchette&amp;quot;&lt;br /&gt;
#Réalisation de l'application Androïde.&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées nous auront alors une preuve de concept filaire et nous pourrons alors passer à une connexion bluetooth. &lt;br /&gt;
Le passage à la connexion bluetooth sera le deuxième prototype et le cas idéal de la réalisation de la manette modulable. &lt;br /&gt;
&lt;br /&gt;
===Mise à jour Matériel===&lt;br /&gt;
&lt;br /&gt;
- Modéliser les boutons gâchettes L1/2 R1/2 de la manette PS4 (boutons sensibles à la pression) --&amp;gt; un joystick dont nous bloquerons un axe (imprimante 3D)&lt;br /&gt;
- Remplacer la RPi 3 par une Rpi zero W qui nous permettrait de réaliser plus facilement une connexion USB tout en gardant l'avantage du bluetooth. &lt;br /&gt;
- Choix de l’alimentation pour les 5 modules Bluetooth: nécessitent 3V --&amp;gt;  utiliser des piles rechargeables 1,2V AAA plutôt que piles rondes 3V.&lt;br /&gt;
&lt;br /&gt;
Nous avons également besoin du matériel cité en semaine 1 pour réaliser des cartes électroniques atmega328p-pu standalone. ( nous revenons alors sur les décisions de la semaine 3)&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI RPi3-Arduino===&lt;br /&gt;
 &lt;br /&gt;
Montage Raspberrypi et 1 arduino en PSI + 1 bouton + 1 led.&lt;br /&gt;
Voici le choix des branchements :&lt;br /&gt;
&lt;br /&gt;
 MASTER = RPi   &lt;br /&gt;
 SLAVE= Arduino&lt;br /&gt;
&lt;br /&gt;
'''SPI sur Arduino:'''&lt;br /&gt;
 MOSI -&amp;gt; GPIO11 //PB3  //master OUT to the slave IN&lt;br /&gt;
 MISO -&amp;gt; GPIO12 //PB4 //slave OUT to the master IN&lt;br /&gt;
 SCLK -&amp;gt; GPIO13 //PB5 //serial clock&lt;br /&gt;
 SS -&amp;gt; GPIO10   //PB2  //slave select&lt;br /&gt;
'''Led, bouton et autre...'''&lt;br /&gt;
 LED --&amp;gt; GPIO6  //PD6&lt;br /&gt;
 GND&lt;br /&gt;
 +5V (if required)&lt;br /&gt;
'''SPI sur la Raspberry Pi'''&lt;br /&gt;
 SPIO MOSI -&amp;gt; PIN19 &lt;br /&gt;
 SPIO MISO -&amp;gt; PIN21&lt;br /&gt;
 SCLK -&amp;gt; PIN23&lt;br /&gt;
 SPIO CS0 -&amp;gt; PIN24&lt;br /&gt;
&lt;br /&gt;
Continuation du code pour faire clignoter Led branchée à une arduino depuis la Rpi, en connexion SPI.&lt;br /&gt;
&lt;br /&gt;
===Connexion USB PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous avons regardé comment utiliser le port série sur la RPi3, soit utiliser les UART. &lt;br /&gt;
&lt;br /&gt;
Nous avons réaliser qu'il n'était pas aussi simple d'utiliser le port serie USB de la Raspberry Pi 3, en effet le SoC est un BCM2837 . &lt;br /&gt;
De plus nous ne pouvons pas utiliser le même port pour l'alimentation et la connexion. &lt;br /&gt;
&lt;br /&gt;
Une des solutions à cette difficulté serait d'utiliser une RPi ZERO W à défaut d'une RPi 3. On pourrait alors avoir un port d'alimentation avec connexion USB mais également retrouver la connexion bluetooth dont nous avons besoin.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 5&amp;lt;/span&amp;gt;==&lt;br /&gt;
 &lt;br /&gt;
===Programmation: Réflexion définitives prototypes filaire ===&lt;br /&gt;
&lt;br /&gt;
Durant la semaine 5, nous avons continué la réalisation du prototype filaire par l'avancé du code SPI ainsi que les recherches concernant le protocole PS4. &lt;br /&gt;
&lt;br /&gt;
Pour réaliser la connexion entre la PS4 et les différents modules, nous avons vu la semaine dernière que nous utiliserons une RPi zero W (que nous avons commandé). Celle-ci nous permet d'utiliser le bluetooth mais elle nous permet également de réaliser un réseau local sans fil. Ce qui peut être pratique dans la mesure où notre projet est modulable. &lt;br /&gt;
En attendant la réception de la commande, nous nous sommes penché sur les programmes et la configuration nécessaire à l'utilisation de la RPi zero W.&lt;br /&gt;
&lt;br /&gt;
===Electronique===&lt;br /&gt;
&lt;br /&gt;
[[Fichier: bouton_c1.jpg|100px|thumb|left|PCB bouton]]&lt;br /&gt;
[[Fichier: arduinobb.jpg|200px|thumb|right|atmega328p-pu branchement test]]&lt;br /&gt;
&lt;br /&gt;
Du coté électronique, nous avons réalisé sur fritzing certaines cartes électroniques. Les Arduino Uno servant actuellement de test, seront remplacées par des PCB atmega328p-pu standalone avec des broches permettant les branchements nécessaires SPI ou encore aux modules &amp;quot;boutons/joystick&amp;quot;. Pour les boutons, nous avons également réalisé un pcb afin de faciliter les branchements.  &lt;br /&gt;
&lt;br /&gt;
Il nous faut alors également une 3eme carte qui nous sera nécessaire pour la réalisation du prototype sans fil. Dans notre liste de matériel, nous avons des composants nrf52810 bluetooth, ceci doivent être soudé avec les capacités de protection mais également des broches de communication. Nous avons alors commencé cette carte électronique sur Altium avec le fichier  projet PCB du distributeur à modifier.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: Arduino_c1.jpg|100px|thumb|center|PCB atmega328p-pu]]&lt;br /&gt;
&lt;br /&gt;
=== Construction 3D ===&lt;br /&gt;
&lt;br /&gt;
Enfin, nous avons commencé à réaliser des boîtiers 3D pour certains modules. Par exemple, comme nous l'avions vu précédemment, un des joysticks servira de bouton-gâchette en utilisant un seul de ses axes. Il nous faut alors réaliser un boitier qui bloque l'un des axes, mais également une tige qui nous permettra de pousser le joystick de manière simplifiée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 6&amp;lt;/span&amp;gt;==&lt;br /&gt;
 &lt;br /&gt;
===Programmation: configuration RPi Zero W ===&lt;br /&gt;
&lt;br /&gt;
Ayant reçu la Raspberry Pi zero W en début de semaine, nous nous sommes concentrés sur la programmation et la configuration de celle-ci. &lt;br /&gt;
&lt;br /&gt;
===Electronique: PCB nrf52810===&lt;br /&gt;
&lt;br /&gt;
Les cartes réalisées en semaine 5 sont validées et en attente de réalisation. &lt;br /&gt;
&lt;br /&gt;
Cette semaine a permis la réalisation et la finalisation de la carte électronique nrf52810. Il nous a fallu recommencé cette carte deux fois. En effet, une fois finie sur Altium nous avons réalisé que les empreintes des CMS sur PCB fourni par le constructeur ne correspondent pas au matériel CMS de l'école. Face à cette inattention de notre part, nous avons décidé de refaire entièrement la carte électronique sur fritzing. Ayant la datasheet et des plans d'inspiration PCB, nous avons pu refaire la carte entièrement. &lt;br /&gt;
Sur celle-ci nous avons ajouté des broches de connexion au besoin, un branchement Jtag et ICSP pour la programmation et la connexion SPI. &lt;br /&gt;
La carte est en attente de validation, puis validation.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: nrf52810_circuit2.jpg||center|400px|PCB carte nrf52810]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Révision matériel ===&lt;br /&gt;
&lt;br /&gt;
Pour la réalisation de nos composants électroniques, il nous a fallu faire une révision des composants disponibles à l'école:&lt;br /&gt;
(les quantités indiquées ci-dessous pourront être augmentée si nécessaire,pour avoir dans l'idéal un module de chaque type de la manette, ici on se concentre sur BOUTON et JOYSTICK)&lt;br /&gt;
&lt;br /&gt;
'''Cartes Arduino:'''&lt;br /&gt;
* 4 capacite 22pF traversantes&lt;br /&gt;
* 2 resistances 10 kOhm traversantes (à récupérer)&lt;br /&gt;
* 2 oscillateurs quartz 16MHz traversante&lt;br /&gt;
* 2 atmega328p-pu et support&lt;br /&gt;
&lt;br /&gt;
'''Cartes nrf52810'''&lt;br /&gt;
* 6 capacités 100nF 0603&lt;br /&gt;
* 6 capacités 12pF 0603&lt;br /&gt;
* 2 capacités 4,7pF 0603&lt;br /&gt;
* 2 capacités 1µF 0603&lt;br /&gt;
* 2 capacités 100pF=0,1nF 0603 (à récupérer)&lt;br /&gt;
* 2 capacités 0,8pF 0603 (commande en cours)&lt;br /&gt;
* 2 inductance 3,9nH 0603 (commande en cours)&lt;br /&gt;
* 2 oscillateur quartz 32 MHz &lt;br /&gt;
&lt;br /&gt;
'''Cartes modules Boutons'''&lt;br /&gt;
* un sachet de broches mâles (qu'on utilisera également pour les autres cartes, à récupérer/acheté) &lt;br /&gt;
&lt;br /&gt;
Nous avons alors mis-à-jour la liste de composant située plus haut, ainsi que celle de la page IMA4 2017/2018 [https://projets-ima.plil.fr/mediawiki/index.php/Projets_IMA4_SC_%26_SA_2017/2018]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 7&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Programmation: connexion wifi RPi Zero W et Bootloader sur Atmega328p-pu ===&lt;br /&gt;
&lt;br /&gt;
Pendant cette semaine, nous avons continué la programmation et la configuration des Raspberry Pi 3 et Zero W afin de les utiliser en connexion Wifi. &lt;br /&gt;
&lt;br /&gt;
Nous avons également continuer les programmes de récupération de données : état des boutons et du joystick. Ces programmes sont appliqué sur l'atmega328p-pu standalone sur la plaque d'essai en attendant que le PCB soit opérationnel.&lt;br /&gt;
Pour pouvoir programmer l'atemega328p-pu comme une arduino UNO, il nous faut suivre plusieurs étapes :&lt;br /&gt;
&lt;br /&gt;
'''1.Flasher le Bootloader'''&lt;br /&gt;
Nous avons 2 Atmega328p-pu neufs, ainsi il nous faut flasher le bootloader sur chacun d'eux afin de pouvoir les utiliser et les programmer sur une breadboard dans un montage minimaliste arduino-standalone. &lt;br /&gt;
Pour cela, on peut utiliser une carte arduino UNO. On vérifie le port et le type de carte sélectionnés dans le menu &amp;gt;Outils. Sur cette carte on téléverse le fichier arduinoISP.ino qui se trouve dans les exemples en étant en progrmamateur AVr ISP mkll (&amp;gt;outils&amp;gt;programmateur) &lt;br /&gt;
Puis on met l'atmega328p-pu qui nous intéresse sur le suppor socket de la carte. On change de nouveau le programmateur pour Arduino as ISP et on fait &amp;gt;tools&amp;gt;burn bootloader, soit &amp;gt;graver la sequence d'initialisation.&lt;br /&gt;
Ces étapes faites, on peut retirer notre microcontroleur et le replacer correctement dans le montage. &lt;br /&gt;
&lt;br /&gt;
'''2.Programmation atmega328 sur breadboard'''&lt;br /&gt;
Une fois l'atmega328p-pu préparé, on peut le programmer. On peut le faire simplement à l'aide de la carte arduino UNO utilisée précédemment.On branche les Tx et Rx en commun ainsi que le reset, le GND et le VCC.&lt;br /&gt;
&lt;br /&gt;
Nous avons réaliser des codes basiques tels que le clignotement d'une led rouge ou encore l'affichage de &amp;quot;hello world&amp;quot; sur le moniteur série pour vérifier la bonne fonctionnalité du montage. Cela fait nous avons pu écrire sous Arduino IDE le code de lecture des états.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: montage_BB_test.jpg||left|200px|programmation modules arduino sur breadboard]]&lt;br /&gt;
&lt;br /&gt;
===Electronique : soudure carte de test modules ===&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons déja vu lors de la réalisation des PCB, si l'on souhaite programmer un atmega328p-pu en bootloader, le montage est simple. Il peut être minimaliste en utilisant une arduino UNO, un atmega328, une breadboard et 3 composants: 1 quartz 16MHZ crystal, 1 résistance 10kOhm et 2 capacitors céramiques de 22pF.&lt;br /&gt;
Durant la semaine 7, nous avons soudé les composants traversants de la carte électronique correspondant à ce montage ainsi que le PCB du bouton.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 8&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Programmation ===&lt;br /&gt;
&lt;br /&gt;
===Electronique : Correction soudure et soudure CMS===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avions souhaité programmer la carte électronique atmega328p-pu. Cependant, nous avons réaliser que nous avions fait une erreur lors de l'envoie du PCB à la production. En effet, celui-ci avait été fait en Top sur le logiciel Fritzing et non en Bottom. Hors nous avions soudé les composants (durant la semaine 7) comme pour un circuit imprimé en bottom, l'atmega328p-pu se retrouve alors inversé par rapport aux pistes. &lt;br /&gt;
Comme solution, nous avons choisi de souder un deuxième support pour l'atmega328 de l'autre coté de la carte avant de la refaire au propre. En effet, avant de la refaire il nous faut vérifier si la carte est bien programmable. &lt;br /&gt;
Une fois cela fait nous avions pu programmer la carte mais, nous avions également réalisé la pin 2 de l'atmega328 était prise par le bouton poussoir. Or, nous avons besoin des pin 2 et 3 pour le RX et TX permettant la programmation de l'atmega à partir d'une arduino, les pistes branchement RX-TX n'ont également pas été prévus pour le téléversement des programmes sur la carte. Il nous faut alors couper une piste et souder des câbles pour utiliser toutes les pistes souhaitées. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: correction_proto_PCB.jpg||right|300px|PCB arduino correction]]&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons également souhaité souder les CMS et le composant bluetooth nrf52810 sur la carte imprimé et reçu lors de la semaine 7. Pour cela, nous avons convenu de travailler dans la C202 durant la séance du mercredi. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: PCB_nrf52810.jpg||left|400px|carte electroniques imprimées]]&lt;br /&gt;
&lt;br /&gt;
====Comment souder des CMS ?====&lt;br /&gt;
&lt;br /&gt;
les CMS sont des composants montés en surface c'est à dire qu'ils sont montés du même côté que les pistes cuivrées (à l'opposé des composants traversants) et sont de petite tailles souvent de l'ordre du millimètre. La taille est déterminée par 4 chiffres : les 2 premiers pour la longueur et les 2 derniers pour la largeur. On a du 1206,0805,0603 ou encore 0402. Il est même possible de trouver plus petit. A l'école nous utilisons souvent du 0603, c'est le cas de nos composants.&lt;br /&gt;
Pour souder des CMS 0603, il nous faut utiliser une autre méthode qui n'est pas le fer à souder :&lt;br /&gt;
# Préparer la veille la pâte à braser la veille (dans une seringue)&lt;br /&gt;
# Gommer la carte pour éviter l'oxydation (attention à ne pas retirer les miettes de gomme en soufflant dessus) &lt;br /&gt;
# Appliquer avec la seringue la pâte sur les empreintes et piste souhaitées. Pour les endroits difficile à atteindre ou avec 2 pistes proches les unes des autres, il est possible de mettre la même goutte de pâte sur les 2 pistes. Cela de causera pas de court-circuit par la suite. En effet, la pâte est composée d’alliage qui sous la chaleur va se fluidifier et se coller uniquement aux pistes métallique. Le reste fondera sous la chaleur du four.&lt;br /&gt;
# Appliquer les CMS sur la pâte au fur et à mesure (attention ! ne jamais toucher les CMS avec les doigts, tjrs utiliser une pince)&lt;br /&gt;
# Mettre au four&lt;br /&gt;
&lt;br /&gt;
====Bilan soudure nrf52810====&lt;br /&gt;
&lt;br /&gt;
Cependant, une fois le matériel nécessaire préparé, et la pâte mise sur les pistes souhaitées, au moment de déposer le composant, nous avons réalisé que celui-ci était beaucoup plus petit que l'empreinte sur le PCB. Il s'agit d'un composant boitier QFN48. Fritzing ne proposant au plus proche des boitiers QFN24 ou LQFP48, celui-ci a basculé automatiquement pour un boitier LQFN48, de dimension plus grande. Face à ce manque de vigilance, nous avions cependant commencer par le nrf52810 (composant concerné) évitant ainsi de gaspiller d'autres CMS. &lt;br /&gt;
Nous avons souhaité refaire la carte sous Altium à partir des fichiers fournis par le concepteur (chose que nous avons commencé à faire aux alentours de la semaine 5) &lt;br /&gt;
Après la réalisation du schématic, et de la modification des empreintes de capacités, inductances et autres composants de 0402 à 0603. Notre matériel ne permettant que des empreintes 0603.&lt;br /&gt;
 &lt;br /&gt;
Lors du routage, une erreur de chevauchement des pistes est notifiée par Altium au niveau du nrf52810. Celles-ci ne présentent pas d'angles et sont déjà de taille 8mil, il nous faut alors passer les pistes en 6mil. Mais 8mil est la taille minimale pour la production à Polytech, nous avons regardé pour envoyer les cartes à faire ailleurs mais le 6mil n'est pas beaucoup conseillé. De plus, il n'est peut-être pas judicieux de continuer avec le composant microcontrôleur-bluetooth Nrf52810 qui prend du temps, donc la carte est difficilement réalisable et peut-être très long à programmer. &lt;br /&gt;
&lt;br /&gt;
Ainsi en cette fin de semaine, nous avons décider face à l'avancer du projet de laisser les nrf52810 de coté et de les remplacer par des modules sans fils plus simples d'utilisation et complets. Ainsi nous aurions plus de chance d'avoir une connexion sans fils entre les modules. Nous pourrions par exemples utiliser des Xbee, des modules Rf...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 9&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation: PS4 et 1er Test SPI sur atmega328p====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
Une carte PCB arduino fonctionnant, nous pouvons la programme pour simuler un module. Celle-ci a été designée afin de s'adapter au module que l'on souhaite. Il suffit de brancher le bouton, le joystick ou autre élèment de manette souhaité.&lt;br /&gt;
Cette semaine ci, nous avons alors configurer la partie communication SPI pour l'arduino.&lt;br /&gt;
&lt;br /&gt;
'''Que voulons-nous faire avec les atmegas ?''' &lt;br /&gt;
Les cartes électroniques atmega328p vont nous permettre de recevoir les requêtes SPI envoyées par la raspberry pi et d'y répondre. La Raspberry enverra un message, par exemple &amp;quot;1&amp;quot;, et l'Arduino lira alors l'état du module qui lui est connecté. Une fois l'état récupéré elle le renvoie à la raspberry pi.&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons programmé l'atmega afin qu'il soit en esclave, qu'il reçoive un de la RPi &amp;quot;1&amp;quot; et retourne une valeur sauvegardé &amp;quot;int envoi&amp;quot;. Nous avons également commencé les tests pour la lecture de l'état d'un bouton (d'après les tests réalisés les semaines précédentes).&lt;br /&gt;
&lt;br /&gt;
'''Code'''&lt;br /&gt;
Comme nous l'avons vu précedement lors de nos recherches (semaines 1 à 4) : &lt;br /&gt;
La communication SPI nécessite l'utilisation des pins: &lt;br /&gt;
&lt;br /&gt;
MOSI -&amp;gt; GPIO11 //PB3  //master OUT to the slave IN&lt;br /&gt;
MISO -&amp;gt; GPIO12 //PB4 //slave OUT to the master IN&lt;br /&gt;
SCLK -&amp;gt; GPIO13 //PB5 //serial clock&lt;br /&gt;
SS -&amp;gt; GPIO10   //PB2  //slave select&lt;br /&gt;
&lt;br /&gt;
Il faut également paramétrer l'atmega328p en Slave. On note que dans un premier temps, le programme sera codé avec l'arduino IDE (fichiers .ino). Une fois l'ensemble SPI RaspberryPi-Arduino fonctionnant, on remplacera ces codes par du langage C ou C++.&lt;br /&gt;
&lt;br /&gt;
Pour faire la connexion SPI sur l'atmega328p,  on utilise la librairie arduino SPI.h, on a alors directement les fonctions nécessaires intervenant sur les registres souhaités : SPCR (spi control register), SPSR (spi status register) et SPDR (spi data register). &lt;br /&gt;
 &lt;br /&gt;
  #include &amp;lt;SPI.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il est important d'initialise d'abord le setup et on active le port série pour pourvoir utiliser le moniteur série. (Cela servira à verifier la valeur envoyée par la RPi) &lt;br /&gt;
&lt;br /&gt;
 void setup (void)&lt;br /&gt;
 {&lt;br /&gt;
   Serial.begin (9600);  &lt;br /&gt;
   pinMode(MISO, OUTPUT);  //configuration en esclave *master in slave out*&lt;br /&gt;
   pinMode(buttonPin,INPUT);  //config pin bouton&lt;br /&gt;
   // turn on SPI in slave mode&lt;br /&gt;
   SPCR |= _BV(SPE);&lt;br /&gt;
   // preparation interruptions&lt;br /&gt;
   pos = 0;   // buffer empty&lt;br /&gt;
   process_it = false;&lt;br /&gt;
   // activation interruptions&lt;br /&gt;
   SPI.attachInterrupt();&lt;br /&gt;
 }  &lt;br /&gt;
 &lt;br /&gt;
On oublie pas de déclarer les interruptions afin de bien lire la requête reçue. &lt;br /&gt;
 &lt;br /&gt;
// SPI interrupt routine&lt;br /&gt;
ISR (SPI_STC_vect)&lt;br /&gt;
{&lt;br /&gt;
  byte c = SPDR;  // grab byte from SPI Data Register&lt;br /&gt;
  // add to buffer if room&lt;br /&gt;
  if (pos &amp;lt; sizeof buf)&lt;br /&gt;
    {&lt;br /&gt;
    buf [pos++] = c;&lt;br /&gt;
    // example: newline means time to process buffer&lt;br /&gt;
    if (c == '\n')&lt;br /&gt;
      process_it = true;&lt;br /&gt;
    }  // end of room available&lt;br /&gt;
}  // end of interrupt routine SPI_STC_vect&lt;br /&gt;
&lt;br /&gt;
Dans la loop main, on traite la requête et on utilise '''SPI.transfer(envoi);''' pour transferer à la RPi les données souhaitées. &lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons également commencé des programmes de test SPI pour la RPi. Il s'agit principalement de programmes de tests tout faits permettant de vérifier la connexion entre cette dernière et l'arduino. Par exemple, la RPI envoie &amp;quot;bonjour&amp;quot; et l'arduino lui retourne ce qu'elle reçoit, soit &amp;quot;bonjour&amp;quot;. Sans succés alors. &lt;br /&gt;
&lt;br /&gt;
====Electronique : Fritzing révision====&lt;br /&gt;
&lt;br /&gt;
Lors de la semaine, le modèle PCB de la carte arduino a été réalisé de nouveau sous fritzing avec les broches et connections manquantes. Nous avons également revu la configuration du bouton reset  et ajouté une led d'état de l'alimentation. Nous avons ainsi envoyé deux cartes identiques à la réalisation.&lt;br /&gt;
La carte déjà soudée lors des derniers jours fonctionnant, elle nous sert de prototype de programmation. Nous pouvons ainsi avancer à la fois sur la programmation des modules mais aussi sur leur réalisation. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 10&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation : PS4 et SPI sur RPi====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Raspberry PI et SPI'''&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, pour la partie Atmega328p-Modules, nous nous sommes concentrés sur la programmation de la communication SPI avec la raspberry pi. Cette semaine a permis une étude plus approfondit sur le fonctionnement pour la RPi. &lt;br /&gt;
&lt;br /&gt;
On rappelle, comme vu des semaines 1 à 4, pour la RPI3 (tout comme la RPi Zero W) utilise les broches : SCLK (23), MISO(21), MOSI (19) et SPI CS0 (24), SPI CS1 (26). &lt;br /&gt;
On la programme en Master. A l'aide des fichiers tests d'inspiration, on pourra directement programmer la RPi en C. Lors de la réalisation du code, il y a 3 étapes : l'initialisation/parametrage en SPI pour être maître, l'envoie de la requête puis la réception de données en retour. &lt;br /&gt;
&lt;br /&gt;
Programmant en C, il ne faut pas oublier les librairies suivantes :&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;getopt.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;sys/ioctl.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/types.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/spi/spidev.h&amp;gt;   //pour SPI&lt;br /&gt;
&lt;br /&gt;
On va déclarer des variables globales permettant le paramétrage :&lt;br /&gt;
&lt;br /&gt;
 static const char *device = &amp;quot;/dev/spidev0.0&amp;quot;;  //si on veut CS0 pour atteindre notre SS&lt;br /&gt;
 static uint8_t mode;       //mode est par défaut à 0&lt;br /&gt;
 static uint8_t bits = 8;    //bits par mot échangé&lt;br /&gt;
 static uint32_t speed = 500000;  &lt;br /&gt;
 static uint16_t delay;&lt;br /&gt;
&lt;br /&gt;
Dans notre main, on ouvre le port (la connexion) au device souhaité,  on vérifie les paramètres (registres, connexions...) puis exécute la fonction transfer(fd). transfer(fd) transmet la requête et s'occupe de la réception. &lt;br /&gt;
&lt;br /&gt;
 fd = open(device, O_RDWR);&lt;br /&gt;
 transfer(fd);&lt;br /&gt;
 close(fd);&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 11&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation: PS4, SSH et tests SPI (RPi3&amp;amp;Atemga328p)====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Raspberry PI, Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
Afin de facilité la programmation en utilisant Ethernet, nous avons installer et configuré la RPi pour l'utiliser en SSH depuis les ordinateurs de la E306. En effet, SSH permet de se connecter à distance sur une machine en utilisant un compte utilisateur de la dite machine. En mettant ssh, on pourra directement agir sur les fichiers de la raspberry depuis un terminal de notre PC. Pour cela, on a d'abord vérifier l'adresse IP de notre raspberry pi : 172.26.145.106 avec un écran mais on peut aussi utiliser les commandes ip a et ifconfig. Puis activer le ssh sur la raspberry pi. &lt;br /&gt;
On modifie alors le fichier config.txt mais également etc/network/interfaces pour configurer la bonne interface Ethernet sur la raspberry pi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: configSSH_raspi.png||left|300px|config ssh ethernet]]&lt;br /&gt;
&lt;br /&gt;
Il nous suffit alors de taper la commande : ssh pi@172.26.145.106  pour accéder à notre RPi. &lt;br /&gt;
&lt;br /&gt;
Nous avons continué à réaliser la communication SPI avec des tests entre une arduino UNO et la RPI3. Nous avons commencé par des tests simples inspirés des études de deux semaines précédentes et modulés selon notre utilité.  &lt;br /&gt;
Nous arrivons alors à lire l'état envoyer &amp;quot;bonjour&amp;quot; et recevoir &amp;quot;ça va&amp;quot; ou encore &amp;quot;1&amp;quot; et recevoir &amp;quot;3&amp;quot;. Il faut noter que le SPI échange des trames, la RPI reçoit alors des hexadécimaux. &lt;br /&gt;
Nous avons alors continué pour recevoir l'état du bouton ou du joystick lors de l'envoie de &amp;quot;1&amp;quot; sur l'Arduino328p. La semaine prochaine nous testerons ces même codes fonctionnels sur les cartes atmeg327p. &lt;br /&gt;
&lt;br /&gt;
A la fin de cette semaine, nous avons alors des codes Arduino-SPI (.ino) et des codes Raspberry-SPI (.c) permettant l'échange de données. Le but est maintenant de l'adapter aux cartes imprimées et de le rendre pleinement fonctionnel pour plusieurs cartes à la fois, puis ajouter une boucle de vérification en continue jusqu'à une deuxième requête de la RPi.&lt;br /&gt;
&lt;br /&gt;
====Electronique: réalisation au propres des PCB modules====&lt;br /&gt;
&lt;br /&gt;
Suite à une nouvelle erreur de réalisation cartes électronique, nous avons  refait et renvoyé à nouveau les cartes imprimées atmega328p.&lt;br /&gt;
Nous les souhaitons au propre pour une version finale. Une fois celle-ci imprimées nous pourrons en avoir 3 , un pour chaque module. Les cartes étaient bien imprimées en bottom mais lors du passage des traversants de bottom à top, le logiciel ne les a pas fait miroiter. Par manque d'attention nous avons alors envoyé les fichiers gerber pour des cartes ayant les composants du même coté que la couche de cuivre. &lt;br /&gt;
Les cartes électroniques actuelles sont alors correctes et fonctionnelles mais difficile à souder. Pour eviter les erreurs et continuer sur des prototypes de carte nous préférons attendre en nous concentrant sur la programmation PSI de la Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 12&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Raspberry PI, Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
-  réflexion: penser à faire boucler sur l'arduino une fois la requête reçu, ça veut dire que la manette est ON et donc vérifier continuellement les modules sur chaque atmega.&lt;br /&gt;
- SPI raspberry pi - arduino recuperation état du bouton avec les cartes modules  (/!\ récuperation à faire dans une variable) &lt;br /&gt;
&lt;br /&gt;
-SSH perso &lt;br /&gt;
adresse Rasppi: 192.168.137.10&lt;br /&gt;
&lt;br /&gt;
====Electronique: Finalisation soudure Modules====&lt;br /&gt;
&lt;br /&gt;
Soudure au propre et finale d'une carte atmega328p et donc envoie pour la réalisation de 2 autres cartes similaires et récupération de matériel&lt;br /&gt;
Soudure des 2 autres cartes, + tests sur les états = fonctionnelles.&lt;br /&gt;
On a donc bien 3 cartes pour les 3 modules de types différents (1 bouton, 1 joystick, 1 gachette)&lt;br /&gt;
PCB pour les 2 joysticks (qui serviront de thumbstick et gachette)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 13 et plus&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
====Electronique====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
(à mettre rapport + git + drive)&lt;br /&gt;
&lt;br /&gt;
=Datasheets=&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=55382</id>
		<title>IMA4 2017/2018 P35</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=55382"/>
				<updated>2018-05-05T18:19:59Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : /* Semaine 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Présentation générale: Manette modulable&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Description&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Tout le monde joue aux jeux vidéo cependant, les manettes ne sont pas adaptées aux personnes ayant un handicap pouvant toucher les bras ou les mains.&lt;br /&gt;
C’est le cas, de plusieurs patients dans les centres de soins et de rééducation.&lt;br /&gt;
&lt;br /&gt;
Pour ce projet IMA4, nous travaillerons avec le centre SSR (soin de suite et de réadaptation) Marc Sautelet de Villeneuve d’Ascq.&lt;br /&gt;
Un adolescent, patient de Marc Sautelet, est passionné par les jeux vidéo. En effet, ayant perdu la motricité d’une partie de son corps, il ne peut pas jouer à deux mains. Pour cela, il bloque la manette entre son épaule et son coude, usant de la mâchoire et des doigts pour contrôler les&lt;br /&gt;
joysticks et les boutons. Cet exercice peut s’avérer fatiguant et pénible.&lt;br /&gt;
&lt;br /&gt;
Ainsi, nous chercherons à concevoir une manette PS4 adaptée au handicap de l’adolescent. &lt;br /&gt;
Cette manette devra aussi être adaptée pour d’autres patients présentant également des handicaps moteurs. Ainsi nous prendrons pour cibles: tous les patients du centre voulant jouer; et non pas que les enfants et adolescents.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Membre du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Transley Gracias et Camille Saad&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Cible&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Patient présentant un handicap moteur&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Période du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
janvier 2018 - mai 2018&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Partenaire/Client&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Centre SSR Marc Sautelet à Villeneuve d'Ascq&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Objectifs&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ce projet a pour objectif de créer un prototype de manette qui puisse interagir avec la console PS4 et dont le paramétrage se fait à l’aide d’une application mobile et/ou web. Cette manette devra suivre les demandes du patient ainsi que des aides-soignantes du centre, dans la mesure du possible.&lt;br /&gt;
&lt;br /&gt;
Plus précisément, pour le premier prototype, nous mettrons en œuvre l'utilisation de quelques boutons spécifiques: &lt;br /&gt;
&lt;br /&gt;
* Un joystick (type L/R)&lt;br /&gt;
* Quelques boutons poussoirs (type Croix/Triangle/Carré/Rond/R1/L1/Start/...)&lt;br /&gt;
* Des boutons gâchettes progressives (type L2/R2).&lt;br /&gt;
&lt;br /&gt;
Le but serait donc dans un premier temps de rendre fonctionnel un bouton de chaque type, puis de les multiplier une fois cela fait. Tous ces boutons réunis constituent une manette fonctionnelle.Ainsi, la manette sera ajustable, c’est à dire qu’elle devra s’adapter aux différents handicaps moteurs possibles.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Analyse du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Positionnement par rapport à l'existant&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre prototype aura une présentation unique par rapport à l’existant. En effet, les concurrents et produits existants ciblent pour la majorité un seul handicap. Cela&lt;br /&gt;
engendre une solution fermée à beaucoup de patients. Notre projet propose une mobilité des mouvements et également un choix large dans la composition et le&lt;br /&gt;
design de notre manette.&lt;br /&gt;
Le patient n’est pas retreint à jouer à une seule main, à utiliser beaucoup de force...Il y a moins de technique dans la manipulation et on ne joue pas avec une&lt;br /&gt;
manette adaptée uniquement pour un droitier ou un gaucher. Cependant, cela nous limitera peut-être dans le choix possible des types de jeux. Tout comme les autres&lt;br /&gt;
manettes adapté, l’utilisateur nécessitera un peu d’entrainement.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du premier concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Jouer aux jeux vidéo à une main n’est pas une idée d’aujourd’hui. En 1990, Nintendo propose le Power Glove. Mais il tombe très rapidement aux oubliettes suite à des problèmes techniques.&lt;br /&gt;
&lt;br /&gt;
Un autre gant a fait son apparition quelques années plus tard. Celui-ci, plus technique, il faut office de manette Play Station: le Reality Quest Power Glove.Cette idée de manette-gant, permet de jouer à la PS avec une seule main, elle a était conçue et présentée pour les E3, un salon d’exposition de gaming.Le gant est conçu pour contrôler l’équivalent des 14 boutons et 2 joysticks à l’aide d’une seule main. La « manette » est fixée dans la pomme de la main. L’utilisateur contrôle les mouvements verticaux et horizontaux en pivotant le poignet, et utilisent les 4 boutons d’action principaux et L1/R1 avec les doigts. Les autres boutons sont accessibles par un seul bouton rond contrôlé par le pouce.&lt;br /&gt;
La manette est adaptée pour beaucoup de jeux vidéo, dont les plus simples sont les jeux de voitures et de combats (arcade).&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec ce gant&lt;br /&gt;
*Design obligatoirement droitier&lt;br /&gt;
*Les boutons de contrôle sont peu sensibles et peuvent nécessiter de la force&lt;br /&gt;
*Design compliqué et nécessitant beaucoup d’entrainement.&lt;br /&gt;
&lt;br /&gt;
;Lien : https://www.youtube.com/watch?v=qV0SxSJDCYg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du second concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ben Heck, de son vrai nom Benjamin J.Heckendorn, est un concepteur de mods de consoles (mods pour modification, soit « manettes modifiées ») et une star&lt;br /&gt;
du net grâce à ses vidéos tutoriels.Il propose alors énormément de produits adaptés ou dérivés en guise de manettes.&lt;br /&gt;
Parmi les mods qu’il a réalisé, il a modifié une manette de PS4 afin de la rendre accessible à une personne ne pouvant jouer qu’à une main. Pour cela, il a déplacé les boutons en respectant l’ergonomie de la main valide et modifie les connexions. Il peut lui arriver de rajouter des boutons pour en remplacer un autre. Il réalise également le même système avec la Xbox. Sur la photo ci-dessous, il a adapté la manette pour un droitier.&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec cette ma&lt;br /&gt;
*Design obligatoirement droitier ou gaucher, une modification = une manette= une personne&lt;br /&gt;
*Besoin obligé du pouce et de l’index, même si avantage : 3 doigts nécessaire.&lt;br /&gt;
&lt;br /&gt;
;Lien :: https://www.youtube.com/watch?v=LieHIscadjk&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Scénario d'usage du produit ou du concept envisagé&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
La technologie est ,aujourd’hui, omniprésente dans notre vie. Les consoles de jeux ont envahies les maisons avec plus de 7 personnes sur 10 jouant aux jeux vidéos sur consoles en France (chiffre de l’Express). 0,18% des français sont handicapés cela représente 12 millions de français. Dans ce chiffre, 13,4% des personnes ont un handicap moteur. En 2017, les grands groupes comme Sony ou Microsoft avec respectivement PlayStation et Xbox ne permettent pas à tout le monde de jouer avec une manette. Les manettes sont prévues pour des personnes ayant leurs membres valides, plus précisément les mains et les bras.&lt;br /&gt;
&lt;br /&gt;
Après un accident de voiture, un jeune garçon a perdu la motricité d’un côté du corps. Passionné de jeux vidéo, il se retrouve avec des difficultés à jouer sur sa console PS4. Ingénieux, il utilise la manette en la coinçant entre son épaule et le creux du cou. Usant de la mâchoire et de sa main valide pour contrôler les joysticks et les boutons. L'exercice étant inconfortable et fatiguant il eu l’idée de proposer à des futurs ingénieurs de lui proposer une manette adaptée à son handicap. &lt;br /&gt;
&lt;br /&gt;
Les deux pré-ingénieurs ,avec leur tuteur, ont une idée révolutionnaire : La manette modulable ! Elle permettrait au jeune garçon, ainsi que d’autres joueurs, de pouvoir continuer de s’amuser ou même de commencer à jouer au jeux sur console. &lt;br /&gt;
Cette manette aidera fortement dans les centre de rééducation pour faire passer le temps et donner du plaisir à des personnes qui ne peuvent plus s’amuser avec leur console traditionnelle. Elle pourra aussi ouvrir de nouvelles possibilités pour certaines personnes qui n’auraient jamais essayé jusqu'à présent.   &lt;br /&gt;
Comme son nom l'indique, elle sera modulaire et s'adaptera à différents handicaps. Accompagnée de son application d’initialisation, elle sera accessible aussi bien aux enfants, patients, parents et aides soignantes.&lt;br /&gt;
&lt;br /&gt;
Quelques mois plus tard...Le jeune patient fan de Need For Speed, peut maintenant piloter sa voiture comme un vrai professionnel grâce à l'un des joysticks qu'il utilisera avec sa main valide et il pourra accélérer à des vitesses folles à l'aide de boutons poussoirs au niveau de son pied valide et gagner la partie. Son ami venu lui rendre visite, pourra en lieu et place des aides soignantes configurer à l'aide de la tablette (portable) la manette du patient. &lt;br /&gt;
Si le patient change de jeu pour Tekken et que la configuration des modules ne lui convient plus, il peut interchanger les éléments de la manette selon son envie et son confort. Ainsi il peut faire sauter son personnage, il utilisera un module bouton supplémentaire, qu'il actionnera avec le poing.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Fonctionnement&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Suite à une analyse fonctionnelle et à la formulation de notre projet, nous avons pu définir le fonctionnement de notre système. Notre produit, la manette, doit être accessible d’après nos objectifs à différents types de handicaps moteurs. Ainsi, l’idéal serait de concevoir une manette modulable afin qu’elle puisse s’adapter à toutes les situations. Ce n’est plus au patient de s’adapter à la manette mais à la manette de s’adapter au patient.&lt;br /&gt;
Cela signifie que la manette sera, dans la limite du possible et de la sensibilité du corps du patient, composée de plusieurs parties dites « modules » comportant un ou plusieurs actionneurs (boutons, joysticks, gâchettes...). Ces modules seront déplaçables afin d’être utilisé avec différents membres du corps : un doigt, une main,&lt;br /&gt;
une jambe ou même un pied. Il suffira de les connectés entre eux suivant l’organisation souhaitée, le Gameplay du jeu ou en fonction du handicap. Le tout sera relié à une application.&lt;br /&gt;
L’application sera alors mise en place pour connecter les différentes parties du point de vue software pour prérégler la manette en fonction du patient. Il pourra alors choisir les boutons en fonction du jeu, de ses mouvements mais aussi choisir la sensibilité.&lt;br /&gt;
&lt;br /&gt;
L’application et les modules devront être intuitifs et faciles d’utilisation. De cette manière des utilisateurs non avertis dans le domaine informatique ou jeunes pourront eux-mêmes gérer les connexions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Réponse à la question difficile&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
'''Question : Comment interconnecter les différents modules de la manette ?'''&lt;br /&gt;
&lt;br /&gt;
Il nous faut pour ce projet interconnecter les modules modélisant la manette qui seront connectés à la consoles PS4 via une Raspberry Pi 3.&lt;br /&gt;
Le choix de la Raspberry Pi 3 nous permet d'utiliser son module Bluetooth pour communiquer avec la PS4, ce choix est plus adaptée au projet que du filaire.&lt;br /&gt;
Concernant l'interconnexion des modules, nous travaillerons en deux étapes &amp;quot;preuves concept&amp;quot; : filaire et sans fils (Bluetooth).&lt;br /&gt;
&lt;br /&gt;
'''Objectif 1 : Preuve concept filaire'''&lt;br /&gt;
&lt;br /&gt;
Dans cette première partie de projet, nous souhaitons avoir une 1ère preuve de prototype rapidement. Nous nous concentrerons alors sur la communication entre la RPi3 et la PS4 ainsi que sur la conception des modules. Pour les modules, nous réaliserons des cartes électronique pour chaque module avec un micro-contrôleur. La communication filaire nous permettra d'interconnecter les modules à la RPi3 avec un bus SPI.&lt;br /&gt;
&lt;br /&gt;
'''Objectif 2: preuve concept sans fils'''&lt;br /&gt;
&lt;br /&gt;
Une deuxième étape du projet est la réalisation de la solution idéale sans fils. Celle-ci pourra commencer à être développée petit à petit en parallèle avec l'objectif 1. Le but ici, est d'interconnecter les modules en Bluetooth. Nous avons choisi le Bluetooth pour garder une connexion commune sur toute la chaîne. &lt;br /&gt;
Nous rajouterons alors un module bluetooth à chaque module de la manette. &lt;br /&gt;
&lt;br /&gt;
'''Objectif 3: possibilité d'adapter les boutons (capuchon en 3D)'''&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Préparation du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Cahier des charges&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
''Chef de projet:'' Alexandre Boé  &amp;lt;br&amp;gt;&lt;br /&gt;
''Responsables:'' Xavier Redon, Thomas Vantroys &amp;lt;br&amp;gt;&lt;br /&gt;
''Partenariat:'' Marc Sautelet (non etablie) &amp;lt;br&amp;gt;&lt;br /&gt;
''Elèves-ingénieurs:'' Camille Saâd, Transley Gracias &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Sujet :''' Manette modulable pour personne à déficience moteur compatible PlayStation 4 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objectifs principal (1er POC) : ===&lt;br /&gt;
Faire transmettre des informations issus des actionneurs (ex:boutons poussoires) via des arduinos jusqu’à la Raspberry Pi 3 en SPI.&amp;lt;br&amp;gt;&lt;br /&gt;
Envoyer les données reçues vers la PS4 en USB  &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objectifs secondaire (2e POC):===&lt;br /&gt;
Créer des modules avec un microcontrôleur et une puce bluetooth pour permettre une meilleurs flexibilité (c-àd pouvoirs avoir une meilleure ergonomie et une connexion sans fil) &amp;lt;br&amp;gt;&lt;br /&gt;
Connecter la Raspberry Pi 3 en Bluetooth à la PS4 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier: beteacorne.jpg||middle|600px|Bete a corne manette]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Choix techniques : matériel et logiciel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Liste de matériel :===&lt;br /&gt;
&lt;br /&gt;
'''Modules boutons/joysticks/gachettes'''&lt;br /&gt;
&lt;br /&gt;
3  Push buttons :&amp;lt;br&amp;gt;&lt;br /&gt;
- O X Y Carré R3 L3 &amp;lt;br&amp;gt;&lt;br /&gt;
- Guide PS &amp;lt;br&amp;gt;&lt;br /&gt;
- start/back &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 0,45€/unité TTC [https://www.gotronic.fr/art-bp-miniature-krs1273-16976.htm] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1  Thumbstick original: &amp;lt;br&amp;gt;&lt;br /&gt;
Joystick analogique 4 directions --&amp;gt; 4,25€/unité TTC [https://www.gotronic.fr/art-joystick-analogique-4-directions-19063.htm] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1 buttons trigger L1 L2 =&amp;gt; 1x Thumbstick original''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Cartes Atmega328p /connexion spi/'''&lt;br /&gt;
&lt;br /&gt;
3   Arduino UNO &amp;lt;br&amp;gt;&lt;br /&gt;
1   Arduino UNO atmega328p retirable &amp;lt;br&amp;gt;&lt;br /&gt;
4   capacite 22pF traversantes &amp;lt;br&amp;gt;&lt;br /&gt;
2   resistances 10 kOhm traversantes (à récupérer) &amp;lt;br&amp;gt;&lt;br /&gt;
2   oscillateurs quartz 16MHz traversante &amp;lt;br&amp;gt;&lt;br /&gt;
2   atmega328p-pu et support &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cartes module bluetooth nrf52810 '''&lt;br /&gt;
&lt;br /&gt;
6   capacités 100nF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
6   capacités 12pF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 4,7pF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 1µF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 100pF=0,1nF 0603 (à récupérer) &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 0,8pF 0603 (a acheter, commande en cours) &amp;lt;br&amp;gt;&lt;br /&gt;
2   inductance 3,9nH 0603 (a acheter, commande en cours) &amp;lt;br&amp;gt;&lt;br /&gt;
2   oscillateur quartz 32 MHz &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''' Connexions et autres '''&lt;br /&gt;
&lt;br /&gt;
1 Led RGB neopixel [https://www.adafruit.com/product/1734] &amp;lt;br&amp;gt;&lt;br /&gt;
1 Raspberry Pi 3 &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; ~36,23€/unité TTC [https://fr.rs-online.com/web/p/processor-microcontroller-development-kits/8968660/?src=raspberrypi] &amp;lt;br&amp;gt;&lt;br /&gt;
1 Raspberry Pi Zero W (commandée) [https://www.raspberrypi.org/products/raspberry-pi-zero-w/] &amp;lt;br&amp;gt;&lt;br /&gt;
6 Alimentations 5V ou 3,3V &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
par exemple, 12 piles de type CR2016 3V rechargeables ou 24 piles AAA 1,5 V rechargeables  &lt;br /&gt;
5 modules Bluetooth nrf de Nordic : nRF52810-QFAA-R &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 3,17€/unité + frais expédition  [https://www.mouser.fr/productdetail/nordic-semiconductor/nrf52810-qfaa-r?qs=sGAEpiMZZMve4%2FbfQkoj%252bG%2FosjLoe2oghFQwQllMrQ4%3D]&lt;br /&gt;
5 Lignes broches mâles &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logiciels:===&lt;br /&gt;
&lt;br /&gt;
- IDE arduino&lt;br /&gt;
- Altium&lt;br /&gt;
- FreeCAD ou Inkscape&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Liste des tâches à effectuer&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 1 : Gestion du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Définition des cahiers des charges fonctionnel et technique, choix d'orientation...&lt;br /&gt;
* Recherche techniques sur les différentes connexions possibles entre les modules, la RPi 3 et la console PS4&lt;br /&gt;
#Recherche connexion SPI entre les modules et la RPi3&lt;br /&gt;
# Recherche connexion bluetooth entre la RPi3 et la PS4&lt;br /&gt;
# Recherche connexion bluetooth pour les modules&lt;br /&gt;
# Recherche carte avec montage Atmega328P-PU et anticipation module bluetooth&lt;br /&gt;
* Détermination du matériel nécessaire&lt;br /&gt;
* Réflexion sur l'application&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 2: Réalisation du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Partie 1: Preuve concept manette en filaire'''&lt;br /&gt;
&lt;br /&gt;
* Conception de cartes électroniques pour 2 modules (/!\ prévoir modules bluetooth)&lt;br /&gt;
* Réalisation connexion SPI avec 2 modules : programmation des Atmega328p en liaison série. &lt;br /&gt;
* Si tests concluant, ajouter des modules jusqu'à en avoir 5 (1 pour chaque type de boutons) &lt;br /&gt;
* Connexion bluetooth entre la PS4 et la RPi3&lt;br /&gt;
* Réalisation du support des modules avec fixations possibles (imprimante 3D)&lt;br /&gt;
&lt;br /&gt;
'''Partie 2: Preuve concept manette en bluetooth'''&lt;br /&gt;
&lt;br /&gt;
* Ajout des modules bluetooth aux cartes électroniques&lt;br /&gt;
* Connexion bluetooth entre les modules&lt;br /&gt;
&lt;br /&gt;
'''Partie 3: Application Android : paramétrage de la manette'''&lt;br /&gt;
&lt;br /&gt;
* Créer une application sur tablette ou smartphone (Android) afin de configurer la manette aux besoins (inter-connexion des modules et console)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Calendrier prévisionnel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Date'''&amp;lt;/u&amp;gt;&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Tache à réaliser''' &amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
17/01/18-24/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Faire des recherches sur les différentes interconnexions du système : Bluetooth, RPi-Atmega328 (SPI), RPi-PS4&lt;br /&gt;
Continuer liste des taches, matériel, Début recherches + réflexion fixation support des modules&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Recherche technique connexion PS4-RPi3 et connexion SPI RPi3-Module + code&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18-07/03/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Réalisation 1er prototype (+ début prototype 2)&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
07/03/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Seance 7 :  Test prototype filaire&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
07/03/18-09/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Réalisation 2eme prototype + application Android&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
09/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Seance 14 :  Test prototype Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
14/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Video projet&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
15/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Finalisation projet et Rapport&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
16/05/18-17/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Soutenances Projet&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Réalisation du Projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Feuille d'heures &amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Voici le tableau d'heures du binôme:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Heures S11 !! Heures S12 !! Heures S13et+ !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 10&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 20min&lt;br /&gt;
|&lt;br /&gt;
| 15h20&lt;br /&gt;
|-&lt;br /&gt;
| Cherches techniques &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 18&lt;br /&gt;
|-&lt;br /&gt;
| Rédaction du wiki et rapport de projet&lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 30min&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| 30min&lt;br /&gt;
| 30min&lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
| 10h30&lt;br /&gt;
|-&lt;br /&gt;
| Programmation&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 3&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 7&lt;br /&gt;
| 8&lt;br /&gt;
| 6&lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
| 43&lt;br /&gt;
|-&lt;br /&gt;
| Cartes électroniques&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 6&lt;br /&gt;
| 8&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| 31&lt;br /&gt;
|-&lt;br /&gt;
| Application&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| Total Semaine&lt;br /&gt;
| 10&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 7&lt;br /&gt;
| 10h30&lt;br /&gt;
| 13&lt;br /&gt;
| 9&lt;br /&gt;
| 12&lt;br /&gt;
| 9h30&lt;br /&gt;
| 10h30&lt;br /&gt;
| 9&lt;br /&gt;
| 9h20&lt;br /&gt;
| &lt;br /&gt;
| '''117h50'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Prologue&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Avant la réalisation et conception d'un projet, il est important d'analyser celui-ci. Nous avons allons consacré le prologue à l'analyse fonctionnelle de la manette. Nous avons également eu une réflexion sur l'analyse technique, cela nous a permis de réaliser une liste de matériel. Il est important de définir les objectifs ainsi que les besoins afin de ne rien oublier. (Voir ci-dessus Analyse projet) &lt;br /&gt;
Nous avons également organisé notre travail, pour le partage de documents de recherches et la rédaction de compte-rendu final nous avons réalisé un google drive. Par la suite, nous créerons un projet Git. &lt;br /&gt;
&lt;br /&gt;
Durant ce temps, nous avons décidé de réaliser 5 modules. Les modules sont les différents boutons de la manettes qui nous pourrons placer selon nos choix (boutons modulaires) pour notre prototype projet pour chaque type des boutons d'une manette PS4. Ces modules devrons être connectés à la console et interconnectés. Le tout sera lié à une application Android. Suite à quelques recherches et nos analyses, nous avons décidé les points suivants :&lt;br /&gt;
&lt;br /&gt;
- On commencera avec 2 modules et on les multipliera par la suite. &lt;br /&gt;
- Les premiers tests sont réalisés avec des boutons petits pour assurer leur caractéristique &amp;quot;modulaires&amp;quot;, par la suite nous pourrons ajouter des capuchons de taille plus importante (imprimante 3D ou achat)&lt;br /&gt;
- Conception modules : réalisation de carte avec un microcontrôleur atmega328 programmable pour chaque module (anticiper le module Bluetooth) &lt;br /&gt;
- Projet en 2 parties : prototype filaire et prototype Bluetooth&lt;br /&gt;
# Prototype filaire : connexions entre les modules et la RPi3 en SPI, connexion Rpi3-PS4 en Bluetooth, avec l'application en filaire à la RPi3&lt;br /&gt;
# Prototype Bluetooth: connexion Bluetooth entre modules-RPi3-PS4-apllication&lt;br /&gt;
&lt;br /&gt;
[[Fichier: structuremanette.png||center|400px|Concept manette modulable]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 1&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous nous sommes concentrés les recherches afin de définir clairement le cahier des charges technique. Il s'agit des réalisations à mettre en œuvre pour les inter-connexions des éléments de la manette.&lt;br /&gt;
Ainsi, nous avons fait des recherches sur :&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI entre les modules (Atmega328p) et la RPi3===&lt;br /&gt;
&lt;br /&gt;
SPI: Serial périphérique interface BUS&lt;br /&gt;
&lt;br /&gt;
[[Fichier: yWGmW.png||right|200px|Concept manette modulable]]&lt;br /&gt;
Comme indiqué sur l'image ci-dessus, la Raspberry pi 3  peut communiquer en SPI avec ses broches CS0 (24), CS1 (26), SCLK (23), MISO (21), MOSI (19). Celles-ci permettent de communiquer avec un ou plusieurs esclaves (dans notre cas, des Atmega328p) en reliant directement les broches concernées de la RPi3 à celles des composants esclaves.&lt;br /&gt;
Chaque broche CS0 (24) ou CS1 (26) ne peut être connectée qu'à l'entrée SS (aussi appelé CS) d'un seul esclave.&lt;br /&gt;
C'est a dire que chaque CS est lié à un esclave afin de choisir avec lequel la communication est établie à un moment donné, et les MISO sont reliées entre elles en cascade, de même pour les SCLK et les MOSI. On peut noter que le maître impose la fréquence d’horloge et sélectionne l’esclave auquel les données sont envoyées.  8 MHz est le plus rapide supportable a 3,3V&lt;br /&gt;
&lt;br /&gt;
[[Fichier: fonctionnementSPI.png||right|200px|Connexion SPI multi-esclaves]]&lt;br /&gt;
&lt;br /&gt;
Voici un schéma du fonctionnement souhaité : &lt;br /&gt;
&lt;br /&gt;
Comme nous souhaitons avoir 5 modules environ il nous faudra rajouter un composant en plus afin d'augmenter les possibilités de sélection, par exemple des démultiplexeurs.&lt;br /&gt;
Dans un premier temps nous essaierons avec 2 esclaves, puis on augmentera le nombre. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Connexion Bluetooth PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Les recherches portent également sur la connexion entre la manette PS4 et la console. Elles concernent le protocole de communication via Bluetooth&lt;br /&gt;
&lt;br /&gt;
Caracteristique pour la PS4:  Bluetooth®v4.0, Qualcomm Atheros AR3002 Buetooth LE: 2,4-2,5 GHz  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caracteristique de la connexion : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Vitesse de transmission &amp;gt;&amp;gt; 3 Mbit/s   8N1 &lt;br /&gt;
*Relevé tous les 1.3 millisecond (peut-être) &lt;br /&gt;
*Chaque manette à une adresse unique BD_ADDR qui correspond à l’adresse MAC de la carte Réseau&lt;br /&gt;
*Protocole de détection est le SDP basé sur une emission reception PDU&lt;br /&gt;
*L’Attribut ID est representer en TLV Type Length Value &lt;br /&gt;
*Communication HCI ACL Data Packet &lt;br /&gt;
&lt;br /&gt;
===Rélisation des cartes électroniques===&lt;br /&gt;
&lt;br /&gt;
matériel nécessaire pour un PCB : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*breadboard&lt;br /&gt;
*câbles&lt;br /&gt;
*1 x 10k Ohm résistance&lt;br /&gt;
*Quartz 16Mhz clock crystal&lt;br /&gt;
*2 x 22 pF capaciteurs&lt;br /&gt;
*Atmega328P-PU&lt;br /&gt;
&lt;br /&gt;
Ressources: &lt;br /&gt;
[[https://www.arduino.cc/en/Main/Standalone]]&lt;br /&gt;
[[http://www.eprojectszone.com/atmega-328-pu-standalone/]]&lt;br /&gt;
[[https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 2&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la semaine deux et durant la séance, nous avons continué et approfondie nos recherches sur le projet. Nous avons pu ainsi affiner nos taches de réalisation et donc notre cahier des charges.&lt;br /&gt;
&lt;br /&gt;
===Connexion aux modules: SPI et Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Green&amp;quot;&amp;gt; CORRIGER&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
voir https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018#Configuration_du_syst.C3.A8me_embarqu.C3.A9&lt;br /&gt;
&lt;br /&gt;
(sudo apt-get install pi-bluetooth)&lt;br /&gt;
&lt;br /&gt;
''connexion sur la raspberry par ssh:''&lt;br /&gt;
 su&lt;br /&gt;
 update-rc.d ssh enable&lt;br /&gt;
 invoke-rc.d ssh start &lt;br /&gt;
 ssh pi@172.26.79.1XX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''bluetooth''&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
 agent on&lt;br /&gt;
 default-agent&lt;br /&gt;
 scan on&lt;br /&gt;
 pair [device Bluetooth address]  (exemple: pair XX:XX:XX:XX:XX:XX )&lt;br /&gt;
&lt;br /&gt;
''NOUVELLE REFLEXION : Connexion SPI entre les modules (Atmega328p) et la RPi3 --&amp;gt; MODULES BLUETOOTH''&lt;br /&gt;
&lt;br /&gt;
Si multi-esclaves= plusieurs modules : &lt;br /&gt;
Il faut ajouter des sélections pour les SPI → démultiplexeurs OU ne pas utiliser les CS0 et CS1, et plutôt des pins entrée/sortie de la RPi3 lié au SS comme ça on choisit direct le module esclave voulu.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' Nous avons étudié à nouveau la datasheet de notre module bluetooth nrf de Nordik. Le module bluetooth comporte  déjà un microprocesseur !&lt;br /&gt;
Un module plutôt peut donc jouer le rôle de notre atmega328p. Il n'y a alors pas besoin de réaliser des cartes électroniques de type arduino standalone. Nos PCB regrouperont alors uniquement l'alimentation, un actionneur (bouton, joystick), le module bluetooth et les broches de connexion si besoin... &lt;br /&gt;
&lt;br /&gt;
Cette séance nous a alors permise de revoir entièrement le matériel nécessaire. Notre liste de matériel nous semble alors plus réfléchie et limitée au nécessaire. &lt;br /&gt;
&lt;br /&gt;
===Connexion Bluetooth PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Suite à nos recherches de la semaine précédente, nous avons sélectionné deux sites bien renseignés : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;SITES&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ils nous ont permis de comprendre la communication entre la manette et la console. En effet, ils nous expliquent les échanges de trames Bluetooth. &lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;EXPLICATIONS 1 exemple &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 3 : Début premier prototype&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
*'''Connexion SPI RPi3-Arduino'''&lt;br /&gt;
&lt;br /&gt;
Comme vu durant les semaines précédentes, nous souhaitons réaliser une connexion Multi-esclaves en SPI entre la Raspberry pi et plusieurs modules.&lt;br /&gt;
Cette semaine nous avons vu que la réalisation de notre premier prototype doit aller vite. Il ne nous est pas nécessaire d’attendre les modules bluetooth si il nous faut dans cette partie uniquement utiliser son microprocesseur. Ainsi pour chaque module nous utilisons une arduino UNO. Nous réaliserons les programmes en C afin de pouvoir les réutiliser avec les modules bluetooth par la suite. &lt;br /&gt;
Une fois la connexion réalisable nous adapterons les programmes aux modules bluetooth Nordik. En effet, ceux-ci comporte déjà un microprocesseur, le module peut jouer le rôle de notre atmega328p. Il n'y a aurait alors pas besoin de réaliser des cartes électroniques arduino standalone sur PCB, mais directement des cartes électronique avec le module et le module voulu (bouton, joystick...) et l'alimentation. &lt;br /&gt;
Durant la séance nous avons alors revu la liste de matériel nécessaire. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: prototype1.jpeg||center|600px|connexion filaire prototype 1 filaire arduino]]&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous avons recherches des exemples de codes et de librairies pour Arduino SPI et RaspberryPI SPI. &lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé le programme de la connexion SPI pour l'arduino et récupéré les bibliothéques SPI.h avec SPI.c. Nous nous sommes alors concentrer à les comprendre, pour pouvoir l'utiliser. &lt;br /&gt;
&lt;br /&gt;
*'''Réalisation du projet Git'''&lt;br /&gt;
&lt;br /&gt;
Création du projet IMA4_Projet35_ManetteModulable sur Git et partage de celui-ci. &lt;br /&gt;
Les premiers dossier crées durant la séance :&lt;br /&gt;
-Arduino (connexion SPI arduino) : ProtoSpi.c + dossier librairie SPI + Makefile&lt;br /&gt;
-RPI (dossier codes pour Rpi) &lt;br /&gt;
-Readme.md&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 4&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Pour le prototype 1 FILAIRE nous réaliserons les étapes suivantes :&lt;br /&gt;
&lt;br /&gt;
#Réalisation du programme SPI pour arduino&lt;br /&gt;
#Réalisation du programme SPI pour la RPi&lt;br /&gt;
#Connexion USB avec la PS4 ou ordinateur&lt;br /&gt;
#Réalisation de cartes électroniques atmega328p-pu standalone (remplacer les Arduinos) &lt;br /&gt;
#Remplacer les &amp;quot;PCB arduino&amp;quot; par le module bluetooth et adapter la connexion&lt;br /&gt;
#Conception 3D de la délimitation 1 axe pour le joystick &amp;quot;gâchette&amp;quot;&lt;br /&gt;
#Réalisation de l'application Androïde.&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées nous auront alors une preuve de concept filaire et nous pourrons alors passer à une connexion bluetooth. &lt;br /&gt;
Le passage à la connexion bluetooth sera le deuxième prototype et le cas idéal de la réalisation de la manette modulable. &lt;br /&gt;
&lt;br /&gt;
===Mise à jour Matériel===&lt;br /&gt;
&lt;br /&gt;
- Modéliser les boutons gâchettes L1/2 R1/2 de la manette PS4 (boutons sensibles à la pression) --&amp;gt; un joystick dont nous bloquerons un axe (imprimante 3D)&lt;br /&gt;
- Remplacer la RPi 3 par une Rpi zero W qui nous permettrait de réaliser plus facilement une connexion USB tout en gardant l'avantage du bluetooth. &lt;br /&gt;
- Choix de l’alimentation pour les 5 modules Bluetooth: nécessitent 3V --&amp;gt;  utiliser des piles rechargeables 1,2V AAA plutôt que piles rondes 3V.&lt;br /&gt;
&lt;br /&gt;
Nous avons également besoin du matériel cité en semaine 1 pour réaliser des cartes électroniques atmega328p-pu standalone. ( nous revenons alors sur les décisions de la semaine 3)&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI RPi3-Arduino===&lt;br /&gt;
 &lt;br /&gt;
Montage Raspberrypi et 1 arduino en PSI + 1 bouton + 1 led.&lt;br /&gt;
Voici le choix des branchements :&lt;br /&gt;
&lt;br /&gt;
 MASTER = RPi   &lt;br /&gt;
 SLAVE= Arduino&lt;br /&gt;
&lt;br /&gt;
'''SPI sur Arduino:'''&lt;br /&gt;
 MOSI -&amp;gt; GPIO11 //PB3  //master OUT to the slave IN&lt;br /&gt;
 MISO -&amp;gt; GPIO12 //PB4 //slave OUT to the master IN&lt;br /&gt;
 SCLK -&amp;gt; GPIO13 //PB5 //serial clock&lt;br /&gt;
 SS -&amp;gt; GPIO10   //PB2  //slave select&lt;br /&gt;
'''Led, bouton et autre...'''&lt;br /&gt;
 LED --&amp;gt; GPIO6  //PD6&lt;br /&gt;
 GND&lt;br /&gt;
 +5V (if required)&lt;br /&gt;
'''SPI sur la Raspberry Pi'''&lt;br /&gt;
 SPIO MOSI -&amp;gt; PIN19 &lt;br /&gt;
 SPIO MISO -&amp;gt; PIN21&lt;br /&gt;
 SCLK -&amp;gt; PIN23&lt;br /&gt;
 SPIO CS0 -&amp;gt; PIN24&lt;br /&gt;
&lt;br /&gt;
Continuation du code pour faire clignoter Led branchée à une arduino depuis la Rpi, en connexion SPI.&lt;br /&gt;
&lt;br /&gt;
===Connexion USB PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous avons regardé comment utiliser le port série sur la RPi3, soit utiliser les UART. &lt;br /&gt;
&lt;br /&gt;
Nous avons réaliser qu'il n'était pas aussi simple d'utiliser le port serie USB de la Raspberry Pi 3, en effet le SoC est un BCM2837 . &lt;br /&gt;
De plus nous ne pouvons pas utiliser le même port pour l'alimentation et la connexion. &lt;br /&gt;
&lt;br /&gt;
Une des solutions à cette difficulté serait d'utiliser une RPi ZERO W à défaut d'une RPi 3. On pourrait alors avoir un port d'alimentation avec connexion USB mais également retrouver la connexion bluetooth dont nous avons besoin.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 5&amp;lt;/span&amp;gt;==&lt;br /&gt;
 &lt;br /&gt;
===Programmation: Réflexion définitives prototypes filaire ===&lt;br /&gt;
&lt;br /&gt;
Durant la semaine 5, nous avons continué la réalisation du prototype filaire par l'avancé du code SPI ainsi que les recherches concernant le protocole PS4. &lt;br /&gt;
&lt;br /&gt;
Pour réaliser la connexion entre la PS4 et les différents modules, nous avons vu la semaine dernière que nous utiliserons une RPi zero W (que nous avons commandé). Celle-ci nous permet d'utiliser le bluetooth mais elle nous permet également de réaliser un réseau local sans fil. Ce qui peut être pratique dans la mesure où notre projet est modulable. &lt;br /&gt;
En attendant la réception de la commande, nous nous sommes penché sur les programmes et la configuration nécessaire à l'utilisation de la RPi zero W.&lt;br /&gt;
&lt;br /&gt;
===Electronique===&lt;br /&gt;
&lt;br /&gt;
[[Fichier: bouton_c1.jpg|100px|thumb|left|PCB bouton]]&lt;br /&gt;
[[Fichier: arduinobb.jpg|200px|thumb|right|atmega328p-pu branchement test]]&lt;br /&gt;
&lt;br /&gt;
Du coté électronique, nous avons réalisé sur fritzing certaines cartes électroniques. Les Arduino Uno servant actuellement de test, seront remplacées par des PCB atmega328p-pu standalone avec des broches permettant les branchements nécessaires SPI ou encore aux modules &amp;quot;boutons/joystick&amp;quot;. Pour les boutons, nous avons également réalisé un pcb afin de faciliter les branchements.  &lt;br /&gt;
&lt;br /&gt;
Il nous faut alors également une 3eme carte qui nous sera nécessaire pour la réalisation du prototype sans fil. Dans notre liste de matériel, nous avons des composants nrf52810 bluetooth, ceci doivent être soudé avec les capacités de protection mais également des broches de communication. Nous avons alors commencé cette carte électronique sur Altium avec le fichier  projet PCB du distributeur à modifier.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: Arduino_c1.jpg|100px|thumb|center|PCB atmega328p-pu]]&lt;br /&gt;
&lt;br /&gt;
=== Construction 3D ===&lt;br /&gt;
&lt;br /&gt;
Enfin, nous avons commencé à réaliser des boîtiers 3D pour certains modules. Par exemple, comme nous l'avions vu précédemment, un des joysticks servira de bouton-gâchette en utilisant un seul de ses axes. Il nous faut alors réaliser un boitier qui bloque l'un des axes, mais également une tige qui nous permettra de pousser le joystick de manière simplifiée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 6&amp;lt;/span&amp;gt;==&lt;br /&gt;
 &lt;br /&gt;
===Programmation: configuration RPi Zero W ===&lt;br /&gt;
&lt;br /&gt;
Ayant reçu la Raspberry Pi zero W en début de semaine, nous nous sommes concentrés sur la programmation et la configuration de celle-ci. &lt;br /&gt;
&lt;br /&gt;
===Electronique: PCB nrf52810===&lt;br /&gt;
&lt;br /&gt;
Les cartes réalisées en semaine 5 sont validées et en attente de réalisation. &lt;br /&gt;
&lt;br /&gt;
Cette semaine a permis la réalisation et la finalisation de la carte électronique nrf52810. Il nous a fallu recommencé cette carte deux fois. En effet, une fois finie sur Altium nous avons réalisé que les empreintes des CMS sur PCB fourni par le constructeur ne correspondent pas au matériel CMS de l'école. Face à cette inattention de notre part, nous avons décidé de refaire entièrement la carte électronique sur fritzing. Ayant la datasheet et des plans d'inspiration PCB, nous avons pu refaire la carte entièrement. &lt;br /&gt;
Sur celle-ci nous avons ajouté des broches de connexion au besoin, un branchement Jtag et ICSP pour la programmation et la connexion SPI. &lt;br /&gt;
La carte est en attente de validation, puis validation.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: nrf52810_circuit2.jpg||center|400px|PCB carte nrf52810]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Révision matériel ===&lt;br /&gt;
&lt;br /&gt;
Pour la réalisation de nos composants électroniques, il nous a fallu faire une révision des composants disponibles à l'école:&lt;br /&gt;
(les quantités indiquées ci-dessous pourront être augmentée si nécessaire,pour avoir dans l'idéal un module de chaque type de la manette, ici on se concentre sur BOUTON et JOYSTICK)&lt;br /&gt;
&lt;br /&gt;
'''Cartes Arduino:'''&lt;br /&gt;
* 4 capacite 22pF traversantes&lt;br /&gt;
* 2 resistances 10 kOhm traversantes (à récupérer)&lt;br /&gt;
* 2 oscillateurs quartz 16MHz traversante&lt;br /&gt;
* 2 atmega328p-pu et support&lt;br /&gt;
&lt;br /&gt;
'''Cartes nrf52810'''&lt;br /&gt;
* 6 capacités 100nF 0603&lt;br /&gt;
* 6 capacités 12pF 0603&lt;br /&gt;
* 2 capacités 4,7pF 0603&lt;br /&gt;
* 2 capacités 1µF 0603&lt;br /&gt;
* 2 capacités 100pF=0,1nF 0603 (à récupérer)&lt;br /&gt;
* 2 capacités 0,8pF 0603 (commande en cours)&lt;br /&gt;
* 2 inductance 3,9nH 0603 (commande en cours)&lt;br /&gt;
* 2 oscillateur quartz 32 MHz &lt;br /&gt;
&lt;br /&gt;
'''Cartes modules Boutons'''&lt;br /&gt;
* un sachet de broches mâles (qu'on utilisera également pour les autres cartes, à récupérer/acheté) &lt;br /&gt;
&lt;br /&gt;
Nous avons alors mis-à-jour la liste de composant située plus haut, ainsi que celle de la page IMA4 2017/2018 [https://projets-ima.plil.fr/mediawiki/index.php/Projets_IMA4_SC_%26_SA_2017/2018]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 7&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Programmation: connexion wifi RPi Zero W et Bootloader sur Atmega328p-pu ===&lt;br /&gt;
&lt;br /&gt;
Pendant cette semaine, nous avons continué la programmation et la configuration des Raspberry Pi 3 et Zero W afin de les utiliser en connexion Wifi. &lt;br /&gt;
&lt;br /&gt;
Nous avons également continuer les programmes de récupération de données : état des boutons et du joystick. Ces programmes sont appliqué sur l'atmega328p-pu standalone sur la plaque d'essai en attendant que le PCB soit opérationnel.&lt;br /&gt;
Pour pouvoir programmer l'atemega328p-pu comme une arduino UNO, il nous faut suivre plusieurs étapes :&lt;br /&gt;
&lt;br /&gt;
'''1.Flasher le Bootloader'''&lt;br /&gt;
Nous avons 2 Atmega328p-pu neufs, ainsi il nous faut flasher le bootloader sur chacun d'eux afin de pouvoir les utiliser et les programmer sur une breadboard dans un montage minimaliste arduino-standalone. &lt;br /&gt;
Pour cela, on peut utiliser une carte arduino UNO. On vérifie le port et le type de carte sélectionnés dans le menu &amp;gt;Outils. Sur cette carte on téléverse le fichier arduinoISP.ino qui se trouve dans les exemples en étant en progrmamateur AVr ISP mkll (&amp;gt;outils&amp;gt;programmateur) &lt;br /&gt;
Puis on met l'atmega328p-pu qui nous intéresse sur le suppor socket de la carte. On change de nouveau le programmateur pour Arduino as ISP et on fait &amp;gt;tools&amp;gt;burn bootloader, soit &amp;gt;graver la sequence d'initialisation.&lt;br /&gt;
Ces étapes faites, on peut retirer notre microcontroleur et le replacer correctement dans le montage. &lt;br /&gt;
&lt;br /&gt;
'''2.Programmation atmega328 sur breadboard'''&lt;br /&gt;
Une fois l'atmega328p-pu préparé, on peut le programmer. On peut le faire simplement à l'aide de la carte arduino UNO utilisée précédemment.On branche les Tx et Rx en commun ainsi que le reset, le GND et le VCC.&lt;br /&gt;
&lt;br /&gt;
Nous avons réaliser des codes basiques tels que le clignotement d'une led rouge ou encore l'affichage de &amp;quot;hello world&amp;quot; sur le moniteur série pour vérifier la bonne fonctionnalité du montage. Cela fait nous avons pu écrire sous Arduino IDE le code de lecture des états.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: montage_BB_test.jpg||left|200px|programmation modules arduino sur breadboard]]&lt;br /&gt;
&lt;br /&gt;
===Electronique : soudure carte de test modules ===&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons déja vu lors de la réalisation des PCB, si l'on souhaite programmer un atmega328p-pu en bootloader, le montage est simple. Il peut être minimaliste en utilisant une arduino UNO, un atmega328, une breadboard et 3 composants: 1 quartz 16MHZ crystal, 1 résistance 10kOhm et 2 capacitors céramiques de 22pF.&lt;br /&gt;
Durant la semaine 7, nous avons soudé les composants traversants de la carte électronique correspondant à ce montage ainsi que le PCB du bouton.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 8&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Programmation ===&lt;br /&gt;
&lt;br /&gt;
===Electronique : Correction soudure et soudure CMS===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avions souhaité programmer la carte électronique atmega328p-pu. Cependant, nous avons réaliser que nous avions fait une erreur lors de l'envoie du PCB à la production. En effet, celui-ci avait été fait en Top sur le logiciel Fritzing et non en Bottom. Hors nous avions soudé les composants (durant la semaine 7) comme pour un circuit imprimé en bottom, l'atmega328p-pu se retrouve alors inversé par rapport aux pistes. &lt;br /&gt;
Comme solution, nous avons choisi de souder un deuxième support pour l'atmega328 de l'autre coté de la carte avant de la refaire au propre. En effet, avant de la refaire il nous faut vérifier si la carte est bien programmable. &lt;br /&gt;
Une fois cela fait nous avions pu programmer la carte mais, nous avions également réalisé la pin 2 de l'atmega328 était prise par le bouton poussoir. Or, nous avons besoin des pin 2 et 3 pour le RX et TX permettant la programmation de l'atmega à partir d'une arduino, les pistes branchement RX-TX n'ont également pas été prévus pour le téléversement des programmes sur la carte. Il nous faut alors couper une piste et souder des câbles pour utiliser toutes les pistes souhaitées. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: correction_proto_PCB.jpg||right|300px|PCB arduino correction]]&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons également souhaité souder les CMS et le composant bluetooth nrf52810 sur la carte imprimé et reçu lors de la semaine 7. Pour cela, nous avons convenu de travailler dans la C202 durant la séance du mercredi. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: PCB_nrf52810.jpg||left|400px|carte electroniques imprimées]]&lt;br /&gt;
&lt;br /&gt;
====Comment souder des CMS ?====&lt;br /&gt;
&lt;br /&gt;
les CMS sont des composants montés en surface c'est à dire qu'ils sont montés du même côté que les pistes cuivrées (à l'opposé des composants traversants) et sont de petite tailles souvent de l'ordre du millimètre. La taille est déterminée par 4 chiffres : les 2 premiers pour la longueur et les 2 derniers pour la largeur. On a du 1206,0805,0603 ou encore 0402. Il est même possible de trouver plus petit. A l'école nous utilisons souvent du 0603, c'est le cas de nos composants.&lt;br /&gt;
Pour souder des CMS 0603, il nous faut utiliser une autre méthode qui n'est pas le fer à souder :&lt;br /&gt;
# Préparer la veille la pâte à braser la veille (dans une seringue)&lt;br /&gt;
# Gommer la carte pour éviter l'oxydation (attention à ne pas retirer les miettes de gomme en soufflant dessus) &lt;br /&gt;
# Appliquer avec la seringue la pâte sur les empreintes et piste souhaitées. Pour les endroits difficile à atteindre ou avec 2 pistes proches les unes des autres, il est possible de mettre la même goutte de pâte sur les 2 pistes. Cela de causera pas de court-circuit par la suite. En effet, la pâte est composée d’alliage qui sous la chaleur va se fluidifier et se coller uniquement aux pistes métallique. Le reste fondera sous la chaleur du four.&lt;br /&gt;
# Appliquer les CMS sur la pâte au fur et à mesure (attention ! ne jamais toucher les CMS avec les doigts, tjrs utiliser une pince)&lt;br /&gt;
# Mettre au four&lt;br /&gt;
&lt;br /&gt;
====Bilan soudure nrf52810====&lt;br /&gt;
&lt;br /&gt;
Cependant, une fois le matériel nécessaire préparé, et la pâte mise sur les pistes souhaitées, au moment de déposer le composant, nous avons réalisé que celui-ci était beaucoup plus petit que l'empreinte sur le PCB. Il s'agit d'un composant boitier QFN48. Fritzing ne proposant au plus proche des boitiers QFN24 ou LQFP48, celui-ci a basculé automatiquement pour un boitier LQFN48, de dimension plus grande. Face à ce manque de vigilance, nous avions cependant commencer par le nrf52810 (composant concerné) évitant ainsi de gaspiller d'autres CMS. &lt;br /&gt;
Nous avons souhaité refaire la carte sous Altium à partir des fichiers fournis par le concepteur (chose que nous avons commencé à faire aux alentours de la semaine 5) &lt;br /&gt;
Après la réalisation du schématic, et de la modification des empreintes de capacités, inductances et autres composants de 0402 à 0603. Notre matériel ne permettant que des empreintes 0603.&lt;br /&gt;
 &lt;br /&gt;
Lors du routage, une erreur de chevauchement des pistes est notifiée par Altium au niveau du nrf52810. Celles-ci ne présentent pas d'angles et sont déjà de taille 8mil, il nous faut alors passer les pistes en 6mil. Mais 8mil est la taille minimale pour la production à Polytech, nous avons regardé pour envoyer les cartes à faire ailleurs mais le 6mil n'est pas beaucoup conseillé. De plus, il n'est peut-être pas judicieux de continuer avec le composant microcontrôleur-bluetooth Nrf52810 qui prend du temps, donc la carte est difficilement réalisable et peut-être très long à programmer. &lt;br /&gt;
&lt;br /&gt;
Ainsi en cette fin de semaine, nous avons décider face à l'avancer du projet de laisser les nrf52810 de coté et de les remplacer par des modules sans fils plus simples d'utilisation et complets. Ainsi nous aurions plus de chance d'avoir une connexion sans fils entre les modules. Nous pourrions par exemples utiliser des Xbee, des modules Rf...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 9&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation: PS4 et 1er Test SPI sur atmega328p====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
Une carte PCB arduino fonctionnant, nous pouvons la programme pour simuler un module. Celle-ci a été designée afin de s'adapter au module que l'on souhaite. Il suffit de brancher le bouton, le joystick ou autre élèment de manette souhaité.&lt;br /&gt;
Cette semaine ci, nous avons alors configurer la partie communication SPI pour l'arduino.&lt;br /&gt;
&lt;br /&gt;
'''Que voulons-nous faire avec les atmegas ?''' &lt;br /&gt;
Les cartes électroniques atmega328p vont nous permettre de recevoir les requêtes SPI envoyées par la raspberry pi et d'y répondre. La Raspberry enverra un message, par exemple &amp;quot;1&amp;quot;, et l'Arduino lira alors l'état du module qui lui est connecté. Une fois l'état récupéré elle le renvoie à la raspberry pi.&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons programmé l'atmega afin qu'il soit en esclave, qu'il reçoive un de la RPi &amp;quot;1&amp;quot; et retourne une valeur sauvegardé &amp;quot;int envoi&amp;quot;. Nous avons également commencé les tests pour la lecture de l'état d'un bouton (d'après les tests réalisés les semaines précédentes).&lt;br /&gt;
&lt;br /&gt;
'''Code'''&lt;br /&gt;
Comme nous l'avons vu précedement lors de nos recherches (semaines 1 à 4) : &lt;br /&gt;
La communication SPI nécessite l'utilisation des pins: &lt;br /&gt;
&lt;br /&gt;
MOSI -&amp;gt; GPIO11 //PB3  //master OUT to the slave IN&lt;br /&gt;
MISO -&amp;gt; GPIO12 //PB4 //slave OUT to the master IN&lt;br /&gt;
SCLK -&amp;gt; GPIO13 //PB5 //serial clock&lt;br /&gt;
SS -&amp;gt; GPIO10   //PB2  //slave select&lt;br /&gt;
&lt;br /&gt;
Il faut également paramétrer l'atmega328p en Slave. On note que dans un premier temps, le programme sera codé avec l'arduino IDE (fichiers .ino). Une fois l'ensemble SPI RaspberryPi-Arduino fonctionnant, on remplacera ces codes par du langage C ou C++.&lt;br /&gt;
&lt;br /&gt;
Pour faire la connexion SPI sur l'atmega328p,  on utilise la librairie arduino SPI.h, on a alors directement les fonctions nécessaires intervenant sur les registres souhaités : SPCR (spi control register), SPSR (spi status register) et SPDR (spi data register). &lt;br /&gt;
 &lt;br /&gt;
  #include &amp;lt;SPI.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il est important d'initialise d'abord le setup et on active le port série pour pourvoir utiliser le moniteur série. (Cela servira à verifier la valeur envoyée par la RPi) &lt;br /&gt;
&lt;br /&gt;
 void setup (void)&lt;br /&gt;
 {&lt;br /&gt;
   Serial.begin (9600);  &lt;br /&gt;
   pinMode(MISO, OUTPUT);  //configuration en esclave *master in slave out*&lt;br /&gt;
   pinMode(buttonPin,INPUT);  //config pin bouton&lt;br /&gt;
   // turn on SPI in slave mode&lt;br /&gt;
   SPCR |= _BV(SPE);&lt;br /&gt;
   // preparation interruptions&lt;br /&gt;
   pos = 0;   // buffer empty&lt;br /&gt;
   process_it = false;&lt;br /&gt;
   // activation interruptions&lt;br /&gt;
   SPI.attachInterrupt();&lt;br /&gt;
 }  &lt;br /&gt;
 &lt;br /&gt;
On oublie pas de déclarer les interruptions afin de bien lire la requête reçue. &lt;br /&gt;
 &lt;br /&gt;
// SPI interrupt routine&lt;br /&gt;
ISR (SPI_STC_vect)&lt;br /&gt;
{&lt;br /&gt;
  byte c = SPDR;  // grab byte from SPI Data Register&lt;br /&gt;
  // add to buffer if room&lt;br /&gt;
  if (pos &amp;lt; sizeof buf)&lt;br /&gt;
    {&lt;br /&gt;
    buf [pos++] = c;&lt;br /&gt;
    // example: newline means time to process buffer&lt;br /&gt;
    if (c == '\n')&lt;br /&gt;
      process_it = true;&lt;br /&gt;
    }  // end of room available&lt;br /&gt;
}  // end of interrupt routine SPI_STC_vect&lt;br /&gt;
&lt;br /&gt;
Dans la loop main, on traite la requête et on utilise '''SPI.transfer(envoi);''' pour transferer à la RPi les données souhaitées. &lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons également commencé des programmes de test SPI pour la RPi. Il s'agit principalement de programmes de tests tout faits permettant de vérifier la connexion entre cette dernière et l'arduino. Par exemple, la RPI envoie &amp;quot;bonjour&amp;quot; et l'arduino lui retourne ce qu'elle reçoit, soit &amp;quot;bonjour&amp;quot;. Sans succés alors. &lt;br /&gt;
&lt;br /&gt;
====Electronique : Fritzing révision====&lt;br /&gt;
&lt;br /&gt;
Lors de la semaine, le modèle PCB de la carte arduino a été réalisé de nouveau sous fritzing avec les broches et connections manquantes. Nous avons également revu la configuration du bouton reset  et ajouté une led d'état de l'alimentation. Nous avons ainsi envoyé deux cartes identiques à la réalisation.&lt;br /&gt;
La carte déjà soudée lors des derniers jours fonctionnant, elle nous sert de prototype de programmation. Nous pouvons ainsi avancer à la fois sur la programmation des modules mais aussi sur leur réalisation. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 10&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation : PS4 et SPI sur RPi====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Raspberry PI et SPI'''&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, pour la partie Atmega328p-Modules, nous nous sommes concentrés sur la programmation de la communication SPI avec la raspberry pi. Cette semaine a permis une étude plus approfondit sur le fonctionnement pour la RPi. &lt;br /&gt;
&lt;br /&gt;
On rappelle, comme vu des semaines 1 à 4, pour la RPI3 (tout comme la RPi Zero W) utilise les broches : SCLK (23), MISO(21), MOSI (19) et SPI CS0 (24), SPI CS1 (26). &lt;br /&gt;
On la programme en Master. A l'aide des fichiers tests d'inspiration, on pourra directement programmer la RPi en C. Lors de la réalisation du code, il y a 3 étapes : l'initialisation/parametrage en SPI pour être maître, l'envoie de la requête puis la réception de données en retour. &lt;br /&gt;
&lt;br /&gt;
Programmant en C, il ne faut pas oublier les librairies suivantes :&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;getopt.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;sys/ioctl.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/types.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/spi/spidev.h&amp;gt;   //pour SPI&lt;br /&gt;
&lt;br /&gt;
On va déclarer des variables globales permettant le paramétrage :&lt;br /&gt;
&lt;br /&gt;
 static const char *device = &amp;quot;/dev/spidev0.0&amp;quot;;  //si on veut CS0 pour atteindre notre SS&lt;br /&gt;
 static uint8_t mode;       //mode est par défaut à 0&lt;br /&gt;
 static uint8_t bits = 8;    //bits par mot échangé&lt;br /&gt;
 static uint32_t speed = 500000;  &lt;br /&gt;
 static uint16_t delay;&lt;br /&gt;
&lt;br /&gt;
Dans notre main, on ouvre le port (la connexion) au device souhaité,  on vérifie les paramètres (registres, connexions...) puis exécute la fonction transfer(fd). transfer(fd) transmet la requête et s'occupe de la réception. &lt;br /&gt;
&lt;br /&gt;
 fd = open(device, O_RDWR);&lt;br /&gt;
 transfer(fd);&lt;br /&gt;
 close(fd);&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 11&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation: PS4, SSH et tests SPI (RPi3&amp;amp;Atemga328p)====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Raspberry PI, Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
Afin de facilité la programmation en utilisant Ethernet, nous avons installer et configuré la RPi pour l'utiliser en SSH depuis les ordinateurs de la E306. En effet, SSH permet de se connecter à distance sur une machine en utilisant un compte utilisateur de la dite machine. En mettant ssh, on pourra directement agir sur les fichiers de la raspberry depuis un terminal de notre PC. Pour cela, on a d'abord vérifier l'adresse IP de notre raspberry pi : 172.26.145.106 avec un écran mais on peut aussi utiliser les commandes ip a et ifconfig. Puis activer le ssh sur la raspberry pi. &lt;br /&gt;
On modifie alors le fichier config.txt mais également etc/network/interfaces pour configurer la bonne interface Ethernet sur la raspberry pi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: configSSH_raspi.png||left|300px|config ssh ethernet]]&lt;br /&gt;
&lt;br /&gt;
Il nous suffit alors de taper la commande : ssh pi@172.26.145.106  pour accéder à notre RPi. &lt;br /&gt;
&lt;br /&gt;
Nous avons continué à réaliser la communication SPI avec des tests entre une arduino UNO et la RPI3. Nous avons commencé par des tests simples inspirés des études de deux semaines précédentes et modulés selon notre utilité.  &lt;br /&gt;
Nous arrivons alors à lire l'état envoyer &amp;quot;bonjour&amp;quot; et recevoir &amp;quot;ça va&amp;quot; ou encore &amp;quot;1&amp;quot; et recevoir &amp;quot;3&amp;quot;. Il faut noter que le SPI échange des trames, la RPI reçoit alors des hexadécimaux. &lt;br /&gt;
Nous avons alors continué pour recevoir l'état du bouton ou du joystick lors de l'envoie de &amp;quot;1&amp;quot; sur l'Arduino328p. La semaine prochaine nous testerons ces même codes fonctionnels sur les cartes atmeg327p. &lt;br /&gt;
&lt;br /&gt;
A la fin de cette semaine, nous avons alors des codes Arduino-SPI (.ino) et des codes Raspberry-SPI (.c) permettant l'échange de données. Le but est maintenant de l'adapter aux cartes imprimées et de le rendre pleinement fonctionnel pour plusieurs cartes à la fois, puis ajouter une boucle de vérification en continue jusqu'à une deuxième requête de la RPi.&lt;br /&gt;
&lt;br /&gt;
====Electronique: réalisation au propres des PCB modules====&lt;br /&gt;
&lt;br /&gt;
Suite à une nouvelle erreur de réalisation cartes électronique, nous avons  refait et renvoyé à nouveau les cartes imprimées atmega328p.&lt;br /&gt;
Nous les souhaitons au propre pour une version finale. Une fois celle-ci imprimées nous pourrons en avoir 3 , un pour chaque module. Les cartes étaient bien imprimées en bottom mais lors du passage des traversants de bottom à top, le logiciel ne les a pas fait miroiter. Par manque d'attention nous avons alors envoyé les fichiers gerber pour des cartes ayant les composants du même coté que la couche de cuivre. &lt;br /&gt;
Les cartes électroniques actuelles sont alors correctes et fonctionnelles mais difficile à souder. Pour eviter les erreurs et continuer sur des prototypes de carte nous préférons attendre en nous concentrant sur la programmation PSI de la Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 12&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Raspberry PI, Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
-  réflexion: penser à faire boucler sur l'arduino une fois la requête reçu, ça veut dire que la manette est ON et donc vérifier continuellement les modules sur chaque atmega.&lt;br /&gt;
- SPI raspberry pi - arduino recuperation état du bouton avec les cartes modules  (/!\ récuperation à faire dans une variable) &lt;br /&gt;
&lt;br /&gt;
-SSH perso &lt;br /&gt;
adresse Rasppi: 192.168.137.10&lt;br /&gt;
&lt;br /&gt;
====Electronique: Finalisation soudure Modules====&lt;br /&gt;
&lt;br /&gt;
Soudure au propre et finale d'une carte atmega328p et donc envoie pour la réalisation de 2 autres cartes similaires et récupération de matériel&lt;br /&gt;
Soudure des 2 autres cartes, + tests sur les états = fonctionnelles.&lt;br /&gt;
On a donc bien 3 cartes pour les 3 modules de types différents (1 bouton, 1 joystick, 1 gachette)&lt;br /&gt;
PCB pour les 2 joysticks (qui serviront de thumbstick et gachette)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 13 et plus&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
====Electronique====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
(à mettre rapport + git + drive)&lt;br /&gt;
&lt;br /&gt;
=Datasheets=&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=55381</id>
		<title>IMA4 2017/2018 P35</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=55381"/>
				<updated>2018-05-05T18:11:13Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : /* 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;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Présentation générale: Manette modulable&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Description&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Tout le monde joue aux jeux vidéo cependant, les manettes ne sont pas adaptées aux personnes ayant un handicap pouvant toucher les bras ou les mains.&lt;br /&gt;
C’est le cas, de plusieurs patients dans les centres de soins et de rééducation.&lt;br /&gt;
&lt;br /&gt;
Pour ce projet IMA4, nous travaillerons avec le centre SSR (soin de suite et de réadaptation) Marc Sautelet de Villeneuve d’Ascq.&lt;br /&gt;
Un adolescent, patient de Marc Sautelet, est passionné par les jeux vidéo. En effet, ayant perdu la motricité d’une partie de son corps, il ne peut pas jouer à deux mains. Pour cela, il bloque la manette entre son épaule et son coude, usant de la mâchoire et des doigts pour contrôler les&lt;br /&gt;
joysticks et les boutons. Cet exercice peut s’avérer fatiguant et pénible.&lt;br /&gt;
&lt;br /&gt;
Ainsi, nous chercherons à concevoir une manette PS4 adaptée au handicap de l’adolescent. &lt;br /&gt;
Cette manette devra aussi être adaptée pour d’autres patients présentant également des handicaps moteurs. Ainsi nous prendrons pour cibles: tous les patients du centre voulant jouer; et non pas que les enfants et adolescents.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Membre du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Transley Gracias et Camille Saad&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Cible&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Patient présentant un handicap moteur&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Période du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
janvier 2018 - mai 2018&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Partenaire/Client&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Centre SSR Marc Sautelet à Villeneuve d'Ascq&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Objectifs&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ce projet a pour objectif de créer un prototype de manette qui puisse interagir avec la console PS4 et dont le paramétrage se fait à l’aide d’une application mobile et/ou web. Cette manette devra suivre les demandes du patient ainsi que des aides-soignantes du centre, dans la mesure du possible.&lt;br /&gt;
&lt;br /&gt;
Plus précisément, pour le premier prototype, nous mettrons en œuvre l'utilisation de quelques boutons spécifiques: &lt;br /&gt;
&lt;br /&gt;
* Un joystick (type L/R)&lt;br /&gt;
* Quelques boutons poussoirs (type Croix/Triangle/Carré/Rond/R1/L1/Start/...)&lt;br /&gt;
* Des boutons gâchettes progressives (type L2/R2).&lt;br /&gt;
&lt;br /&gt;
Le but serait donc dans un premier temps de rendre fonctionnel un bouton de chaque type, puis de les multiplier une fois cela fait. Tous ces boutons réunis constituent une manette fonctionnelle.Ainsi, la manette sera ajustable, c’est à dire qu’elle devra s’adapter aux différents handicaps moteurs possibles.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Analyse du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Positionnement par rapport à l'existant&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre prototype aura une présentation unique par rapport à l’existant. En effet, les concurrents et produits existants ciblent pour la majorité un seul handicap. Cela&lt;br /&gt;
engendre une solution fermée à beaucoup de patients. Notre projet propose une mobilité des mouvements et également un choix large dans la composition et le&lt;br /&gt;
design de notre manette.&lt;br /&gt;
Le patient n’est pas retreint à jouer à une seule main, à utiliser beaucoup de force...Il y a moins de technique dans la manipulation et on ne joue pas avec une&lt;br /&gt;
manette adaptée uniquement pour un droitier ou un gaucher. Cependant, cela nous limitera peut-être dans le choix possible des types de jeux. Tout comme les autres&lt;br /&gt;
manettes adapté, l’utilisateur nécessitera un peu d’entrainement.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du premier concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Jouer aux jeux vidéo à une main n’est pas une idée d’aujourd’hui. En 1990, Nintendo propose le Power Glove. Mais il tombe très rapidement aux oubliettes suite à des problèmes techniques.&lt;br /&gt;
&lt;br /&gt;
Un autre gant a fait son apparition quelques années plus tard. Celui-ci, plus technique, il faut office de manette Play Station: le Reality Quest Power Glove.Cette idée de manette-gant, permet de jouer à la PS avec une seule main, elle a était conçue et présentée pour les E3, un salon d’exposition de gaming.Le gant est conçu pour contrôler l’équivalent des 14 boutons et 2 joysticks à l’aide d’une seule main. La « manette » est fixée dans la pomme de la main. L’utilisateur contrôle les mouvements verticaux et horizontaux en pivotant le poignet, et utilisent les 4 boutons d’action principaux et L1/R1 avec les doigts. Les autres boutons sont accessibles par un seul bouton rond contrôlé par le pouce.&lt;br /&gt;
La manette est adaptée pour beaucoup de jeux vidéo, dont les plus simples sont les jeux de voitures et de combats (arcade).&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec ce gant&lt;br /&gt;
*Design obligatoirement droitier&lt;br /&gt;
*Les boutons de contrôle sont peu sensibles et peuvent nécessiter de la force&lt;br /&gt;
*Design compliqué et nécessitant beaucoup d’entrainement.&lt;br /&gt;
&lt;br /&gt;
;Lien : https://www.youtube.com/watch?v=qV0SxSJDCYg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du second concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ben Heck, de son vrai nom Benjamin J.Heckendorn, est un concepteur de mods de consoles (mods pour modification, soit « manettes modifiées ») et une star&lt;br /&gt;
du net grâce à ses vidéos tutoriels.Il propose alors énormément de produits adaptés ou dérivés en guise de manettes.&lt;br /&gt;
Parmi les mods qu’il a réalisé, il a modifié une manette de PS4 afin de la rendre accessible à une personne ne pouvant jouer qu’à une main. Pour cela, il a déplacé les boutons en respectant l’ergonomie de la main valide et modifie les connexions. Il peut lui arriver de rajouter des boutons pour en remplacer un autre. Il réalise également le même système avec la Xbox. Sur la photo ci-dessous, il a adapté la manette pour un droitier.&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec cette ma&lt;br /&gt;
*Design obligatoirement droitier ou gaucher, une modification = une manette= une personne&lt;br /&gt;
*Besoin obligé du pouce et de l’index, même si avantage : 3 doigts nécessaire.&lt;br /&gt;
&lt;br /&gt;
;Lien :: https://www.youtube.com/watch?v=LieHIscadjk&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Scénario d'usage du produit ou du concept envisagé&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
La technologie est ,aujourd’hui, omniprésente dans notre vie. Les consoles de jeux ont envahies les maisons avec plus de 7 personnes sur 10 jouant aux jeux vidéos sur consoles en France (chiffre de l’Express). 0,18% des français sont handicapés cela représente 12 millions de français. Dans ce chiffre, 13,4% des personnes ont un handicap moteur. En 2017, les grands groupes comme Sony ou Microsoft avec respectivement PlayStation et Xbox ne permettent pas à tout le monde de jouer avec une manette. Les manettes sont prévues pour des personnes ayant leurs membres valides, plus précisément les mains et les bras.&lt;br /&gt;
&lt;br /&gt;
Après un accident de voiture, un jeune garçon a perdu la motricité d’un côté du corps. Passionné de jeux vidéo, il se retrouve avec des difficultés à jouer sur sa console PS4. Ingénieux, il utilise la manette en la coinçant entre son épaule et le creux du cou. Usant de la mâchoire et de sa main valide pour contrôler les joysticks et les boutons. L'exercice étant inconfortable et fatiguant il eu l’idée de proposer à des futurs ingénieurs de lui proposer une manette adaptée à son handicap. &lt;br /&gt;
&lt;br /&gt;
Les deux pré-ingénieurs ,avec leur tuteur, ont une idée révolutionnaire : La manette modulable ! Elle permettrait au jeune garçon, ainsi que d’autres joueurs, de pouvoir continuer de s’amuser ou même de commencer à jouer au jeux sur console. &lt;br /&gt;
Cette manette aidera fortement dans les centre de rééducation pour faire passer le temps et donner du plaisir à des personnes qui ne peuvent plus s’amuser avec leur console traditionnelle. Elle pourra aussi ouvrir de nouvelles possibilités pour certaines personnes qui n’auraient jamais essayé jusqu'à présent.   &lt;br /&gt;
Comme son nom l'indique, elle sera modulaire et s'adaptera à différents handicaps. Accompagnée de son application d’initialisation, elle sera accessible aussi bien aux enfants, patients, parents et aides soignantes.&lt;br /&gt;
&lt;br /&gt;
Quelques mois plus tard...Le jeune patient fan de Need For Speed, peut maintenant piloter sa voiture comme un vrai professionnel grâce à l'un des joysticks qu'il utilisera avec sa main valide et il pourra accélérer à des vitesses folles à l'aide de boutons poussoirs au niveau de son pied valide et gagner la partie. Son ami venu lui rendre visite, pourra en lieu et place des aides soignantes configurer à l'aide de la tablette (portable) la manette du patient. &lt;br /&gt;
Si le patient change de jeu pour Tekken et que la configuration des modules ne lui convient plus, il peut interchanger les éléments de la manette selon son envie et son confort. Ainsi il peut faire sauter son personnage, il utilisera un module bouton supplémentaire, qu'il actionnera avec le poing.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Fonctionnement&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Suite à une analyse fonctionnelle et à la formulation de notre projet, nous avons pu définir le fonctionnement de notre système. Notre produit, la manette, doit être accessible d’après nos objectifs à différents types de handicaps moteurs. Ainsi, l’idéal serait de concevoir une manette modulable afin qu’elle puisse s’adapter à toutes les situations. Ce n’est plus au patient de s’adapter à la manette mais à la manette de s’adapter au patient.&lt;br /&gt;
Cela signifie que la manette sera, dans la limite du possible et de la sensibilité du corps du patient, composée de plusieurs parties dites « modules » comportant un ou plusieurs actionneurs (boutons, joysticks, gâchettes...). Ces modules seront déplaçables afin d’être utilisé avec différents membres du corps : un doigt, une main,&lt;br /&gt;
une jambe ou même un pied. Il suffira de les connectés entre eux suivant l’organisation souhaitée, le Gameplay du jeu ou en fonction du handicap. Le tout sera relié à une application.&lt;br /&gt;
L’application sera alors mise en place pour connecter les différentes parties du point de vue software pour prérégler la manette en fonction du patient. Il pourra alors choisir les boutons en fonction du jeu, de ses mouvements mais aussi choisir la sensibilité.&lt;br /&gt;
&lt;br /&gt;
L’application et les modules devront être intuitifs et faciles d’utilisation. De cette manière des utilisateurs non avertis dans le domaine informatique ou jeunes pourront eux-mêmes gérer les connexions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Réponse à la question difficile&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
'''Question : Comment interconnecter les différents modules de la manette ?'''&lt;br /&gt;
&lt;br /&gt;
Il nous faut pour ce projet interconnecter les modules modélisant la manette qui seront connectés à la consoles PS4 via une Raspberry Pi 3.&lt;br /&gt;
Le choix de la Raspberry Pi 3 nous permet d'utiliser son module Bluetooth pour communiquer avec la PS4, ce choix est plus adaptée au projet que du filaire.&lt;br /&gt;
Concernant l'interconnexion des modules, nous travaillerons en deux étapes &amp;quot;preuves concept&amp;quot; : filaire et sans fils (Bluetooth).&lt;br /&gt;
&lt;br /&gt;
'''Objectif 1 : Preuve concept filaire'''&lt;br /&gt;
&lt;br /&gt;
Dans cette première partie de projet, nous souhaitons avoir une 1ère preuve de prototype rapidement. Nous nous concentrerons alors sur la communication entre la RPi3 et la PS4 ainsi que sur la conception des modules. Pour les modules, nous réaliserons des cartes électronique pour chaque module avec un micro-contrôleur. La communication filaire nous permettra d'interconnecter les modules à la RPi3 avec un bus SPI.&lt;br /&gt;
&lt;br /&gt;
'''Objectif 2: preuve concept sans fils'''&lt;br /&gt;
&lt;br /&gt;
Une deuxième étape du projet est la réalisation de la solution idéale sans fils. Celle-ci pourra commencer à être développée petit à petit en parallèle avec l'objectif 1. Le but ici, est d'interconnecter les modules en Bluetooth. Nous avons choisi le Bluetooth pour garder une connexion commune sur toute la chaîne. &lt;br /&gt;
Nous rajouterons alors un module bluetooth à chaque module de la manette. &lt;br /&gt;
&lt;br /&gt;
'''Objectif 3: possibilité d'adapter les boutons (capuchon en 3D)'''&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Préparation du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Cahier des charges&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
''Chef de projet:'' Alexandre Boé  &amp;lt;br&amp;gt;&lt;br /&gt;
''Responsables:'' Xavier Redon, Thomas Vantroys &amp;lt;br&amp;gt;&lt;br /&gt;
''Partenariat:'' Marc Sautelet (non etablie) &amp;lt;br&amp;gt;&lt;br /&gt;
''Elèves-ingénieurs:'' Camille Saâd, Transley Gracias &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Sujet :''' Manette modulable pour personne à déficience moteur compatible PlayStation 4 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objectifs principal (1er POC) : ===&lt;br /&gt;
Faire transmettre des informations issus des actionneurs (ex:boutons poussoires) via des arduinos jusqu’à la Raspberry Pi 3 en SPI.&amp;lt;br&amp;gt;&lt;br /&gt;
Envoyer les données reçues vers la PS4 en USB  &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Objectifs secondaire (2e POC):===&lt;br /&gt;
Créer des modules avec un microcontrôleur et une puce bluetooth pour permettre une meilleurs flexibilité (c-àd pouvoirs avoir une meilleure ergonomie et une connexion sans fil) &amp;lt;br&amp;gt;&lt;br /&gt;
Connecter la Raspberry Pi 3 en Bluetooth à la PS4 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier: beteacorne.jpg||middle|600px|Bete a corne manette]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Choix techniques : matériel et logiciel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Liste de matériel :===&lt;br /&gt;
&lt;br /&gt;
'''Modules boutons/joysticks/gachettes'''&lt;br /&gt;
&lt;br /&gt;
3  Push buttons :&amp;lt;br&amp;gt;&lt;br /&gt;
- O X Y Carré R3 L3 &amp;lt;br&amp;gt;&lt;br /&gt;
- Guide PS &amp;lt;br&amp;gt;&lt;br /&gt;
- start/back &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 0,45€/unité TTC [https://www.gotronic.fr/art-bp-miniature-krs1273-16976.htm] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1  Thumbstick original: &amp;lt;br&amp;gt;&lt;br /&gt;
Joystick analogique 4 directions --&amp;gt; 4,25€/unité TTC [https://www.gotronic.fr/art-joystick-analogique-4-directions-19063.htm] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1 buttons trigger L1 L2 =&amp;gt; 1x Thumbstick original''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Cartes Atmega328p /connexion spi/'''&lt;br /&gt;
&lt;br /&gt;
3   Arduino UNO &amp;lt;br&amp;gt;&lt;br /&gt;
1   Arduino UNO atmega328p retirable &amp;lt;br&amp;gt;&lt;br /&gt;
4   capacite 22pF traversantes &amp;lt;br&amp;gt;&lt;br /&gt;
2   resistances 10 kOhm traversantes (à récupérer) &amp;lt;br&amp;gt;&lt;br /&gt;
2   oscillateurs quartz 16MHz traversante &amp;lt;br&amp;gt;&lt;br /&gt;
2   atmega328p-pu et support &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cartes module bluetooth nrf52810 '''&lt;br /&gt;
&lt;br /&gt;
6   capacités 100nF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
6   capacités 12pF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 4,7pF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 1µF 0603 &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 100pF=0,1nF 0603 (à récupérer) &amp;lt;br&amp;gt;&lt;br /&gt;
2   capacités 0,8pF 0603 (a acheter, commande en cours) &amp;lt;br&amp;gt;&lt;br /&gt;
2   inductance 3,9nH 0603 (a acheter, commande en cours) &amp;lt;br&amp;gt;&lt;br /&gt;
2   oscillateur quartz 32 MHz &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''' Connexions et autres '''&lt;br /&gt;
&lt;br /&gt;
1 Led RGB neopixel [https://www.adafruit.com/product/1734] &amp;lt;br&amp;gt;&lt;br /&gt;
1 Raspberry Pi 3 &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; ~36,23€/unité TTC [https://fr.rs-online.com/web/p/processor-microcontroller-development-kits/8968660/?src=raspberrypi] &amp;lt;br&amp;gt;&lt;br /&gt;
1 Raspberry Pi Zero W (commandée) [https://www.raspberrypi.org/products/raspberry-pi-zero-w/] &amp;lt;br&amp;gt;&lt;br /&gt;
6 Alimentations 5V ou 3,3V &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
par exemple, 12 piles de type CR2016 3V rechargeables ou 24 piles AAA 1,5 V rechargeables  &lt;br /&gt;
5 modules Bluetooth nrf de Nordic : nRF52810-QFAA-R &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 3,17€/unité + frais expédition  [https://www.mouser.fr/productdetail/nordic-semiconductor/nrf52810-qfaa-r?qs=sGAEpiMZZMve4%2FbfQkoj%252bG%2FosjLoe2oghFQwQllMrQ4%3D]&lt;br /&gt;
5 Lignes broches mâles &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logiciels:===&lt;br /&gt;
&lt;br /&gt;
- IDE arduino&lt;br /&gt;
- Altium&lt;br /&gt;
- FreeCAD ou Inkscape&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Liste des tâches à effectuer&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 1 : Gestion du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Définition des cahiers des charges fonctionnel et technique, choix d'orientation...&lt;br /&gt;
* Recherche techniques sur les différentes connexions possibles entre les modules, la RPi 3 et la console PS4&lt;br /&gt;
#Recherche connexion SPI entre les modules et la RPi3&lt;br /&gt;
# Recherche connexion bluetooth entre la RPi3 et la PS4&lt;br /&gt;
# Recherche connexion bluetooth pour les modules&lt;br /&gt;
# Recherche carte avec montage Atmega328P-PU et anticipation module bluetooth&lt;br /&gt;
* Détermination du matériel nécessaire&lt;br /&gt;
* Réflexion sur l'application&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 2: Réalisation du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Partie 1: Preuve concept manette en filaire'''&lt;br /&gt;
&lt;br /&gt;
* Conception de cartes électroniques pour 2 modules (/!\ prévoir modules bluetooth)&lt;br /&gt;
* Réalisation connexion SPI avec 2 modules : programmation des Atmega328p en liaison série. &lt;br /&gt;
* Si tests concluant, ajouter des modules jusqu'à en avoir 5 (1 pour chaque type de boutons) &lt;br /&gt;
* Connexion bluetooth entre la PS4 et la RPi3&lt;br /&gt;
* Réalisation du support des modules avec fixations possibles (imprimante 3D)&lt;br /&gt;
&lt;br /&gt;
'''Partie 2: Preuve concept manette en bluetooth'''&lt;br /&gt;
&lt;br /&gt;
* Ajout des modules bluetooth aux cartes électroniques&lt;br /&gt;
* Connexion bluetooth entre les modules&lt;br /&gt;
&lt;br /&gt;
'''Partie 3: Application Android : paramétrage de la manette'''&lt;br /&gt;
&lt;br /&gt;
* Créer une application sur tablette ou smartphone (Android) afin de configurer la manette aux besoins (inter-connexion des modules et console)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Calendrier prévisionnel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Date'''&amp;lt;/u&amp;gt;&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Tache à réaliser''' &amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
17/01/18-24/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Faire des recherches sur les différentes interconnexions du système : Bluetooth, RPi-Atmega328 (SPI), RPi-PS4&lt;br /&gt;
Continuer liste des taches, matériel, Début recherches + réflexion fixation support des modules&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Recherche technique connexion PS4-RPi3 et connexion SPI RPi3-Module + code&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18-07/03/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Réalisation 1er prototype (+ début prototype 2)&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
07/03/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Seance 7 :  Test prototype filaire&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
07/03/18-09/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Réalisation 2eme prototype + application Android&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
09/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Seance 14 :  Test prototype Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
14/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Video projet&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
15/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Finalisation projet et Rapport&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
16/05/18-17/05/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Soutenances Projet&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Réalisation du Projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Feuille d'heures &amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Voici le tableau d'heures du binôme:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Heures S11 !! Heures S12 !! Heures S13et+ !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 10&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 20min&lt;br /&gt;
|&lt;br /&gt;
| 15h20&lt;br /&gt;
|-&lt;br /&gt;
| Cherches techniques &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 18&lt;br /&gt;
|-&lt;br /&gt;
| Rédaction du wiki et rapport de projet&lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 30min&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| 30min&lt;br /&gt;
| 30min&lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
| 10h30&lt;br /&gt;
|-&lt;br /&gt;
| Programmation&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 3&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 7&lt;br /&gt;
| 8&lt;br /&gt;
| 6&lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
| 43&lt;br /&gt;
|-&lt;br /&gt;
| Cartes électroniques&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 6&lt;br /&gt;
| 8&lt;br /&gt;
| 4&lt;br /&gt;
| 6&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| 31&lt;br /&gt;
|-&lt;br /&gt;
| Application&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| Total Semaine&lt;br /&gt;
| 10&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 7&lt;br /&gt;
| 10h30&lt;br /&gt;
| 13&lt;br /&gt;
| 9&lt;br /&gt;
| 12&lt;br /&gt;
| 9h30&lt;br /&gt;
| 10h30&lt;br /&gt;
| 9&lt;br /&gt;
| 9h20&lt;br /&gt;
| &lt;br /&gt;
| '''117h50'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Prologue&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Avant la réalisation et conception d'un projet, il est important d'analyser celui-ci. Nous avons allons consacré le prologue à l'analyse fonctionnelle de la manette. Nous avons également eu une réflexion sur l'analyse technique, cela nous a permis de réaliser une liste de matériel. Il est important de définir les objectifs ainsi que les besoins afin de ne rien oublier. (Voir ci-dessus Analyse projet) &lt;br /&gt;
Nous avons également organisé notre travail, pour le partage de documents de recherches et la rédaction de compte-rendu final nous avons réalisé un google drive. Par la suite, nous créerons un projet Git. &lt;br /&gt;
&lt;br /&gt;
Durant ce temps, nous avons décidé de réaliser 5 modules. Les modules sont les différents boutons de la manettes qui nous pourrons placer selon nos choix (boutons modulaires) pour notre prototype projet pour chaque type des boutons d'une manette PS4. Ces modules devrons être connectés à la console et interconnectés. Le tout sera lié à une application Android. Suite à quelques recherches et nos analyses, nous avons décidé les points suivants :&lt;br /&gt;
&lt;br /&gt;
- On commencera avec 2 modules et on les multipliera par la suite. &lt;br /&gt;
- Les premiers tests sont réalisés avec des boutons petits pour assurer leur caractéristique &amp;quot;modulaires&amp;quot;, par la suite nous pourrons ajouter des capuchons de taille plus importante (imprimante 3D ou achat)&lt;br /&gt;
- Conception modules : réalisation de carte avec un microcontrôleur atmega328 programmable pour chaque module (anticiper le module Bluetooth) &lt;br /&gt;
- Projet en 2 parties : prototype filaire et prototype Bluetooth&lt;br /&gt;
# Prototype filaire : connexions entre les modules et la RPi3 en SPI, connexion Rpi3-PS4 en Bluetooth, avec l'application en filaire à la RPi3&lt;br /&gt;
# Prototype Bluetooth: connexion Bluetooth entre modules-RPi3-PS4-apllication&lt;br /&gt;
&lt;br /&gt;
[[Fichier: structuremanette.png||center|400px|Concept manette modulable]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 1&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous nous sommes concentrés les recherches afin de définir clairement le cahier des charges technique. Il s'agit des réalisations à mettre en œuvre pour les inter-connexions des éléments de la manette.&lt;br /&gt;
Ainsi, nous avons fait des recherches sur :&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI entre les modules (Atmega328p) et la RPi3===&lt;br /&gt;
&lt;br /&gt;
SPI: Serial périphérique interface BUS&lt;br /&gt;
&lt;br /&gt;
[[Fichier: yWGmW.png||right|200px|Concept manette modulable]]&lt;br /&gt;
Comme indiqué sur l'image ci-dessus, la Raspberry pi 3  peut communiquer en SPI avec ses broches CS0 (24), CS1 (26), SCLK (23), MISO (21), MOSI (19). Celles-ci permettent de communiquer avec un ou plusieurs esclaves (dans notre cas, des Atmega328p) en reliant directement les broches concernées de la RPi3 à celles des composants esclaves.&lt;br /&gt;
Chaque broche CS0 (24) ou CS1 (26) ne peut être connectée qu'à l'entrée SS (aussi appelé CS) d'un seul esclave.&lt;br /&gt;
C'est a dire que chaque CS est lié à un esclave afin de choisir avec lequel la communication est établie à un moment donné, et les MISO sont reliées entre elles en cascade, de même pour les SCLK et les MOSI. On peut noter que le maître impose la fréquence d’horloge et sélectionne l’esclave auquel les données sont envoyées.  8 MHz est le plus rapide supportable a 3,3V&lt;br /&gt;
&lt;br /&gt;
[[Fichier: fonctionnementSPI.png||right|200px|Connexion SPI multi-esclaves]]&lt;br /&gt;
&lt;br /&gt;
Voici un schéma du fonctionnement souhaité : &lt;br /&gt;
&lt;br /&gt;
Comme nous souhaitons avoir 5 modules environ il nous faudra rajouter un composant en plus afin d'augmenter les possibilités de sélection, par exemple des démultiplexeurs.&lt;br /&gt;
Dans un premier temps nous essaierons avec 2 esclaves, puis on augmentera le nombre. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Connexion Bluetooth PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Les recherches portent également sur la connexion entre la manette PS4 et la console. Elles concernent le protocole de communication via Bluetooth&lt;br /&gt;
&lt;br /&gt;
Caracteristique pour la PS4:  Bluetooth®v4.0, Qualcomm Atheros AR3002 Buetooth LE: 2,4-2,5 GHz  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caracteristique de la connexion : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Vitesse de transmission &amp;gt;&amp;gt; 3 Mbit/s   8N1 &lt;br /&gt;
*Relevé tous les 1.3 millisecond (peut-être) &lt;br /&gt;
*Chaque manette à une adresse unique BD_ADDR qui correspond à l’adresse MAC de la carte Réseau&lt;br /&gt;
*Protocole de détection est le SDP basé sur une emission reception PDU&lt;br /&gt;
*L’Attribut ID est representer en TLV Type Length Value &lt;br /&gt;
*Communication HCI ACL Data Packet &lt;br /&gt;
&lt;br /&gt;
===Rélisation des cartes électroniques===&lt;br /&gt;
&lt;br /&gt;
matériel nécessaire pour un PCB : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*breadboard&lt;br /&gt;
*câbles&lt;br /&gt;
*1 x 10k Ohm résistance&lt;br /&gt;
*Quartz 16Mhz clock crystal&lt;br /&gt;
*2 x 22 pF capaciteurs&lt;br /&gt;
*Atmega328P-PU&lt;br /&gt;
&lt;br /&gt;
Ressources: &lt;br /&gt;
[[https://www.arduino.cc/en/Main/Standalone]]&lt;br /&gt;
[[http://www.eprojectszone.com/atmega-328-pu-standalone/]]&lt;br /&gt;
[[https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 2&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la semaine deux et durant la séance, nous avons continué et approfondie nos recherches sur le projet. Nous avons pu ainsi affiner nos taches de réalisation et donc notre cahier des charges.&lt;br /&gt;
&lt;br /&gt;
===Bluetooth sur la Raspberry Pi 3===&lt;br /&gt;
&lt;br /&gt;
voir https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018#Configuration_du_syst.C3.A8me_embarqu.C3.A9&lt;br /&gt;
&lt;br /&gt;
(sudo apt-get install pi-bluetooth)&lt;br /&gt;
&lt;br /&gt;
''connexion sur la raspberry par ssh:''&lt;br /&gt;
 su&lt;br /&gt;
 update-rc.d ssh enable&lt;br /&gt;
 invoke-rc.d ssh start &lt;br /&gt;
 ssh pi@172.26.79.1XX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''bluetooth''&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
 agent on&lt;br /&gt;
 default-agent&lt;br /&gt;
 scan on&lt;br /&gt;
 pair [device Bluetooth address]  (exemple: pair XX:XX:XX:XX:XX:XX )&lt;br /&gt;
&lt;br /&gt;
===Modules SPI et Bluetooth===&lt;br /&gt;
''NOUVELLE REFLEXION : Connexion SPI entre les modules (Atmega328p) et la RPi3 --&amp;gt; MODULES BLUETOOTH''&lt;br /&gt;
&lt;br /&gt;
Si multi-esclaves= plusieurs modules : &lt;br /&gt;
Il faut ajouter des sélections pour les SPI → démultiplexeurs OU ne pas utiliser les CS0 et CS1, et plutôt des pins entrée/sortie de la RPi3 lié au SS comme ça on choisit direct le module esclave voulu.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' Nous avons étudié à nouveau la datasheet de notre module bluetooth nrf de Nordik. Le module bluetooth comporte  déjà un microprocesseur !&lt;br /&gt;
Un module plutôt peut donc jouer le rôle de notre atmega328p. Il n'y a alors pas besoin de réaliser des cartes électroniques de type arduino standalone. Nos PCB regrouperont alors uniquement l'alimentation, un actionneur (bouton, joystick), le module bluetooth et les broches de connexion si besoin... &lt;br /&gt;
&lt;br /&gt;
Cette séance nous a alors permise de revoir entièrement le matériel nécessaire. Notre liste de matériel nous semble alors plus réfléchie et limitée au nécessaire. &lt;br /&gt;
&lt;br /&gt;
===Connexion Bluetooth PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Le site qui détaille le protocole Bluetooth PS4 n'est pas complet et de plus n'ayant pas accès à une PS4 (pour le moment) nous avons décidé de commencer par une connexion USB (pour laquelle on dispose de toutes les informations) et qu'on pourra tester plus facilement.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 3 : Début premier prototype&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
*'''Connexion SPI RPi3-Arduino'''&lt;br /&gt;
&lt;br /&gt;
Comme vu durant les semaines précédentes, nous souhaitons réaliser une connexion Multi-esclaves en SPI entre la Raspberry pi et plusieurs modules.&lt;br /&gt;
Cette semaine nous avons vu que la réalisation de notre premier prototype doit aller vite. Il ne nous est pas nécessaire d’attendre les modules bluetooth si il nous faut dans cette partie uniquement utiliser son microprocesseur. Ainsi pour chaque module nous utilisons une arduino UNO. Nous réaliserons les programmes en C afin de pouvoir les réutiliser avec les modules bluetooth par la suite. &lt;br /&gt;
Une fois la connexion réalisable nous adapterons les programmes aux modules bluetooth Nordik. En effet, ceux-ci comporte déjà un microprocesseur, le module peut jouer le rôle de notre atmega328p. Il n'y a aurait alors pas besoin de réaliser des cartes électroniques arduino standalone sur PCB, mais directement des cartes électronique avec le module et le module voulu (bouton, joystick...) et l'alimentation. &lt;br /&gt;
Durant la séance nous avons alors revu la liste de matériel nécessaire. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: prototype1.jpeg||center|600px|connexion filaire prototype 1 filaire arduino]]&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous avons recherches des exemples de codes et de librairies pour Arduino SPI et RaspberryPI SPI. &lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé le programme de la connexion SPI pour l'arduino et récupéré les bibliothéques SPI.h avec SPI.c. Nous nous sommes alors concentrer à les comprendre, pour pouvoir l'utiliser. &lt;br /&gt;
&lt;br /&gt;
*'''Réalisation du projet Git'''&lt;br /&gt;
&lt;br /&gt;
Création du projet IMA4_Projet35_ManetteModulable sur Git et partage de celui-ci. &lt;br /&gt;
Les premiers dossier crées durant la séance :&lt;br /&gt;
-Arduino (connexion SPI arduino) : ProtoSpi.c + dossier librairie SPI + Makefile&lt;br /&gt;
-RPI (dossier codes pour Rpi) &lt;br /&gt;
-Readme.md&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 4&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Pour le prototype 1 FILAIRE nous réaliserons les étapes suivantes :&lt;br /&gt;
&lt;br /&gt;
#Réalisation du programme SPI pour arduino&lt;br /&gt;
#Réalisation du programme SPI pour la RPi&lt;br /&gt;
#Connexion USB avec la PS4 ou ordinateur&lt;br /&gt;
#Réalisation de cartes électroniques atmega328p-pu standalone (remplacer les Arduinos) &lt;br /&gt;
#Remplacer les &amp;quot;PCB arduino&amp;quot; par le module bluetooth et adapter la connexion&lt;br /&gt;
#Conception 3D de la délimitation 1 axe pour le joystick &amp;quot;gâchette&amp;quot;&lt;br /&gt;
#Réalisation de l'application Androïde.&lt;br /&gt;
&lt;br /&gt;
Une fois ces étapes réalisées nous auront alors une preuve de concept filaire et nous pourrons alors passer à une connexion bluetooth. &lt;br /&gt;
Le passage à la connexion bluetooth sera le deuxième prototype et le cas idéal de la réalisation de la manette modulable. &lt;br /&gt;
&lt;br /&gt;
===Mise à jour Matériel===&lt;br /&gt;
&lt;br /&gt;
- Modéliser les boutons gâchettes L1/2 R1/2 de la manette PS4 (boutons sensibles à la pression) --&amp;gt; un joystick dont nous bloquerons un axe (imprimante 3D)&lt;br /&gt;
- Remplacer la RPi 3 par une Rpi zero W qui nous permettrait de réaliser plus facilement une connexion USB tout en gardant l'avantage du bluetooth. &lt;br /&gt;
- Choix de l’alimentation pour les 5 modules Bluetooth: nécessitent 3V --&amp;gt;  utiliser des piles rechargeables 1,2V AAA plutôt que piles rondes 3V.&lt;br /&gt;
&lt;br /&gt;
Nous avons également besoin du matériel cité en semaine 1 pour réaliser des cartes électroniques atmega328p-pu standalone. ( nous revenons alors sur les décisions de la semaine 3)&lt;br /&gt;
&lt;br /&gt;
===Connexion SPI RPi3-Arduino===&lt;br /&gt;
 &lt;br /&gt;
Montage Raspberrypi et 1 arduino en PSI + 1 bouton + 1 led.&lt;br /&gt;
Voici le choix des branchements :&lt;br /&gt;
&lt;br /&gt;
 MASTER = RPi   &lt;br /&gt;
 SLAVE= Arduino&lt;br /&gt;
&lt;br /&gt;
'''SPI sur Arduino:'''&lt;br /&gt;
 MOSI -&amp;gt; GPIO11 //PB3  //master OUT to the slave IN&lt;br /&gt;
 MISO -&amp;gt; GPIO12 //PB4 //slave OUT to the master IN&lt;br /&gt;
 SCLK -&amp;gt; GPIO13 //PB5 //serial clock&lt;br /&gt;
 SS -&amp;gt; GPIO10   //PB2  //slave select&lt;br /&gt;
'''Led, bouton et autre...'''&lt;br /&gt;
 LED --&amp;gt; GPIO6  //PD6&lt;br /&gt;
 GND&lt;br /&gt;
 +5V (if required)&lt;br /&gt;
'''SPI sur la Raspberry Pi'''&lt;br /&gt;
 SPIO MOSI -&amp;gt; PIN19 &lt;br /&gt;
 SPIO MISO -&amp;gt; PIN21&lt;br /&gt;
 SCLK -&amp;gt; PIN23&lt;br /&gt;
 SPIO CS0 -&amp;gt; PIN24&lt;br /&gt;
&lt;br /&gt;
Continuation du code pour faire clignoter Led branchée à une arduino depuis la Rpi, en connexion SPI.&lt;br /&gt;
&lt;br /&gt;
===Connexion USB PS4-RPi3===&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous avons regardé comment utiliser le port série sur la RPi3, soit utiliser les UART. &lt;br /&gt;
&lt;br /&gt;
Nous avons réaliser qu'il n'était pas aussi simple d'utiliser le port serie USB de la Raspberry Pi 3, en effet le SoC est un BCM2837 . &lt;br /&gt;
De plus nous ne pouvons pas utiliser le même port pour l'alimentation et la connexion. &lt;br /&gt;
&lt;br /&gt;
Une des solutions à cette difficulté serait d'utiliser une RPi ZERO W à défaut d'une RPi 3. On pourrait alors avoir un port d'alimentation avec connexion USB mais également retrouver la connexion bluetooth dont nous avons besoin.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 5&amp;lt;/span&amp;gt;==&lt;br /&gt;
 &lt;br /&gt;
===Programmation: Réflexion définitives prototypes filaire ===&lt;br /&gt;
&lt;br /&gt;
Durant la semaine 5, nous avons continué la réalisation du prototype filaire par l'avancé du code SPI ainsi que les recherches concernant le protocole PS4. &lt;br /&gt;
&lt;br /&gt;
Pour réaliser la connexion entre la PS4 et les différents modules, nous avons vu la semaine dernière que nous utiliserons une RPi zero W (que nous avons commandé). Celle-ci nous permet d'utiliser le bluetooth mais elle nous permet également de réaliser un réseau local sans fil. Ce qui peut être pratique dans la mesure où notre projet est modulable. &lt;br /&gt;
En attendant la réception de la commande, nous nous sommes penché sur les programmes et la configuration nécessaire à l'utilisation de la RPi zero W.&lt;br /&gt;
&lt;br /&gt;
===Electronique===&lt;br /&gt;
&lt;br /&gt;
[[Fichier: bouton_c1.jpg|100px|thumb|left|PCB bouton]]&lt;br /&gt;
[[Fichier: arduinobb.jpg|200px|thumb|right|atmega328p-pu branchement test]]&lt;br /&gt;
&lt;br /&gt;
Du coté électronique, nous avons réalisé sur fritzing certaines cartes électroniques. Les Arduino Uno servant actuellement de test, seront remplacées par des PCB atmega328p-pu standalone avec des broches permettant les branchements nécessaires SPI ou encore aux modules &amp;quot;boutons/joystick&amp;quot;. Pour les boutons, nous avons également réalisé un pcb afin de faciliter les branchements.  &lt;br /&gt;
&lt;br /&gt;
Il nous faut alors également une 3eme carte qui nous sera nécessaire pour la réalisation du prototype sans fil. Dans notre liste de matériel, nous avons des composants nrf52810 bluetooth, ceci doivent être soudé avec les capacités de protection mais également des broches de communication. Nous avons alors commencé cette carte électronique sur Altium avec le fichier  projet PCB du distributeur à modifier.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: Arduino_c1.jpg|100px|thumb|center|PCB atmega328p-pu]]&lt;br /&gt;
&lt;br /&gt;
=== Construction 3D ===&lt;br /&gt;
&lt;br /&gt;
Enfin, nous avons commencé à réaliser des boîtiers 3D pour certains modules. Par exemple, comme nous l'avions vu précédemment, un des joysticks servira de bouton-gâchette en utilisant un seul de ses axes. Il nous faut alors réaliser un boitier qui bloque l'un des axes, mais également une tige qui nous permettra de pousser le joystick de manière simplifiée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 6&amp;lt;/span&amp;gt;==&lt;br /&gt;
 &lt;br /&gt;
===Programmation: configuration RPi Zero W ===&lt;br /&gt;
&lt;br /&gt;
Ayant reçu la Raspberry Pi zero W en début de semaine, nous nous sommes concentrés sur la programmation et la configuration de celle-ci. &lt;br /&gt;
&lt;br /&gt;
===Electronique: PCB nrf52810===&lt;br /&gt;
&lt;br /&gt;
Les cartes réalisées en semaine 5 sont validées et en attente de réalisation. &lt;br /&gt;
&lt;br /&gt;
Cette semaine a permis la réalisation et la finalisation de la carte électronique nrf52810. Il nous a fallu recommencé cette carte deux fois. En effet, une fois finie sur Altium nous avons réalisé que les empreintes des CMS sur PCB fourni par le constructeur ne correspondent pas au matériel CMS de l'école. Face à cette inattention de notre part, nous avons décidé de refaire entièrement la carte électronique sur fritzing. Ayant la datasheet et des plans d'inspiration PCB, nous avons pu refaire la carte entièrement. &lt;br /&gt;
Sur celle-ci nous avons ajouté des broches de connexion au besoin, un branchement Jtag et ICSP pour la programmation et la connexion SPI. &lt;br /&gt;
La carte est en attente de validation, puis validation.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: nrf52810_circuit2.jpg||center|400px|PCB carte nrf52810]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Révision matériel ===&lt;br /&gt;
&lt;br /&gt;
Pour la réalisation de nos composants électroniques, il nous a fallu faire une révision des composants disponibles à l'école:&lt;br /&gt;
(les quantités indiquées ci-dessous pourront être augmentée si nécessaire,pour avoir dans l'idéal un module de chaque type de la manette, ici on se concentre sur BOUTON et JOYSTICK)&lt;br /&gt;
&lt;br /&gt;
'''Cartes Arduino:'''&lt;br /&gt;
* 4 capacite 22pF traversantes&lt;br /&gt;
* 2 resistances 10 kOhm traversantes (à récupérer)&lt;br /&gt;
* 2 oscillateurs quartz 16MHz traversante&lt;br /&gt;
* 2 atmega328p-pu et support&lt;br /&gt;
&lt;br /&gt;
'''Cartes nrf52810'''&lt;br /&gt;
* 6 capacités 100nF 0603&lt;br /&gt;
* 6 capacités 12pF 0603&lt;br /&gt;
* 2 capacités 4,7pF 0603&lt;br /&gt;
* 2 capacités 1µF 0603&lt;br /&gt;
* 2 capacités 100pF=0,1nF 0603 (à récupérer)&lt;br /&gt;
* 2 capacités 0,8pF 0603 (commande en cours)&lt;br /&gt;
* 2 inductance 3,9nH 0603 (commande en cours)&lt;br /&gt;
* 2 oscillateur quartz 32 MHz &lt;br /&gt;
&lt;br /&gt;
'''Cartes modules Boutons'''&lt;br /&gt;
* un sachet de broches mâles (qu'on utilisera également pour les autres cartes, à récupérer/acheté) &lt;br /&gt;
&lt;br /&gt;
Nous avons alors mis-à-jour la liste de composant située plus haut, ainsi que celle de la page IMA4 2017/2018 [https://projets-ima.plil.fr/mediawiki/index.php/Projets_IMA4_SC_%26_SA_2017/2018]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 7&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Programmation: connexion wifi RPi Zero W et Bootloader sur Atmega328p-pu ===&lt;br /&gt;
&lt;br /&gt;
Pendant cette semaine, nous avons continué la programmation et la configuration des Raspberry Pi 3 et Zero W afin de les utiliser en connexion Wifi. &lt;br /&gt;
&lt;br /&gt;
Nous avons également continuer les programmes de récupération de données : état des boutons et du joystick. Ces programmes sont appliqué sur l'atmega328p-pu standalone sur la plaque d'essai en attendant que le PCB soit opérationnel.&lt;br /&gt;
Pour pouvoir programmer l'atemega328p-pu comme une arduino UNO, il nous faut suivre plusieurs étapes :&lt;br /&gt;
&lt;br /&gt;
'''1.Flasher le Bootloader'''&lt;br /&gt;
Nous avons 2 Atmega328p-pu neufs, ainsi il nous faut flasher le bootloader sur chacun d'eux afin de pouvoir les utiliser et les programmer sur une breadboard dans un montage minimaliste arduino-standalone. &lt;br /&gt;
Pour cela, on peut utiliser une carte arduino UNO. On vérifie le port et le type de carte sélectionnés dans le menu &amp;gt;Outils. Sur cette carte on téléverse le fichier arduinoISP.ino qui se trouve dans les exemples en étant en progrmamateur AVr ISP mkll (&amp;gt;outils&amp;gt;programmateur) &lt;br /&gt;
Puis on met l'atmega328p-pu qui nous intéresse sur le suppor socket de la carte. On change de nouveau le programmateur pour Arduino as ISP et on fait &amp;gt;tools&amp;gt;burn bootloader, soit &amp;gt;graver la sequence d'initialisation.&lt;br /&gt;
Ces étapes faites, on peut retirer notre microcontroleur et le replacer correctement dans le montage. &lt;br /&gt;
&lt;br /&gt;
'''2.Programmation atmega328 sur breadboard'''&lt;br /&gt;
Une fois l'atmega328p-pu préparé, on peut le programmer. On peut le faire simplement à l'aide de la carte arduino UNO utilisée précédemment.On branche les Tx et Rx en commun ainsi que le reset, le GND et le VCC.&lt;br /&gt;
&lt;br /&gt;
Nous avons réaliser des codes basiques tels que le clignotement d'une led rouge ou encore l'affichage de &amp;quot;hello world&amp;quot; sur le moniteur série pour vérifier la bonne fonctionnalité du montage. Cela fait nous avons pu écrire sous Arduino IDE le code de lecture des états.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: montage_BB_test.jpg||left|200px|programmation modules arduino sur breadboard]]&lt;br /&gt;
&lt;br /&gt;
===Electronique : soudure carte de test modules ===&lt;br /&gt;
&lt;br /&gt;
Comme nous l'avons déja vu lors de la réalisation des PCB, si l'on souhaite programmer un atmega328p-pu en bootloader, le montage est simple. Il peut être minimaliste en utilisant une arduino UNO, un atmega328, une breadboard et 3 composants: 1 quartz 16MHZ crystal, 1 résistance 10kOhm et 2 capacitors céramiques de 22pF.&lt;br /&gt;
Durant la semaine 7, nous avons soudé les composants traversants de la carte électronique correspondant à ce montage ainsi que le PCB du bouton.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 8&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===Programmation ===&lt;br /&gt;
&lt;br /&gt;
===Electronique : Correction soudure et soudure CMS===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avions souhaité programmer la carte électronique atmega328p-pu. Cependant, nous avons réaliser que nous avions fait une erreur lors de l'envoie du PCB à la production. En effet, celui-ci avait été fait en Top sur le logiciel Fritzing et non en Bottom. Hors nous avions soudé les composants (durant la semaine 7) comme pour un circuit imprimé en bottom, l'atmega328p-pu se retrouve alors inversé par rapport aux pistes. &lt;br /&gt;
Comme solution, nous avons choisi de souder un deuxième support pour l'atmega328 de l'autre coté de la carte avant de la refaire au propre. En effet, avant de la refaire il nous faut vérifier si la carte est bien programmable. &lt;br /&gt;
Une fois cela fait nous avions pu programmer la carte mais, nous avions également réalisé la pin 2 de l'atmega328 était prise par le bouton poussoir. Or, nous avons besoin des pin 2 et 3 pour le RX et TX permettant la programmation de l'atmega à partir d'une arduino, les pistes branchement RX-TX n'ont également pas été prévus pour le téléversement des programmes sur la carte. Il nous faut alors couper une piste et souder des câbles pour utiliser toutes les pistes souhaitées. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: correction_proto_PCB.jpg||right|300px|PCB arduino correction]]&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons également souhaité souder les CMS et le composant bluetooth nrf52810 sur la carte imprimé et reçu lors de la semaine 7. Pour cela, nous avons convenu de travailler dans la C202 durant la séance du mercredi. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: PCB_nrf52810.jpg||left|400px|carte electroniques imprimées]]&lt;br /&gt;
&lt;br /&gt;
====Comment souder des CMS ?====&lt;br /&gt;
&lt;br /&gt;
les CMS sont des composants montés en surface c'est à dire qu'ils sont montés du même côté que les pistes cuivrées (à l'opposé des composants traversants) et sont de petite tailles souvent de l'ordre du millimètre. La taille est déterminée par 4 chiffres : les 2 premiers pour la longueur et les 2 derniers pour la largeur. On a du 1206,0805,0603 ou encore 0402. Il est même possible de trouver plus petit. A l'école nous utilisons souvent du 0603, c'est le cas de nos composants.&lt;br /&gt;
Pour souder des CMS 0603, il nous faut utiliser une autre méthode qui n'est pas le fer à souder :&lt;br /&gt;
# Préparer la veille la pâte à braser la veille (dans une seringue)&lt;br /&gt;
# Gommer la carte pour éviter l'oxydation (attention à ne pas retirer les miettes de gomme en soufflant dessus) &lt;br /&gt;
# Appliquer avec la seringue la pâte sur les empreintes et piste souhaitées. Pour les endroits difficile à atteindre ou avec 2 pistes proches les unes des autres, il est possible de mettre la même goutte de pâte sur les 2 pistes. Cela de causera pas de court-circuit par la suite. En effet, la pâte est composée d’alliage qui sous la chaleur va se fluidifier et se coller uniquement aux pistes métallique. Le reste fondera sous la chaleur du four.&lt;br /&gt;
# Appliquer les CMS sur la pâte au fur et à mesure (attention ! ne jamais toucher les CMS avec les doigts, tjrs utiliser une pince)&lt;br /&gt;
# Mettre au four&lt;br /&gt;
&lt;br /&gt;
====Bilan soudure nrf52810====&lt;br /&gt;
&lt;br /&gt;
Cependant, une fois le matériel nécessaire préparé, et la pâte mise sur les pistes souhaitées, au moment de déposer le composant, nous avons réalisé que celui-ci était beaucoup plus petit que l'empreinte sur le PCB. Il s'agit d'un composant boitier QFN48. Fritzing ne proposant au plus proche des boitiers QFN24 ou LQFP48, celui-ci a basculé automatiquement pour un boitier LQFN48, de dimension plus grande. Face à ce manque de vigilance, nous avions cependant commencer par le nrf52810 (composant concerné) évitant ainsi de gaspiller d'autres CMS. &lt;br /&gt;
Nous avons souhaité refaire la carte sous Altium à partir des fichiers fournis par le concepteur (chose que nous avons commencé à faire aux alentours de la semaine 5) &lt;br /&gt;
Après la réalisation du schématic, et de la modification des empreintes de capacités, inductances et autres composants de 0402 à 0603. Notre matériel ne permettant que des empreintes 0603.&lt;br /&gt;
 &lt;br /&gt;
Lors du routage, une erreur de chevauchement des pistes est notifiée par Altium au niveau du nrf52810. Celles-ci ne présentent pas d'angles et sont déjà de taille 8mil, il nous faut alors passer les pistes en 6mil. Mais 8mil est la taille minimale pour la production à Polytech, nous avons regardé pour envoyer les cartes à faire ailleurs mais le 6mil n'est pas beaucoup conseillé. De plus, il n'est peut-être pas judicieux de continuer avec le composant microcontrôleur-bluetooth Nrf52810 qui prend du temps, donc la carte est difficilement réalisable et peut-être très long à programmer. &lt;br /&gt;
&lt;br /&gt;
Ainsi en cette fin de semaine, nous avons décider face à l'avancer du projet de laisser les nrf52810 de coté et de les remplacer par des modules sans fils plus simples d'utilisation et complets. Ainsi nous aurions plus de chance d'avoir une connexion sans fils entre les modules. Nous pourrions par exemples utiliser des Xbee, des modules Rf...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 9&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation: PS4 et 1er Test SPI sur atmega328p====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
Une carte PCB arduino fonctionnant, nous pouvons la programme pour simuler un module. Celle-ci a été designée afin de s'adapter au module que l'on souhaite. Il suffit de brancher le bouton, le joystick ou autre élèment de manette souhaité.&lt;br /&gt;
Cette semaine ci, nous avons alors configurer la partie communication SPI pour l'arduino.&lt;br /&gt;
&lt;br /&gt;
'''Que voulons-nous faire avec les atmegas ?''' &lt;br /&gt;
Les cartes électroniques atmega328p vont nous permettre de recevoir les requêtes SPI envoyées par la raspberry pi et d'y répondre. La Raspberry enverra un message, par exemple &amp;quot;1&amp;quot;, et l'Arduino lira alors l'état du module qui lui est connecté. Une fois l'état récupéré elle le renvoie à la raspberry pi.&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons programmé l'atmega afin qu'il soit en esclave, qu'il reçoive un de la RPi &amp;quot;1&amp;quot; et retourne une valeur sauvegardé &amp;quot;int envoi&amp;quot;. Nous avons également commencé les tests pour la lecture de l'état d'un bouton (d'après les tests réalisés les semaines précédentes).&lt;br /&gt;
&lt;br /&gt;
'''Code'''&lt;br /&gt;
Comme nous l'avons vu précedement lors de nos recherches (semaines 1 à 4) : &lt;br /&gt;
La communication SPI nécessite l'utilisation des pins: &lt;br /&gt;
&lt;br /&gt;
MOSI -&amp;gt; GPIO11 //PB3  //master OUT to the slave IN&lt;br /&gt;
MISO -&amp;gt; GPIO12 //PB4 //slave OUT to the master IN&lt;br /&gt;
SCLK -&amp;gt; GPIO13 //PB5 //serial clock&lt;br /&gt;
SS -&amp;gt; GPIO10   //PB2  //slave select&lt;br /&gt;
&lt;br /&gt;
Il faut également paramétrer l'atmega328p en Slave. On note que dans un premier temps, le programme sera codé avec l'arduino IDE (fichiers .ino). Une fois l'ensemble SPI RaspberryPi-Arduino fonctionnant, on remplacera ces codes par du langage C ou C++.&lt;br /&gt;
&lt;br /&gt;
Pour faire la connexion SPI sur l'atmega328p,  on utilise la librairie arduino SPI.h, on a alors directement les fonctions nécessaires intervenant sur les registres souhaités : SPCR (spi control register), SPSR (spi status register) et SPDR (spi data register). &lt;br /&gt;
 &lt;br /&gt;
  #include &amp;lt;SPI.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il est important d'initialise d'abord le setup et on active le port série pour pourvoir utiliser le moniteur série. (Cela servira à verifier la valeur envoyée par la RPi) &lt;br /&gt;
&lt;br /&gt;
 void setup (void)&lt;br /&gt;
 {&lt;br /&gt;
   Serial.begin (9600);  &lt;br /&gt;
   pinMode(MISO, OUTPUT);  //configuration en esclave *master in slave out*&lt;br /&gt;
   pinMode(buttonPin,INPUT);  //config pin bouton&lt;br /&gt;
   // turn on SPI in slave mode&lt;br /&gt;
   SPCR |= _BV(SPE);&lt;br /&gt;
   // preparation interruptions&lt;br /&gt;
   pos = 0;   // buffer empty&lt;br /&gt;
   process_it = false;&lt;br /&gt;
   // activation interruptions&lt;br /&gt;
   SPI.attachInterrupt();&lt;br /&gt;
 }  &lt;br /&gt;
 &lt;br /&gt;
On oublie pas de déclarer les interruptions afin de bien lire la requête reçue. &lt;br /&gt;
 &lt;br /&gt;
// SPI interrupt routine&lt;br /&gt;
ISR (SPI_STC_vect)&lt;br /&gt;
{&lt;br /&gt;
  byte c = SPDR;  // grab byte from SPI Data Register&lt;br /&gt;
  // add to buffer if room&lt;br /&gt;
  if (pos &amp;lt; sizeof buf)&lt;br /&gt;
    {&lt;br /&gt;
    buf [pos++] = c;&lt;br /&gt;
    // example: newline means time to process buffer&lt;br /&gt;
    if (c == '\n')&lt;br /&gt;
      process_it = true;&lt;br /&gt;
    }  // end of room available&lt;br /&gt;
}  // end of interrupt routine SPI_STC_vect&lt;br /&gt;
&lt;br /&gt;
Dans la loop main, on traite la requête et on utilise '''SPI.transfer(envoi);''' pour transferer à la RPi les données souhaitées. &lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, nous avons également commencé des programmes de test SPI pour la RPi. Il s'agit principalement de programmes de tests tout faits permettant de vérifier la connexion entre cette dernière et l'arduino. Par exemple, la RPI envoie &amp;quot;bonjour&amp;quot; et l'arduino lui retourne ce qu'elle reçoit, soit &amp;quot;bonjour&amp;quot;. Sans succés alors. &lt;br /&gt;
&lt;br /&gt;
====Electronique : Fritzing révision====&lt;br /&gt;
&lt;br /&gt;
Lors de la semaine, le modèle PCB de la carte arduino a été réalisé de nouveau sous fritzing avec les broches et connections manquantes. Nous avons également revu la configuration du bouton reset  et ajouté une led d'état de l'alimentation. Nous avons ainsi envoyé deux cartes identiques à la réalisation.&lt;br /&gt;
La carte déjà soudée lors des derniers jours fonctionnant, elle nous sert de prototype de programmation. Nous pouvons ainsi avancer à la fois sur la programmation des modules mais aussi sur leur réalisation. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 10&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation : PS4 et SPI sur RPi====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Raspberry PI et SPI'''&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine, pour la partie Atmega328p-Modules, nous nous sommes concentrés sur la programmation de la communication SPI avec la raspberry pi. Cette semaine a permis une étude plus approfondit sur le fonctionnement pour la RPi. &lt;br /&gt;
&lt;br /&gt;
On rappelle, comme vu des semaines 1 à 4, pour la RPI3 (tout comme la RPi Zero W) utilise les broches : SCLK (23), MISO(21), MOSI (19) et SPI CS0 (24), SPI CS1 (26). &lt;br /&gt;
On la programme en Master. A l'aide des fichiers tests d'inspiration, on pourra directement programmer la RPi en C. Lors de la réalisation du code, il y a 3 étapes : l'initialisation/parametrage en SPI pour être maître, l'envoie de la requête puis la réception de données en retour. &lt;br /&gt;
&lt;br /&gt;
Programmant en C, il ne faut pas oublier les librairies suivantes :&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;getopt.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;sys/ioctl.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/types.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/spi/spidev.h&amp;gt;   //pour SPI&lt;br /&gt;
&lt;br /&gt;
On va déclarer des variables globales permettant le paramétrage :&lt;br /&gt;
&lt;br /&gt;
 static const char *device = &amp;quot;/dev/spidev0.0&amp;quot;;  //si on veut CS0 pour atteindre notre SS&lt;br /&gt;
 static uint8_t mode;       //mode est par défaut à 0&lt;br /&gt;
 static uint8_t bits = 8;    //bits par mot échangé&lt;br /&gt;
 static uint32_t speed = 500000;  &lt;br /&gt;
 static uint16_t delay;&lt;br /&gt;
&lt;br /&gt;
Dans notre main, on ouvre le port (la connexion) au device souhaité,  on vérifie les paramètres (registres, connexions...) puis exécute la fonction transfer(fd). transfer(fd) transmet la requête et s'occupe de la réception. &lt;br /&gt;
&lt;br /&gt;
 fd = open(device, O_RDWR);&lt;br /&gt;
 transfer(fd);&lt;br /&gt;
 close(fd);&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 11&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation: PS4, SSH et tests SPI (RPi3&amp;amp;Atemga328p)====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Raspberry PI, Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
Afin de facilité la programmation en utilisant Ethernet, nous avons installer et configuré la RPi pour l'utiliser en SSH depuis les ordinateurs de la E306. En effet, SSH permet de se connecter à distance sur une machine en utilisant un compte utilisateur de la dite machine. En mettant ssh, on pourra directement agir sur les fichiers de la raspberry depuis un terminal de notre PC. Pour cela, on a d'abord vérifier l'adresse IP de notre raspberry pi : 172.26.145.106 avec un écran mais on peut aussi utiliser les commandes ip a et ifconfig. Puis activer le ssh sur la raspberry pi. &lt;br /&gt;
On modifie alors le fichier config.txt mais également etc/network/interfaces pour configurer la bonne interface Ethernet sur la raspberry pi.&lt;br /&gt;
&lt;br /&gt;
[[Fichier: configSSH_raspi.png||left|300px|config ssh ethernet]]&lt;br /&gt;
&lt;br /&gt;
Il nous suffit alors de taper la commande : ssh pi@172.26.145.106  pour accéder à notre RPi. &lt;br /&gt;
&lt;br /&gt;
Nous avons continué à réaliser la communication SPI avec des tests entre une arduino UNO et la RPI3. Nous avons commencé par des tests simples inspirés des études de deux semaines précédentes et modulés selon notre utilité.  &lt;br /&gt;
Nous arrivons alors à lire l'état envoyer &amp;quot;bonjour&amp;quot; et recevoir &amp;quot;ça va&amp;quot; ou encore &amp;quot;1&amp;quot; et recevoir &amp;quot;3&amp;quot;. Il faut noter que le SPI échange des trames, la RPI reçoit alors des hexadécimaux. &lt;br /&gt;
Nous avons alors continué pour recevoir l'état du bouton ou du joystick lors de l'envoie de &amp;quot;1&amp;quot; sur l'Arduino328p. La semaine prochaine nous testerons ces même codes fonctionnels sur les cartes atmeg327p. &lt;br /&gt;
&lt;br /&gt;
A la fin de cette semaine, nous avons alors des codes Arduino-SPI (.ino) et des codes Raspberry-SPI (.c) permettant l'échange de données. Le but est maintenant de l'adapter aux cartes imprimées et de le rendre pleinement fonctionnel pour plusieurs cartes à la fois, puis ajouter une boucle de vérification en continue jusqu'à une deuxième requête de la RPi.&lt;br /&gt;
&lt;br /&gt;
====Electronique: réalisation au propres des PCB modules====&lt;br /&gt;
&lt;br /&gt;
Suite à une nouvelle erreur de réalisation cartes électronique, nous avons  refait et renvoyé à nouveau les cartes imprimées atmega328p.&lt;br /&gt;
Nous les souhaitons au propre pour une version finale. Une fois celle-ci imprimées nous pourrons en avoir 3 , un pour chaque module. Les cartes étaient bien imprimées en bottom mais lors du passage des traversants de bottom à top, le logiciel ne les a pas fait miroiter. Par manque d'attention nous avons alors envoyé les fichiers gerber pour des cartes ayant les composants du même coté que la couche de cuivre. &lt;br /&gt;
Les cartes électroniques actuelles sont alors correctes et fonctionnelles mais difficile à souder. Pour eviter les erreurs et continuer sur des prototypes de carte nous préférons attendre en nous concentrant sur la programmation PSI de la Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 12&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Raspberry PI, Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
-  réflexion: penser à faire boucler sur l'arduino une fois la requête reçu, ça veut dire que la manette est ON et donc vérifier continuellement les modules sur chaque atmega.&lt;br /&gt;
- SPI raspberry pi - arduino recuperation état du bouton avec les cartes modules  (/!\ récuperation à faire dans une variable) &lt;br /&gt;
&lt;br /&gt;
-SSH perso &lt;br /&gt;
adresse Rasppi: 192.168.137.10&lt;br /&gt;
&lt;br /&gt;
====Electronique: Finalisation soudure Modules====&lt;br /&gt;
&lt;br /&gt;
Soudure au propre et finale d'une carte atmega328p et donc envoie pour la réalisation de 2 autres cartes similaires et récupération de matériel&lt;br /&gt;
Soudure des 2 autres cartes, + tests sur les états = fonctionnelles.&lt;br /&gt;
On a donc bien 3 cartes pour les 3 modules de types différents (1 bouton, 1 joystick, 1 gachette)&lt;br /&gt;
PCB pour les 2 joysticks (qui serviront de thumbstick et gachette)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 13 et plus&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
====Programmation====&lt;br /&gt;
&lt;br /&gt;
'''Raspberry Pi Zero W et PS4'''&lt;br /&gt;
&lt;br /&gt;
'''Modules Atmega328p et SPI'''&lt;br /&gt;
&lt;br /&gt;
====Electronique====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
(à mettre rapport + git + drive)&lt;br /&gt;
&lt;br /&gt;
=Datasheets=&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Projets_IMA4_SC_%26_SA_2017/2018&amp;diff=50475</id>
		<title>Projets IMA4 SC &amp; SA 2017/2018</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Projets_IMA4_SC_%26_SA_2017/2018&amp;diff=50475"/>
				<updated>2018-02-09T16:37:53Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : /* Matériel à acquérir */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Merci de référencer vos pages de projets ici. Merci aussi d'uniformiser vos formats que ce soit en regardant la présentation des projets déjà créés ou en demandant une modification du format des précédents si votre façon de faire vous semble la meilleure. Dans tous les cas un minimum de communication entre les binômes est conseillée.&lt;br /&gt;
&lt;br /&gt;
Toutes les sources doivent être déposées sur notre archive GIT. Le service est disponible à l'URL [https://archives.plil.fr archives.plil.fr]. Connectez-vous avec vos identifiants Polytech'Lille. Sauf indication contraire de vos encadrants, rendez le projet public et mettez le lien sur votre Wiki. Vous pouvez trouver de la documentation sur ce système d'archives sur ce [https://git-scm.com/book/fr/v1 site].&lt;br /&gt;
&lt;br /&gt;
== Répartition des binômes ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Projet !! Encadrants école !! Elèves&lt;br /&gt;
|-&lt;br /&gt;
| P0 [[IMA4 2017/2018 P0|Modèle]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P1 [[IMA4 2017/2018 P1|Automatisation de la production de bière]]&lt;br /&gt;
| Rémy Bernard / Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Henri Carlier / Quentin Boëns&lt;br /&gt;
|-&lt;br /&gt;
| P3 [[IMA4 2017/2018 P3|Sécurisation de l'Internet des Objets par surveillance globale]]&lt;br /&gt;
| Alexandre Boé / Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Ji Yang&lt;br /&gt;
|-&lt;br /&gt;
| P4 [[IMA4 2017/2018 P4|Développement d'un module d'énergie pour Internet des Objets]]&lt;br /&gt;
| Alexandre Boé / Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Abass Ayoub / Alexis Viscogliosi&lt;br /&gt;
|-&lt;br /&gt;
| P5 [[IMA4 2017/2018 P5|Réseau de capteurs de pollution]]&lt;br /&gt;
| Thomas Vantroys / Alexandre Boé / Xavier Redon&lt;br /&gt;
| Paul Ribeiro / Naif Mehanna&lt;br /&gt;
|-&lt;br /&gt;
| P6 [[IMA4 2017/2018 P6|Réseau LoRaWAN]]&lt;br /&gt;
| Alexandre Boé / Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Antoine Gosse&lt;br /&gt;
|-&lt;br /&gt;
| P7 [[IMA4 2017/2018 P7|Brique pour apprentissage informatique]]&lt;br /&gt;
| Alexandre Boé / Emmanuelle Pichonnat / Thomas Vantroys&lt;br /&gt;
| Maéva Delaporte / Simon Blas&lt;br /&gt;
|-&lt;br /&gt;
| P10 [[IMA4 2017/2018 P10|Portage de RIOT-OS sur MSP430 pour IOT]]&lt;br /&gt;
| Thomas Vantroys / Alexandre Boé / Xavier Redon&lt;br /&gt;
| Baptiste Cartier&lt;br /&gt;
|-&lt;br /&gt;
| P12 [[IMA4 2017/2018 P12|Système d'ostéophonie pour magicien]]&lt;br /&gt;
| Alexandre Boé / Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Amine El Messaoudi / Simon Feutrier&lt;br /&gt;
|-&lt;br /&gt;
| P14 [[IMA4 2017/2018 P14|Ecran géant modulaire]]&lt;br /&gt;
| Alexandre Boé / Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Jade Dupont&lt;br /&gt;
|-&lt;br /&gt;
| P15 [[IMA4 2017/2018 P15|Balle vibrante connectée pour enfants sourd]]&lt;br /&gt;
| Rodolphe Astori / Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Thibault Cattelain / Thomas Cunin&lt;br /&gt;
|-&lt;br /&gt;
| P16 [[IMA4 2017/2018 P16|Sous-chaussure chauffante pour docker]]&lt;br /&gt;
| Remy Bernard / Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Rémi Mairesse / Gustave Roux&lt;br /&gt;
|-&lt;br /&gt;
| P17 [[IMA4 2017/2018 P17|Safe Watch]]&lt;br /&gt;
| Xavier Redon&lt;br /&gt;
| Oumaima Naanaa&lt;br /&gt;
|-&lt;br /&gt;
| P18 [[IMA4 2017/2018 P18|Mandala électronique]]&lt;br /&gt;
| Xavier Redon / Alexandre Boé&lt;br /&gt;
| Lirui Zhang / Lihe Zhang&lt;br /&gt;
|-&lt;br /&gt;
| P19 [[IMA4 2017/2018 P19|Bijou électronique]]&lt;br /&gt;
| Xavier Redon / Alexandre Boé&lt;br /&gt;
| Keren Qiang / Lijie Yao&lt;br /&gt;
|-&lt;br /&gt;
| P20 [[IMA4 2017/2018 P20|Solution de messagerie à base de conteneurs]]&lt;br /&gt;
| Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Maxime Creteur / Fan Gao&lt;br /&gt;
|-&lt;br /&gt;
| P22 [[IMA4 2017/2018 P22|Horloge numérique DCF77, serveur de temps et ludique]]&lt;br /&gt;
| Xavier Redon / Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Amaury Knockaert / Fabrice Taingland&lt;br /&gt;
|-&lt;br /&gt;
| P23 [[IMA4 2017/2018 P23|Table de bar connectée]]&lt;br /&gt;
| Thomas Vantroys / Alexandre Boé&lt;br /&gt;
| Matthieu Delobelle&lt;br /&gt;
|-&lt;br /&gt;
| P25 [[IMA4 2017/2018 P25|Essaim de robots]]&lt;br /&gt;
| Xavier Redon / Alexandre Boé&lt;br /&gt;
| Ganix Etcheguibel / Benjamin Canu&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[IMA4 2017/2018 P30|Contrôle d'une caméra WiFi.]]&lt;br /&gt;
| Nathan Martin / Xavier Redon&lt;br /&gt;
| Thomas Hubert / Taky Djeraba&lt;br /&gt;
|-&lt;br /&gt;
| P32 [[IMA4 2017/2018 P32|Tribute to Peter Vogel]]&lt;br /&gt;
| Thomas Vantroys / Alexandre Boé / Xavier Redon&lt;br /&gt;
| Antoine Untereiner / Jean-Baptiste Watine&lt;br /&gt;
|-&lt;br /&gt;
| P35 [[IMA4 2017/2018 P35|Manette de jeu vidéo pour personne en situation de handicap]]&lt;br /&gt;
| Alexandre Boé / Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Camille Saad / Transley Gracias&lt;br /&gt;
|-&lt;br /&gt;
| P39 [[IMA4 2017/2018 P39|Musique des plantes]]&lt;br /&gt;
| Emmanuelle Pichonat / Alexandre Boé&lt;br /&gt;
| Rodolphe Toin / Xavier Chenot&lt;br /&gt;
|-&lt;br /&gt;
| P40 [[IMA4 2017/2018 P40|Exploration du réseau d'anonymisation Tor]]&lt;br /&gt;
| Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Anthony Durot / Antoine Duquenoy&lt;br /&gt;
|-&lt;br /&gt;
| P42 [[IMA4 2017/2018 P42|Automatisation de l'assemblage de LEGO]]&lt;br /&gt;
| Xavier Redon / Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Justine Senellart / Eloi Zalczer&lt;br /&gt;
|-&lt;br /&gt;
| P44 [[IMA4 2017/2018 P44|Reconnaissance d’objets via Traitement d’Image]]&lt;br /&gt;
| Thomas Danel / Vincent Coelen&lt;br /&gt;
| Zoé Briois / Damien Narbais&lt;br /&gt;
|-&lt;br /&gt;
| P49 [[IMA4 2017/2018 P49|Suivi de la qualité de l’air]]&lt;br /&gt;
| Romain Rouvoy / Rédha Kassi&lt;br /&gt;
| Nicolas Havard / Hugo Delbroucq&lt;br /&gt;
|-&lt;br /&gt;
| P50 [[IMA4 2017/2018 P50|Etage commande de Centaure]]&lt;br /&gt;
| Xavier Redon / Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Haroun Abdelali&lt;br /&gt;
|-&lt;br /&gt;
| P60 [[IMA4 2017/2018 P60|Commande de niveaux d’eau]]&lt;br /&gt;
| Midzodzi Pekpe&lt;br /&gt;
| Claire Vandamme / Alexendra Villa&lt;br /&gt;
|-&lt;br /&gt;
| P64 [[IMA4 2017/2018 P64|Simulation Labview et mise en réseau Modbus d’un ascenseur]]&lt;br /&gt;
| Midzodzi Pekpe / Blaise Conrard&lt;br /&gt;
| François-Xavier Cockenpot&lt;br /&gt;
|-&lt;br /&gt;
| P65 [[IMA4 2017/2018 P65|Exosquelette pour apprentissage]]&lt;br /&gt;
| Alexandre Boé / Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Florian Le Foll&lt;br /&gt;
|-&lt;br /&gt;
| P66 [[IMA4 2017/2018 P66|Coupe de France de robotique]]&lt;br /&gt;
| Alexandre Boé /  Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Geoffrey Preud'homme / Amaury Carval&lt;br /&gt;
|-&lt;br /&gt;
| P67 [[IMA4 2017/2018 P67|Scanner 3D DIY]]&lt;br /&gt;
| Xavier Redon / Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Erwan Dufresne&lt;br /&gt;
|-&lt;br /&gt;
| P68 [[IMA4 2017/2018 P68|Générateur de chronogrammes d'ordonnancement]]&lt;br /&gt;
| Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Samy Belhouachi&lt;br /&gt;
|-&lt;br /&gt;
| PP1 [[IMA4 2017/2018 Pré-projet 1|Robot hexapode pour escalier]]&lt;br /&gt;
| Alexandre Boé / Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Eduardo Gomez-Riaza &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Matériel à acquérir ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Projet !! Matériel&lt;br /&gt;
|-&lt;br /&gt;
| P1 [[IMA4 2017/2018 P1|Automatisation de la production de bière]]&lt;br /&gt;
| &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Capteur de température DS18B20 [https://www.gotronic.fr/art-sonde-etanche-ds18b20-19339.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Raccord tuyau en Y [https://fr.rs-online.com/web/p/coupleurs-de-tuyaux-flexibles/4197259/] &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2 Pompes péristaltique dc 12V [https://www.mouser.fr/ProductDetail/Adafruit/1150?qs=sGAEpiMZZMsMyYRRhGMFNp8jyMJFi5X9NqTp2aghyow%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Tube en silicone [https://fr.rs-online.com/web/p/tubes-flexibles/9124751/]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue&amp;quot;&amp;gt;Tube en cuivre [https://fr.rs-online.com/web/p/tubes-en-cuivre/0846503/]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;2 résistances 1kOhms&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: purple;&amp;quot;&amp;gt;2 transistors bc547&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: purple;&amp;quot;&amp;gt;2 diodes&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;14 cables M/M&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: purple;&amp;quot;&amp;gt;Alimentation DC 12V &amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P3 [[IMA4 2017/2018 P3|Sécurisation de l'Internet des Objets par surveillance globale]]&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: purple;&amp;quot;&amp;gt;Xbee USB Adapter * 1 [https://www.amazon.fr/dp/B017KGBP6Y/ref=asc_df_B017KGBP6Y48622783/?tag=googshopfr-21&amp;amp;creative=22722&amp;amp;creativeASIN=B017KGBP6Y&amp;amp;linkCode=df0&amp;amp;hvdev=c&amp;amp;hvnetw=g&amp;amp;hvqmt=]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: purple;&amp;quot;&amp;gt;XDigiKey Xbee module 2.4Hz * 4 [https://www.digikey.com/catalog/en/partgroup/xbee-and-xbee-pro-zb-zigbee/12201] ReX : imprécis, cherchez chez gotronic&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: purple;&amp;quot;&amp;gt;l'antenne pour Xbee * 4  [https://www.matlog.fr/fr/61-antennes-24-ghz.html]&amp;lt;/font&amp;gt;    &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Arduino uno * 4 [https://store.arduino.cc/usa/arduino-uno-rev3]&amp;lt;/font&amp;gt;         &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Xbee Shields pour Arduino * 4  [https://store.arduino.cc/arduino-wirelss-sd-shield]&amp;lt;/font&amp;gt;  &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Câble USB pour Arduino * 4  [https://fr.aliexpress.com/item/usb-cable-for-arduino-with-UNO-R3-ATMEGA328P-PU-ATMEGA8U2-and-Mega-2560-R3-Mega2560-REV3/32624000858.html?src=google&amp;amp;albslr=221466033&amp;amp;isdl=y&amp;amp;aff_short_key=UneMJZVf&amp;amp;source=%7Bifdyn:dyn%7D%7Bifpla:pla%7D%7Bifdbm:DBM&amp;amp;albch=DID%7D&amp;amp;src=google&amp;amp;albch=shopping&amp;amp;acnt=494-037-6276&amp;amp;isdl=y&amp;amp;albcp=653151748&amp;amp;albag=36672819047&amp;amp;slnk=&amp;amp;trgt=61865531738&amp;amp;plac=&amp;amp;crea=fr32624000858&amp;amp;netw=g&amp;amp;device=c&amp;amp;mtctp=&amp;amp;gclid=Cj0KCQiAv_HSBRCkARIsAGaSsrC92WYZ2oroveXJLqUQCBfRBuRMa8VoShOZWNBitPIvrry8V1HpMmkaAg-QEALw_wcB]  &amp;lt;/font&amp;gt;                               &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Batterie externe(qui a 2 ports à recharger) * 4 [https://www.amazon.fr/EC-Technology-22400mAh-Batterie-capacit%C3%A9/dp/B00F5Q4F0U/ref=sr_1_1_sspa?ie=UTF8&amp;amp;qid=1513804729&amp;amp;sr=8-1-spons&amp;amp;keywords=batteries+externe&amp;amp;psc=1]&amp;lt;/font&amp;gt;  &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;USB À UART TTL Câble * 1   [https://fr.aliexpress.com/item/USB-To-RS232-TTL-USB-To-COM-Serial-Adapter-Cable-Module-PL2303HX-Converter/1859099599.html?src=google&amp;amp;albslr=201492522&amp;amp;isdl=y&amp;amp;aff_short_key=UneMJZVf&amp;amp;source=%7Bifdyn:dyn%7D%7Bifpla:pla%7D%7Bifdbm:DBM&amp;amp;albch=DID%7D&amp;amp;src=google&amp;amp;albch=shopping&amp;amp;acnt=494-037-6276&amp;amp;isdl=y&amp;amp;albcp=653151748&amp;amp;albag=36672819047&amp;amp;slnk=&amp;amp;trgt=61865531738&amp;amp;plac=&amp;amp;crea=fr1859099599&amp;amp;netw=g&amp;amp;device=c&amp;amp;mtctp=&amp;amp;gclid=CjwKCAiAsejRBRB3EiwAZft7sENdHUiXBHo-JhKGxsmwfnaRATNn_OPdCl9y-WVMwi8elX5S6QCMnhoCNm8QAvD_BwE]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Breadboard de prototypage * 3 [https://www.amazon.fr/Breadboard-Carte-dexp%C3%A9rimentation-Soudure-Solderless/dp/B06XWFG9DT/ref=sr_1_2_sspa?ie=UTF8&amp;amp;qid=1516049551&amp;amp;sr=8-2-spons&amp;amp;keywords=breadboard+arduino&amp;amp;psc=1]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;USB câble pour xbee USB Adapter [https://www.amazon.fr/dp/B003OSS4SA/ref=asc_df_B003OSS4SA49349077/?tag=googshopfr-21&amp;amp;creative=22698&amp;amp;creativeASIN=B003OSS4SA&amp;amp;linkCode=df0&amp;amp;hvdev=c&amp;amp;hvnetw=g&amp;amp;hvqmt=]&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P4 [[IMA4 2017/2018 P4|Développement d'un module d'énergie pour Internet des Objets]]&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1xModule solaire [[https://www.mouser.fr/ProductDetail/MikroElektronika/MIKROE-651?qs=sGAEpiMZZMvxW%252bY8mn0Q9U%252b%2fhOkIvSmCqkyN6XrqZsI%3d]]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1xBatterie [[http://fr.farnell.com/varta/55608303059/batterie-nimh-3-6v/dp/279341]]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1xConvertisseur Boost [[https://fr.rs-online.com/web/p/convertisseurs-boost/8123659/]]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2xDiode de Schottky de redressement [[https://fr.rs-online.com/web/p/diodes-de-redressement-et-schottky/7390436/]]&amp;lt;/font&amp;gt; &lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1xConvertisseur Buck-Boost (sortie) [[https://fr.rs-online.com/web/p/regulateurs-a-decoupage-buck-boost/6989091/]]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2xSupercondensateur 2,7V - 50F [[https://www.mouser.fr/ProductDetail/Maxwell-Technologies/BCAP0050-P270-T01/?qs=sGAEpiMZZMsCu9HefNWqpt2sk1W1BTZ59akVpHhf5KE=]]&amp;lt;/font&amp;gt;&lt;br /&gt;
* 10 jumpers [[https://fr.rs-online.com/web/p/cavaliers-et-shunts/6742397/]]&lt;br /&gt;
* Module MPPT [[https://www.mouser.fr/ProductDetail/STMicroelectronics/SPV1050TTR?qs=sGAEpiMZZMsMLZWdhVL71%2fkXzzgq0Ptzmbr9rWlHkic%3d]]&lt;br /&gt;
* 20 pin connection mâle  [[https://fr.rs-online.com/web/p/barrettes-pour-ci/8967620/]]&lt;br /&gt;
* 10 transistor npn commandé en tension  [[https://fr.rs-online.com/web/p/transistors-bipolaires/7390381/]]&lt;br /&gt;
|-&lt;br /&gt;
| P5 [[IMA4 2017/2018 P5|Réseau de capteurs de pollution]]&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;ESP32 [[https://www.gotronic.fr/art-carte-esp32-dev-13907-25510.htm]]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Module GPS [[https://www.gotronic.fr/art-module-gps-tel0094-25732.htm]]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Batterie Lithium Ion [[https://fr.rs-online.com/web/p/batteries-externes/8755758/]] ou [[https://fr.rs-online.com/web/p/batteries-externes/1366470/]] suivant le prix&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Adaptateur micro USB&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Breadboard&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Un smartphone sous Android (Version Lollipop minimale - optionnel)&amp;lt;/font&amp;gt;&lt;br /&gt;
* HPMA115S0-XXX (Capteur déjà acheté normalement)&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2 connecteurs micro-USB [[https://www.gotronic.fr/art-embase-micro-usb-b-cms-18339.htm]]&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P6 [[IMA4 2017/2018 P6|Réseau LoRaWAN]]&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; 1 * iC880A-SPI &amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; 1 * Raspberry &amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; 2 * Nucleo-F4 &amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; 2 * Shield STM32 LoRa&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P7 [[IMA4 2017/2018 P7|Brique pour apprentissage informatique]]&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;1xCapteur ultrason [https://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2xafficheurs-7segments [http://fr.farnell.com/broadcom-limited/hdsp-7801/afficheur-a-leds-7-62mm-vert/dp/1003275]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;4xboutons poussoirs [https://www.gotronic.fr/art-module-bouton-poussoir-st043-26115.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;4xleds [https://www.gotronic.fr/art-led-5-mm-led5bt-21009.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2xpotentiomètres [https://www.gotronic.fr/art-potentiometre-lineaire-47k-8486-11110.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2xcâble [https://www.gotronic.fr/art-cordon-alimentation-pile-9v-19414.htm] + pile [https://www.gotronic.fr/art-pile-9v-au-lithium-uv9l-5575.htm] pour alimenter l'Arduino&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;2xArduino Uno [https://store.arduino.cc/arduino-uno-rev3]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2xModule bluetooth pour arduino (BTM-01)[https://www.mouser.fr/ProductDetail/OSEPP-Electronics/BTM-01/?qs=YCa%2fAAYMW020ADfc44%2fjCA%3d%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;10xMicrocontrôleur Atmega328p [http://fr.farnell.com/microchip/atmega328p-pu/micro-8-bits-avr-32k-flash-28pdip/dp/1715487]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;2xKit roue + moteur [https://www.gotronic.fr/art-kit-roue-moteur-23569.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;1xRoue folle [https://www.robotshop.com/eu/fr/roulette-bille-pololu-0375-po-metal.html]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;1xContrôleur de moteur [https://www.gotronic.fr/art-commande-de-2-moteurs-tb6612fng-2x1a-21716.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;50xpicots mâle [https://fr.rs-online.com/web/p/barrettes-pour-ci/8967620/]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;5xpicots femelle [https://fr.rs-online.com/web/p/barrettes-pour-ci/2677400/]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;4x10 ressorts [https://fr.rs-online.com/web/p/ressorts-de-compression/0821245/]&amp;lt;/font&amp;gt;&lt;br /&gt;
*1xplaque de contreplaqué [https://www.leroymerlin.fr/v3/p/produits/predecoupe-medium-mdf-naturel-ep-10-mm-l-120-x-l-60-cm-e105237#&amp;amp;xtmc=predecoupe&amp;amp;xtcr=1]&lt;br /&gt;
|-&lt;br /&gt;
| P10 [[IMA4 2017/2018 P10|Portage de RIOT-OS sur MSP430 pour IOT]]&lt;br /&gt;
| &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt; 2xCC430 [https://www.mouser.fr/ProductDetail/Texas-Instruments/CC430F5137IRGZT/?qs=%2fqzd9s%252bcLd7GiX35ln9VRA==] (fourni par les tuteurs de projet)&amp;lt;/span&amp;gt; 3 reçus&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt; 1xMSP430-CCRF  [https://www.olimex.com/Products/MSP430/Starter/MSP430-CCRF/] (fourni par les tuteurs de projet)&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt; 1xMSP-EXP430G2 [https://www.mouser.fr/productdetail/texas-instruments/msp-exp430g2?qs=sGAEpiMZZMv1ORdfpzTN%252bMwZ3%252b5KGk2B] (fourni par les tuteurs de projet)&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P12 [[IMA4 2017/2018 P12|Système d'ostéophonie pour magicien]]&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Raspberry Pi 3, &amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Microcontroleur STM32L433CCT6 [https://www.mouser.fr/ProductDetail/STMicroelectronics/STM32L433CCT6?qs=sGAEpiMZZMuoKKEcg8mMKFZaGHZhaFFC5XHr6X%2fBPloj9WsFWEQ6BA%3d%3d],&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Mémoire Flash IS25WP064A-RMLE [https://www.mouser.fr/productdetail/issi/is25wp064a-rmle?qs=sGAEpiMZZMtI%252bQ06EiAoG5kNS0TozX6Gt0%2FX%2Fi6ExQk%3D], &amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;DAC MCP4725A0T-E/CH [https://www.mouser.fr/productdetail/microchip-technology/mcp4725a0t-e-ch?qs=sGAEpiMZZMvfFCidbTccA97L6UsE6%2Fky], &amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Batterie 3.6V [https://www.gotronic.fr/art-accu-nimh-3-6v-300mah-290.htm], &amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Module Bluetooth 4.1 BM20SPKS1NBC-0001AA  [https://www.mouser.fr/ProductDetail/Microchip-Technology/BM20SPKS1NBC-0001AA?qs=sGAEpiMZZMsGelYiB%252bjhZv%252biZoDZL1ptX5ao52HhnlyFQbPW6KaEbg%3d%3d],&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Adafruit Bone Conductor Transduce [https://www.mouser.fr/ProductDetail/Adafruit/1674/?qs=sGAEpiMZZMsqIr59i2oRcvz%252byDSTdozphj%2f1Oxe6%252bAQ=], &amp;lt;/font&amp;gt;&lt;br /&gt;
* Transducteur Piézo diaphragme :&lt;br /&gt;
** &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;fréquence de résonance 2.9KHz (gotronic) [https://www.gotronic.fr/art-disque-piezoelectrique-dp035-3843.htm],&amp;lt;/font&amp;gt;&lt;br /&gt;
** &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;fréquence de résonance 4.6KHz (gotronic) [https://www.gotronic.fr/art-disque-piezoelectrique-dp027-3842.htm],&amp;lt;/font&amp;gt;&lt;br /&gt;
** &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;fréquence de résonance 6.6KHz (gotronic) [https://www.gotronic.fr/art-disque-piezoelectrique-dp024-3841.htm],&amp;lt;/font&amp;gt;&lt;br /&gt;
** &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Afréquence 8KHz 10KHz (RS) [https://fr.rs-online.com/web/p/buzzers-piezo/7214947/],&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Moteur Électrique CC RS Pro, 3 → 7,2 V c.c., 19,68 W, 19000 tr/min, 4,41 A  [https://fr.rs-online.com/web/p/moteurs-v-cc/2389721/].&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P14 [[IMA4 2017/2018 P14|Ecran géant modulaire]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P15 [[IMA4 2017/2018 P15|Balle vibrante connectée pour enfants sourd]]&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;8 vibreurs : [https://www.mouser.fr/productdetail/adafruit/1201?qs=sGAEpiMZZMsMyYRRhGMFNstIkcYqaSq8%2fLLE3lYp32I=]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Module Bluetooth 4.0 Low Energy : [https://www.mouser.fr/ProductDetail/Adafruit/2479?qs=sGAEpiMZZMsMyYRRhGMFNjWi9ZmxEfRwbLHKJ6JemUg%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Bobine de recharge à induction (norme Qi) : [https://www.mouser.fr/productdetail/adafruit/1901?qs=sGAEpiMZZMsMyYRRhGMFNkyDC95Rd%252blHW46I1pJekjA%3D]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Atmega 328p CMS : [https://www.mouser.fr/ProductDetail/Microchip-Technology-Atmel/ATMEGA328PB-AU?qs=sGAEpiMZZMvc81WFyF5EdrSRAEYMYvHlMc95YQj%2fArE%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1 Batterie rechargeable 5.2Ah :  [https://www.gotronic.fr/art-accu-li-ion-mgl9033-26425.htm#complte_desc]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 controleurs pour moteur :[https://www.mouser.fr/ProductDetail/STMicroelectronics/L293DD?qs=sGAEpiMZZMukgiigmf73gOko5bw7EE67]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2 condensateurs 14pF :[https://www.mouser.fr/ProductDetail/Murata-Electronics/GCQ1555C1H140FB01D?qs=sGAEpiMZZMs0AnBnWHyRQN7%2fAA2D2lPPLNRvFwtPLQHRWxf2q9etuA==]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1 crystal quartz 16MHz :[https://www.mouser.fr/ProductDetail/ECS/ECS-160-12-33Q-JES-TR?qs=sGAEpiMZZMuMAfj%252bWfX4nLed60zyr3PUv7Kre5ygQ%252bs%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 résistances CMS 10khoms 0603 :[http://fr.farnell.com/multicomp/mcre000164/res-couche-epaisse-10k-1-0-05w/dp/1711641]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 7 résistances CMS 1kohms 0603 :[http://fr.farnell.com/multicomp/mcre000140/res-couche-epaisse-1k-1-0-05w/dp/1711615?st=MULTICOMP%201K%200603]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 résistances CMS 470ohms 0603:[https://www.mouser.fr/ProductDetail/TDK/MMZ1608Y471BTA00?qs=sGAEpiMZZMu0dYp3dYbBlQn%252beM9UWul2G3hJ%2f7TLqL0%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 résistances CMS 2kOhms 0603 :[https://www.mouser.fr/ProductDetail/Panasonic-Industrial-Devices/ERJ-3EKF2001V?qs=sGAEpiMZZMu61qfTUdNhGzRxdwze5h8ZMDWmuHH2qQY%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 resistances CMS 340kOhms 0603 :[https://www.mouser.fr/ProductDetail/Vishay/CRCW0603340KFKEA?qs=sGAEpiMZZMukHu%252bjC5l7YRSQiDx9P4ktLgBETRAdfqw%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 resistances CMS 1.87MOhms 0603 :[https://www.mouser.fr/ProductDetail/Yageo/RC0603FR-071M87L?qs=sGAEpiMZZMu61qfTUdNhG6gKAQVNBKOo2zO%2fNI9xQvs%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2 resistances CMS 100kOhms 0603 :[https://www.mouser.fr/ProductDetail/Vishay-Draloric/RCG0603100KFKEA?qs=sGAEpiMZZMsa677hLZe2Z63dGP%2fTFOZQ]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 4 condensateur 10uF 0603 :[https://www.mouser.fr/ProductDetail/Taiyo-Yuden/LMK107BC6106MA-T?qs=sGAEpiMZZMukHu%252bjC5l7Yd8IIWTQlTYBUiPYtsE4Bzg%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1 condensateur 0.1uF 0603 :[https://www.mouser.fr/ProductDetail/Taiyo-Yuden/GMK107BJ104KAHT?qs=sGAEpiMZZMs0AnBnWHyRQNbg85K4ab%2f3WB4TApadaC0%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1 condensateur 2.2uF 0603 :[https://www.mouser.fr/ProductDetail/Taiyo-Yuden/JMK107B7225KAHTR?qs=sGAEpiMZZMs0AnBnWHyRQPSjYu%2fkbgu8y0KcZVF30DNOIVNQnIIJ3Q%3d%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1 condensateur 22uF 0603 :[https://www.mouser.fr/ProductDetail/Taiyo-Yuden/LMK107BBJ226MA-T?qs=sGAEpiMZZMs0AnBnWHyRQPSjYu%2fkbgu8OPGniOr6zLcT6eSTCbA%252bCQ%3d%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2 condensateur 1uF 0603 :[https://www.mouser.fr/ProductDetail/Taiyo-Yuden/GMK107BJ105KA-T?qs=sGAEpiMZZMs0AnBnWHyRQAEIN6r3SS%2fOBpoA9Mx5a9I%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1 condensateur 1210 100uF 1210 :[https://www.mouser.fr/ProductDetail/Murata-Electronics/GRM32ER61A107ME20L?qs=sGAEpiMZZMukHu%252bjC5l7Ya6pfwBk8EBeq55B9L%252bMJQA%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2 led verte CMS 1206 :[https://www.mouser.fr/ProductDetail/Kingbright/APTD3216LCGCK?qs=sGAEpiMZZMuCm2JlHBGefutc4sI%252bRg9%2fbKLcTuDCbMNnKZ3XxcbEWg%3d%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1 led orange 1206 CMS :[https://www.mouser.fr/ProductDetail/Lite-On/LTST-C150KAKT?qs=sGAEpiMZZMseGfSY3csMkTlTHQ2beMlrmGllatFacok%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2 led rouge 1206 CMS :[https://www.mouser.fr/ProductDetail/Kingbright/APTD3216LSURCK?qs=sGAEpiMZZMuCm2JlHBGefutc4sI%252bRg9%2fEbFuu2HcaZsnh6Yj8wyZLQ%3d%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1 led bleue CMS 1206 :[https://www.mouser.fr/ProductDetail/Kingbright/APTD3216LQBC-D?qs=sGAEpiMZZMseGfSY3csMkdgyOOAg6kv2SoHfbZ6fYRJR%252bPUfy4LTDQ%3d%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 module Bluetooth 802.15 :[https://www.mouser.fr/productdetail/seeed-studio/317030027?qs=wU1J8Md1npz%2F8UksA%252bh%252byw%3D%3D]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1 Regulateur de tension LDO :[https://www.mouser.fr/ProductDetail/Microchip-Technology-Micrel/MIC5225YM5-TR?qs=sGAEpiMZZMsGz1a6aV8DcNranXV84HMLR75Z9P39yqc%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1 Transistor PNP prépolarisé 100mA:[https://www.mouser.fr/ProductDetail/ON-Semiconductor/MMUN2133LT1G/?qs=ZpPixqFcBtysLCI/2LOB%252bQ==]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1 Régulateur de tension de commutation:[https://www.mouser.fr/ProductDetail/Texas-Instruments/TPS61090RSAR?qs=sGAEpiMZZMuo%252bmZx5g6tFAsofpr73Rbu]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1 chargeur de batterie pour une cellule Li-on:[http://fr.farnell.com/microchip/mcp73831t-2aci-ot/controleur-de-charge-li-ion-li/dp/1332158]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;3 Diodes :[https://www.mouser.fr/ProductDetail/Diodes-Incorporated/1N4148WQ-7-F?qs=sGAEpiMZZMtzpSA5GSDwayHNFYvfz9yMGFXnI15cqbU%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1 diodes et redresseurs:[https://www.mouser.fr/ProductDetail/ON-Semiconductor/MBR120ESFT1G?qs=sGAEpiMZZMtQ8nqTKtFS%2fCKUxMvjsmGzPwX1d8aVcbo%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1 inductance 6.8uH:[http://fr.farnell.com/bourns/srn6045ta-6r8m/inductance-aec-q200-6-8uh-3-6a/dp/2616892]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Quartz 32Mhz:[https://www.mouser.fr/ProductDetail/?qs=2xLVn2jvFusfExB%252byZEnpA%3D%3D]&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P16 [[IMA4 2017/2018 P16|Sous-chaussure chauffante pour docker]]&lt;br /&gt;
| &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2xArduino Pro Mini [https://www.mouser.fr/ProductDetail/Adafruit/2377?qs=sGAEpiMZZMsMyYRRhGMFNrePrikk4IpJQBQo3elmwiI%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1xbouclier USB vers UART pour mini Arduino [https://www.mouser.fr/ProductDetail/Digilent/410-212?qs=sGAEpiMZZMsF1ODjcwEocFxZWH6k8YAWBC6KMJ05oOA%3d] &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;4xcapteurs de température et humidité DHT22 [https://www.gotronic.fr/art-capteur-de-t-et-d-humidite-dht22-20719.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2xMOSFET [https://fr.rs-online.com/web/p/transistors-mosfet/5431184/]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1xbatterie [https://fr.rs-online.com/web/p/batteries-externes/7757508/?searchTerm=pb+A5200&amp;amp;relevancy-data=636F3D3126696E3D4931384E4C446573635461786F6E6F6D794272616E645365617263685465726D325F74656D70266C753D6672266D6D3D6D617463687061727469616C6D617826706D3D5E5B5C707B4C7D5C707B4E647D3F5C707B5A737D2D2C2F255C2E5D2B2426706F3D31313326736E3D592673743D4B4559574F52445F4D554C54495F414C5048415F414E445F4D554C54495F414C5048415F4E554D455249432673633D592677633D4E4F4E45267573743D7062204135323030267374613D706220413532303026]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1xfilm de tranfert thermique [https://fr.rs-online.com/web/p/tampons-decart-thermiques/5075605/] Référence SILPAD400AC &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1xBobine fil résisitif [https://fr.rs-online.com/web/p/cable-industriel-multiconducteur/7496344/]&amp;lt;/font&amp;gt;&lt;br /&gt;
*1xpaire de chaussure de sécurité (utilisation de nos chaussure)&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: purple;&amp;quot;&amp;gt;1xplaque de caoutchouc antidérapant antivibration [https://www.leroymerlin.fr/v3/p/produits/dalle-antiderapante-noir-gpi-e128988] (achetez, remboursement par la suite)&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: purple;&amp;quot;&amp;gt;1xRouleau de scratch [https://www.leroymerlin.fr/v3/p/produits/ruban-adhesif-mini-ruban-scratch-auto-agrippant-scratch-grip-l-2000-x-l-10-mm-e1400146133] (achetez, remboursement par la suite)&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| P17 [[IMA4 2017/2018 P17|Safe Watch]]&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; Arduino &amp;lt;/font&amp;gt;, &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; Bouclier Arduino LCD &amp;lt;/font&amp;gt;, &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; Bouclier GPS Arduino &amp;lt;/font&amp;gt;, &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; Bouclier GSM Arduino &amp;lt;/font&amp;gt;,&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; Plaque d'essai, câbles, 3 boutons &amp;lt;/font&amp;gt;,&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;  Adafruit FONA 808 Cellular + GPS Breakout [https://eu.mouser.com/ProductDetail/Adafruit/2691?qs=sGAEpiMZZMuC4zZxLL0ZTS5y3%2fvN2YqqC7jd%252b8Ewo0tvrzwH6EzcUw%3d%3d]&amp;lt;/font&amp;gt;,&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; OLED Display de MicroView [https://www.mouser.fr/ProductDetail/SparkFun-Electronics/DEV-12923/?qs=%2fha2pyFaduhq0%2f0L4ziGOlrL8k9CznZ%2fHCwmtADFcmfM%252bNj6xnUOTR2J1R9vVHxC]&amp;lt;/font&amp;gt;,&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; Antenne GPS [https://fr.rs-online.com/web/p/antennes-gps/6534111/] &amp;lt;/font&amp;gt;,&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;mini JST 2-pin pour la batterie [https://www.mouser.fr/ProductDetail/Adafruit/261?qs=sGAEpiMZZMsMyYRRhGMFNu1QGkj38%2fjpots4OzXyI0g%3d]&amp;lt;/font&amp;gt;,&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: purple;&amp;quot;&amp;gt; batterie:1200mAh sized Lithium ion/polymer battery [https://www.mouser.fr/ProductDetail/Adafruit/258?qs=%2fha2pyFadui%252bGfcAGyN46wlBHAaZlEsaG2TnF48kfbRBKCZP7yH6DDXLDCpScZ1uLz%2f7LJyXDtVbPM%252b2aEQ0roW2VWPjGRnj]&amp;lt;/font&amp;gt;,&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; headphone jack : [https://www.mouser.fr/ProductDetail/Adafruit/1699?qs=sGAEpiMZZMsMyYRRhGMFNsUVB%252bwflvtuRD2AT1i4W%2fI%3d]&amp;lt;/font&amp;gt;,&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; Antenne GSM [https://fr.rs-online.com/web/p/antennes-gsm-et-gprs/8968291/] &amp;lt;/font&amp;gt;,&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: black;&amp;quot;&amp;gt; Arduino micro [https://www.mouser.fr/ProductDetail/Arduino/A000053?qs=sGAEpiMZZMvq007EO%252bXAYZAVvNFL4IMQ]&amp;lt;/font&amp;gt;,&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; microUSB cable  &amp;lt;/font&amp;gt;,&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; usb programmer [https://www.mouser.fr/ProductDetail/SparkFun/DEV-12924?qs=%2fha2pyFadujajXN5UxBZ39QNIwYchoft2tr4SjuyzPeTBIS0mD6hlArvMlp2O59kyDG2ZmVILu%252bM2KFfVewETA%3d%3d]&amp;lt;/font&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| P18 [[IMA4 2017/2018 P18|Mandala électronique]]&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;TCL5947*3 [http://fr.farnell.com/texas-instruments/tlc5947dap/ic-led-driver-linear-32-tssop/dp/1755259]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Arduino Atmega328p [http://fr.farnell.com/microchip/atmega328p-aur/mcu-8-bits-atmega-20mhz-tqfp-32/dp/2425124?st=atmega328p]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;LEDs rougesx40 [http://fr.farnell.com/kingbright/kpl-3015ec/led-12mcd-rouge-617nm/dp/2426224]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;LEDs jaunesx70 [http://fr.farnell.com/kingbright/kpl-3015syck/led-350mcd-jaune-590nm/dp/2426230]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;LEDs bleuesx55 [http://fr.farnell.com/kingbright/kpl-3015qbc-d/led-200mcd-bleu-465nm/dp/2426226]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;LEDs orangesx55 [http://fr.farnell.com/kingbright/kpl-3015seck/led-350mcd-orange-601nm/dp/2426227]&amp;lt;/font&amp;gt;          &lt;br /&gt;
*Transistorsx30 [http://fr.farnell.com/on-semiconductor/mmbt3904/transistor-npn-sot-23/dp/9846727]  &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Bois [https://www.leroymerlin.fr/v3/p/produits/predecoupe-contreplaque-okoume-exterieur-ep-5-mm-l-80-x-l-60-cm-e1401453577]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Source alimentationx2 [https://www.gotronic.fr/art-4-accus-nimh-r6-varta-1-2v-2-1ah-19151.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Coupleur de pilesx2 [https://www.gotronic.fr/art-coupleur-4-piles-lr6-em4p-5709.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: cyan;&amp;quot;&amp;gt;Gouache [https://www.amazon.fr/Mallette-dartiste-bois-35-pi%C3%A8ces/dp/B00GIONTS2/ref=sr_1_2?ie=UTF8&amp;amp;qid=1516056582&amp;amp;sr=8-2&amp;amp;keywords=gouache]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: cyan;&amp;quot;&amp;gt;Stylo [https://www.amazon.fr/Papermate-S0916420-PM-300-Pointe-Moyenne/dp/B005HI33KO/ref=sr_1_3?ie=UTF8&amp;amp;qid=1516201326&amp;amp;sr=8-3&amp;amp;keywords=crayon+dore]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;ZX Distance et Gesture Sensor [https://www.mouser.fr/productdetail/sparkfun/sen-13162?qs=sGAEpiMZZMsEbyLvxciIbARXbzpjz%2fFllERyJO140AQcgPpUTdWOKA==]&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P19 [[IMA4 2017/2018 P19|Bijou électronique]]&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;50xLED CMS orange [http://fr.farnell.com/broadcom-limited/hsmd-c170/led-cms-orange/dp/5790864?MER=bn_para_1TP_LastViewed_1]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;50xLED CMS bleu [http://fr.farnell.com/broadcom-limited/hsmr-c170/led-bleu/dp/8554749]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;50xLED CMS vert [http://fr.farnell.com/broadcom-limited/hsmg-c170/led-verte/dp/5790852]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;50xLED CMS jaune [http://fr.farnell.com/broadcom-limited/hsmy-c170/led-jaune/dp/5790876]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: purple;&amp;quot;&amp;gt;50xLED CMS rouge [http://fr.farnell.com/broadcom-limited/hsms-c170/led-rouge-he/dp/5790839]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1xArduino UNO &amp;amp; 1xAtmega328p [http://fr.farnell.com/arduino-org/a000066/arduino-uno-carte-d-eval/dp/2075382]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1xDS18B20 [http://fr.farnell.com/maxim-integrated-products/ds18b20u-t-r/capteur-de-temperature-0-5deg/dp/2515607]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1xBreadboard [http://fr.farnell.com/mcm/21-18936/half-size-breadboard-with-300/dp/2799991]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1xPulsesensor [https://www.mouser.fr/ProductDetail/SparkFun/SEN-11574?qs=%2fha2pyFadui%2fRsn4onUiCn%2f5VOJEA9t%252bK%252brmkRQhmlsCSXQ%252bUAWWwg%3d%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;5xpiles de boutons de 3V [http://fr.farnell.com/varta/6032101501/pile-lithium-bouton/dp/300445]&amp;lt;/font&amp;gt;&lt;br /&gt;
*1xfil de fer [https://www.gotronic.fr/art-soudure-esp006-50-25658.htm]&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1xruban isolant [https://www.gotronic.fr/art-ruban-isolant-temflex-7682.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*50xrésistances 68ohm [https://fr.rs-online.com/web/p/resistances-traversantes/1650741/]&lt;br /&gt;
*1xrésistances 8.2 Mohm [https://fr.rs-online.com/web/p/resistances-traversantes/6834102/]&lt;br /&gt;
*50xrésistances 56ohm [https://fr.rs-online.com/web/p/resistances-traversantes/1650735/]&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1xinterrupteur bascule [https://www.mouser.fr/ProductDetail/NKK-Switches/B12JJVC?qs=sGAEpiMZZMumOpTNq3bZXvRXehMYP%252byokBQhv3MozMw%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: cyan;&amp;quot;&amp;gt;1xtoile [https://www.amazon.fr/Zedtom-Rouleau-D%C3%A9coration-Artisanat-Bricolage/dp/B01KJXOLZM/ref=sr_1_3?s=hi&amp;amp;ie=UTF8&amp;amp;qid=1516198372&amp;amp;sr=1-3&amp;amp;keywords=toile]&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P20 [[IMA4 2017/2018 P20|Solution de messagerie à base de conteneurs]]&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;1 Raspberry Pi&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P22 [[IMA4 2017/2018 P22|Horloge numérique DCF77, serveur de temps et ludique]]&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Pack de batterie NiMh 510mAh [http://fr.farnell.com/varta/55750404014/pack-de-batterie-nimh-510mah-4/dp/1903286]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Contrôleur de batterie [https://fr.rs-online.com/web/p/controleurs-de-charge-de-batterie/5456852/] &amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P23 [[IMA4 2017/2018 P23|Table de bar connectée]]&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; Regulateur 5V-&amp;gt;3.3V 800mA [http://fr.farnell.com/stmicroelectronics/ld1117v33/regulateur-ldo-3-3v-1117-to-220/dp/9755837?CMP=KNC-GFR-FFR-GEN-KWL-G50-STMICROELECTRONICS&amp;amp;mckv=s2ZjbOaj_dc|pcrid|79679603942|&amp;amp;gclid=EAIaIQobChMIhe6d84CU2QIVShbTCh2pTggwEAAYAyAAEgKdUvD_BwE] &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 4 * Modules Xbee [http://fr.farnell.com/digi-international/xb24-awi-001/module-zigbee-xbee-1mw-antenne/dp/1337912] &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 * Capteur de temperature [https://www.mouser.fr/ProductDetail/Analog-Devices/AD22103KTZ?qs=sGAEpiMZZMucenltShoSnoiUfjKGVRv2VdPSgYmyZyM%3d] &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 * Photoresistance [https://www.gotronic.fr/art-photoresistance-ldr04-2150.htm] &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt; 3 * Microcontroleurs Atmega328P [https://fr.rs-online.com/web/p/microcontroleurs/9214545/] &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 3 * Régulateur 9V-&amp;gt;5V, 100mA [http://fr.farnell.com/texas-instruments/lm78l05acz-nopb/regulateur-lineaire-5-2v/dp/1469108]&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; X * Piles 9V [https://fr.rs-online.com/web/p/piles-9-volts/7951545/] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt; 3 * Quartz 16M [http://fr.farnell.com/raltron/as-16-000-18/quartz-16mhz-18pf-hc-49s/dp/1611761?MER=bn_para_1TP_LastViewed_3] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 6 * Condensateur 18pF [http://fr.farnell.com/vishay/k180j15c0gf5tl2/ceramic-capacitor-18pf-50v-c0g/dp/4986210] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 * Panneau LED[https://www.gotronic.fr/art-panneau-a-leds-rgb-64x32-dfr0460-26065.htm]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; ATMEGA16u2-AU &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; Connectique USB A male à souder&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt; Planche à Pain&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: black;&amp;quot;&amp;gt; Autres composants electroniques...&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; &amp;lt;del&amp;gt;2&amp;lt;/del&amp;gt; 3 Modules Xbee S1&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; &amp;lt;del&amp;gt;2&amp;lt;/del&amp;gt; 3 Shield Arduino pou Xbee&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; &amp;lt;del&amp;gt;2&amp;lt;/del&amp;gt; 3 Cable USB A - USB mini&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; 1 Xbee - Usb Adaptateur (pour le parametrage)&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; 1 Led Rouge + Resistance 330Ohm&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; 3 Resistance 10K Ohm &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; Planche à pain &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; 3 Boutons &amp;lt;/span&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| P25 [[IMA4 2017/2018 P25|Essaim de robots]]&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: black;&amp;quot;&amp;gt; 2 x Microcontrôleur Atmega [https://www.mouser.fr/ProductDetail/Microchip-Technology-Atmel/ATMEGA328P-MU?qs=sGAEpiMZZMvqv2n3s2xjscfa4zIkTHJIR0ZBr3z9ETo%3d] &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 22 x Condensateur 100nF [http://fr.farnell.com/kemet/c0201c104k9pactu/condensateur-mlcc-x5r-100nf-6/dp/1907036?st=Condensateur%20100nF] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 4 x Condensateur 10uF [http://fr.farnell.com/wurth-elektronik/885012106006/condesateur-mlcc-x5r-10uf-6-3v/dp/2495147] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 4 x Condensateur 22pF [http://www.mouser.fr/ProductDetail/AVX/06036A220KAT2A/?qs=sGAEpiMZZMs0AnBnWHyRQKdiqyDPVQdATEC6RfUr2zQ%3d] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x Rectifier Diode [http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/GL34G-E3-83/?qs=sGAEpiMZZMutXGli8Ay4kH9ZXA1Qtv9UOwbhSBXDb18%3d] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 4 x Servo moteur [https://www.gotronic.fr/art-servomoteur-fs90r-25838.htm] &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 6 x LED Infrarouge [http://fr.farnell.com/optek-technology/op290a/led-t-1-3-4/dp/1497872] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 6 x Récepteur Infrarouge [http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/TSOP38238/?qs=sGAEpiMZZMvAL21a%2fDhxMtgKho2n4%2fgBkajAZHPY5lE%3d] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x Quartz [http://www.mouser.fr/ProductDetail/ECS/ECS-160-20-3X-TR/?qs=sGAEpiMZZMvAbnEMxb34PZ9bYWrwSXiB] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x Switch [http://www.mouser.fr/ProductDetail/ALPS/SKQGADE010/?qs=sGAEpiMZZMsqIr59i2oRcrO5GDYRXDIX6cdtN26xmPE%3d] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x USB Chip [http://www.mouser.fr/ProductDetail/FTDI/FT232RL-REEL/?qs=sGAEpiMZZMs5ceO8zL%252bTxyQLQIH6hE7q] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x USB-C Connector [https://www.mouser.fr/ProductDetail/Molex/105450-0101?qs=sGAEpiMZZMulM8LPOQ%252byk43rDx%252b4l5FzJ4YNghWv4pnX6X7mot%2f43w%3d%3d] &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x Batteries 9V [http://www.mouser.fr/ProductDetail/Panasonic-Battery/6LF22XWA-B12/?qs=sGAEpiMZZMsra%2fh506hF%252bITISQoCasqh1k2eJLis9sg%3d] &amp;lt;/span&amp;gt;,  &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x Régulateur 5v [https://www.mouser.fr/ProductDetail/Texas-Instruments/LM1117IMPX-50-NOPB/?qs=X1J7HmVL2ZGGwLlD0uGqKQ%3D%3D] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x Roue de balance [https://fr.rs-online.com/web/p/billes-porteuses/0687770/] &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt; 2 x Emetteur/Récepteur Ultrason 40kHz [https://www.robotshop.com/ca/fr/module-sonar-hc-sr04-ultra01.html] &amp;lt;/span&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[IMA4 2017/2018 P30|Contrôle d'une caméra WiFi.]]&lt;br /&gt;
|&lt;br /&gt;
Sont fournis par Ürbik : &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; 2 x Cartes Micro-SD &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;2 x Support Micro-SD vers SD &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 * Banana Pi Pro &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 * Antenne Wifi pour Banana Pi Pro &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 * Module RTC compatible Banana Pro &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 * Shield de dévloppement GPIO Banana Pro&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 * Bloc d'alimentation 230v~5v micro USB &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 * Banana Pi D1&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 * Adaptateur ethernet USB type A&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 * Cable MicroUSB mâle vers USB type A femelle&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 * Cable USB type A mâle vers Micro USB mâle et USB type A femelle&amp;lt;/font&amp;gt;&lt;br /&gt;
Sont demandés à Polytech :&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; 2 x Servomoteurs &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; 2 x Câbles ethernet &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: cyan;&amp;quot;&amp;gt; 1 x BananaPi D1 en remplacement [https://e.banana-pi.fr/cameras-banana-pi/35-bpi-d1-camera-ip.html] &amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P32 [[IMA4 2017/2018 P32|Tribute to Peter Vogel]]&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 15 x Photorésistances LDR04 [https://www.gotronic.fr/art-photoresistance-ldr04-2150.htm#complte_desc]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 20 x Amplificateur opérationnel LM358N [https://fr.rs-online.com/web/p/amplificateurs-operationnels/8431578]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 15 x Résistances 68Kohm [https://fr.rs-online.com/web/p/resistances-traversantes/0386048]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 15 x Résistances 4,7Kohm [https://fr.rs-online.com/web/p/resistances-traversantes/7077726]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 25 x Résistances 1Kohm [https://fr.rs-online.com/web/p/resistances-traversantes/2671777]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 25 x Transistors NPN 2N3904  [https://fr.rs-online.com/web/p/transistors-bipolaires/7390442]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 12 x Potentiomètres linéaires 100k [https://fr.rs-online.com/web/p/potentiometres/2633006/]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 10 x Potentiomètres linéaires 10k [https://www.mouser.fr/productdetail/welwyn-components-tt-electronics/p160kn-0qc17b10k?qs=sGAEpiMZZMtC25l1F4XBU1WvpdUcjC%2F6L3FhnOV516EmtF%252b%252b7aZUUw%3D%3D]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 10 x Condensateurs 10µF [https://www.gotronic.fr/art-condensateur-radial-10uf-50v-3360.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 10 x Résistances 100Kohm [https://www.gotronic.fr/art-10-resistances-1-4w-100k-8486-20.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 70 x Leds rouges [https://www.gotronic.fr/art-leds-rouges-led5rl-356.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Condensateur 100nF [https://www.gotronic.fr/art-condensateur-ceramique-100-nf-3215.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x Petits moteurs [https://www.gotronic.fr/art-moteur-miniature-sr30-787.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Atmega 328p [https://www.gotronic.fr/art-atmega328p-pu-16820.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Led verte   [https://www.gotronic.fr/art-leds-vertes-led3gl-2057.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Résistance 330ohms 1/6th Watt Pth[https://eu.mouser.com/ProductDetail/SparkFun/COM-08377/?qs=sGAEpiMZZMuM1nRwI3zz2UpCr55iWBr5d51zFU1jOr2Myatejq0Ujw==]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x bouton poussoir [https://www.gotronic.fr/art-bp-subminiature-krs32n-4271.htm?qs=sGAEpiMZZMs%2FSh%2Fkjph1tvt1%2FmEPT%2FXoz55nayTMEJw%3D]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x Condensateurs découplages 10µF [https://www.gotronic.fr/art-condensateur-faible-esr-10uf-50v-11308.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x Condensateurs céramiques 22pF [https://www.gotronic.fr/art-condensateur-ceramique-22-pf-3178.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Régulateur de tension [https://www.gotronic.fr/art-l7805cv-1578.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Cristal 16Mhz [https://www.gotronic.fr/art-quartz-16-000-mhz-55.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 3 x Female headers [https://www.mouser.fr/productdetail/harwin/m50-3030842?qs=sGAEpiMZZMve4%2FbfQkoj%252bNAvEyry7AuOrgimgco8uSU%3D]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x Haut-parleur 2W [https://www.mouser.fr/ProductDetail/CUI/CDS-27208?qs=sGAEpiMZZMuTkJYgZlQcSew3leo0OO6IWAIjM88CpYEXXyeONvvJNg==]&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P35 [[IMA4 2017/2018 P35|Manette de jeu vidéo pour personne en situation de handicap]]&lt;br /&gt;
| &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; 3 x Push buttons [https://www.gotronic.fr/art-bp-miniature-krs1273-16976.htm] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x Thumbstick (joystick analogique 4 directions) [https://www.gotronic.fr/art-joystick-analogique-4-directions-19063.htm] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Led RGB  [https://www.gotronic.fr/art-led-rgb-5-mm-led5rvb-2103.htm]&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; 1 x Raspberry Pi 3 + son câble + carte SD+ alim [https://fr.rs-online.com/web/p/processor-microcontroller-development-kits/8968660/?src=raspberrypi]&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; 3 x Arduino UNO &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 5 x Alimentation 3V: 10*piles AAA 1,2V rechargeables [https://www.mouser.fr/ProductDetail/Panasonic-Battery/HHR-60AAAHB2?qs=sGAEpiMZZMuXcNZ31nzYhUR9TS3h0B6UyKPniAa4akA%3d]&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 5 x modules bluetooth Nordi nrf nRF52810-QFAA-R [https://www.mouser.fr/productdetail/nordic-semiconductor/nrf52810-qfaa-r?qs=sGAEpiMZZMve4%2FbfQkoj%252bG%2FosjLoe2oghFQwQllMrQ4%3D] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x barette connecteur mâle traversant [https://www.gotronic.fr/art-connecteur-he14-mh200-4459.htm] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: black;&amp;quot;&amp;gt; 1 x barette connecteur femelle traversant [https://fr.rs-online.com/web/p/barrettes-pour-ci/2677416/] &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; 1 x breadboard &amp;lt;/span&amp;gt;.&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt; 1 x Raspberry pi zero [https://www.mouser.fr/ProductDetail/SparkFun/DEV-14277?qs=sGAEpiMZZMve4%2fbfQkoj%252bFrmy5Au2u3K1KAGntXrVH8%3d] &amp;lt;/span&amp;gt;.&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;5 * microcontroleur Atmega328P-PU &amp;lt;/span&amp;gt;.&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;10 * capacitors 22pF [https://fr.rs-online.com/web/p/condensateurs-ceramique-simple-couche/7215101/] &amp;lt;/span&amp;gt;. &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;1* bouton poussoir (RESET) &amp;lt;/span&amp;gt;. &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;5* résistances 10 kOhms &amp;lt;/span&amp;gt;.&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;5* oscillateur quartz 16Mhz [https://fr.rs-online.com/web/p/quartz/5476294/] &amp;lt;/span&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| P39 [[IMA4 2017/2018 P39|Musique des plantes]]&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; 1 x Plante &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Cordon pour électrodes [https://www.mouser.fr/ProductDetail/SparkFun-Electronics/CAB-12970/?qs=%2fha2pyFaduj1O95kixslzNrly0UKgNYdQ2TazqXF05PpguJVsXXh3Q%3d%3d]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Electrodes  [https://www.gotronic.fr/art-pads-a-electrodes-sen-12969-26244.htm]&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x (précédemment 1) Amplificateur d'instrumentation INA125[http://fr.farnell.com/texas-instruments/ina125p/amp-inst-precision-pdip16-125/dp/1459461]&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: purple;&amp;quot;&amp;gt; 1 x Amplificateur d'instrumentation OPA320[http://fr.farnell.com/texas-instruments/opa320aidbvr/ampli-op-20mhz-10v-us-sot-23-5/dp/2542658?st=OPA320]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Amplificateur d'instrumentation OPA2320[http://fr.farnell.com/texas-instruments/opa2320aidgkt/op-amp-gp-r-r-cmos-20mhz-8msop/dp/1864818?st=OPA2320]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: purple;&amp;quot;&amp;gt; 1 x Amplificateur d'instrumentation INA132 [http://fr.farnell.com/texas-instruments/ina132ua-2k5/ampli-diff-300khz-0-1v-us-soic/dp/2782755RL?st=INA132]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt; 1 x Arduino Mega  [https://fr.rs-online.com/web/p/kits-de-developpement-pour-processeurs-et-microcontroleurs/7154084/]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x module bluetooth [https://www.gotronic.fr/art-module-bluetooth-hc05-ef03079-05-25579.htm#complte_desc]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Cable d'alimentation  [https://www.gotronic.fr/art-cordon-alimentation-pile-9v-19414.htm]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Batterie [http://fr.farnell.com/duracell/accu-9v1/accumulateur-9v-pq1/dp/4140308]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x Connecteur Jack  [https://fr.rs-online.com/web/p/connecteurs-jack-trs/5051485/]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Connecteur MIDI  [https://fr.rs-online.com/web/p/connecteurs-din/0491087/]&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x AOP LM324 [http://fr.farnell.com/texas-instruments/lm324n/ic-op-amp-quadruple/dp/1564884?st=LM324N]&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 3 x Interrupteurs [http://fr.farnell.com/multicomp/1ms1t1b5m1qe/interrupteur-spdt/dp/9473378?st=commutateur%20%C3%A0%20levier%20on%20on]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Potentiomètre [https://www.gotronic.fr/art-ajustable-vertical-2-2k-8486-11159.htm#complte_desc]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x LED RGB  [https://www.gotronic.fr/art-led-rgb-5-mm-led5rvb-2103.htm]&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Haut-Parleur  [http://fr.farnell.com/kingstate/kdmg28008/loudspeaker-micro/dp/1502732?MER=bn_level5_5NP_EngagementRecSingleItem_3]&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x CAN [http://fr.farnell.com/microchip/mcp2551-i-sn/hi-speed-transceiver-can-2551/dp/9758569]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x CAN [http://fr.farnell.com/microchip/mcp2551-e-sn/ic-transceiver-can-smd-8soic/dp/1467746]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Headers 2*23 [https://www.mouser.fr/ProductDetail/SparkFun/PRT-12790?qs=sGAEpiMZZMuWWq7rhECaKTxAh05%2fvU1hSqT3VTr1yQo%3d]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 5 x Headers 1*8 [https://www.mouser.fr/ProductDetail/SparkFun/PRT-09279?qs=sGAEpiMZZMuWWq7rhECaKVf6TnXuSdhbVm54%252ba39HDI%3d]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Headers 1*10 [https://www.mouser.fr/ProductDetail/SparkFun/PRT-11376?qs=sGAEpiMZZMuWWq7rhECaKW7JSoPFJbh65nnJcQqXBPM%3d]&amp;lt;/span&amp;gt;, &lt;br /&gt;
|-&lt;br /&gt;
| P40 [[IMA4 2017/2018 P40|Exploration du réseau d'anonymisation Tor]]&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Réseau d'ordinateurs de l'école, implantés avec des VM&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Un commutateur&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;La ligne SDSL&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: purple;&amp;quot;&amp;gt;Et un marteau :)&amp;lt;/span&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| P42 [[IMA4 2017/2018 P42|Automatisation de l'assemblage de LEGO]]&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt;1 x Arduino Mega&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt;1 x ESP8266&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt;1 x Raspberry Pi 3&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x imprimante 3D&amp;lt;/font&amp;gt;&lt;br /&gt;
*1 x plaque de polystyrène &lt;br /&gt;
*1 x plaque de plexiglas (3mm)&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: cyan;&amp;quot;&amp;gt;1 x plaque Lego [https://shop.lego.com/fr-FR/La-plaque-de-base-verte-10700]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: cyan;&amp;quot;&amp;gt;15 x brique 1x1 noir [https://www.briquestore.fr/1x1/1233-lego-302426-plate-1x1-noir.html]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: cyan;&amp;quot;&amp;gt;15 x brique 1x1 blanc [https://www.briquestore.fr/1x1/1236-lego-302401-plate-1x1-blanc.html]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: cyan;&amp;quot;&amp;gt;15 x brique 1x1 bleu [https://www.briquestore.fr/1x1/1238-lego-302423-plate-1x1-bleu.html]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: cyan;&amp;quot;&amp;gt;15 x brique 1x1 rouge [https://www.briquestore.fr/1x1/1237-lego-302421-plate-1x1-rouge.html]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: cyan;&amp;quot;&amp;gt;15 x brique 1x1 jaune [https://www.briquestore.fr/1x1/1239-lego-302424-plate-1x1-jaune.html]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: cyan;&amp;quot;&amp;gt;15 x brique 1x1 vert [https://www.briquestore.fr/1x1/1241-lego-302428-plate-1x1-dark-green.html]&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P44 [[IMA4 2017/2018 P44|Reconnaissance d’objets via Traitement d’Image]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P49 [[IMA4 2017/2018 P49|Suivi de la qualité de l’air]]&lt;br /&gt;
| &lt;br /&gt;
Matériel fournit par l'INRIA :&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x Raspberry Pi 3&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x Arduino Méga&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x détecteur de mouvement PIR (HC-SR01)&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x détecteur de bruit&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x capteur de température et d'humidité (DHT22)&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x capteur de pression&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x capteur de luminosité&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x capteur de Composé Organique Volatil COV &amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;4 x capteurs de monoxyde de carbone CO (Alphasense) &amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;2 x capteurs de dioxyde de carbone CO&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x E/R XBee&amp;lt;/font&amp;gt;&lt;br /&gt;
* 1 x clavier alphanumérique usb&lt;br /&gt;
|-&lt;br /&gt;
| P50 [[IMA4 2017/2018 P50|Etage commande de Centaure]]&lt;br /&gt;
| &lt;br /&gt;
Matériels existants:&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;2 x Batteries 12V 22Ah (dont une hs)&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x Chargeur de batterie 12V &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x Contacteur 24Vcc 18A ref: TeSys LC1D18BD &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;2 x Variateurs de vitesse ref: Alpes Ital 8CH2QM.2&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x Arduino MEGA ADK avec son bouclier de capteurs &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x Carte keyes funduino à 4 relais&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x DC/DC convertisseur 24V =&amp;gt; 12V &amp;amp; 5V ref: Tracopower TEN 40-4811 &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x Porte fusibles à 5 ports &amp;lt;/font&amp;gt;&lt;br /&gt;
Matériels manquants:&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: purple;&amp;quot;&amp;gt; 1* Batterie 12V 55Ah; trouvée chez le fournisseur mouser.fr [https://www.mouser.fr/productdetail/power-sonic/ps-12550?qs=sGAEpiMZZMso%252bSMtTqBO32B9ZZCkCjmed3agP8D7TIo%3D]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: purple;&amp;quot;&amp;gt; 1* Chargeur 24V; chez le même fournisseur [https://www.mouser.fr/productdetail/ault-sl-power/bvl240600003n?qs=sGAEpiMZZMsYfYypWaYaEeWCnBdw823Sg9r4NP%2FMM%252bU%3D] &amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P60 [[IMA4 2017/2018 P60|Commande de niveaux d’eau]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P64 [[IMA4 2017/2018 P64|Simulation Labview et mise en réseau Modbus d’un ascenseur]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P65 [[IMA4 2017/2018 P65|Exosquelette pour apprentissage]]&lt;br /&gt;
| &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1 x Motoréducteur MFA 919D1001 [https://www.gotronic.fr/art-motoreducteur-mfa-919d1001-11742.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1 x Amplificateur de courant mesurée MAX4378 [https://www.mouser.fr/ProductDetail/Maxim-Integrated/MAX4378FAUD%2b?qs=sGAEpiMZZMvEn2pkGav3bMGiddAnKBJhMUlghJlr6fA%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P66 [[IMA4 2017/2018 P66|Coupe de France de robotique]]&lt;br /&gt;
| &lt;br /&gt;
Fourni par Robotech :&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 × Batterie Lipo 4S&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 × Carte de puissance&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 × Support mécanique &amp;amp; Roues&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;2 × Faulhaber MOTOR 3557K024CS&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 × Contrôleur moteur&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;2 × HEDM-550X&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 × Capteur MinIMU-9 v3&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;X × Capteurs ultrasons / infrarouges&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 × MicroNova Mercury FPGA Development Board&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 × Arduino MEGA 2560&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 × Raspberry Pi 3&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 × Écran LCD SPI&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;X × Boutons&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P67 [[IMA4 2017/2018 P67|Scanner 3D DIY]]&lt;br /&gt;
| &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;2x Moteur NEMA 17&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;2x contrôleur moteur&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;bouton poussoir de fin de parcours de courroie&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;courroie et engrenage pour Nema 17&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Alim 12V&amp;lt;/font&amp;gt;&lt;br /&gt;
*bobine de PLA pour impression 3D (dispo au Fabricarium) &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Carte arduino Méga&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Caméra Kinect pour 360 ou Kinect microsoft&amp;lt;/font&amp;gt;&lt;br /&gt;
*Câble / résistances / capa  &lt;br /&gt;
*module de sauvegarde pour carte SD ou carte micro SD (j'en possède déjà un)&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;capteur de mesure de distance [http://fr.farnell.com/sharp/gp2y0a21yk0f/capteur-de-distance/dp/1243869]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;bois&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P68 [[IMA4 2017/2018 P68|Générateur de chronogrammes d'ordonnancement]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| PP1 [[IMA4 2017/2018 Pré-projet 1|Robot hexapode pour escalier]]&lt;br /&gt;
| &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; Arduino Mega / câble&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; 12 servos moteurs SG90 &amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; une structure robot 4 pattes &amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; Plaque d'essai, câbles &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Projets_IMA4_SC_%26_SA_2017/2018&amp;diff=50474</id>
		<title>Projets IMA4 SC &amp; SA 2017/2018</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Projets_IMA4_SC_%26_SA_2017/2018&amp;diff=50474"/>
				<updated>2018-02-09T16:31:24Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : /* Matériel à acquérir */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Merci de référencer vos pages de projets ici. Merci aussi d'uniformiser vos formats que ce soit en regardant la présentation des projets déjà créés ou en demandant une modification du format des précédents si votre façon de faire vous semble la meilleure. Dans tous les cas un minimum de communication entre les binômes est conseillée.&lt;br /&gt;
&lt;br /&gt;
Toutes les sources doivent être déposées sur notre archive GIT. Le service est disponible à l'URL [https://archives.plil.fr archives.plil.fr]. Connectez-vous avec vos identifiants Polytech'Lille. Sauf indication contraire de vos encadrants, rendez le projet public et mettez le lien sur votre Wiki. Vous pouvez trouver de la documentation sur ce système d'archives sur ce [https://git-scm.com/book/fr/v1 site].&lt;br /&gt;
&lt;br /&gt;
== Répartition des binômes ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Projet !! Encadrants école !! Elèves&lt;br /&gt;
|-&lt;br /&gt;
| P0 [[IMA4 2017/2018 P0|Modèle]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P1 [[IMA4 2017/2018 P1|Automatisation de la production de bière]]&lt;br /&gt;
| Rémy Bernard / Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Henri Carlier / Quentin Boëns&lt;br /&gt;
|-&lt;br /&gt;
| P3 [[IMA4 2017/2018 P3|Sécurisation de l'Internet des Objets par surveillance globale]]&lt;br /&gt;
| Alexandre Boé / Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Ji Yang&lt;br /&gt;
|-&lt;br /&gt;
| P4 [[IMA4 2017/2018 P4|Développement d'un module d'énergie pour Internet des Objets]]&lt;br /&gt;
| Alexandre Boé / Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Abass Ayoub / Alexis Viscogliosi&lt;br /&gt;
|-&lt;br /&gt;
| P5 [[IMA4 2017/2018 P5|Réseau de capteurs de pollution]]&lt;br /&gt;
| Thomas Vantroys / Alexandre Boé / Xavier Redon&lt;br /&gt;
| Paul Ribeiro / Naif Mehanna&lt;br /&gt;
|-&lt;br /&gt;
| P6 [[IMA4 2017/2018 P6|Réseau LoRaWAN]]&lt;br /&gt;
| Alexandre Boé / Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Antoine Gosse&lt;br /&gt;
|-&lt;br /&gt;
| P7 [[IMA4 2017/2018 P7|Brique pour apprentissage informatique]]&lt;br /&gt;
| Alexandre Boé / Emmanuelle Pichonnat / Thomas Vantroys&lt;br /&gt;
| Maéva Delaporte / Simon Blas&lt;br /&gt;
|-&lt;br /&gt;
| P10 [[IMA4 2017/2018 P10|Portage de RIOT-OS sur MSP430 pour IOT]]&lt;br /&gt;
| Thomas Vantroys / Alexandre Boé / Xavier Redon&lt;br /&gt;
| Baptiste Cartier&lt;br /&gt;
|-&lt;br /&gt;
| P12 [[IMA4 2017/2018 P12|Système d'ostéophonie pour magicien]]&lt;br /&gt;
| Alexandre Boé / Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Amine El Messaoudi / Simon Feutrier&lt;br /&gt;
|-&lt;br /&gt;
| P14 [[IMA4 2017/2018 P14|Ecran géant modulaire]]&lt;br /&gt;
| Alexandre Boé / Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Jade Dupont&lt;br /&gt;
|-&lt;br /&gt;
| P15 [[IMA4 2017/2018 P15|Balle vibrante connectée pour enfants sourd]]&lt;br /&gt;
| Rodolphe Astori / Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Thibault Cattelain / Thomas Cunin&lt;br /&gt;
|-&lt;br /&gt;
| P16 [[IMA4 2017/2018 P16|Sous-chaussure chauffante pour docker]]&lt;br /&gt;
| Remy Bernard / Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Rémi Mairesse / Gustave Roux&lt;br /&gt;
|-&lt;br /&gt;
| P17 [[IMA4 2017/2018 P17|Safe Watch]]&lt;br /&gt;
| Xavier Redon&lt;br /&gt;
| Oumaima Naanaa&lt;br /&gt;
|-&lt;br /&gt;
| P18 [[IMA4 2017/2018 P18|Mandala électronique]]&lt;br /&gt;
| Xavier Redon / Alexandre Boé&lt;br /&gt;
| Lirui Zhang / Lihe Zhang&lt;br /&gt;
|-&lt;br /&gt;
| P19 [[IMA4 2017/2018 P19|Bijou électronique]]&lt;br /&gt;
| Xavier Redon / Alexandre Boé&lt;br /&gt;
| Keren Qiang / Lijie Yao&lt;br /&gt;
|-&lt;br /&gt;
| P20 [[IMA4 2017/2018 P20|Solution de messagerie à base de conteneurs]]&lt;br /&gt;
| Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Maxime Creteur / Fan Gao&lt;br /&gt;
|-&lt;br /&gt;
| P22 [[IMA4 2017/2018 P22|Horloge numérique DCF77, serveur de temps et ludique]]&lt;br /&gt;
| Xavier Redon / Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Amaury Knockaert / Fabrice Taingland&lt;br /&gt;
|-&lt;br /&gt;
| P23 [[IMA4 2017/2018 P23|Table de bar connectée]]&lt;br /&gt;
| Thomas Vantroys / Alexandre Boé&lt;br /&gt;
| Matthieu Delobelle&lt;br /&gt;
|-&lt;br /&gt;
| P25 [[IMA4 2017/2018 P25|Essaim de robots]]&lt;br /&gt;
| Xavier Redon / Alexandre Boé&lt;br /&gt;
| Ganix Etcheguibel / Benjamin Canu&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[IMA4 2017/2018 P30|Contrôle d'une caméra WiFi.]]&lt;br /&gt;
| Nathan Martin / Xavier Redon&lt;br /&gt;
| Thomas Hubert / Taky Djeraba&lt;br /&gt;
|-&lt;br /&gt;
| P32 [[IMA4 2017/2018 P32|Tribute to Peter Vogel]]&lt;br /&gt;
| Thomas Vantroys / Alexandre Boé / Xavier Redon&lt;br /&gt;
| Antoine Untereiner / Jean-Baptiste Watine&lt;br /&gt;
|-&lt;br /&gt;
| P35 [[IMA4 2017/2018 P35|Manette de jeu vidéo pour personne en situation de handicap]]&lt;br /&gt;
| Alexandre Boé / Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Camille Saad / Transley Gracias&lt;br /&gt;
|-&lt;br /&gt;
| P39 [[IMA4 2017/2018 P39|Musique des plantes]]&lt;br /&gt;
| Emmanuelle Pichonat / Alexandre Boé&lt;br /&gt;
| Rodolphe Toin / Xavier Chenot&lt;br /&gt;
|-&lt;br /&gt;
| P40 [[IMA4 2017/2018 P40|Exploration du réseau d'anonymisation Tor]]&lt;br /&gt;
| Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Anthony Durot / Antoine Duquenoy&lt;br /&gt;
|-&lt;br /&gt;
| P42 [[IMA4 2017/2018 P42|Automatisation de l'assemblage de LEGO]]&lt;br /&gt;
| Xavier Redon / Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Justine Senellart / Eloi Zalczer&lt;br /&gt;
|-&lt;br /&gt;
| P44 [[IMA4 2017/2018 P44|Reconnaissance d’objets via Traitement d’Image]]&lt;br /&gt;
| Thomas Danel / Vincent Coelen&lt;br /&gt;
| Zoé Briois / Damien Narbais&lt;br /&gt;
|-&lt;br /&gt;
| P49 [[IMA4 2017/2018 P49|Suivi de la qualité de l’air]]&lt;br /&gt;
| Romain Rouvoy / Rédha Kassi&lt;br /&gt;
| Nicolas Havard / Hugo Delbroucq&lt;br /&gt;
|-&lt;br /&gt;
| P50 [[IMA4 2017/2018 P50|Etage commande de Centaure]]&lt;br /&gt;
| Xavier Redon / Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Haroun Abdelali&lt;br /&gt;
|-&lt;br /&gt;
| P60 [[IMA4 2017/2018 P60|Commande de niveaux d’eau]]&lt;br /&gt;
| Midzodzi Pekpe&lt;br /&gt;
| Claire Vandamme / Alexendra Villa&lt;br /&gt;
|-&lt;br /&gt;
| P64 [[IMA4 2017/2018 P64|Simulation Labview et mise en réseau Modbus d’un ascenseur]]&lt;br /&gt;
| Midzodzi Pekpe / Blaise Conrard&lt;br /&gt;
| François-Xavier Cockenpot&lt;br /&gt;
|-&lt;br /&gt;
| P65 [[IMA4 2017/2018 P65|Exosquelette pour apprentissage]]&lt;br /&gt;
| Alexandre Boé / Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Florian Le Foll&lt;br /&gt;
|-&lt;br /&gt;
| P66 [[IMA4 2017/2018 P66|Coupe de France de robotique]]&lt;br /&gt;
| Alexandre Boé /  Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Geoffrey Preud'homme / Amaury Carval&lt;br /&gt;
|-&lt;br /&gt;
| P67 [[IMA4 2017/2018 P67|Scanner 3D DIY]]&lt;br /&gt;
| Xavier Redon / Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Erwan Dufresne&lt;br /&gt;
|-&lt;br /&gt;
| P68 [[IMA4 2017/2018 P68|Générateur de chronogrammes d'ordonnancement]]&lt;br /&gt;
| Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Samy Belhouachi&lt;br /&gt;
|-&lt;br /&gt;
| PP1 [[IMA4 2017/2018 Pré-projet 1|Robot hexapode pour escalier]]&lt;br /&gt;
| Alexandre Boé / Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Eduardo Gomez-Riaza &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Matériel à acquérir ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Projet !! Matériel&lt;br /&gt;
|-&lt;br /&gt;
| P1 [[IMA4 2017/2018 P1|Automatisation de la production de bière]]&lt;br /&gt;
| &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Capteur de température DS18B20 [https://www.gotronic.fr/art-sonde-etanche-ds18b20-19339.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Raccord tuyau en Y [https://fr.rs-online.com/web/p/coupleurs-de-tuyaux-flexibles/4197259/] &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2 Pompes péristaltique dc 12V [https://www.mouser.fr/ProductDetail/Adafruit/1150?qs=sGAEpiMZZMsMyYRRhGMFNp8jyMJFi5X9NqTp2aghyow%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Tube en silicone [https://fr.rs-online.com/web/p/tubes-flexibles/9124751/]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue&amp;quot;&amp;gt;Tube en cuivre [https://fr.rs-online.com/web/p/tubes-en-cuivre/0846503/]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;2 résistances 1kOhms&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: purple;&amp;quot;&amp;gt;2 transistors bc547&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: purple;&amp;quot;&amp;gt;2 diodes&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;14 cables M/M&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: purple;&amp;quot;&amp;gt;Alimentation DC 12V &amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P3 [[IMA4 2017/2018 P3|Sécurisation de l'Internet des Objets par surveillance globale]]&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: purple;&amp;quot;&amp;gt;Xbee USB Adapter * 1 [https://www.amazon.fr/dp/B017KGBP6Y/ref=asc_df_B017KGBP6Y48622783/?tag=googshopfr-21&amp;amp;creative=22722&amp;amp;creativeASIN=B017KGBP6Y&amp;amp;linkCode=df0&amp;amp;hvdev=c&amp;amp;hvnetw=g&amp;amp;hvqmt=]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: purple;&amp;quot;&amp;gt;XDigiKey Xbee module 2.4Hz * 4 [https://www.digikey.com/catalog/en/partgroup/xbee-and-xbee-pro-zb-zigbee/12201] ReX : imprécis, cherchez chez gotronic&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: purple;&amp;quot;&amp;gt;l'antenne pour Xbee * 4  [https://www.matlog.fr/fr/61-antennes-24-ghz.html]&amp;lt;/font&amp;gt;    &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Arduino uno * 4 [https://store.arduino.cc/usa/arduino-uno-rev3]&amp;lt;/font&amp;gt;         &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Xbee Shields pour Arduino * 4  [https://store.arduino.cc/arduino-wirelss-sd-shield]&amp;lt;/font&amp;gt;  &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Câble USB pour Arduino * 4  [https://fr.aliexpress.com/item/usb-cable-for-arduino-with-UNO-R3-ATMEGA328P-PU-ATMEGA8U2-and-Mega-2560-R3-Mega2560-REV3/32624000858.html?src=google&amp;amp;albslr=221466033&amp;amp;isdl=y&amp;amp;aff_short_key=UneMJZVf&amp;amp;source=%7Bifdyn:dyn%7D%7Bifpla:pla%7D%7Bifdbm:DBM&amp;amp;albch=DID%7D&amp;amp;src=google&amp;amp;albch=shopping&amp;amp;acnt=494-037-6276&amp;amp;isdl=y&amp;amp;albcp=653151748&amp;amp;albag=36672819047&amp;amp;slnk=&amp;amp;trgt=61865531738&amp;amp;plac=&amp;amp;crea=fr32624000858&amp;amp;netw=g&amp;amp;device=c&amp;amp;mtctp=&amp;amp;gclid=Cj0KCQiAv_HSBRCkARIsAGaSsrC92WYZ2oroveXJLqUQCBfRBuRMa8VoShOZWNBitPIvrry8V1HpMmkaAg-QEALw_wcB]  &amp;lt;/font&amp;gt;                               &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Batterie externe(qui a 2 ports à recharger) * 4 [https://www.amazon.fr/EC-Technology-22400mAh-Batterie-capacit%C3%A9/dp/B00F5Q4F0U/ref=sr_1_1_sspa?ie=UTF8&amp;amp;qid=1513804729&amp;amp;sr=8-1-spons&amp;amp;keywords=batteries+externe&amp;amp;psc=1]&amp;lt;/font&amp;gt;  &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;USB À UART TTL Câble * 1   [https://fr.aliexpress.com/item/USB-To-RS232-TTL-USB-To-COM-Serial-Adapter-Cable-Module-PL2303HX-Converter/1859099599.html?src=google&amp;amp;albslr=201492522&amp;amp;isdl=y&amp;amp;aff_short_key=UneMJZVf&amp;amp;source=%7Bifdyn:dyn%7D%7Bifpla:pla%7D%7Bifdbm:DBM&amp;amp;albch=DID%7D&amp;amp;src=google&amp;amp;albch=shopping&amp;amp;acnt=494-037-6276&amp;amp;isdl=y&amp;amp;albcp=653151748&amp;amp;albag=36672819047&amp;amp;slnk=&amp;amp;trgt=61865531738&amp;amp;plac=&amp;amp;crea=fr1859099599&amp;amp;netw=g&amp;amp;device=c&amp;amp;mtctp=&amp;amp;gclid=CjwKCAiAsejRBRB3EiwAZft7sENdHUiXBHo-JhKGxsmwfnaRATNn_OPdCl9y-WVMwi8elX5S6QCMnhoCNm8QAvD_BwE]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Breadboard de prototypage * 3 [https://www.amazon.fr/Breadboard-Carte-dexp%C3%A9rimentation-Soudure-Solderless/dp/B06XWFG9DT/ref=sr_1_2_sspa?ie=UTF8&amp;amp;qid=1516049551&amp;amp;sr=8-2-spons&amp;amp;keywords=breadboard+arduino&amp;amp;psc=1]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;USB câble pour xbee USB Adapter [https://www.amazon.fr/dp/B003OSS4SA/ref=asc_df_B003OSS4SA49349077/?tag=googshopfr-21&amp;amp;creative=22698&amp;amp;creativeASIN=B003OSS4SA&amp;amp;linkCode=df0&amp;amp;hvdev=c&amp;amp;hvnetw=g&amp;amp;hvqmt=]&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P4 [[IMA4 2017/2018 P4|Développement d'un module d'énergie pour Internet des Objets]]&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1xModule solaire [[https://www.mouser.fr/ProductDetail/MikroElektronika/MIKROE-651?qs=sGAEpiMZZMvxW%252bY8mn0Q9U%252b%2fhOkIvSmCqkyN6XrqZsI%3d]]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1xBatterie [[http://fr.farnell.com/varta/55608303059/batterie-nimh-3-6v/dp/279341]]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1xConvertisseur Boost [[https://fr.rs-online.com/web/p/convertisseurs-boost/8123659/]]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2xDiode de Schottky de redressement [[https://fr.rs-online.com/web/p/diodes-de-redressement-et-schottky/7390436/]]&amp;lt;/font&amp;gt; &lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1xConvertisseur Buck-Boost (sortie) [[https://fr.rs-online.com/web/p/regulateurs-a-decoupage-buck-boost/6989091/]]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2xSupercondensateur 2,7V - 50F [[https://www.mouser.fr/ProductDetail/Maxwell-Technologies/BCAP0050-P270-T01/?qs=sGAEpiMZZMsCu9HefNWqpt2sk1W1BTZ59akVpHhf5KE=]]&amp;lt;/font&amp;gt;&lt;br /&gt;
* 10 jumpers [[https://fr.rs-online.com/web/p/cavaliers-et-shunts/6742397/]]&lt;br /&gt;
* Module MPPT [[https://www.mouser.fr/ProductDetail/STMicroelectronics/SPV1050TTR?qs=sGAEpiMZZMsMLZWdhVL71%2fkXzzgq0Ptzmbr9rWlHkic%3d]]&lt;br /&gt;
* 20 pin connection mâle  [[https://fr.rs-online.com/web/p/barrettes-pour-ci/8967620/]]&lt;br /&gt;
* 10 transistor npn commandé en tension  [[https://fr.rs-online.com/web/p/transistors-bipolaires/7390381/]]&lt;br /&gt;
|-&lt;br /&gt;
| P5 [[IMA4 2017/2018 P5|Réseau de capteurs de pollution]]&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;ESP32 [[https://www.gotronic.fr/art-carte-esp32-dev-13907-25510.htm]]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Module GPS [[https://www.gotronic.fr/art-module-gps-tel0094-25732.htm]]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Batterie Lithium Ion [[https://fr.rs-online.com/web/p/batteries-externes/8755758/]] ou [[https://fr.rs-online.com/web/p/batteries-externes/1366470/]] suivant le prix&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Adaptateur micro USB&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Breadboard&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Un smartphone sous Android (Version Lollipop minimale - optionnel)&amp;lt;/font&amp;gt;&lt;br /&gt;
* HPMA115S0-XXX (Capteur déjà acheté normalement)&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2 connecteurs micro-USB [[https://www.gotronic.fr/art-embase-micro-usb-b-cms-18339.htm]]&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P6 [[IMA4 2017/2018 P6|Réseau LoRaWAN]]&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; 1 * iC880A-SPI &amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; 1 * Raspberry &amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; 2 * Nucleo-F4 &amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; 2 * Shield STM32 LoRa&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P7 [[IMA4 2017/2018 P7|Brique pour apprentissage informatique]]&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;1xCapteur ultrason [https://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2xafficheurs-7segments [http://fr.farnell.com/broadcom-limited/hdsp-7801/afficheur-a-leds-7-62mm-vert/dp/1003275]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;4xboutons poussoirs [https://www.gotronic.fr/art-module-bouton-poussoir-st043-26115.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;4xleds [https://www.gotronic.fr/art-led-5-mm-led5bt-21009.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2xpotentiomètres [https://www.gotronic.fr/art-potentiometre-lineaire-47k-8486-11110.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2xcâble [https://www.gotronic.fr/art-cordon-alimentation-pile-9v-19414.htm] + pile [https://www.gotronic.fr/art-pile-9v-au-lithium-uv9l-5575.htm] pour alimenter l'Arduino&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;2xArduino Uno [https://store.arduino.cc/arduino-uno-rev3]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2xModule bluetooth pour arduino (BTM-01)[https://www.mouser.fr/ProductDetail/OSEPP-Electronics/BTM-01/?qs=YCa%2fAAYMW020ADfc44%2fjCA%3d%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;10xMicrocontrôleur Atmega328p [http://fr.farnell.com/microchip/atmega328p-pu/micro-8-bits-avr-32k-flash-28pdip/dp/1715487]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;2xKit roue + moteur [https://www.gotronic.fr/art-kit-roue-moteur-23569.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;1xRoue folle [https://www.robotshop.com/eu/fr/roulette-bille-pololu-0375-po-metal.html]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;1xContrôleur de moteur [https://www.gotronic.fr/art-commande-de-2-moteurs-tb6612fng-2x1a-21716.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;50xpicots mâle [https://fr.rs-online.com/web/p/barrettes-pour-ci/8967620/]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;5xpicots femelle [https://fr.rs-online.com/web/p/barrettes-pour-ci/2677400/]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;4x10 ressorts [https://fr.rs-online.com/web/p/ressorts-de-compression/0821245/]&amp;lt;/font&amp;gt;&lt;br /&gt;
*1xplaque de contreplaqué [https://www.leroymerlin.fr/v3/p/produits/predecoupe-medium-mdf-naturel-ep-10-mm-l-120-x-l-60-cm-e105237#&amp;amp;xtmc=predecoupe&amp;amp;xtcr=1]&lt;br /&gt;
|-&lt;br /&gt;
| P10 [[IMA4 2017/2018 P10|Portage de RIOT-OS sur MSP430 pour IOT]]&lt;br /&gt;
| &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt; 2xCC430 [https://www.mouser.fr/ProductDetail/Texas-Instruments/CC430F5137IRGZT/?qs=%2fqzd9s%252bcLd7GiX35ln9VRA==] (fourni par les tuteurs de projet)&amp;lt;/span&amp;gt; 3 reçus&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt; 1xMSP430-CCRF  [https://www.olimex.com/Products/MSP430/Starter/MSP430-CCRF/] (fourni par les tuteurs de projet)&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt; 1xMSP-EXP430G2 [https://www.mouser.fr/productdetail/texas-instruments/msp-exp430g2?qs=sGAEpiMZZMv1ORdfpzTN%252bMwZ3%252b5KGk2B] (fourni par les tuteurs de projet)&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P12 [[IMA4 2017/2018 P12|Système d'ostéophonie pour magicien]]&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Raspberry Pi 3, &amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Microcontroleur STM32L433CCT6 [https://www.mouser.fr/ProductDetail/STMicroelectronics/STM32L433CCT6?qs=sGAEpiMZZMuoKKEcg8mMKFZaGHZhaFFC5XHr6X%2fBPloj9WsFWEQ6BA%3d%3d],&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Mémoire Flash IS25WP064A-RMLE [https://www.mouser.fr/productdetail/issi/is25wp064a-rmle?qs=sGAEpiMZZMtI%252bQ06EiAoG5kNS0TozX6Gt0%2FX%2Fi6ExQk%3D], &amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;DAC MCP4725A0T-E/CH [https://www.mouser.fr/productdetail/microchip-technology/mcp4725a0t-e-ch?qs=sGAEpiMZZMvfFCidbTccA97L6UsE6%2Fky], &amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Batterie 3.6V [https://www.gotronic.fr/art-accu-nimh-3-6v-300mah-290.htm], &amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Module Bluetooth 4.1 BM20SPKS1NBC-0001AA  [https://www.mouser.fr/ProductDetail/Microchip-Technology/BM20SPKS1NBC-0001AA?qs=sGAEpiMZZMsGelYiB%252bjhZv%252biZoDZL1ptX5ao52HhnlyFQbPW6KaEbg%3d%3d],&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Adafruit Bone Conductor Transduce [https://www.mouser.fr/ProductDetail/Adafruit/1674/?qs=sGAEpiMZZMsqIr59i2oRcvz%252byDSTdozphj%2f1Oxe6%252bAQ=], &amp;lt;/font&amp;gt;&lt;br /&gt;
* Transducteur Piézo diaphragme :&lt;br /&gt;
** &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;fréquence de résonance 2.9KHz (gotronic) [https://www.gotronic.fr/art-disque-piezoelectrique-dp035-3843.htm],&amp;lt;/font&amp;gt;&lt;br /&gt;
** &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;fréquence de résonance 4.6KHz (gotronic) [https://www.gotronic.fr/art-disque-piezoelectrique-dp027-3842.htm],&amp;lt;/font&amp;gt;&lt;br /&gt;
** &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;fréquence de résonance 6.6KHz (gotronic) [https://www.gotronic.fr/art-disque-piezoelectrique-dp024-3841.htm],&amp;lt;/font&amp;gt;&lt;br /&gt;
** &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Afréquence 8KHz 10KHz (RS) [https://fr.rs-online.com/web/p/buzzers-piezo/7214947/],&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Moteur Électrique CC RS Pro, 3 → 7,2 V c.c., 19,68 W, 19000 tr/min, 4,41 A  [https://fr.rs-online.com/web/p/moteurs-v-cc/2389721/].&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P14 [[IMA4 2017/2018 P14|Ecran géant modulaire]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P15 [[IMA4 2017/2018 P15|Balle vibrante connectée pour enfants sourd]]&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;8 vibreurs : [https://www.mouser.fr/productdetail/adafruit/1201?qs=sGAEpiMZZMsMyYRRhGMFNstIkcYqaSq8%2fLLE3lYp32I=]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Module Bluetooth 4.0 Low Energy : [https://www.mouser.fr/ProductDetail/Adafruit/2479?qs=sGAEpiMZZMsMyYRRhGMFNjWi9ZmxEfRwbLHKJ6JemUg%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Bobine de recharge à induction (norme Qi) : [https://www.mouser.fr/productdetail/adafruit/1901?qs=sGAEpiMZZMsMyYRRhGMFNkyDC95Rd%252blHW46I1pJekjA%3D]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Atmega 328p CMS : [https://www.mouser.fr/ProductDetail/Microchip-Technology-Atmel/ATMEGA328PB-AU?qs=sGAEpiMZZMvc81WFyF5EdrSRAEYMYvHlMc95YQj%2fArE%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1 Batterie rechargeable 5.2Ah :  [https://www.gotronic.fr/art-accu-li-ion-mgl9033-26425.htm#complte_desc]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 controleurs pour moteur :[https://www.mouser.fr/ProductDetail/STMicroelectronics/L293DD?qs=sGAEpiMZZMukgiigmf73gOko5bw7EE67]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2 condensateurs 14pF :[https://www.mouser.fr/ProductDetail/Murata-Electronics/GCQ1555C1H140FB01D?qs=sGAEpiMZZMs0AnBnWHyRQN7%2fAA2D2lPPLNRvFwtPLQHRWxf2q9etuA==]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1 crystal quartz 16MHz :[https://www.mouser.fr/ProductDetail/ECS/ECS-160-12-33Q-JES-TR?qs=sGAEpiMZZMuMAfj%252bWfX4nLed60zyr3PUv7Kre5ygQ%252bs%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 résistances CMS 10khoms 0603 :[http://fr.farnell.com/multicomp/mcre000164/res-couche-epaisse-10k-1-0-05w/dp/1711641]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 7 résistances CMS 1kohms 0603 :[http://fr.farnell.com/multicomp/mcre000140/res-couche-epaisse-1k-1-0-05w/dp/1711615?st=MULTICOMP%201K%200603]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 résistances CMS 470ohms 0603:[https://www.mouser.fr/ProductDetail/TDK/MMZ1608Y471BTA00?qs=sGAEpiMZZMu0dYp3dYbBlQn%252beM9UWul2G3hJ%2f7TLqL0%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 résistances CMS 2kOhms 0603 :[https://www.mouser.fr/ProductDetail/Panasonic-Industrial-Devices/ERJ-3EKF2001V?qs=sGAEpiMZZMu61qfTUdNhGzRxdwze5h8ZMDWmuHH2qQY%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 resistances CMS 340kOhms 0603 :[https://www.mouser.fr/ProductDetail/Vishay/CRCW0603340KFKEA?qs=sGAEpiMZZMukHu%252bjC5l7YRSQiDx9P4ktLgBETRAdfqw%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 resistances CMS 1.87MOhms 0603 :[https://www.mouser.fr/ProductDetail/Yageo/RC0603FR-071M87L?qs=sGAEpiMZZMu61qfTUdNhG6gKAQVNBKOo2zO%2fNI9xQvs%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2 resistances CMS 100kOhms 0603 :[https://www.mouser.fr/ProductDetail/Vishay-Draloric/RCG0603100KFKEA?qs=sGAEpiMZZMsa677hLZe2Z63dGP%2fTFOZQ]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 4 condensateur 10uF 0603 :[https://www.mouser.fr/ProductDetail/Taiyo-Yuden/LMK107BC6106MA-T?qs=sGAEpiMZZMukHu%252bjC5l7Yd8IIWTQlTYBUiPYtsE4Bzg%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1 condensateur 0.1uF 0603 :[https://www.mouser.fr/ProductDetail/Taiyo-Yuden/GMK107BJ104KAHT?qs=sGAEpiMZZMs0AnBnWHyRQNbg85K4ab%2f3WB4TApadaC0%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1 condensateur 2.2uF 0603 :[https://www.mouser.fr/ProductDetail/Taiyo-Yuden/JMK107B7225KAHTR?qs=sGAEpiMZZMs0AnBnWHyRQPSjYu%2fkbgu8y0KcZVF30DNOIVNQnIIJ3Q%3d%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1 condensateur 22uF 0603 :[https://www.mouser.fr/ProductDetail/Taiyo-Yuden/LMK107BBJ226MA-T?qs=sGAEpiMZZMs0AnBnWHyRQPSjYu%2fkbgu8OPGniOr6zLcT6eSTCbA%252bCQ%3d%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2 condensateur 1uF 0603 :[https://www.mouser.fr/ProductDetail/Taiyo-Yuden/GMK107BJ105KA-T?qs=sGAEpiMZZMs0AnBnWHyRQAEIN6r3SS%2fOBpoA9Mx5a9I%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1 condensateur 1210 100uF 1210 :[https://www.mouser.fr/ProductDetail/Murata-Electronics/GRM32ER61A107ME20L?qs=sGAEpiMZZMukHu%252bjC5l7Ya6pfwBk8EBeq55B9L%252bMJQA%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2 led verte CMS 1206 :[https://www.mouser.fr/ProductDetail/Kingbright/APTD3216LCGCK?qs=sGAEpiMZZMuCm2JlHBGefutc4sI%252bRg9%2fbKLcTuDCbMNnKZ3XxcbEWg%3d%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1 led orange 1206 CMS :[https://www.mouser.fr/ProductDetail/Lite-On/LTST-C150KAKT?qs=sGAEpiMZZMseGfSY3csMkTlTHQ2beMlrmGllatFacok%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2 led rouge 1206 CMS :[https://www.mouser.fr/ProductDetail/Kingbright/APTD3216LSURCK?qs=sGAEpiMZZMuCm2JlHBGefutc4sI%252bRg9%2fEbFuu2HcaZsnh6Yj8wyZLQ%3d%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1 led bleue CMS 1206 :[https://www.mouser.fr/ProductDetail/Kingbright/APTD3216LQBC-D?qs=sGAEpiMZZMseGfSY3csMkdgyOOAg6kv2SoHfbZ6fYRJR%252bPUfy4LTDQ%3d%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 module Bluetooth 802.15 :[https://www.mouser.fr/productdetail/seeed-studio/317030027?qs=wU1J8Md1npz%2F8UksA%252bh%252byw%3D%3D]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1 Regulateur de tension LDO :[https://www.mouser.fr/ProductDetail/Microchip-Technology-Micrel/MIC5225YM5-TR?qs=sGAEpiMZZMsGz1a6aV8DcNranXV84HMLR75Z9P39yqc%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1 Transistor PNP prépolarisé 100mA:[https://www.mouser.fr/ProductDetail/ON-Semiconductor/MMUN2133LT1G/?qs=ZpPixqFcBtysLCI/2LOB%252bQ==]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1 Régulateur de tension de commutation:[https://www.mouser.fr/ProductDetail/Texas-Instruments/TPS61090RSAR?qs=sGAEpiMZZMuo%252bmZx5g6tFAsofpr73Rbu]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1 chargeur de batterie pour une cellule Li-on:[http://fr.farnell.com/microchip/mcp73831t-2aci-ot/controleur-de-charge-li-ion-li/dp/1332158]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;3 Diodes :[https://www.mouser.fr/ProductDetail/Diodes-Incorporated/1N4148WQ-7-F?qs=sGAEpiMZZMtzpSA5GSDwayHNFYvfz9yMGFXnI15cqbU%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1 diodes et redresseurs:[https://www.mouser.fr/ProductDetail/ON-Semiconductor/MBR120ESFT1G?qs=sGAEpiMZZMtQ8nqTKtFS%2fCKUxMvjsmGzPwX1d8aVcbo%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1 inductance 6.8uH:[http://fr.farnell.com/bourns/srn6045ta-6r8m/inductance-aec-q200-6-8uh-3-6a/dp/2616892]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Quartz 32Mhz:[https://www.mouser.fr/ProductDetail/?qs=2xLVn2jvFusfExB%252byZEnpA%3D%3D]&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P16 [[IMA4 2017/2018 P16|Sous-chaussure chauffante pour docker]]&lt;br /&gt;
| &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2xArduino Pro Mini [https://www.mouser.fr/ProductDetail/Adafruit/2377?qs=sGAEpiMZZMsMyYRRhGMFNrePrikk4IpJQBQo3elmwiI%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1xbouclier USB vers UART pour mini Arduino [https://www.mouser.fr/ProductDetail/Digilent/410-212?qs=sGAEpiMZZMsF1ODjcwEocFxZWH6k8YAWBC6KMJ05oOA%3d] &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;4xcapteurs de température et humidité DHT22 [https://www.gotronic.fr/art-capteur-de-t-et-d-humidite-dht22-20719.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2xMOSFET [https://fr.rs-online.com/web/p/transistors-mosfet/5431184/]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1xbatterie [https://fr.rs-online.com/web/p/batteries-externes/7757508/?searchTerm=pb+A5200&amp;amp;relevancy-data=636F3D3126696E3D4931384E4C446573635461786F6E6F6D794272616E645365617263685465726D325F74656D70266C753D6672266D6D3D6D617463687061727469616C6D617826706D3D5E5B5C707B4C7D5C707B4E647D3F5C707B5A737D2D2C2F255C2E5D2B2426706F3D31313326736E3D592673743D4B4559574F52445F4D554C54495F414C5048415F414E445F4D554C54495F414C5048415F4E554D455249432673633D592677633D4E4F4E45267573743D7062204135323030267374613D706220413532303026]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1xfilm de tranfert thermique [https://fr.rs-online.com/web/p/tampons-decart-thermiques/5075605/] Référence SILPAD400AC &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1xBobine fil résisitif [https://fr.rs-online.com/web/p/cable-industriel-multiconducteur/7496344/]&amp;lt;/font&amp;gt;&lt;br /&gt;
*1xpaire de chaussure de sécurité (utilisation de nos chaussure)&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: purple;&amp;quot;&amp;gt;1xplaque de caoutchouc antidérapant antivibration [https://www.leroymerlin.fr/v3/p/produits/dalle-antiderapante-noir-gpi-e128988] (achetez, remboursement par la suite)&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: purple;&amp;quot;&amp;gt;1xRouleau de scratch [https://www.leroymerlin.fr/v3/p/produits/ruban-adhesif-mini-ruban-scratch-auto-agrippant-scratch-grip-l-2000-x-l-10-mm-e1400146133] (achetez, remboursement par la suite)&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| P17 [[IMA4 2017/2018 P17|Safe Watch]]&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; Arduino &amp;lt;/font&amp;gt;, &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; Bouclier Arduino LCD &amp;lt;/font&amp;gt;, &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; Bouclier GPS Arduino &amp;lt;/font&amp;gt;, &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; Bouclier GSM Arduino &amp;lt;/font&amp;gt;,&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; Plaque d'essai, câbles, 3 boutons &amp;lt;/font&amp;gt;,&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;  Adafruit FONA 808 Cellular + GPS Breakout [https://eu.mouser.com/ProductDetail/Adafruit/2691?qs=sGAEpiMZZMuC4zZxLL0ZTS5y3%2fvN2YqqC7jd%252b8Ewo0tvrzwH6EzcUw%3d%3d]&amp;lt;/font&amp;gt;,&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; OLED Display de MicroView [https://www.mouser.fr/ProductDetail/SparkFun-Electronics/DEV-12923/?qs=%2fha2pyFaduhq0%2f0L4ziGOlrL8k9CznZ%2fHCwmtADFcmfM%252bNj6xnUOTR2J1R9vVHxC]&amp;lt;/font&amp;gt;,&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; Antenne GPS [https://fr.rs-online.com/web/p/antennes-gps/6534111/] &amp;lt;/font&amp;gt;,&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;mini JST 2-pin pour la batterie [https://www.mouser.fr/ProductDetail/Adafruit/261?qs=sGAEpiMZZMsMyYRRhGMFNu1QGkj38%2fjpots4OzXyI0g%3d]&amp;lt;/font&amp;gt;,&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: purple;&amp;quot;&amp;gt; batterie:1200mAh sized Lithium ion/polymer battery [https://www.mouser.fr/ProductDetail/Adafruit/258?qs=%2fha2pyFadui%252bGfcAGyN46wlBHAaZlEsaG2TnF48kfbRBKCZP7yH6DDXLDCpScZ1uLz%2f7LJyXDtVbPM%252b2aEQ0roW2VWPjGRnj]&amp;lt;/font&amp;gt;,&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; headphone jack : [https://www.mouser.fr/ProductDetail/Adafruit/1699?qs=sGAEpiMZZMsMyYRRhGMFNsUVB%252bwflvtuRD2AT1i4W%2fI%3d]&amp;lt;/font&amp;gt;,&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; Antenne GSM [https://fr.rs-online.com/web/p/antennes-gsm-et-gprs/8968291/] &amp;lt;/font&amp;gt;,&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: black;&amp;quot;&amp;gt; Arduino micro [https://www.mouser.fr/ProductDetail/Arduino/A000053?qs=sGAEpiMZZMvq007EO%252bXAYZAVvNFL4IMQ]&amp;lt;/font&amp;gt;,&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; microUSB cable  &amp;lt;/font&amp;gt;,&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; usb programmer [https://www.mouser.fr/ProductDetail/SparkFun/DEV-12924?qs=%2fha2pyFadujajXN5UxBZ39QNIwYchoft2tr4SjuyzPeTBIS0mD6hlArvMlp2O59kyDG2ZmVILu%252bM2KFfVewETA%3d%3d]&amp;lt;/font&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| P18 [[IMA4 2017/2018 P18|Mandala électronique]]&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;TCL5947*3 [http://fr.farnell.com/texas-instruments/tlc5947dap/ic-led-driver-linear-32-tssop/dp/1755259]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Arduino Atmega328p [http://fr.farnell.com/microchip/atmega328p-aur/mcu-8-bits-atmega-20mhz-tqfp-32/dp/2425124?st=atmega328p]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;LEDs rougesx40 [http://fr.farnell.com/kingbright/kpl-3015ec/led-12mcd-rouge-617nm/dp/2426224]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;LEDs jaunesx70 [http://fr.farnell.com/kingbright/kpl-3015syck/led-350mcd-jaune-590nm/dp/2426230]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;LEDs bleuesx55 [http://fr.farnell.com/kingbright/kpl-3015qbc-d/led-200mcd-bleu-465nm/dp/2426226]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;LEDs orangesx55 [http://fr.farnell.com/kingbright/kpl-3015seck/led-350mcd-orange-601nm/dp/2426227]&amp;lt;/font&amp;gt;          &lt;br /&gt;
*Transistorsx30 [http://fr.farnell.com/on-semiconductor/mmbt3904/transistor-npn-sot-23/dp/9846727]  &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Bois [https://www.leroymerlin.fr/v3/p/produits/predecoupe-contreplaque-okoume-exterieur-ep-5-mm-l-80-x-l-60-cm-e1401453577]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Source alimentationx2 [https://www.gotronic.fr/art-4-accus-nimh-r6-varta-1-2v-2-1ah-19151.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Coupleur de pilesx2 [https://www.gotronic.fr/art-coupleur-4-piles-lr6-em4p-5709.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: cyan;&amp;quot;&amp;gt;Gouache [https://www.amazon.fr/Mallette-dartiste-bois-35-pi%C3%A8ces/dp/B00GIONTS2/ref=sr_1_2?ie=UTF8&amp;amp;qid=1516056582&amp;amp;sr=8-2&amp;amp;keywords=gouache]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: cyan;&amp;quot;&amp;gt;Stylo [https://www.amazon.fr/Papermate-S0916420-PM-300-Pointe-Moyenne/dp/B005HI33KO/ref=sr_1_3?ie=UTF8&amp;amp;qid=1516201326&amp;amp;sr=8-3&amp;amp;keywords=crayon+dore]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;ZX Distance et Gesture Sensor [https://www.mouser.fr/productdetail/sparkfun/sen-13162?qs=sGAEpiMZZMsEbyLvxciIbARXbzpjz%2fFllERyJO140AQcgPpUTdWOKA==]&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P19 [[IMA4 2017/2018 P19|Bijou électronique]]&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;50xLED CMS orange [http://fr.farnell.com/broadcom-limited/hsmd-c170/led-cms-orange/dp/5790864?MER=bn_para_1TP_LastViewed_1]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;50xLED CMS bleu [http://fr.farnell.com/broadcom-limited/hsmr-c170/led-bleu/dp/8554749]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;50xLED CMS vert [http://fr.farnell.com/broadcom-limited/hsmg-c170/led-verte/dp/5790852]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;50xLED CMS jaune [http://fr.farnell.com/broadcom-limited/hsmy-c170/led-jaune/dp/5790876]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: purple;&amp;quot;&amp;gt;50xLED CMS rouge [http://fr.farnell.com/broadcom-limited/hsms-c170/led-rouge-he/dp/5790839]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1xArduino UNO &amp;amp; 1xAtmega328p [http://fr.farnell.com/arduino-org/a000066/arduino-uno-carte-d-eval/dp/2075382]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1xDS18B20 [http://fr.farnell.com/maxim-integrated-products/ds18b20u-t-r/capteur-de-temperature-0-5deg/dp/2515607]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1xBreadboard [http://fr.farnell.com/mcm/21-18936/half-size-breadboard-with-300/dp/2799991]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1xPulsesensor [https://www.mouser.fr/ProductDetail/SparkFun/SEN-11574?qs=%2fha2pyFadui%2fRsn4onUiCn%2f5VOJEA9t%252bK%252brmkRQhmlsCSXQ%252bUAWWwg%3d%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;5xpiles de boutons de 3V [http://fr.farnell.com/varta/6032101501/pile-lithium-bouton/dp/300445]&amp;lt;/font&amp;gt;&lt;br /&gt;
*1xfil de fer [https://www.gotronic.fr/art-soudure-esp006-50-25658.htm]&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1xruban isolant [https://www.gotronic.fr/art-ruban-isolant-temflex-7682.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*50xrésistances 68ohm [https://fr.rs-online.com/web/p/resistances-traversantes/1650741/]&lt;br /&gt;
*1xrésistances 8.2 Mohm [https://fr.rs-online.com/web/p/resistances-traversantes/6834102/]&lt;br /&gt;
*50xrésistances 56ohm [https://fr.rs-online.com/web/p/resistances-traversantes/1650735/]&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1xinterrupteur bascule [https://www.mouser.fr/ProductDetail/NKK-Switches/B12JJVC?qs=sGAEpiMZZMumOpTNq3bZXvRXehMYP%252byokBQhv3MozMw%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: cyan;&amp;quot;&amp;gt;1xtoile [https://www.amazon.fr/Zedtom-Rouleau-D%C3%A9coration-Artisanat-Bricolage/dp/B01KJXOLZM/ref=sr_1_3?s=hi&amp;amp;ie=UTF8&amp;amp;qid=1516198372&amp;amp;sr=1-3&amp;amp;keywords=toile]&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P20 [[IMA4 2017/2018 P20|Solution de messagerie à base de conteneurs]]&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;1 Raspberry Pi&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P22 [[IMA4 2017/2018 P22|Horloge numérique DCF77, serveur de temps et ludique]]&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Pack de batterie NiMh 510mAh [http://fr.farnell.com/varta/55750404014/pack-de-batterie-nimh-510mah-4/dp/1903286]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Contrôleur de batterie [https://fr.rs-online.com/web/p/controleurs-de-charge-de-batterie/5456852/] &amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P23 [[IMA4 2017/2018 P23|Table de bar connectée]]&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; Regulateur 5V-&amp;gt;3.3V 800mA [http://fr.farnell.com/stmicroelectronics/ld1117v33/regulateur-ldo-3-3v-1117-to-220/dp/9755837?CMP=KNC-GFR-FFR-GEN-KWL-G50-STMICROELECTRONICS&amp;amp;mckv=s2ZjbOaj_dc|pcrid|79679603942|&amp;amp;gclid=EAIaIQobChMIhe6d84CU2QIVShbTCh2pTggwEAAYAyAAEgKdUvD_BwE] &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 4 * Modules Xbee [http://fr.farnell.com/digi-international/xb24-awi-001/module-zigbee-xbee-1mw-antenne/dp/1337912] &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 * Capteur de temperature [https://www.mouser.fr/ProductDetail/Analog-Devices/AD22103KTZ?qs=sGAEpiMZZMucenltShoSnoiUfjKGVRv2VdPSgYmyZyM%3d] &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 * Photoresistance [https://www.gotronic.fr/art-photoresistance-ldr04-2150.htm] &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt; 3 * Microcontroleurs Atmega328P [https://fr.rs-online.com/web/p/microcontroleurs/9214545/] &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 3 * Régulateur 9V-&amp;gt;5V, 100mA [http://fr.farnell.com/texas-instruments/lm78l05acz-nopb/regulateur-lineaire-5-2v/dp/1469108]&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; X * Piles 9V [https://fr.rs-online.com/web/p/piles-9-volts/7951545/] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt; 3 * Quartz 16M [http://fr.farnell.com/raltron/as-16-000-18/quartz-16mhz-18pf-hc-49s/dp/1611761?MER=bn_para_1TP_LastViewed_3] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 6 * Condensateur 18pF [http://fr.farnell.com/vishay/k180j15c0gf5tl2/ceramic-capacitor-18pf-50v-c0g/dp/4986210] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 * Panneau LED[https://www.gotronic.fr/art-panneau-a-leds-rgb-64x32-dfr0460-26065.htm]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; ATMEGA16u2-AU &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; Connectique USB A male à souder&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt; Planche à Pain&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: black;&amp;quot;&amp;gt; Autres composants electroniques...&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; &amp;lt;del&amp;gt;2&amp;lt;/del&amp;gt; 3 Modules Xbee S1&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; &amp;lt;del&amp;gt;2&amp;lt;/del&amp;gt; 3 Shield Arduino pou Xbee&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; &amp;lt;del&amp;gt;2&amp;lt;/del&amp;gt; 3 Cable USB A - USB mini&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; 1 Xbee - Usb Adaptateur (pour le parametrage)&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; 1 Led Rouge + Resistance 330Ohm&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; 3 Resistance 10K Ohm &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; Planche à pain &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; 3 Boutons &amp;lt;/span&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| P25 [[IMA4 2017/2018 P25|Essaim de robots]]&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: black;&amp;quot;&amp;gt; 2 x Microcontrôleur Atmega [https://www.mouser.fr/ProductDetail/Microchip-Technology-Atmel/ATMEGA328P-MU?qs=sGAEpiMZZMvqv2n3s2xjscfa4zIkTHJIR0ZBr3z9ETo%3d] &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 22 x Condensateur 100nF [http://fr.farnell.com/kemet/c0201c104k9pactu/condensateur-mlcc-x5r-100nf-6/dp/1907036?st=Condensateur%20100nF] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 4 x Condensateur 10uF [http://fr.farnell.com/wurth-elektronik/885012106006/condesateur-mlcc-x5r-10uf-6-3v/dp/2495147] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 4 x Condensateur 22pF [http://www.mouser.fr/ProductDetail/AVX/06036A220KAT2A/?qs=sGAEpiMZZMs0AnBnWHyRQKdiqyDPVQdATEC6RfUr2zQ%3d] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x Rectifier Diode [http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/GL34G-E3-83/?qs=sGAEpiMZZMutXGli8Ay4kH9ZXA1Qtv9UOwbhSBXDb18%3d] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 4 x Servo moteur [https://www.gotronic.fr/art-servomoteur-fs90r-25838.htm] &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 6 x LED Infrarouge [http://fr.farnell.com/optek-technology/op290a/led-t-1-3-4/dp/1497872] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 6 x Récepteur Infrarouge [http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/TSOP38238/?qs=sGAEpiMZZMvAL21a%2fDhxMtgKho2n4%2fgBkajAZHPY5lE%3d] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x Quartz [http://www.mouser.fr/ProductDetail/ECS/ECS-160-20-3X-TR/?qs=sGAEpiMZZMvAbnEMxb34PZ9bYWrwSXiB] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x Switch [http://www.mouser.fr/ProductDetail/ALPS/SKQGADE010/?qs=sGAEpiMZZMsqIr59i2oRcrO5GDYRXDIX6cdtN26xmPE%3d] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x USB Chip [http://www.mouser.fr/ProductDetail/FTDI/FT232RL-REEL/?qs=sGAEpiMZZMs5ceO8zL%252bTxyQLQIH6hE7q] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x USB-C Connector [https://www.mouser.fr/ProductDetail/Molex/105450-0101?qs=sGAEpiMZZMulM8LPOQ%252byk43rDx%252b4l5FzJ4YNghWv4pnX6X7mot%2f43w%3d%3d] &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x Batteries 9V [http://www.mouser.fr/ProductDetail/Panasonic-Battery/6LF22XWA-B12/?qs=sGAEpiMZZMsra%2fh506hF%252bITISQoCasqh1k2eJLis9sg%3d] &amp;lt;/span&amp;gt;,  &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x Régulateur 5v [https://www.mouser.fr/ProductDetail/Texas-Instruments/LM1117IMPX-50-NOPB/?qs=X1J7HmVL2ZGGwLlD0uGqKQ%3D%3D] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x Roue de balance [https://fr.rs-online.com/web/p/billes-porteuses/0687770/] &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt; 2 x Emetteur/Récepteur Ultrason 40kHz [https://www.robotshop.com/ca/fr/module-sonar-hc-sr04-ultra01.html] &amp;lt;/span&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[IMA4 2017/2018 P30|Contrôle d'une caméra WiFi.]]&lt;br /&gt;
|&lt;br /&gt;
Sont fournis par Ürbik : &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; 2 x Cartes Micro-SD &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;2 x Support Micro-SD vers SD &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 * Banana Pi Pro &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 * Antenne Wifi pour Banana Pi Pro &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 * Module RTC compatible Banana Pro &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 * Shield de dévloppement GPIO Banana Pro&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 * Bloc d'alimentation 230v~5v micro USB &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 * Banana Pi D1&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 * Adaptateur ethernet USB type A&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 * Cable MicroUSB mâle vers USB type A femelle&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 * Cable USB type A mâle vers Micro USB mâle et USB type A femelle&amp;lt;/font&amp;gt;&lt;br /&gt;
Sont demandés à Polytech :&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; 2 x Servomoteurs &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; 2 x Câbles ethernet &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: cyan;&amp;quot;&amp;gt; 1 x BananaPi D1 en remplacement [https://e.banana-pi.fr/cameras-banana-pi/35-bpi-d1-camera-ip.html] &amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P32 [[IMA4 2017/2018 P32|Tribute to Peter Vogel]]&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 15 x Photorésistances LDR04 [https://www.gotronic.fr/art-photoresistance-ldr04-2150.htm#complte_desc]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 20 x Amplificateur opérationnel LM358N [https://fr.rs-online.com/web/p/amplificateurs-operationnels/8431578]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 15 x Résistances 68Kohm [https://fr.rs-online.com/web/p/resistances-traversantes/0386048]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 15 x Résistances 4,7Kohm [https://fr.rs-online.com/web/p/resistances-traversantes/7077726]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 25 x Résistances 1Kohm [https://fr.rs-online.com/web/p/resistances-traversantes/2671777]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 25 x Transistors NPN 2N3904  [https://fr.rs-online.com/web/p/transistors-bipolaires/7390442]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 12 x Potentiomètres linéaires 100k [https://fr.rs-online.com/web/p/potentiometres/2633006/]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 10 x Potentiomètres linéaires 10k [https://www.mouser.fr/productdetail/welwyn-components-tt-electronics/p160kn-0qc17b10k?qs=sGAEpiMZZMtC25l1F4XBU1WvpdUcjC%2F6L3FhnOV516EmtF%252b%252b7aZUUw%3D%3D]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 10 x Condensateurs 10µF [https://www.gotronic.fr/art-condensateur-radial-10uf-50v-3360.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 10 x Résistances 100Kohm [https://www.gotronic.fr/art-10-resistances-1-4w-100k-8486-20.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 70 x Leds rouges [https://www.gotronic.fr/art-leds-rouges-led5rl-356.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Condensateur 100nF [https://www.gotronic.fr/art-condensateur-ceramique-100-nf-3215.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x Petits moteurs [https://www.gotronic.fr/art-moteur-miniature-sr30-787.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Atmega 328p [https://www.gotronic.fr/art-atmega328p-pu-16820.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Led verte   [https://www.gotronic.fr/art-leds-vertes-led3gl-2057.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Résistance 330ohms 1/6th Watt Pth[https://eu.mouser.com/ProductDetail/SparkFun/COM-08377/?qs=sGAEpiMZZMuM1nRwI3zz2UpCr55iWBr5d51zFU1jOr2Myatejq0Ujw==]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x bouton poussoir [https://www.gotronic.fr/art-bp-subminiature-krs32n-4271.htm?qs=sGAEpiMZZMs%2FSh%2Fkjph1tvt1%2FmEPT%2FXoz55nayTMEJw%3D]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x Condensateurs découplages 10µF [https://www.gotronic.fr/art-condensateur-faible-esr-10uf-50v-11308.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x Condensateurs céramiques 22pF [https://www.gotronic.fr/art-condensateur-ceramique-22-pf-3178.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Régulateur de tension [https://www.gotronic.fr/art-l7805cv-1578.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Cristal 16Mhz [https://www.gotronic.fr/art-quartz-16-000-mhz-55.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 3 x Female headers [https://www.mouser.fr/productdetail/harwin/m50-3030842?qs=sGAEpiMZZMve4%2FbfQkoj%252bNAvEyry7AuOrgimgco8uSU%3D]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x Haut-parleur 2W [https://www.mouser.fr/ProductDetail/CUI/CDS-27208?qs=sGAEpiMZZMuTkJYgZlQcSew3leo0OO6IWAIjM88CpYEXXyeONvvJNg==]&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P35 [[IMA4 2017/2018 P35|Manette de jeu vidéo pour personne en situation de handicap]]&lt;br /&gt;
| &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; 3 x Push buttons [https://www.gotronic.fr/art-bp-miniature-krs1273-16976.htm] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x Thumbstick (joystick analogique 4 directions) [https://www.gotronic.fr/art-joystick-analogique-4-directions-19063.htm] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Led RGB  [https://www.gotronic.fr/art-led-rgb-5-mm-led5rvb-2103.htm]&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; 1 x Raspberry Pi 3 + son câble + carte SD+ alim [https://fr.rs-online.com/web/p/processor-microcontroller-development-kits/8968660/?src=raspberrypi]&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; 3 x Arduino UNO &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 5 x Alimentation 3V: 10*piles AAA 1,2V rechargeables [https://www.mouser.fr/ProductDetail/Panasonic-Battery/HHR-60AAAHB2?qs=sGAEpiMZZMuXcNZ31nzYhUR9TS3h0B6UyKPniAa4akA%3d]&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 5 x modules bluetooth Nordi nrf nRF52810-QFAA-R [https://www.mouser.fr/productdetail/nordic-semiconductor/nrf52810-qfaa-r?qs=sGAEpiMZZMve4%2FbfQkoj%252bG%2FosjLoe2oghFQwQllMrQ4%3D] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x barette connecteur mâle traversant [https://www.gotronic.fr/art-connecteur-he14-mh200-4459.htm] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: black;&amp;quot;&amp;gt; 1 x barette connecteur femelle traversant [https://fr.rs-online.com/web/p/barrettes-pour-ci/2677416/] &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; 1 x breadboard &amp;lt;/span&amp;gt;.&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt; 1 x Raspberry pi zero &amp;lt;/span&amp;gt;.&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;5 * microcontroleur Atmega328P-PU &amp;lt;/span&amp;gt;.&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;10 * capacitors 22pF [https://fr.rs-online.com/web/p/condensateurs-ceramique-simple-couche/7215101/] &amp;lt;/span&amp;gt;. &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;1* bouton poussoir (RESET) &amp;lt;/span&amp;gt;. &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;5* résistances 10 kOhms &amp;lt;/span&amp;gt;.&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;5* oscillateur quartz 16Mhz [https://fr.rs-online.com/web/p/quartz/5476294/] &amp;lt;/span&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| P39 [[IMA4 2017/2018 P39|Musique des plantes]]&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; 1 x Plante &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Cordon pour électrodes [https://www.mouser.fr/ProductDetail/SparkFun-Electronics/CAB-12970/?qs=%2fha2pyFaduj1O95kixslzNrly0UKgNYdQ2TazqXF05PpguJVsXXh3Q%3d%3d]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Electrodes  [https://www.gotronic.fr/art-pads-a-electrodes-sen-12969-26244.htm]&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x (précédemment 1) Amplificateur d'instrumentation INA125[http://fr.farnell.com/texas-instruments/ina125p/amp-inst-precision-pdip16-125/dp/1459461]&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: purple;&amp;quot;&amp;gt; 1 x Amplificateur d'instrumentation OPA320[http://fr.farnell.com/texas-instruments/opa320aidbvr/ampli-op-20mhz-10v-us-sot-23-5/dp/2542658?st=OPA320]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Amplificateur d'instrumentation OPA2320[http://fr.farnell.com/texas-instruments/opa2320aidgkt/op-amp-gp-r-r-cmos-20mhz-8msop/dp/1864818?st=OPA2320]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: purple;&amp;quot;&amp;gt; 1 x Amplificateur d'instrumentation INA132 [http://fr.farnell.com/texas-instruments/ina132ua-2k5/ampli-diff-300khz-0-1v-us-soic/dp/2782755RL?st=INA132]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt; 1 x Arduino Mega  [https://fr.rs-online.com/web/p/kits-de-developpement-pour-processeurs-et-microcontroleurs/7154084/]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x module bluetooth [https://www.gotronic.fr/art-module-bluetooth-hc05-ef03079-05-25579.htm#complte_desc]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Cable d'alimentation  [https://www.gotronic.fr/art-cordon-alimentation-pile-9v-19414.htm]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Batterie [http://fr.farnell.com/duracell/accu-9v1/accumulateur-9v-pq1/dp/4140308]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x Connecteur Jack  [https://fr.rs-online.com/web/p/connecteurs-jack-trs/5051485/]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Connecteur MIDI  [https://fr.rs-online.com/web/p/connecteurs-din/0491087/]&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x AOP LM324 [http://fr.farnell.com/texas-instruments/lm324n/ic-op-amp-quadruple/dp/1564884?st=LM324N]&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 3 x Interrupteurs [http://fr.farnell.com/multicomp/1ms1t1b5m1qe/interrupteur-spdt/dp/9473378?st=commutateur%20%C3%A0%20levier%20on%20on]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Potentiomètre [https://www.gotronic.fr/art-ajustable-vertical-2-2k-8486-11159.htm#complte_desc]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x LED RGB  [https://www.gotronic.fr/art-led-rgb-5-mm-led5rvb-2103.htm]&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Haut-Parleur  [http://fr.farnell.com/kingstate/kdmg28008/loudspeaker-micro/dp/1502732?MER=bn_level5_5NP_EngagementRecSingleItem_3]&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x CAN [http://fr.farnell.com/microchip/mcp2551-i-sn/hi-speed-transceiver-can-2551/dp/9758569]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x CAN [http://fr.farnell.com/microchip/mcp2551-e-sn/ic-transceiver-can-smd-8soic/dp/1467746]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Headers 2*23 [https://www.mouser.fr/ProductDetail/SparkFun/PRT-12790?qs=sGAEpiMZZMuWWq7rhECaKTxAh05%2fvU1hSqT3VTr1yQo%3d]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 5 x Headers 1*8 [https://www.mouser.fr/ProductDetail/SparkFun/PRT-09279?qs=sGAEpiMZZMuWWq7rhECaKVf6TnXuSdhbVm54%252ba39HDI%3d]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Headers 1*10 [https://www.mouser.fr/ProductDetail/SparkFun/PRT-11376?qs=sGAEpiMZZMuWWq7rhECaKW7JSoPFJbh65nnJcQqXBPM%3d]&amp;lt;/span&amp;gt;, &lt;br /&gt;
|-&lt;br /&gt;
| P40 [[IMA4 2017/2018 P40|Exploration du réseau d'anonymisation Tor]]&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Réseau d'ordinateurs de l'école, implantés avec des VM&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Un commutateur&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;La ligne SDSL&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: purple;&amp;quot;&amp;gt;Et un marteau :)&amp;lt;/span&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| P42 [[IMA4 2017/2018 P42|Automatisation de l'assemblage de LEGO]]&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt;1 x Arduino Mega&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt;1 x ESP8266&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt;1 x Raspberry Pi 3&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x imprimante 3D&amp;lt;/font&amp;gt;&lt;br /&gt;
*1 x plaque de polystyrène &lt;br /&gt;
*1 x plaque de plexiglas (3mm)&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: cyan;&amp;quot;&amp;gt;1 x plaque Lego [https://shop.lego.com/fr-FR/La-plaque-de-base-verte-10700]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: cyan;&amp;quot;&amp;gt;15 x brique 1x1 noir [https://www.briquestore.fr/1x1/1233-lego-302426-plate-1x1-noir.html]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: cyan;&amp;quot;&amp;gt;15 x brique 1x1 blanc [https://www.briquestore.fr/1x1/1236-lego-302401-plate-1x1-blanc.html]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: cyan;&amp;quot;&amp;gt;15 x brique 1x1 bleu [https://www.briquestore.fr/1x1/1238-lego-302423-plate-1x1-bleu.html]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: cyan;&amp;quot;&amp;gt;15 x brique 1x1 rouge [https://www.briquestore.fr/1x1/1237-lego-302421-plate-1x1-rouge.html]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: cyan;&amp;quot;&amp;gt;15 x brique 1x1 jaune [https://www.briquestore.fr/1x1/1239-lego-302424-plate-1x1-jaune.html]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: cyan;&amp;quot;&amp;gt;15 x brique 1x1 vert [https://www.briquestore.fr/1x1/1241-lego-302428-plate-1x1-dark-green.html]&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P44 [[IMA4 2017/2018 P44|Reconnaissance d’objets via Traitement d’Image]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P49 [[IMA4 2017/2018 P49|Suivi de la qualité de l’air]]&lt;br /&gt;
| &lt;br /&gt;
Matériel fournit par l'INRIA :&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x Raspberry Pi 3&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x Arduino Méga&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x détecteur de mouvement PIR (HC-SR01)&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x détecteur de bruit&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x capteur de température et d'humidité (DHT22)&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x capteur de pression&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x capteur de luminosité&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x capteur de Composé Organique Volatil COV &amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;4 x capteurs de monoxyde de carbone CO (Alphasense) &amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;2 x capteurs de dioxyde de carbone CO&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x E/R XBee&amp;lt;/font&amp;gt;&lt;br /&gt;
* 1 x clavier alphanumérique usb&lt;br /&gt;
|-&lt;br /&gt;
| P50 [[IMA4 2017/2018 P50|Etage commande de Centaure]]&lt;br /&gt;
| &lt;br /&gt;
Matériels existants:&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;2 x Batteries 12V 22Ah (dont une hs)&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x Chargeur de batterie 12V &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x Contacteur 24Vcc 18A ref: TeSys LC1D18BD &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;2 x Variateurs de vitesse ref: Alpes Ital 8CH2QM.2&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x Arduino MEGA ADK avec son bouclier de capteurs &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x Carte keyes funduino à 4 relais&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x DC/DC convertisseur 24V =&amp;gt; 12V &amp;amp; 5V ref: Tracopower TEN 40-4811 &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x Porte fusibles à 5 ports &amp;lt;/font&amp;gt;&lt;br /&gt;
Matériels manquants:&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: purple;&amp;quot;&amp;gt; 1* Batterie 12V 55Ah; trouvée chez le fournisseur mouser.fr [https://www.mouser.fr/productdetail/power-sonic/ps-12550?qs=sGAEpiMZZMso%252bSMtTqBO32B9ZZCkCjmed3agP8D7TIo%3D]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: purple;&amp;quot;&amp;gt; 1* Chargeur 24V; chez le même fournisseur [https://www.mouser.fr/productdetail/ault-sl-power/bvl240600003n?qs=sGAEpiMZZMsYfYypWaYaEeWCnBdw823Sg9r4NP%2FMM%252bU%3D] &amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P60 [[IMA4 2017/2018 P60|Commande de niveaux d’eau]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P64 [[IMA4 2017/2018 P64|Simulation Labview et mise en réseau Modbus d’un ascenseur]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P65 [[IMA4 2017/2018 P65|Exosquelette pour apprentissage]]&lt;br /&gt;
| &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1 x Motoréducteur MFA 919D1001 [https://www.gotronic.fr/art-motoreducteur-mfa-919d1001-11742.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1 x Amplificateur de courant mesurée MAX4378 [https://www.mouser.fr/ProductDetail/Maxim-Integrated/MAX4378FAUD%2b?qs=sGAEpiMZZMvEn2pkGav3bMGiddAnKBJhMUlghJlr6fA%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P66 [[IMA4 2017/2018 P66|Coupe de France de robotique]]&lt;br /&gt;
| &lt;br /&gt;
Fourni par Robotech :&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 × Batterie Lipo 4S&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 × Carte de puissance&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 × Support mécanique &amp;amp; Roues&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;2 × Faulhaber MOTOR 3557K024CS&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 × Contrôleur moteur&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;2 × HEDM-550X&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 × Capteur MinIMU-9 v3&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;X × Capteurs ultrasons / infrarouges&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 × MicroNova Mercury FPGA Development Board&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 × Arduino MEGA 2560&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 × Raspberry Pi 3&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 × Écran LCD SPI&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;X × Boutons&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P67 [[IMA4 2017/2018 P67|Scanner 3D DIY]]&lt;br /&gt;
| &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;2x Moteur NEMA 17&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;2x contrôleur moteur&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;bouton poussoir de fin de parcours de courroie&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;courroie et engrenage pour Nema 17&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Alim 12V&amp;lt;/font&amp;gt;&lt;br /&gt;
*bobine de PLA pour impression 3D (dispo au Fabricarium) &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Carte arduino Méga&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Caméra Kinect pour 360 ou Kinect microsoft&amp;lt;/font&amp;gt;&lt;br /&gt;
*Câble / résistances / capa  &lt;br /&gt;
*module de sauvegarde pour carte SD ou carte micro SD (j'en possède déjà un)&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;capteur de mesure de distance [http://fr.farnell.com/sharp/gp2y0a21yk0f/capteur-de-distance/dp/1243869]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;bois&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P68 [[IMA4 2017/2018 P68|Générateur de chronogrammes d'ordonnancement]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| PP1 [[IMA4 2017/2018 Pré-projet 1|Robot hexapode pour escalier]]&lt;br /&gt;
| &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; Arduino Mega / câble&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; 12 servos moteurs SG90 &amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; une structure robot 4 pattes &amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; Plaque d'essai, câbles &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Projets_IMA4_SC_%26_SA_2017/2018&amp;diff=50283</id>
		<title>Projets IMA4 SC &amp; SA 2017/2018</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Projets_IMA4_SC_%26_SA_2017/2018&amp;diff=50283"/>
				<updated>2018-02-07T18:05:36Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : /* Matériel à acquérir */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Merci de référencer vos pages de projets ici. Merci aussi d'uniformiser vos formats que ce soit en regardant la présentation des projets déjà créés ou en demandant une modification du format des précédents si votre façon de faire vous semble la meilleure. Dans tous les cas un minimum de communication entre les binômes est conseillée.&lt;br /&gt;
&lt;br /&gt;
Toutes les sources doivent être déposées sur notre archive GIT. Le service est disponible à l'URL [https://archives.plil.fr archives.plil.fr]. Connectez-vous avec vos identifiants Polytech'Lille. Sauf indication contraire de vos encadrants, rendez le projet public et mettez le lien sur votre Wiki. Vous pouvez trouver de la documentation sur ce système d'archives sur ce [https://git-scm.com/book/fr/v1 site].&lt;br /&gt;
&lt;br /&gt;
== Répartition des binômes ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Projet !! Encadrants école !! Elèves&lt;br /&gt;
|-&lt;br /&gt;
| P0 [[IMA4 2017/2018 P0|Modèle]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P1 [[IMA4 2017/2018 P1|Automatisation de la production de bière]]&lt;br /&gt;
| Rémy Bernard / Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Henri Carlier / Quentin Boëns&lt;br /&gt;
|-&lt;br /&gt;
| P3 [[IMA4 2017/2018 P3|Sécurisation de l'Internet des Objets par surveillance globale]]&lt;br /&gt;
| Alexandre Boé / Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Ji Yang&lt;br /&gt;
|-&lt;br /&gt;
| P4 [[IMA4 2017/2018 P4|Développement d'un module d'énergie pour Internet des Objets]]&lt;br /&gt;
| Alexandre Boé / Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Abass Ayoub / Alexis Viscogliosi&lt;br /&gt;
|-&lt;br /&gt;
| P5 [[IMA4 2017/2018 P5|Réseau de capteurs de pollution]]&lt;br /&gt;
| Thomas Vantroys / Alexandre Boé / Xavier Redon&lt;br /&gt;
| Paul Ribeiro / Naif Mehanna&lt;br /&gt;
|-&lt;br /&gt;
| P6 [[IMA4 2017/2018 P6|Réseau LoRaWAN]]&lt;br /&gt;
| Alexandre Boé / Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Antoine Gosse&lt;br /&gt;
|-&lt;br /&gt;
| P7 [[IMA4 2017/2018 P7|Brique pour apprentissage informatique]]&lt;br /&gt;
| Alexandre Boé / Emmanuelle Pichonnat / Thomas Vantroys&lt;br /&gt;
| Maéva Delaporte / Simon Blas&lt;br /&gt;
|-&lt;br /&gt;
| P10 [[IMA4 2017/2018 P10|Portage de RIOT-OS sur MSP430 pour IOT]]&lt;br /&gt;
| Thomas Vantroys / Alexandre Boé / Xavier Redon&lt;br /&gt;
| Baptiste Cartier&lt;br /&gt;
|-&lt;br /&gt;
| P12 [[IMA4 2017/2018 P12|Système d'ostéophonie pour magicien]]&lt;br /&gt;
| Alexandre Boé / Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Amine El Messaoudi / Simon Feutrier&lt;br /&gt;
|-&lt;br /&gt;
| P14 [[IMA4 2017/2018 P14|Ecran géant modulaire]]&lt;br /&gt;
| Alexandre Boé / Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Jade Dupont&lt;br /&gt;
|-&lt;br /&gt;
| P15 [[IMA4 2017/2018 P15|Balle vibrante connectée pour enfants sourd]]&lt;br /&gt;
| Rodolphe Astori / Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Thibault Cattelain / Thomas Cunin&lt;br /&gt;
|-&lt;br /&gt;
| P16 [[IMA4 2017/2018 P16|Sous-chaussure chauffante pour docker]]&lt;br /&gt;
| Remy Bernard / Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Rémi Mairesse / Gustave Roux&lt;br /&gt;
|-&lt;br /&gt;
| P17 [[IMA4 2017/2018 P17|Safe Watch]]&lt;br /&gt;
| Xavier Redon&lt;br /&gt;
| Oumaima Naanaa&lt;br /&gt;
|-&lt;br /&gt;
| P18 [[IMA4 2017/2018 P18|Mandala électronique]]&lt;br /&gt;
| Xavier Redon / Alexandre Boé&lt;br /&gt;
| Lirui Zhang / Lihe Zhang&lt;br /&gt;
|-&lt;br /&gt;
| P19 [[IMA4 2017/2018 P19|Bijou électronique]]&lt;br /&gt;
| Xavier Redon / Alexandre Boé&lt;br /&gt;
| Keren Qiang / Lijie Yao&lt;br /&gt;
|-&lt;br /&gt;
| P20 [[IMA4 2017/2018 P20|Solution de messagerie à base de conteneurs]]&lt;br /&gt;
| Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Maxime Creteur / Fan Gao&lt;br /&gt;
|-&lt;br /&gt;
| P22 [[IMA4 2017/2018 P22|Horloge numérique DCF77, serveur de temps et ludique]]&lt;br /&gt;
| Xavier Redon / Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Amaury Knockaert / Fabrice Taingland&lt;br /&gt;
|-&lt;br /&gt;
| P23 [[IMA4 2017/2018 P23|Table de bar connectée]]&lt;br /&gt;
| Thomas Vantroys / Alexandre Boé&lt;br /&gt;
| Matthieu Delobelle&lt;br /&gt;
|-&lt;br /&gt;
| P25 [[IMA4 2017/2018 P25|Essaim de robots]]&lt;br /&gt;
| Xavier Redon / Alexandre Boé&lt;br /&gt;
| Ganix Etcheguibel / Benjamin Canu&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[IMA4 2017/2018 P30|Contrôle d'une caméra WiFi.]]&lt;br /&gt;
| Nathan Martin / Xavier Redon&lt;br /&gt;
| Thomas Hubert / Taky Djeraba&lt;br /&gt;
|-&lt;br /&gt;
| P32 [[IMA4 2017/2018 P32|Tribute to Peter Vogel]]&lt;br /&gt;
| Thomas Vantroys / Alexandre Boé / Xavier Redon&lt;br /&gt;
| Antoine Untereiner / Jean-Baptiste Watine&lt;br /&gt;
|-&lt;br /&gt;
| P35 [[IMA4 2017/2018 P35|Manette de jeu vidéo pour personne en situation de handicap]]&lt;br /&gt;
| Alexandre Boé / Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Camille Saad / Transley Gracias&lt;br /&gt;
|-&lt;br /&gt;
| P39 [[IMA4 2017/2018 P39|Musique des plantes]]&lt;br /&gt;
| Emmanuelle Pichonat / Alexandre Boé&lt;br /&gt;
| Rodolphe Toin / Xavier Chenot&lt;br /&gt;
|-&lt;br /&gt;
| P40 [[IMA4 2017/2018 P40|Exploration du réseau d'anonymisation Tor]]&lt;br /&gt;
| Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Anthony Durot / Antoine Duquenoy&lt;br /&gt;
|-&lt;br /&gt;
| P42 [[IMA4 2017/2018 P42|Automatisation de l'assemblage de LEGO]]&lt;br /&gt;
| Xavier Redon / Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Justine Senellart / Eloi Zalczer&lt;br /&gt;
|-&lt;br /&gt;
| P44 [[IMA4 2017/2018 P44|Reconnaissance d’objets via Traitement d’Image]]&lt;br /&gt;
| Thomas Danel / Vincent Coelen&lt;br /&gt;
| Zoé Briois / Damien Narbais&lt;br /&gt;
|-&lt;br /&gt;
| P49 [[IMA4 2017/2018 P49|Suivi de la qualité de l’air]]&lt;br /&gt;
| Romain Rouvoy / Rédha Kassi&lt;br /&gt;
| Nicolas Havard / Hugo Delbroucq&lt;br /&gt;
|-&lt;br /&gt;
| P50 [[IMA4 2017/2018 P50|Etage commande de Centaure]]&lt;br /&gt;
| Xavier Redon / Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Haroun Abdelali&lt;br /&gt;
|-&lt;br /&gt;
| P60 [[IMA4 2017/2018 P60|Commande de niveaux d’eau]]&lt;br /&gt;
| Midzodzi Pekpe&lt;br /&gt;
| Claire Vandamme / Alexendra Villa&lt;br /&gt;
|-&lt;br /&gt;
| P64 [[IMA4 2017/2018 P64|Simulation Labview et mise en réseau Modbus d’un ascenseur]]&lt;br /&gt;
| Midzodzi Pekpe / Blaise Conrard&lt;br /&gt;
| François-Xavier Cockenpot&lt;br /&gt;
|-&lt;br /&gt;
| P65 [[IMA4 2017/2018 P65|Exosquelette pour apprentissage]]&lt;br /&gt;
| Alexandre Boé / Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Florian Le Foll&lt;br /&gt;
|-&lt;br /&gt;
| P66 [[IMA4 2017/2018 P66|Coupe de France de robotique]]&lt;br /&gt;
| Alexandre Boé /  Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Geoffrey Preud'homme / Amaury Carval&lt;br /&gt;
|-&lt;br /&gt;
| P67 [[IMA4 2017/2018 P67|Scanner 3D DIY]]&lt;br /&gt;
| Xavier Redon / Alexandre Boé / Thomas Vantroys&lt;br /&gt;
| Erwan Dufresne&lt;br /&gt;
|-&lt;br /&gt;
| P68 [[IMA4 2017/2018 P68|Générateur de chronogrammes d'ordonnancement]]&lt;br /&gt;
| Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Samy Belhouachi&lt;br /&gt;
|-&lt;br /&gt;
| PP1 [[IMA4 2017/2018 Pré-projet 1|Robot hexapode pour escalier]]&lt;br /&gt;
| Alexandre Boé / Xavier Redon / Thomas Vantroys&lt;br /&gt;
| Eduardo Gomez-Riaza &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Matériel à acquérir ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Projet !! Matériel&lt;br /&gt;
|-&lt;br /&gt;
| P1 [[IMA4 2017/2018 P1|Automatisation de la production de bière]]&lt;br /&gt;
| &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Capteur de température DS18B20 [https://www.gotronic.fr/art-sonde-etanche-ds18b20-19339.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Raccord tuyau en Y [https://fr.rs-online.com/web/p/coupleurs-de-tuyaux-flexibles/4197259/] &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;2 Pompes péristaltique dc 12V [https://www.mouser.fr/ProductDetail/Adafruit/1150?qs=sGAEpiMZZMsMyYRRhGMFNp8jyMJFi5X9NqTp2aghyow%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Tube en silicone [https://fr.rs-online.com/web/p/tubes-flexibles/9124751/]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red&amp;quot;&amp;gt;Tube en cuivre [https://fr.rs-online.com/web/p/tubes-en-cuivre/0846503/]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;2 résistances 1kOhms&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;2 transistors bc547&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;2 diodes&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;14 cables M/M&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Alimentation DC 12V &amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| P3 [[IMA4 2017/2018 P3|Sécurisation de l'Internet des Objets par surveillance globale]]&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: purple;&amp;quot;&amp;gt;Xbee USB Adapter * 1 [https://www.amazon.fr/dp/B017KGBP6Y/ref=asc_df_B017KGBP6Y48622783/?tag=googshopfr-21&amp;amp;creative=22722&amp;amp;creativeASIN=B017KGBP6Y&amp;amp;linkCode=df0&amp;amp;hvdev=c&amp;amp;hvnetw=g&amp;amp;hvqmt=]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: purple;&amp;quot;&amp;gt;XDigiKey Xbee module 2.4Hz * 4 [https://www.digikey.com/catalog/en/partgroup/xbee-and-xbee-pro-zb-zigbee/12201] ReX : imprécis, cherchez chez gotronic&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: purple;&amp;quot;&amp;gt;l'antenne pour Xbee * 4  [https://www.matlog.fr/fr/61-antennes-24-ghz.html]&amp;lt;/font&amp;gt;    &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Arduino uno * 4 [https://store.arduino.cc/usa/arduino-uno-rev3]&amp;lt;/font&amp;gt;         &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Xbee Shields pour Arduino * 4  [https://store.arduino.cc/arduino-wirelss-sd-shield]&amp;lt;/font&amp;gt;  &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Câble USB pour Arduino * 4  [https://fr.aliexpress.com/item/usb-cable-for-arduino-with-UNO-R3-ATMEGA328P-PU-ATMEGA8U2-and-Mega-2560-R3-Mega2560-REV3/32624000858.html?src=google&amp;amp;albslr=221466033&amp;amp;isdl=y&amp;amp;aff_short_key=UneMJZVf&amp;amp;source=%7Bifdyn:dyn%7D%7Bifpla:pla%7D%7Bifdbm:DBM&amp;amp;albch=DID%7D&amp;amp;src=google&amp;amp;albch=shopping&amp;amp;acnt=494-037-6276&amp;amp;isdl=y&amp;amp;albcp=653151748&amp;amp;albag=36672819047&amp;amp;slnk=&amp;amp;trgt=61865531738&amp;amp;plac=&amp;amp;crea=fr32624000858&amp;amp;netw=g&amp;amp;device=c&amp;amp;mtctp=&amp;amp;gclid=Cj0KCQiAv_HSBRCkARIsAGaSsrC92WYZ2oroveXJLqUQCBfRBuRMa8VoShOZWNBitPIvrry8V1HpMmkaAg-QEALw_wcB]  &amp;lt;/font&amp;gt;                               &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Batterie externe(qui a 2 ports à recharger) * 4 [https://www.amazon.fr/EC-Technology-22400mAh-Batterie-capacit%C3%A9/dp/B00F5Q4F0U/ref=sr_1_1_sspa?ie=UTF8&amp;amp;qid=1513804729&amp;amp;sr=8-1-spons&amp;amp;keywords=batteries+externe&amp;amp;psc=1]&amp;lt;/font&amp;gt;  &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;USB À UART TTL Câble * 1   [https://fr.aliexpress.com/item/USB-To-RS232-TTL-USB-To-COM-Serial-Adapter-Cable-Module-PL2303HX-Converter/1859099599.html?src=google&amp;amp;albslr=201492522&amp;amp;isdl=y&amp;amp;aff_short_key=UneMJZVf&amp;amp;source=%7Bifdyn:dyn%7D%7Bifpla:pla%7D%7Bifdbm:DBM&amp;amp;albch=DID%7D&amp;amp;src=google&amp;amp;albch=shopping&amp;amp;acnt=494-037-6276&amp;amp;isdl=y&amp;amp;albcp=653151748&amp;amp;albag=36672819047&amp;amp;slnk=&amp;amp;trgt=61865531738&amp;amp;plac=&amp;amp;crea=fr1859099599&amp;amp;netw=g&amp;amp;device=c&amp;amp;mtctp=&amp;amp;gclid=CjwKCAiAsejRBRB3EiwAZft7sENdHUiXBHo-JhKGxsmwfnaRATNn_OPdCl9y-WVMwi8elX5S6QCMnhoCNm8QAvD_BwE]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Breadboard de prototypage * 3 [https://www.amazon.fr/Breadboard-Carte-dexp%C3%A9rimentation-Soudure-Solderless/dp/B06XWFG9DT/ref=sr_1_2_sspa?ie=UTF8&amp;amp;qid=1516049551&amp;amp;sr=8-2-spons&amp;amp;keywords=breadboard+arduino&amp;amp;psc=1]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;USB câble pour xbee USB Adapter [https://www.amazon.fr/dp/B003OSS4SA/ref=asc_df_B003OSS4SA49349077/?tag=googshopfr-21&amp;amp;creative=22698&amp;amp;creativeASIN=B003OSS4SA&amp;amp;linkCode=df0&amp;amp;hvdev=c&amp;amp;hvnetw=g&amp;amp;hvqmt=]&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P4 [[IMA4 2017/2018 P4|Développement d'un module d'énergie pour Internet des Objets]]&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1xModule solaire [[https://www.mouser.fr/ProductDetail/MikroElektronika/MIKROE-651?qs=sGAEpiMZZMvxW%252bY8mn0Q9U%252b%2fhOkIvSmCqkyN6XrqZsI%3d]]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1xBatterie [[http://fr.farnell.com/varta/55608303059/batterie-nimh-3-6v/dp/279341]]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1xConvertisseur Boost [[https://fr.rs-online.com/web/p/convertisseurs-boost/8123659/]]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2xDiode de Schottky de redressement [[https://fr.rs-online.com/web/p/diodes-de-redressement-et-schottky/7390436/]]&amp;lt;/font&amp;gt; &lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1xConvertisseur Buck-Boost (sortie) [[https://fr.rs-online.com/web/p/regulateurs-a-decoupage-buck-boost/6989091/]]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2xSupercondensateur 2,7V - 50F [[https://www.mouser.fr/ProductDetail/Maxwell-Technologies/BCAP0050-P270-T01/?qs=sGAEpiMZZMsCu9HefNWqpt2sk1W1BTZ59akVpHhf5KE=]]&amp;lt;/font&amp;gt;&lt;br /&gt;
* 10 jumpers [[https://fr.rs-online.com/web/p/cavaliers-et-shunts/6742397/]]&lt;br /&gt;
* Module MPPT [[https://www.mouser.fr/ProductDetail/STMicroelectronics/SPV1050TTR?qs=sGAEpiMZZMsMLZWdhVL71%2fkXzzgq0Ptzmbr9rWlHkic%3d]]&lt;br /&gt;
* 20 pin connection mâle  [[https://fr.rs-online.com/web/p/barrettes-pour-ci/8967620/]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| P5 [[IMA4 2017/2018 P5|Réseau de capteurs de pollution]]&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;ESP32 [[https://www.gotronic.fr/art-carte-esp32-dev-13907-25510.htm]]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Module GPS [[https://www.gotronic.fr/art-module-gps-tel0094-25732.htm]]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Batterie Lithium Ion [[https://fr.rs-online.com/web/p/batteries-externes/8755758/]] ou [[https://fr.rs-online.com/web/p/batteries-externes/1366470/]] suivant le prix&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Adaptateur micro USB&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Breadboard&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Un smartphone sous Android (Version Lollipop minimale - optionnel)&amp;lt;/font&amp;gt;&lt;br /&gt;
* HPMA115S0-XXX (Capteur déjà acheté normalement)&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2 connecteurs micro-USB [[https://www.gotronic.fr/art-embase-micro-usb-b-cms-18339.htm]]&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P6 [[IMA4 2017/2018 P6|Réseau LoRaWAN]]&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; 1 * iC880A-SPI &amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; 1 * Raspberry &amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; 2 * Nucleo-F4 &amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; 2 * Shield STM32 LoRa&amp;lt;/span&amp;gt;, &amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P7 [[IMA4 2017/2018 P7|Brique pour apprentissage informatique]]&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;1xCapteur ultrason [https://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2xafficheurs-7segments [http://fr.farnell.com/broadcom-limited/hdsp-7801/afficheur-a-leds-7-62mm-vert/dp/1003275]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;4xboutons poussoirs [https://www.gotronic.fr/art-module-bouton-poussoir-st043-26115.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;4xleds [https://www.gotronic.fr/art-led-5-mm-led5bt-21009.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;2xpotentiomètres [https://www.gotronic.fr/art-potentiometre-lineaire-47k-8486-11110.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2xcâble [https://www.gotronic.fr/art-cordon-alimentation-pile-9v-19414.htm] + pile [https://www.gotronic.fr/art-pile-9v-au-lithium-uv9l-5575.htm] pour alimenter l'Arduino&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;2xArduino Uno [https://store.arduino.cc/arduino-uno-rev3]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2xModule bluetooth pour arduino (BTM-01)[https://www.mouser.fr/ProductDetail/OSEPP-Electronics/BTM-01/?qs=YCa%2fAAYMW020ADfc44%2fjCA%3d%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;10xMicrocontrôleur Atmega328p [http://fr.farnell.com/microchip/atmega328p-pu/micro-8-bits-avr-32k-flash-28pdip/dp/1715487]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;2xKit roue + moteur [https://www.gotronic.fr/art-kit-roue-moteur-23569.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;1xRoue folle [https://www.robotshop.com/eu/fr/roulette-bille-pololu-0375-po-metal.html]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;1xContrôleur de moteur [https://www.gotronic.fr/art-commande-de-2-moteurs-tb6612fng-2x1a-21716.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;50xpicots mâle [https://fr.rs-online.com/web/p/barrettes-pour-ci/8967620/]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;5xpicots femelle [https://fr.rs-online.com/web/p/barrettes-pour-ci/2677400/]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;4x10 ressorts [https://fr.rs-online.com/web/p/ressorts-de-compression/0821245/]&amp;lt;/font&amp;gt;&lt;br /&gt;
*1xplaque de contreplaqué [https://www.leroymerlin.fr/v3/p/produits/predecoupe-medium-mdf-naturel-ep-10-mm-l-120-x-l-60-cm-e105237#&amp;amp;xtmc=predecoupe&amp;amp;xtcr=1]&lt;br /&gt;
|-&lt;br /&gt;
| P10 [[IMA4 2017/2018 P10|Portage de RIOT-OS sur MSP430 pour IOT]]&lt;br /&gt;
| &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt; 2xCC430 [https://www.mouser.fr/ProductDetail/Texas-Instruments/CC430F5137IRGZT/?qs=%2fqzd9s%252bcLd7GiX35ln9VRA==] (fourni par les tuteurs de projet)&amp;lt;/span&amp;gt; 3 reçus&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt; 1xMSP430-CCRF  [https://www.olimex.com/Products/MSP430/Starter/MSP430-CCRF/] (fourni par les tuteurs de projet)&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt; 1xMSP-EXP430G2 [https://www.mouser.fr/productdetail/texas-instruments/msp-exp430g2?qs=sGAEpiMZZMv1ORdfpzTN%252bMwZ3%252b5KGk2B] (fourni par les tuteurs de projet)&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P12 [[IMA4 2017/2018 P12|Système d'ostéophonie pour magicien]]&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Raspberry Pi 3, &amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Microcontroleur STM32L433CCT6 [https://www.mouser.fr/ProductDetail/STMicroelectronics/STM32L433CCT6?qs=sGAEpiMZZMuoKKEcg8mMKFZaGHZhaFFC5XHr6X%2fBPloj9WsFWEQ6BA%3d%3d],&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Mémoire Flash IS25WP064A-RMLE [https://www.mouser.fr/productdetail/issi/is25wp064a-rmle?qs=sGAEpiMZZMtI%252bQ06EiAoG5kNS0TozX6Gt0%2FX%2Fi6ExQk%3D], &amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;DAC MCP4725A0T-E/CH [https://www.mouser.fr/productdetail/microchip-technology/mcp4725a0t-e-ch?qs=sGAEpiMZZMvfFCidbTccA97L6UsE6%2Fky], &amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Batterie 3.6V [https://www.gotronic.fr/art-accu-nimh-3-6v-300mah-290.htm], &amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Module Bluetooth 4.1 BM20SPKS1NBC-0001AA  [https://www.mouser.fr/ProductDetail/Microchip-Technology/BM20SPKS1NBC-0001AA?qs=sGAEpiMZZMsGelYiB%252bjhZv%252biZoDZL1ptX5ao52HhnlyFQbPW6KaEbg%3d%3d],&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Adafruit Bone Conductor Transduce [https://www.mouser.fr/ProductDetail/Adafruit/1674/?qs=sGAEpiMZZMsqIr59i2oRcvz%252byDSTdozphj%2f1Oxe6%252bAQ=], &amp;lt;/font&amp;gt;&lt;br /&gt;
* Transducteur Piézo diaphragme :&lt;br /&gt;
** &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;fréquence de résonance 2.9KHz (gotronic) [https://www.gotronic.fr/art-disque-piezoelectrique-dp035-3843.htm],&amp;lt;/font&amp;gt;&lt;br /&gt;
** &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;fréquence de résonance 4.6KHz (gotronic) [https://www.gotronic.fr/art-disque-piezoelectrique-dp027-3842.htm],&amp;lt;/font&amp;gt;&lt;br /&gt;
** &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;fréquence de résonance 6.6KHz (gotronic) [https://www.gotronic.fr/art-disque-piezoelectrique-dp024-3841.htm],&amp;lt;/font&amp;gt;&lt;br /&gt;
** &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Afréquence 8KHz 10KHz (RS) [https://fr.rs-online.com/web/p/buzzers-piezo/7214947/],&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Moteur Électrique CC RS Pro, 3 → 7,2 V c.c., 19,68 W, 19000 tr/min, 4,41 A  [https://fr.rs-online.com/web/p/moteurs-v-cc/2389721/].&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P14 [[IMA4 2017/2018 P14|Ecran géant modulaire]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P15 [[IMA4 2017/2018 P15|Balle vibrante connectée pour enfants sourd]]&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;8 vibreurs : [https://www.mouser.fr/productdetail/adafruit/1201?qs=sGAEpiMZZMsMyYRRhGMFNstIkcYqaSq8%2fLLE3lYp32I=]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Module Bluetooth 4.0 Low Energy : [https://www.mouser.fr/ProductDetail/Adafruit/2479?qs=sGAEpiMZZMsMyYRRhGMFNjWi9ZmxEfRwbLHKJ6JemUg%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Bobine de recharge à induction (norme Qi) : [https://www.mouser.fr/productdetail/adafruit/1901?qs=sGAEpiMZZMsMyYRRhGMFNkyDC95Rd%252blHW46I1pJekjA%3D]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; &amp;lt;del&amp;gt; Batterie rechargeable 5Ah &amp;lt;/del&amp;gt; à retirer de la commande car changement de batterie !! :  [https://www.gotronic.fr/art-accu-li-ion-26650-26312.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;1 Batterie rechargeable 5.2Ah :  [https://www.gotronic.fr/art-accu-li-ion-mgl9033-26425.htm#complte_desc]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; 2 controleurs pour moteur :[https://www.mouser.fr/ProductDetail/STMicroelectronics/L293DD?qs=sGAEpiMZZMukgiigmf73gOko5bw7EE67]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;2 condensateurs 14pF :[https://www.mouser.fr/ProductDetail/Murata-Electronics/GCQ1555C1H140FB01D?qs=sGAEpiMZZMs0AnBnWHyRQN7%2fAA2D2lPPLNRvFwtPLQHRWxf2q9etuA==]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;1 crystal quartz 16MHz :[https://www.mouser.fr/ProductDetail/ECS/ECS-160-12-33Q-JES-TR?qs=sGAEpiMZZMuMAfj%252bWfX4nLed60zyr3PUv7Kre5ygQ%252bs%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; 1 résistances CMS 10khoms 0603 :[http://fr.farnell.com/multicomp/mcre000164/res-couche-epaisse-10k-1-0-05w/dp/1711641]&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; 7 résistances CMS 1kohms 0603 :[http://fr.farnell.com/multicomp/mcre000140/res-couche-epaisse-1k-1-0-05w/dp/1711615?st=MULTICOMP%201K%200603]&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; 1 résistances CMS 470ohms 0603:[https://www.mouser.fr/ProductDetail/TDK/MMZ1608Y471BTA00?qs=sGAEpiMZZMu0dYp3dYbBlQn%252beM9UWul2G3hJ%2f7TLqL0%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; 2 résistances CMS 2kOhms 0603 :[https://www.mouser.fr/ProductDetail/Panasonic-Industrial-Devices/ERJ-3EKF2001V?qs=sGAEpiMZZMu61qfTUdNhGzRxdwze5h8ZMDWmuHH2qQY%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; 2 resistances CMS 340kOhms 0603 :[https://www.mouser.fr/ProductDetail/Vishay/CRCW0603340KFKEA?qs=sGAEpiMZZMukHu%252bjC5l7YRSQiDx9P4ktLgBETRAdfqw%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; 1 resistances CMS 1.87MOhms 0603 :[https://www.mouser.fr/ProductDetail/Yageo/RC0603FR-071M87L?qs=sGAEpiMZZMu61qfTUdNhG6gKAQVNBKOo2zO%2fNI9xQvs%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;2 resistances CMS 100kOhms 0603 :[https://www.mouser.fr/ProductDetail/Vishay-Draloric/RCG0603100KFKEA?qs=sGAEpiMZZMsa677hLZe2Z63dGP%2fTFOZQ]&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; 4 condensateur 10uF 0603 :[https://www.mouser.fr/ProductDetail/Taiyo-Yuden/LMK107BC6106MA-T?qs=sGAEpiMZZMukHu%252bjC5l7Yd8IIWTQlTYBUiPYtsE4Bzg%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;1 condensateur 0.1uF 0603 :[https://www.mouser.fr/ProductDetail/Taiyo-Yuden/GMK107BJ104KAHT?qs=sGAEpiMZZMs0AnBnWHyRQNbg85K4ab%2f3WB4TApadaC0%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;1 condenateur 2.2uF 0603 :[https://www.mouser.fr/ProductDetail/Taiyo-Yuden/JMK107B7225KAHTR?qs=sGAEpiMZZMs0AnBnWHyRQPSjYu%2fkbgu8y0KcZVF30DNOIVNQnIIJ3Q%3d%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;1 condensateur 22uF 0603 :[https://www.mouser.fr/ProductDetail/Taiyo-Yuden/LMK107BBJ226MA-T?qs=sGAEpiMZZMs0AnBnWHyRQPSjYu%2fkbgu8OPGniOr6zLcT6eSTCbA%252bCQ%3d%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;2 condensateur 1uF 0603 :[https://www.mouser.fr/ProductDetail/Taiyo-Yuden/GMK107BJ105KA-T?qs=sGAEpiMZZMs0AnBnWHyRQAEIN6r3SS%2fOBpoA9Mx5a9I%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;1 condensateur 1210 100uF 1210 :[https://www.mouser.fr/ProductDetail/Murata-Electronics/GRM32ER61A107ME20L?qs=sGAEpiMZZMukHu%252bjC5l7Ya6pfwBk8EBeq55B9L%252bMJQA%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;2 led verte CMS 1206 :[https://www.mouser.fr/ProductDetail/Kingbright/APTD3216LCGCK?qs=sGAEpiMZZMuCm2JlHBGefutc4sI%252bRg9%2fbKLcTuDCbMNnKZ3XxcbEWg%3d%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;1 led orange 1206 CMS :[https://www.mouser.fr/ProductDetail/Lite-On/LTST-C150KAKT?qs=sGAEpiMZZMseGfSY3csMkTlTHQ2beMlrmGllatFacok%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;2 led rouge 1206 CMS :[https://www.mouser.fr/ProductDetail/Kingbright/APTD3216LSURCK?qs=sGAEpiMZZMuCm2JlHBGefutc4sI%252bRg9%2fEbFuu2HcaZsnh6Yj8wyZLQ%3d%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;1 led bleue CMS 1206 :[https://www.mouser.fr/ProductDetail/Kingbright/APTD3216LQBC-D?qs=sGAEpiMZZMseGfSY3csMkdgyOOAg6kv2SoHfbZ6fYRJR%252bPUfy4LTDQ%3d%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; 1 module Bluetooth 802.15 :[https://www.mouser.fr/productdetail/seeed-studio/317030027?qs=wU1J8Md1npz%2F8UksA%252bh%252byw%3D%3D]&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;1 Regulateur de tension LDO :[https://www.mouser.fr/ProductDetail/Microchip-Technology-Micrel/MIC5225YM5-TR?qs=sGAEpiMZZMsGz1a6aV8DcNranXV84HMLR75Z9P39yqc%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;1 Transistor PNP prépolarisé 100mA:[https://www.mouser.fr/ProductDetail/ON-Semiconductor/MMUN2133LT1G/?qs=ZpPixqFcBtysLCI/2LOB%252bQ==]&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;1 Régulateur de tension de commutation:[https://www.mouser.fr/ProductDetail/Texas-Instruments/TPS61090RSAR?qs=sGAEpiMZZMuo%252bmZx5g6tFAsofpr73Rbu]&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;1 chargeur de batterie pour une cellule Li-on:[http://fr.farnell.com/microchip/mcp73831t-2aci-ot/controleur-de-charge-li-ion-li/dp/1332158]&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;3 Diodes :[https://www.mouser.fr/ProductDetail/Diodes-Incorporated/1N4148WQ-7-F?qs=sGAEpiMZZMtzpSA5GSDwayHNFYvfz9yMGFXnI15cqbU%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;1 diodes et redresseurs:[https://www.mouser.fr/ProductDetail/ON-Semiconductor/MBR120ESFT1G?qs=sGAEpiMZZMtQ8nqTKtFS%2fCKUxMvjsmGzPwX1d8aVcbo%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;1 inductance 6.8uH:[http://fr.farnell.com/bourns/srn6045ta-6r8m/inductance-aec-q200-6-8uh-3-6a/dp/2616892]&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Quartz 32Mhz:[https://www.mouser.fr/ProductDetail/?qs=2xLVn2jvFusfExB%252byZEnpA%3D%3D]&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P16 [[IMA4 2017/2018 P16|Sous-chaussure chauffante pour docker]]&lt;br /&gt;
| &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2xArduino Pro Mini [https://www.mouser.fr/ProductDetail/Adafruit/2377?qs=sGAEpiMZZMsMyYRRhGMFNrePrikk4IpJQBQo3elmwiI%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1xbouclier USB vers UART pour mini Arduino [https://www.mouser.fr/ProductDetail/Digilent/410-212?qs=sGAEpiMZZMsF1ODjcwEocFxZWH6k8YAWBC6KMJ05oOA%3d] &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;4xcapteurs de température et humidité DHT22 [https://www.gotronic.fr/art-capteur-de-t-et-d-humidite-dht22-20719.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;2xMOSFET [https://fr.rs-online.com/web/p/transistors-mosfet/5431184/]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;1xbatterie [https://fr.rs-online.com/web/p/batteries-externes/7757508/?searchTerm=pb+A5200&amp;amp;relevancy-data=636F3D3126696E3D4931384E4C446573635461786F6E6F6D794272616E645365617263685465726D325F74656D70266C753D6672266D6D3D6D617463687061727469616C6D617826706D3D5E5B5C707B4C7D5C707B4E647D3F5C707B5A737D2D2C2F255C2E5D2B2426706F3D31313326736E3D592673743D4B4559574F52445F4D554C54495F414C5048415F414E445F4D554C54495F414C5048415F4E554D455249432673633D592677633D4E4F4E45267573743D7062204135323030267374613D706220413532303026]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;1xfilm de tranfert thermique [https://fr.rs-online.com/web/p/tampons-decart-thermiques/5075605/] Référence SILPAD400AC &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;1xBobine fil résisitif [https://fr.rs-online.com/web/p/cable-industriel-multiconducteur/7496344/]&amp;lt;/font&amp;gt;&lt;br /&gt;
*1xpaire de chaussure de sécurité (utilisation de nos chaussure)&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;1xplaque de caoutchouc antidérapant antivibration [https://www.leroymerlin.fr/v3/p/produits/dalle-antiderapante-noir-gpi-e128988]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;1xRouleau de scratch [https://www.leroymerlin.fr/v3/p/produits/ruban-adhesif-mini-ruban-scratch-auto-agrippant-scratch-grip-l-2000-x-l-10-mm-e1400146133]&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| P17 [[IMA4 2017/2018 P17|Safe Watch]]&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; Arduino &amp;lt;/font&amp;gt;, &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; Bouclier Arduino LCD &amp;lt;/font&amp;gt;, &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; Bouclier GPS Arduino &amp;lt;/font&amp;gt;, &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; Bouclier GSM Arduino &amp;lt;/font&amp;gt;,&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; Plaque d'essai, câbles, 3 boutons &amp;lt;/font&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| P18 [[IMA4 2017/2018 P18|Mandala électronique]]&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;TCL5947*3 [http://fr.farnell.com/texas-instruments/tlc5947dap/ic-led-driver-linear-32-tssop/dp/1755259]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Arduino Atmega328p [http://fr.farnell.com/microchip/atmega328p-aur/mcu-8-bits-atmega-20mhz-tqfp-32/dp/2425124?st=atmega328p]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;LEDs rougesx40 [http://fr.farnell.com/kingbright/kpl-3015ec/led-12mcd-rouge-617nm/dp/2426224]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;LEDs jaunesx70 [http://fr.farnell.com/kingbright/kpl-3015syck/led-350mcd-jaune-590nm/dp/2426230]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;LEDs bleuesx55 [http://fr.farnell.com/kingbright/kpl-3015qbc-d/led-200mcd-bleu-465nm/dp/2426226]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;LEDs orangesx55 [http://fr.farnell.com/kingbright/kpl-3015seck/led-350mcd-orange-601nm/dp/2426227]&amp;lt;/font&amp;gt;          &lt;br /&gt;
*Transistorsx30 [http://fr.farnell.com/on-semiconductor/mmbt3904/transistor-npn-sot-23/dp/9846727]  &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Bois [https://www.leroymerlin.fr/v3/p/produits/predecoupe-contreplaque-okoume-exterieur-ep-5-mm-l-80-x-l-60-cm-e1401453577]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Source alimentationx2 [https://www.gotronic.fr/art-4-accus-nimh-r6-varta-1-2v-2-1ah-19151.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Coupleur de pilesx2 [https://www.gotronic.fr/art-coupleur-4-piles-lr6-em4p-5709.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: cyan;&amp;quot;&amp;gt;Gouache [https://www.amazon.fr/Mallette-dartiste-bois-35-pi%C3%A8ces/dp/B00GIONTS2/ref=sr_1_2?ie=UTF8&amp;amp;qid=1516056582&amp;amp;sr=8-2&amp;amp;keywords=gouache]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: cyan;&amp;quot;&amp;gt;Stylo [https://www.amazon.fr/Papermate-S0916420-PM-300-Pointe-Moyenne/dp/B005HI33KO/ref=sr_1_3?ie=UTF8&amp;amp;qid=1516201326&amp;amp;sr=8-3&amp;amp;keywords=crayon+dore]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;ZX Distance et Gesture Sensor [https://www.mouser.fr/productdetail/sparkfun/sen-13162?qs=sGAEpiMZZMsEbyLvxciIbARXbzpjz%2fFllERyJO140AQcgPpUTdWOKA==]&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P19 [[IMA4 2017/2018 P19|Bijou électronique]]&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;50xLED CMS orange [http://fr.farnell.com/broadcom-limited/hsmd-c170/led-cms-orange/dp/5790864?MER=bn_para_1TP_LastViewed_1]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;50xLED CMS bleu [http://fr.farnell.com/broadcom-limited/hsmr-c170/led-bleu/dp/8554749]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;50xLED CMS vert [http://fr.farnell.com/broadcom-limited/hsmg-c170/led-verte/dp/5790852]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;50xLED CMS jaune [http://fr.farnell.com/broadcom-limited/hsmy-c170/led-jaune/dp/5790876]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;50xLED CMS rouge [http://fr.farnell.com/broadcom-limited/hsms-c170/led-rouge-he/dp/5790839]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1xArduino UNO &amp;amp; 1xAtmega328p [http://fr.farnell.com/arduino-org/a000066/arduino-uno-carte-d-eval/dp/2075382]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1xDS18B20 [http://fr.farnell.com/maxim-integrated-products/ds18b20u-t-r/capteur-de-temperature-0-5deg/dp/2515607]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1xBreadboard [http://fr.farnell.com/mcm/21-18936/half-size-breadboard-with-300/dp/2799991]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;1xPulsesensor [https://www.mouser.fr/ProductDetail/SparkFun/SEN-11574?qs=%2fha2pyFadui%2fRsn4onUiCn%2f5VOJEA9t%252bK%252brmkRQhmlsCSXQ%252bUAWWwg%3d%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;5xpiles de boutons de 3V [http://fr.farnell.com/varta/6032101501/pile-lithium-bouton/dp/300445]&amp;lt;/font&amp;gt;&lt;br /&gt;
*1xfil de fer [https://www.gotronic.fr/art-soudure-esp006-50-25658.htm]&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;1xruban isolant [https://www.gotronic.fr/art-ruban-isolant-temflex-7682.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*50xrésistances 68ohm [https://fr.rs-online.com/web/p/resistances-traversantes/1650741/]&lt;br /&gt;
*1xrésistances 8.2 Mohm [https://fr.rs-online.com/web/p/resistances-traversantes/6834102/]&lt;br /&gt;
*50xrésistances 56ohm [https://fr.rs-online.com/web/p/resistances-traversantes/1650735/]&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;1xinterrupteur bascule [https://www.mouser.fr/ProductDetail/NKK-Switches/B12JJVC?qs=sGAEpiMZZMumOpTNq3bZXvRXehMYP%252byokBQhv3MozMw%3d]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: cyan;&amp;quot;&amp;gt;1xtoile [https://www.amazon.fr/Zedtom-Rouleau-D%C3%A9coration-Artisanat-Bricolage/dp/B01KJXOLZM/ref=sr_1_3?s=hi&amp;amp;ie=UTF8&amp;amp;qid=1516198372&amp;amp;sr=1-3&amp;amp;keywords=toile]&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P20 [[IMA4 2017/2018 P20|Solution de messagerie à base de conteneurs]]&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;1 Raspberry Pi&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P22 [[IMA4 2017/2018 P22|Horloge numérique DCF77, serveur de temps et ludique]]&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Pack de batterie NiMh 510mAh [http://fr.farnell.com/varta/55750404014/pack-de-batterie-nimh-510mah-4/dp/1903286]&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Contrôleur de batterie [https://fr.rs-online.com/web/p/controleurs-de-charge-de-batterie/5456852/] &amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P23 [[IMA4 2017/2018 P23|Table de bar connectée]]&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: pink;&amp;quot;&amp;gt;'''NEW'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt; Regulateur 5V-&amp;gt;3.3V 800mA [http://fr.farnell.com/stmicroelectronics/ld1117v33/regulateur-ldo-3-3v-1117-to-220/dp/9755837?CMP=KNC-GFR-FFR-GEN-KWL-G50-STMICROELECTRONICS&amp;amp;mckv=s2ZjbOaj_dc|pcrid|79679603942|&amp;amp;gclid=EAIaIQobChMIhe6d84CU2QIVShbTCh2pTggwEAAYAyAAEgKdUvD_BwE] &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt; &amp;lt;del&amp;gt;1 * Adaptateur Xbee&amp;lt;-&amp;gt;USB &amp;lt;/del&amp;gt; Plus nécessaire, on créera le notre avec un ATMega16U2&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 4 * Modules Xbee [http://fr.farnell.com/digi-international/xb24-awi-001/module-zigbee-xbee-1mw-antenne/dp/1337912] &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt; 2 * Capteur de temperature [https://www.mouser.fr/ProductDetail/Analog-Devices/AD22103KTZ?qs=sGAEpiMZZMucenltShoSnoiUfjKGVRv2VdPSgYmyZyM%3d] &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 * Photoresistance [https://www.gotronic.fr/art-photoresistance-ldr04-2150.htm] &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt; 3 * Microcontroleurs Atmega328P [https://fr.rs-online.com/web/p/microcontroleurs/9214545/] &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 3 * Régulateur 9V-&amp;gt;5V, 100mA [http://fr.farnell.com/texas-instruments/lm78l05acz-nopb/regulateur-lineaire-5-2v/dp/1469108]&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; X * Piles 9V [https://fr.rs-online.com/web/p/piles-9-volts/7951545/] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt; 3 * Quartz 16M [http://fr.farnell.com/raltron/as-16-000-18/quartz-16mhz-18pf-hc-49s/dp/1611761?MER=bn_para_1TP_LastViewed_3] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 6 * Condensateur 18pF [http://fr.farnell.com/vishay/k180j15c0gf5tl2/ceramic-capacitor-18pf-50v-c0g/dp/4986210] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 * Panneau LED[https://www.gotronic.fr/art-panneau-a-leds-rgb-64x32-dfr0460-26065.htm]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; ATMEGA16u2-AU &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; Connectique USB A male à souder&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt; Planche à Pain&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: black;&amp;quot;&amp;gt; Autres composants electroniques...&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; &amp;lt;del&amp;gt;2&amp;lt;/del&amp;gt; 3 Modules Xbee S1&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; &amp;lt;del&amp;gt;2&amp;lt;/del&amp;gt; 3 Shield Arduino pou Xbee&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; &amp;lt;del&amp;gt;2&amp;lt;/del&amp;gt; 3 Cable USB A - USB mini&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; 1 Xbee - Usb Adaptateur (pour le parametrage)&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; 1 Led Rouge + Resistance 330Ohm&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; 3 Resistance 10K Ohm &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; Planche à pain &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; 3 Boutons &amp;lt;/span&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| P25 [[IMA4 2017/2018 P25|Essaim de robots]]&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt; 2 x Microcontrôleur Atmega [https://www.mouser.fr/ProductDetail/Microchip-Technology-Atmel/ATMEGA328P-MU?qs=sGAEpiMZZMvqv2n3s2xjscfa4zIkTHJIR0ZBr3z9ETo%3d] &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt; 22 x Condensateur 100nF [http://fr.farnell.com/kemet/c0201c104k9pactu/condensateur-mlcc-x5r-100nf-6/dp/1907036?st=Condensateur%20100nF] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt; 4 x Condensateur 10uF [http://fr.farnell.com/wurth-elektronik/885012106006/condesateur-mlcc-x5r-10uf-6-3v/dp/2495147] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt; 4 x Condensateur 22pF [http://www.mouser.fr/ProductDetail/AVX/06036A220KAT2A/?qs=sGAEpiMZZMs0AnBnWHyRQKdiqyDPVQdATEC6RfUr2zQ%3d] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x Rectifier Diode [http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/GL34G-E3-83/?qs=sGAEpiMZZMutXGli8Ay4kH9ZXA1Qtv9UOwbhSBXDb18%3d] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt; 4 x Servo moteur [https://www.mouser.fr/ProductDetail/Olimex-Ltd/MS-R-6-40?qs=sGAEpiMZZMvuFyKEiodORqSYMvGj9ACrspkI9Ywy%252bNs%3d] &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 6 x LED Infrarouge [http://fr.farnell.com/optek-technology/op290a/led-t-1-3-4/dp/1497872] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 6 x Récepteur Infrarouge [http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/TSOP38238/?qs=sGAEpiMZZMvAL21a%2fDhxMtgKho2n4%2fgBkajAZHPY5lE%3d] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x Quartz [http://www.mouser.fr/ProductDetail/ECS/ECS-160-20-3X-TR/?qs=sGAEpiMZZMvAbnEMxb34PZ9bYWrwSXiB] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x Switch [http://www.mouser.fr/ProductDetail/ALPS/SKQGADE010/?qs=sGAEpiMZZMsqIr59i2oRcrO5GDYRXDIX6cdtN26xmPE%3d] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x USB Chip [http://www.mouser.fr/ProductDetail/FTDI/FT232RL-REEL/?qs=sGAEpiMZZMs5ceO8zL%252bTxyQLQIH6hE7q] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt; 2 x USB-C Connector [https://www.mouser.fr/ProductDetail/Molex/105450-0101?qs=sGAEpiMZZMulM8LPOQ%252byk43rDx%252b4l5FzJ4YNghWv4pnX6X7mot%2f43w%3d%3d] &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt; 2 x Batteries 9V [http://www.mouser.fr/ProductDetail/Panasonic-Battery/6LF22XWA-B12/?qs=sGAEpiMZZMsra%2fh506hF%252bITISQoCasqh1k2eJLis9sg%3d] &amp;lt;/span&amp;gt;,  &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x Régulateur 5v [https://www.mouser.fr/ProductDetail/Texas-Instruments/LM1117IMPX-50-NOPB/?qs=X1J7HmVL2ZGGwLlD0uGqKQ%3D%3D] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt; 2 x Roue de balance [https://fr.rs-online.com/web/p/billes-porteuses/0687770/] &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt; 2 x Emetteur/Récepteur Ultrason 40kHz [https://www.robotshop.com/ca/fr/module-sonar-hc-sr04-ultra01.html] &amp;lt;/span&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[IMA4 2017/2018 P30|Contrôle d'une caméra WiFi.]]&lt;br /&gt;
|&lt;br /&gt;
Sont fournis par Ürbik : &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; 2 x Cartes Micro-SD &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;2 x Support Micro-SD vers SD &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 * Banana Pi Pro &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 * Antenne Wifi pour Banana Pi Pro &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 * Module RTC compatible Banana Pro &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 * Shield de dévloppement GPIO Banana Pro&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 * Bloc d'alimentation 230v~5v micro USB &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 * Banana Pi D1&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 * Adaptateur ethernet USB type A&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 * Cable MicroUSB mâle vers USB type A femelle&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 * Cable USB type A mâle vers Micro USB mâle et USB type A femelle&amp;lt;/font&amp;gt;&lt;br /&gt;
Sont demandés à Polytech :&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; 2 x Servomoteurs &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; 2 x Câbles ethernet &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: cyan;&amp;quot;&amp;gt; 1 x BananaPi D1 en remplacement [https://e.banana-pi.fr/cameras-banana-pi/35-bpi-d1-camera-ip.html] &amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P32 [[IMA4 2017/2018 P32|Tribute to Peter Vogel]]&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 15 x Photorésistances LDR04 [https://www.gotronic.fr/art-photoresistance-ldr04-2150.htm#complte_desc]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 20 x Amplificateur opérationnel LM358N [https://fr.rs-online.com/web/p/amplificateurs-operationnels/8431578]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 15 x Résistances 68Kohm [https://fr.rs-online.com/web/p/resistances-traversantes/0386048]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 15 x Résistances 4,7Kohm [https://fr.rs-online.com/web/p/resistances-traversantes/7077726]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 25 x Résistances 1Kohm [https://fr.rs-online.com/web/p/resistances-traversantes/2671777]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 25 x Transistors NPN 2N3904  [https://fr.rs-online.com/web/p/transistors-bipolaires/7390442]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 12 x Potentiomètres linéaires 100k [https://fr.rs-online.com/web/p/potentiometres/2633006/]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 10 x Potentiomètres linéaires 10k [https://www.mouser.fr/productdetail/welwyn-components-tt-electronics/p160kn-0qc17b10k?qs=sGAEpiMZZMtC25l1F4XBU1WvpdUcjC%2F6L3FhnOV516EmtF%252b%252b7aZUUw%3D%3D]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 10 x Condensateurs 10µF [https://www.gotronic.fr/art-condensateur-radial-10uf-50v-3360.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 10 x Résistances 100Kohm [https://www.gotronic.fr/art-10-resistances-1-4w-100k-8486-20.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 70 x Leds rouges [https://www.gotronic.fr/art-leds-rouges-led5rl-356.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Condensateur 100nF [https://www.gotronic.fr/art-condensateur-ceramique-100-nf-3215.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x Petits moteurs [https://www.gotronic.fr/art-moteur-miniature-sr30-787.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Atmega 328p [https://www.gotronic.fr/art-atmega328p-pu-16820.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Led verte   [https://www.gotronic.fr/art-leds-vertes-led3gl-2057.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Résistance 330ohms 1/6th Watt Pth[https://eu.mouser.com/ProductDetail/SparkFun/COM-08377/?qs=sGAEpiMZZMuM1nRwI3zz2UpCr55iWBr5d51zFU1jOr2Myatejq0Ujw==]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x bouton poussoir [https://www.gotronic.fr/art-bp-subminiature-krs32n-4271.htm?qs=sGAEpiMZZMs%2FSh%2Fkjph1tvt1%2FmEPT%2FXoz55nayTMEJw%3D]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x Condensateurs découplages 10µF [https://www.gotronic.fr/art-condensateur-faible-esr-10uf-50v-11308.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x Condensateurs céramiques 22pF [https://www.gotronic.fr/art-condensateur-ceramique-22-pf-3178.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Régulateur de tension [https://www.gotronic.fr/art-l7805cv-1578.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Cristal 16Mhz [https://www.gotronic.fr/art-quartz-16-000-mhz-55.htm]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 3 x Female headers [https://www.mouser.fr/productdetail/harwin/m50-3030842?qs=sGAEpiMZZMve4%2FbfQkoj%252bNAvEyry7AuOrgimgco8uSU%3D]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x Haut-parleur 2W [https://www.mouser.fr/ProductDetail/CUI/CDS-27208?qs=sGAEpiMZZMuTkJYgZlQcSew3leo0OO6IWAIjM88CpYEXXyeONvvJNg==]&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P35 [[IMA4 2017/2018 P35|Manette de jeu vidéo pour personne en situation de handicap]]&lt;br /&gt;
| &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; 3 x Push buttons [https://www.gotronic.fr/art-bp-miniature-krs1273-16976.htm] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt; 2 x Thumbstick (joystick analogique 4 directions) [https://www.gotronic.fr/art-joystick-analogique-4-directions-19063.htm] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt; 1 x Led RGB  [https://www.gotronic.fr/art-led-rgb-5-mm-led5rvb-2103.htm]&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; 1 x Raspberry Pi 3 + son câble + carte SD+ alim [https://fr.rs-online.com/web/p/processor-microcontroller-development-kits/8968660/?src=raspberrypi]&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; 3 x Arduino UNO &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt; 5 x Alimentation 3V: 10*piles AAA 1,2V rechargeables [https://www.mouser.fr/ProductDetail/Panasonic-Battery/HHR-60AAAHB2?qs=sGAEpiMZZMuXcNZ31nzYhUR9TS3h0B6UyKPniAa4akA%3d]&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 5 x modules bluetooth Nordi nrf nRF52810-QFAA-R [https://www.mouser.fr/productdetail/nordic-semiconductor/nrf52810-qfaa-r?qs=sGAEpiMZZMve4%2FbfQkoj%252bG%2FosjLoe2oghFQwQllMrQ4%3D] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt; 1 x barette connecteur mâle traversant [https://www.gotronic.fr/art-connecteur-he14-mh200-4459.htm] &amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt; 1 x barette connecteur femelle traversant [https://fr.rs-online.com/web/p/barrettes-pour-ci/2677416/] &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; 1 x breadboard &amp;lt;/span&amp;gt;.&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt; 1 x Raspberry pi zero&amp;lt;/span&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| P39 [[IMA4 2017/2018 P39|Musique des plantes]]&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt; 1 x Plante &amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Cordon pour électrodes [https://www.mouser.fr/ProductDetail/SparkFun-Electronics/CAB-12970/?qs=%2fha2pyFaduj1O95kixslzNrly0UKgNYdQ2TazqXF05PpguJVsXXh3Q%3d%3d]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Electrodes  [https://www.gotronic.fr/art-pads-a-electrodes-sen-12969-26244.htm]&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt; 2 x (précédemment 1) Amplificateur d'instrumentation  [http://fr.farnell.com/texas-instruments/ina125p/amp-inst-precision-pdip16-125/dp/1459461]&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt; 1 x Arduino Mega  [https://fr.rs-online.com/web/p/kits-de-developpement-pour-processeurs-et-microcontroleurs/7154084/]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Cable d'alimentation  [https://www.gotronic.fr/art-cordon-alimentation-pile-9v-19414.htm]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Batterie [http://fr.farnell.com/duracell/accu-9v1/accumulateur-9v-pq1/dp/4140308]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x Connecteur Jack  [https://fr.rs-online.com/web/p/connecteurs-jack-trs/5051485/]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Connecteur MIDI  [https://fr.rs-online.com/web/p/connecteurs-din/0491087/]&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x AOP LM324 [http://fr.farnell.com/texas-instruments/lm324n/ic-op-amp-quadruple/dp/1564884?st=LM324N]&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt; 3 x Interrupteurs [http://fr.farnell.com/multicomp/1ms1t1b5m1qe/interrupteur-spdt/dp/9473378?st=commutateur%20%C3%A0%20levier%20on%20on]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Potentiomètre [https://www.gotronic.fr/art-ajustable-vertical-2-2k-8486-11159.htm#complte_desc]&amp;lt;/span&amp;gt;, &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 2 x LED RGB  [https://www.gotronic.fr/art-led-rgb-5-mm-led5rvb-2103.htm]&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt; 1 x Haut-Parleur  [http://fr.farnell.com/kingstate/kdmg28008/loudspeaker-micro/dp/1502732?MER=bn_level5_5NP_EngagementRecSingleItem_3]&amp;lt;/span&amp;gt;,&lt;br /&gt;
|-&lt;br /&gt;
| P40 [[IMA4 2017/2018 P40|Exploration du réseau d'anonymisation Tor]]&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Réseau d'ordinateurs de l'école, implantés avec des VM&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;Un commutateur&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;La ligne SDSL&amp;lt;/span&amp;gt;,&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: purple;&amp;quot;&amp;gt;Et un marteau :)&amp;lt;/span&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| P42 [[IMA4 2017/2018 P42|Automatisation de l'assemblage de LEGO]]&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt;1 x Arduino Mega&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt;1 x ESP8266&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: orange;&amp;quot;&amp;gt;1 x Raspberry Pi 3&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x imprimante 3D&amp;lt;/font&amp;gt;&lt;br /&gt;
*1 x plaque de polystyrène &lt;br /&gt;
*1 x plaque de plexiglas (3mm)&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: cyan;&amp;quot;&amp;gt;1 x plaque Lego [https://shop.lego.com/fr-FR/La-plaque-de-base-verte-10700]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: cyan;&amp;quot;&amp;gt;15 x brique 1x1 noir [https://www.briquestore.fr/1x1/1233-lego-302426-plate-1x1-noir.html]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: cyan;&amp;quot;&amp;gt;15 x brique 1x1 blanc [https://www.briquestore.fr/1x1/1236-lego-302401-plate-1x1-blanc.html]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: cyan;&amp;quot;&amp;gt;15 x brique 1x1 bleu [https://www.briquestore.fr/1x1/1238-lego-302423-plate-1x1-bleu.html]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: cyan;&amp;quot;&amp;gt;15 x brique 1x1 rouge [https://www.briquestore.fr/1x1/1237-lego-302421-plate-1x1-rouge.html]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: cyan;&amp;quot;&amp;gt;15 x brique 1x1 jaune [https://www.briquestore.fr/1x1/1239-lego-302424-plate-1x1-jaune.html]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: cyan;&amp;quot;&amp;gt;15 x brique 1x1 vert [https://www.briquestore.fr/1x1/1241-lego-302428-plate-1x1-dark-green.html]&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P44 [[IMA4 2017/2018 P44|Reconnaissance d’objets via Traitement d’Image]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P49 [[IMA4 2017/2018 P49|Suivi de la qualité de l’air]]&lt;br /&gt;
| &lt;br /&gt;
Matériel fournit par l'INRIA :&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x Raspberry Pi 3&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x Arduino Méga&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x détecteur de mouvement PIR (HC-SR01)&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x détecteur de bruit&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x capteur de température et d'humidité (DHT22)&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x capteur de pression&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x capteur de luminosité&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x capteur de Composé Organique Volatil COV &amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;4 x capteurs de monoxyde de carbone CO (Alphasense) &amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;2 x capteurs de dioxyde de carbone CO&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
* &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x E/R XBee&amp;lt;/font&amp;gt;&lt;br /&gt;
* 1 x clavier alphanumérique usb&lt;br /&gt;
|-&lt;br /&gt;
| P50 [[IMA4 2017/2018 P50|Etage commande de Centaure]]&lt;br /&gt;
| &lt;br /&gt;
Matériels existants:&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;2 x Batteries 12V 22Ah (dont une hs)&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x Chargeur de batterie 12V &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x Contacteur 24Vcc 18A ref: TeSys LC1D18BD &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;2 x Variateurs de vitesse ref: Alpes Ital 8CH2QM.2&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x Arduino MEGA ADK avec son bouclier de capteurs &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x Carte keyes funduino à 4 relais&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x DC/DC convertisseur 24V =&amp;gt; 12V &amp;amp; 5V ref: Tracopower TEN 40-4811 &amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 x Porte fusibles à 5 ports &amp;lt;/font&amp;gt;&lt;br /&gt;
Matériels manquants:&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: purple;&amp;quot;&amp;gt; 1* Batterie 12V 55Ah; trouvée chez le fournisseur mouser.fr [https://www.mouser.fr/productdetail/power-sonic/ps-12550?qs=sGAEpiMZZMso%252bSMtTqBO32B9ZZCkCjmed3agP8D7TIo%3D]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: purple;&amp;quot;&amp;gt; 1* Chargeur 24V; chez le même fournisseur [https://www.mouser.fr/productdetail/ault-sl-power/bvl240600003n?qs=sGAEpiMZZMsYfYypWaYaEeWCnBdw823Sg9r4NP%2FMM%252bU%3D] &amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P60 [[IMA4 2017/2018 P60|Commande de niveaux d’eau]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P64 [[IMA4 2017/2018 P64|Simulation Labview et mise en réseau Modbus d’un ascenseur]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P65 [[IMA4 2017/2018 P65|Exosquelette pour apprentissage]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P66 [[IMA4 2017/2018 P66|Coupe de France de robotique]]&lt;br /&gt;
| &lt;br /&gt;
Fourni par Robotech :&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 × Batterie Lipo 4S&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 × Carte de puissance&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 × Support mécanique &amp;amp; Roues&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;2 × Faulhaber MOTOR 3557K024CS&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 × Contrôleur moteur&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;2 × HEDM-550X&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 × Capteur MinIMU-9 v3&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;X × Capteurs ultrasons / infrarouges&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 × MicroNova Mercury FPGA Development Board&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 × Arduino MEGA 2560&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 × Raspberry Pi 3&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;1 × Écran LCD SPI&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;X × Boutons&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P67 [[IMA4 2017/2018 P67|Scanner 3D DIY]]&lt;br /&gt;
| &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;2x Moteur NEMA 17&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;2x contrôleur moteur&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;bouton poussoir de fin de parcours de courroie&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;courroie et engrenage pour Nema 17&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;Alim 12V&amp;lt;/font&amp;gt;&lt;br /&gt;
*bobine de PLA pour impression 3D (dispo au Fabricarium) &lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Carte arduino Méga&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Caméra Kinect pour 360 ou Kinect microsoft&amp;lt;/font&amp;gt;&lt;br /&gt;
*Câble / résistances / capa  &lt;br /&gt;
*module de sauvegarde pour carte SD ou carte micro SD (j'en possède déjà un)&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: blue;&amp;quot;&amp;gt;capteur de mesure de distance [http://fr.farnell.com/sharp/gp2y0a21yk0f/capteur-de-distance/dp/1243869]&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;bois&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P68 [[IMA4 2017/2018 P68|Générateur de chronogrammes d'ordonnancement]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| PP1 [[IMA4 2017/2018 Pré-projet 1|Robot hexapode pour escalier]]&lt;br /&gt;
| &lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; Arduino Mega / câble&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; 12 servos moteurs SG90 &amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; une structure robot 4 pattes &amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; Plaque d'essai, câbles &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Discussion:Projets_IMA4_SC_%26_SA_2017/2018&amp;diff=50011</id>
		<title>Discussion:Projets IMA4 SC &amp; SA 2017/2018</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Discussion:Projets_IMA4_SC_%26_SA_2017/2018&amp;diff=50011"/>
				<updated>2018-02-07T13:46:37Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : /* Fiche de présence */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==  Notes sur les projets ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| Projet || Analyse du projet || Retour sur l'analyse || Matériel || Mi-parcours || Wiki terminé || Rapport || Vidéo&lt;br /&gt;
|-&lt;br /&gt;
| P1 [[IMA4 2017/2018 P1|Automatisation de la production de bière]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Présentation sans supports, bonne analyse de la concurrence. Par contre le scénario d'usage est à revoir en précisant l'usage pour le particulier.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Le scénario est précisé mais aucune réponse aux questions difficiles &amp;quot;gestion des températures et procédure d'entretien&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Rien.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P3 [[IMA4 2017/2018 P3|Sécurisation de l'Internet des Objets par surveillance globale]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Présentation focalisée sur les réseaux de neurones. Exercice mal compris (pas d'introduction du contexte, pas de scénario d'usage).&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Toujours pas d'analyse de la concurrence, ni de scénario d'usage. Pas de réponse aux questions difficiles &amp;quot;quel est le matériel ? quel est le protocole ? quelles sont les entrées du réseau de neurones ?&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Une liste mais il manque des références vers les fournisseurs agréés (voir page de l'an dernier).&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P4 [[IMA4 2017/2018 P4|Développement d'un module d'énergie pour Internet des Objets]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Exercice correctement réalisé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Pas de réponse aux questions difficiles &amp;quot;Architecture de la source d'énergie (nombre de chemins d'énergie ?)&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Rien.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P5 [[IMA4 2017/2018 P5|Réseau de capteurs de pollution]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt; Présentation focalisée sur la création du site Web. Effort fait pour rédiger un scénario d'usage.&amp;lt;/font&amp;gt; &lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt; Réponses aux questions mais l'analyse de la consommation est imprécise. &amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt; Du matériel listé dans la page Wiki mais à reporter en bas de la page des projets de cette année avec des références valides.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P6 [[IMA4 2017/2018 P6|Réseau LoRaWAN]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Exercice correctement réalisé. Scénario d'usage à préciser sur la partie réseau de capteurs.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt; Scénario d'usage non précisé. Pas de réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt; Du matériel listé mais sans référence, êtes-vous sur que le matériel n'a pas besoin d'être acheté ?&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P7 [[IMA4 2017/2018 P7|Brique pour apprentissage informatique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; Pas de support. Exercice très bien réalisé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Pas de réponse aux questions difficiles &amp;quot;quelle alimentation ? comment faire pour différencier les briques ? comment les briques vont-elles communiquer ? quelle sécurité vis-à-vis des enfants ?&amp;quot;&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Pas de liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P10 [[IMA4 2017/2018 P10|Portage de RIOT-OS sur MSP430 pour IOT]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; Rien à signaler (juste une confusion entre le MSP430 et le CC430).&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; Questions difficiles évacuées. &amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt; Du matériel listé mais sans référence.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P12 [[IMA4 2017/2018 P12|Système d'ostéophonie pour magicien]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Un peu rapide, exercice réalisé. &amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Pas d'analyse de la concurrence. Peu d'effort de rédaction. Des coquilles. Une réponse rapide à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt; Du matériel listé mais pas forcément exhaustif et sans référence valide.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P14 [[IMA4 2017/2018 P14|Ecran géant modulaire]]&lt;br /&gt;
| Doublant&lt;br /&gt;
| Doublant&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Page Wiki vide, pas de liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P15 [[IMA4 2017/2018 P15|Balle vibrante connectée pour enfants sourd]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Présentation acceptable mais avec des supports non soignés. Pas d'analyse de la concurrence, pas de scénario d'usage.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;L'analyse de la concurrence et le scénario d'usage ont été ajoutés. Par contre pas de réponse aux questions difficiles &amp;quot;quelle sera l'autonomie de la balle et quel sera le système de rechargement ?&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Pas de liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P16 [[IMA4 2017/2018 P16|Sous-chaussure chauffante pour docker]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Présentation acceptable mais avec des supports non soignés. Trouver des concurrents indirects. Une histoire mais pas de scénario d'usage.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Page Wiki modifiée après la présentation. Une réponse incomplète à la question difficile. Trop de coquilles pour ce niveau d'études.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Pas de liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P17 [[IMA4 2017/2018 P17|Safe Watch]]&lt;br /&gt;
| Doublant&lt;br /&gt;
| Doublant&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune modification de la page Wiki depuis début octobre.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P18 [[IMA4 2017/2018 P18|Mandala électronique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Supports très textuels, pas de scénario d'usage mais une rédaction sur l'intérêt psychologique, pas vraiment de partie &amp;quot;concurrents&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Un effort pour trouver des &amp;quot;concurrents&amp;quot;, pas de réponses aux questions difficiles &amp;quot;combien de LEDs ? quelle alimentation pour quelle autonomie&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Pas de liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P19 [[IMA4 2017/2018 P19|Bijou électronique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Bonne présentation orale. Utilisation du bluetooth peu convainquant. Pas de scénario d'usage. Un &amp;quot;concurrent&amp;quot; trouvé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Concept de scénario d'usage non compris. Une réponse à la question difficile très rapide et non convaincante.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Une liste de matériel dans la page Wiki mais à insérer dans le tableau en bas de la page principale. Pas de référence (voir sur la page de l'an passé).&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P20 [[IMA4 2017/2018 P20|Solution de messagerie à base de conteneurs]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Support assez corrects, sujet non entièrement compris, scénario d'usage minimal.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Un problème dans le scénario d'usage : les conteneurs doivent être lancés sur un serveur. Une réponse acceptable à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas de matériel particulier.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P22 [[IMA4 2017/2018 P22|Horloge numérique DCF77, serveur de temps et ludique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Analyse très correcte.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P23 [[IMA4 2017/2018 P23|Table de bar connectée]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Présentation trop impécise, pas vraiment de scénario d'usage. Par contre des concurrents ont été présentés.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Un scénario d'usage éloigné de la future utilisation. Trop de coquilles dans ce scénario. Réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Une liste du matériel mais pas dans la page principale. Pas de référence (voir page de l'an passé).&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P25 [[IMA4 2017/2018 P25|Essaim de robots]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Analyse très correcte. Un concurrent assez peu en rapport avec les essaims de robots mais dans la ligne des dispositifs de déminage.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas de question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Liste du matériel. Préciser pour le chassis.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[IMA4 2017/2018 P30|Contrôle d'une caméra WiFi.]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Objectif mal expliqué. Exercice réalisé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Mieux définir l'objectif suite à la visite en entreprise. Pas de réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P32 [[IMA4 2017/2018 P32|Tribute to Peter Vogel]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Excellente présentation et excellent travail préparatoire, Scénario d'usage à préciser, trouver des concurrents.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P35 [[IMA4 2017/2018 P35|Manette de jeu vidéo pour personne en situation de handicap]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Exercice réussi. Cependant précisez les acteurs dans le scénario d'usage.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Pas de modification du scénario. Pas de réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Rien à redire sur la liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P39 [[IMA4 2017/2018 P39|Musique des plantes]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Analyse très correcte.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Réponses aux questions difficiles.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P40 [[IMA4 2017/2018 P40|Exploration du réseau d'anonymisation Tor]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Sujet se prêtant peu à l'exercice mais très bonne présentation. Sujet travaillé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas vraiment de question, la suggestion est noté dans la page Wiki.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas de matériel à commander.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P42 [[IMA4 2017/2018 P42|Automatisation de l'assemblage de LEGO]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Analyse très correcte.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Pas de réponse aux questions difficiles &amp;quot;Comment démarrer l'imprimante à distance ? Comment sera calibrée la plaque d’impression ?&lt;br /&gt;
Comment la plaque va se fixer sur le sol ? &amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P44 [[IMA4 2017/2018 P44|Reconnaissance d’objets via Traitement d’image]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Le projet ne semble pas encore avoir été sérieusement étudié.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Net effort de documentation de la page Wiki. Pas de réponse directe à la question difficile sur la Kinect mais une discussion sur le problème posé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P49 [[IMA4 2017/2018 P49|Suivi de la qualité de l’air]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Contexte mal présenté, sujet flou. Scénario d'usage à préciser. Pas de contact avec les encadrants avant la présentation.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Page de Wiki vide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P50 [[IMA4 2017/2018 P50|Etage commande de Centaure]]&lt;br /&gt;
| Doublant&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Page de Wiki assez vide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P60 [[IMA4 2017/2018 P60|Commande de niveaux d’eau]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Présentation très correcte.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Pas de réponse à la question difficile. Page Wiki un peu vide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas de matériel à commander.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P64 [[IMA4 2017/2018 P64|Simulation Labview et mise en réseau Modbus d’un ascenseur]]&lt;br /&gt;
| Doublant&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Wiki avec quelques informations sur le travail accompli depuis fin novembre : étude sur modbus et labview. Quelques coquilles.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P65 [[IMA4 2017/2018 P65|Exosquelette pour apprentissage]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Présentation sans support. Trouver des concurrents indirects. Pas de scénario d'usage.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Page Wiki vide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P66 [[IMA4 2017/2018 P66|Coupe de France de robotique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Analyse très correcte.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Page Wiki bien tenue. Ajoutez des illustrations.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Quelques éléments sur le matériel dans la page Wiki mais aucune liste avec références.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P67 [[IMA4 2017/2018 P67|Scanner 3D DIY]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Exercice bien réalisé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Page Wiki très complète. Ajoutez des illustrations.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Une liste probablement pas exhaustive.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P68 [[IMA4 2017/2018 P68|Générateur de chronogrammes d'ordonnancement]]&lt;br /&gt;
| Doublant&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Page Wiki vide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas de matériel à commander.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| PP1 [[IMA4 2017/2018 Pré-projet 1|Robot hexapode pour escalier]]&lt;br /&gt;
| Erasmus &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fiche de présence ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Projet !! Elèves !! Séance 1 (17/01) !! Séance 2 (24/01) !! Séance 3 (31/01) !! Séance 4 (7/02) !! Séance 5 (14/02) !! Séance 6 (21/02) !! Séance 7 (7/03) !! Séance 8 (14/03) !! Séance 9 (21/03) !! Séance 10 (28/03) !! Séance 11 (4/04) !! Séance 12 (11/04) !! Séance 13 (18/04)&lt;br /&gt;
|-&lt;br /&gt;
| P1 [[IMA4 2017/2018 P1|Automatisation de la production de bière]]&lt;br /&gt;
|Quentin Boëns / Henri Carlier&lt;br /&gt;
|E304 &lt;br /&gt;
|E304/305&lt;br /&gt;
|E304&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| P3 [[IMA4 2017/2018 P3|Sécurisation de l'Internet des Objets par surveillance globale]]&lt;br /&gt;
|Ji Yang&lt;br /&gt;
|E306&lt;br /&gt;
|E303&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle &amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P4 [[IMA4 2017/2018 P4|Développement d'un module d'énergie pour Internet des Objets]]&lt;br /&gt;
| Alexis Viscogliosi / Abass Ayoub &lt;br /&gt;
|C008&lt;br /&gt;
|C008&lt;br /&gt;
|E304 &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Alexis Viscogliosi Absent excusé pour entretien stage&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P5 [[IMA4 2017/2018 P5|Réseau de capteurs de pollution]]&lt;br /&gt;
| Paul Ribeiro / Mehanna Naïf&lt;br /&gt;
|E303&lt;br /&gt;
|E301&lt;br /&gt;
|A204 &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Absents &amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P6 [[IMA4 2017/2018 P6|Réseau LoRaWAN]]&lt;br /&gt;
|  Antoine Gosse&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306 &lt;br /&gt;
|-&lt;br /&gt;
| P7 [[IMA4 2017/2018 P7|Brique pour apprentissage informatique]]&lt;br /&gt;
| Maëva Delaporte / Simon Blas&lt;br /&gt;
| E304 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E304 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E304 &amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P10 [[IMA4 2017/2018 P10|Portage de RIOT-OS sur MSP430 pour IOT]]&lt;br /&gt;
| Baptiste Cartier&lt;br /&gt;
| E306&lt;br /&gt;
| E301&lt;br /&gt;
| E306&lt;br /&gt;
|-&lt;br /&gt;
| P12 [[IMA4 2017/2018 P12|Système d'ostéophonie pour magicien]]&lt;br /&gt;
| Amine El Messaoudi / Simon Feutrier&lt;br /&gt;
| E301&lt;br /&gt;
| C201&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle &amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P14 [[IMA4 2017/2018 P14|Ecran géant modulaire]]&lt;br /&gt;
| Jade Dupont&lt;br /&gt;
|E304 &lt;br /&gt;
|E304 &lt;br /&gt;
|E304 &lt;br /&gt;
|-&lt;br /&gt;
| P15 [[IMA4 2017/2018 P15|Balle vibrante connectée pour enfants sourd]]&lt;br /&gt;
| Thomas Cunin / Thibault Cattelain&lt;br /&gt;
| E304&lt;br /&gt;
| B306/E304&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle &amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P16 [[IMA4 2017/2018 P16|Sous-chaussure chauffante pour docker]]&lt;br /&gt;
| Rémi Mairesse / Gustave Roux&lt;br /&gt;
| E304&lt;br /&gt;
| E301&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle &amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P17 [[IMA4 2017/2018 P17|Safe Watch]]&lt;br /&gt;
| Oumaima Naanaa&lt;br /&gt;
|E302&lt;br /&gt;
|E304&lt;br /&gt;
|E304&lt;br /&gt;
|-&lt;br /&gt;
| P18 [[IMA4 2017/2018 P18|Mandala électronique]]&lt;br /&gt;
| Lirui Zhang / Lihe Zhang&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle &amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P19 [[IMA4 2017/2018 P19|Bijou électronique]]&lt;br /&gt;
| Lijie Yao / Keren Qiang&lt;br /&gt;
| E303&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P20 [[IMA4 2017/2018 P20|Solution de messagerie à base de conteneurs]]&lt;br /&gt;
| Maxime Creteur / Gao Fan&lt;br /&gt;
|E303&lt;br /&gt;
|E301&lt;br /&gt;
|A204 &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Absents &amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P22 [[IMA4 2017/2018 P22|Horloge numérique DCF77, serveur de temps et ludique]]&lt;br /&gt;
| Amaury Knockaert / Fabrice Taingland&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304/E302&lt;br /&gt;
|-&lt;br /&gt;
| P23 [[IMA4 2017/2018 P23|Table de bar connectée]]&lt;br /&gt;
| Matthieu Delobelle&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E303 - C201&lt;br /&gt;
|-&lt;br /&gt;
| P25 [[IMA4 2017/2018 P25|Essaim de robots]]&lt;br /&gt;
| Benjamin Canu / Ganix Etcheguibel&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[IMA4 2017/2018 P30|Contrôle d'une caméra WiFi.]]&lt;br /&gt;
| Taky Djeraba / Thomas Hubert&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle &amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P32 [[IMA4 2017/2018 P32|Tribute to Peter Vogel]]&lt;br /&gt;
| Jean-Baptiste Watine / Antoine Untereiner&lt;br /&gt;
| E306/C201&lt;br /&gt;
| E301&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle (C201) &amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P35 [[IMA4 2017/2018 P35|Manette de jeu vidéo pour personne en situation de handicap]]&lt;br /&gt;
| Transley Gracias / Camille Saad&lt;br /&gt;
| E306 &lt;br /&gt;
| E306 &lt;br /&gt;
| E305&lt;br /&gt;
| E306&lt;br /&gt;
|-&lt;br /&gt;
| P39 [[IMA4 2017/2018 P39|Musique des plantes]]&lt;br /&gt;
| Xavier Chenot / Rodolphe Toin&lt;br /&gt;
| E306 &lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
|-&lt;br /&gt;
| P40 [[IMA4 2017/2018 P40|Exploration du réseau d'anonymisation Tor]]&lt;br /&gt;
| Antoine Duquenoy / Anthony Durot&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
|-&lt;br /&gt;
| P42 [[IMA4 2017/2018 P42|Automatisation de l'assemblage de LEGO]]&lt;br /&gt;
| Eloi Zalczer / Justine Senellart&lt;br /&gt;
|E302/E306&lt;br /&gt;
|E302/E306&lt;br /&gt;
|E304/E302&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| P44 [[IMA4 2017/2018 P44|Reconnaissance d’objets via Traitement d’image]]&lt;br /&gt;
| Damien Narbais / Zoé Briois&lt;br /&gt;
| E306&lt;br /&gt;
| E301&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle &amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P49 [[IMA4 2017/2018 P49|Suivi de la qualité de l’air]]&lt;br /&gt;
| Hugo Delbroucq / Nicolas Havard &lt;br /&gt;
| E301&lt;br /&gt;
| INRIA&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle &amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P50 [[IMA4 2017/2018 P50|Etage commande de Centaure]]&lt;br /&gt;
|-&lt;br /&gt;
| P60 [[IMA4 2017/2018 P60|Commande de niveaux d’eau]]&lt;br /&gt;
| Claire Vandamme / Alexandra Villa &lt;br /&gt;
|C008&lt;br /&gt;
|C008&lt;br /&gt;
|Hors Polytech/B106&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle &amp;lt;/font&amp;gt; &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Absentes &amp;lt;/font&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| P64 [[IMA4 2017/2018 P64|Simulation Labview et mise en réseau Modbus d’un ascenseur]]&lt;br /&gt;
|-&lt;br /&gt;
| P65 [[IMA4 2017/2018 P65|Exosquelette pour apprentissage]]&lt;br /&gt;
| Florian Le Foll&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
|&amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt; Pas de salle &amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P66 [[IMA4 2017/2018 P66|Coupe de France de robotique]]&lt;br /&gt;
| Carval Amaury&lt;br /&gt;
| fabricarium &lt;br /&gt;
| fabricarium puis Hors Polytech&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P67 [[IMA4 2017/2018 P67|Scanner 3D DIY]]&lt;br /&gt;
| Erwan Dufresne&lt;br /&gt;
| E302/E306&lt;br /&gt;
| E301&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P68 [[IMA4 2017/2018 P68|Générateur de chronogrammes d'ordonnancement]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=49492</id>
		<title>IMA4 2017/2018 P35</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=49492"/>
				<updated>2018-01-31T16:46:13Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : /* Semaine 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Présentation générale: Manette modulable&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Description&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Tout le monde joue aux jeux vidéo cependant, les manettes ne sont pas adaptées aux personnes ayant un handicap pouvant toucher les bras ou les mains.&lt;br /&gt;
C’est le cas, de plusieurs patients dans les centres de soins et de rééducation.&lt;br /&gt;
&lt;br /&gt;
Pour ce projet IMA4, nous travaillerons avec le centre SSR (soin de suite et de réadaptation) Marc Sautelet de Villeneuve d’Ascq.&lt;br /&gt;
Un adolescent, patient de Marc Sautelet, est passionné par les jeux vidéo. En effet, ayant perdu la motricité d’une partie de son corps, il ne peut pas jouer à deux mains. Pour cela, il bloque la manette entre son épaule et son coude, usant de la mâchoire et des doigts pour contrôler les&lt;br /&gt;
joysticks et les boutons. Cet exercice peut s’avérer fatiguant et pénible.&lt;br /&gt;
&lt;br /&gt;
Ainsi, nous chercherons à concevoir une manette PS4 adaptée au handicap de l’adolescent. &lt;br /&gt;
Cette manette devra aussi être adaptée pour d’autres patients présentant également des handicaps moteurs. Ainsi nous prendrons pour cibles: tous les patients du centre voulant jouer; et non pas que les enfants et adolescents.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Membre du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Transley Gracias et Camille Saad&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Cible&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Patient présentant un handicap moteur&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Période du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
janvier 2018 - mai 2018&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Partenaire/Client&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Centre SSR Marc Sautelet à Villeneuve d'Ascq&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Objectifs&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ce projet a pour objectif de créer un prototype de manette qui puisse interagir avec la console PS4 et dont le paramétrage se fait à l’aide d’une application mobile et/ou web. Cette manette devra suivre les demandes du patient ainsi que des aides-soignantes du centre, dans la mesure du possible.&lt;br /&gt;
&lt;br /&gt;
Plus précisément, pour le premier prototype, nous mettrons en œuvre l'utilisation de quelques boutons spécifiques: &lt;br /&gt;
&lt;br /&gt;
* Un joystick (type L/R)&lt;br /&gt;
* Quelques boutons poussoirs (type Croix/Triangle/Carré/Rond/R1/L1/Start/...)&lt;br /&gt;
* Des boutons gâchettes progressives (type L2/R2).&lt;br /&gt;
&lt;br /&gt;
Le but serait donc dans un premier temps de rendre fonctionnel un bouton de chaque type, puis de les multiplier une fois cela fait. Tous ces boutons réunis constituent une manette fonctionnelle.Ainsi, la manette sera ajustable, c’est à dire qu’elle devra s’adapter aux différents handicaps moteurs possibles.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Analyse du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Positionnement par rapport à l'existant&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre prototype aura une présentation unique par rapport à l’existant. En effet, les concurrents et produits existants ciblent pour la majorité un seul handicap. Cela&lt;br /&gt;
engendre une solution fermée à beaucoup de patients. Notre projet propose une mobilité des mouvements et également un choix large dans la composition et le&lt;br /&gt;
design de notre manette.&lt;br /&gt;
Le patient n’est pas retreint à jouer à une seule main, à utiliser beaucoup de force...Il y a moins de technique dans la manipulation et on ne joue pas avec une&lt;br /&gt;
manette adaptée uniquement pour un droitier ou un gaucher. Cependant, cela nous limitera peut-être dans le choix possible des types de jeux. Tout comme les autres&lt;br /&gt;
manettes adapté, l’utilisateur nécessitera un peu d’entrainement.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du premier concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Jouer aux jeux vidéo à une main n’est pas une idée d’aujourd’hui. En 1990, Nintendo propose le Power Glove. Mais il tombe très rapidement aux oubliettes suite à des problèmes techniques.&lt;br /&gt;
&lt;br /&gt;
Un autre gant a fait son apparition quelques années plus tard. Celui-ci, plus technique, il faut office de manette Play Station: le Reality Quest Power Glove.Cette idée de manette-gant, permet de jouer à la PS avec une seule main, elle a était conçue et présentée pour les E3, un salon d’exposition de gaming.Le gant est conçu pour contrôler l’équivalent des 14 boutons et 2 joysticks à l’aide d’une seule main. La « manette » est fixée dans la pomme de la main. L’utilisateur contrôle les mouvements verticaux et horizontaux en pivotant le poignet, et utilisent les 4 boutons d’action principaux et L1/R1 avec les doigts. Les autres boutons sont accessibles par un seul bouton rond contrôlé par le pouce.&lt;br /&gt;
La manette est adaptée pour beaucoup de jeux vidéo, dont les plus simples sont les jeux de voitures et de combats (arcade).&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec ce gant&lt;br /&gt;
*Design obligatoirement droitier&lt;br /&gt;
*Les boutons de contrôle sont peu sensibles et peuvent nécessiter de la force&lt;br /&gt;
*Design compliqué et nécessitant beaucoup d’entrainement.&lt;br /&gt;
&lt;br /&gt;
;Lien : https://www.youtube.com/watch?v=qV0SxSJDCYg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du second concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ben Heck, de son vrai nom Benjamin J.Heckendorn, est un concepteur de mods de consoles (mods pour modification, soit « manettes modifiées ») et une star&lt;br /&gt;
du net grâce à ses vidéos tutoriels.Il propose alors énormément de produits adaptés ou dérivés en guise de manettes.&lt;br /&gt;
Parmi les mods qu’il a réalisé, il a modifié une manette de PS4 afin de la rendre accessible à une personne ne pouvant jouer qu’à une main. Pour cela, il a déplacé les boutons en respectant l’ergonomie de la main valide et modifie les connexions. Il peut lui arriver de rajouter des boutons pour en remplacer un autre. Il réalise également le même système avec la Xbox. Sur la photo ci-dessous, il a adapté la manette pour un droitier.&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec cette ma&lt;br /&gt;
*Design obligatoirement droitier ou gaucher, une modification = une manette= une personne&lt;br /&gt;
*Besoin obligé du pouce et de l’index, même si avantage : 3 doigts nécessaire.&lt;br /&gt;
&lt;br /&gt;
;Lien :: https://www.youtube.com/watch?v=LieHIscadjk&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Scénario d'usage du produit ou du concept envisagé&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
La technologie est ,aujourd’hui, omniprésente dans notre vie. Les consoles de jeux ont envahies les maisons avec plus de 7 personnes sur 10 jouant aux jeux vidéos sur consoles en France (chiffre de l’Express). 0,18% des français sont handicapés cela représente 12 millions de français. Dans ce chiffre, 13,4% des personnes ont un handicap moteur. En 2017, les grands groupes comme Sony ou Microsoft avec respectivement PlayStation et Xbox ne permettent pas à tout le monde de jouer avec une manette. Les manettes sont prévues pour des personnes ayant leurs membres valides, plus précisément les mains et les bras.&lt;br /&gt;
&lt;br /&gt;
Après un accident de voiture, un jeune garçon a perdu la motricité d’un côté du corps. Passionné de jeux vidéo, il se retrouve avec des difficultés à jouer sur sa console PS4. Ingénieux, il utilise la manette en la coinçant entre son épaule et le creux du cou. Usant de la mâchoire et de sa main valide pour contrôler les joysticks et les boutons. L'exercice étant inconfortable et fatiguant il eu l’idée de proposer à des futurs ingénieurs de lui proposer une manette adaptée à son handicap. &lt;br /&gt;
&lt;br /&gt;
Les deux pré-ingénieurs ,avec leur tuteur, ont une idée révolutionnaire : La manette modulable ! Elle permettrait au jeune garçon, ainsi que d’autres joueurs, de pouvoir continuer de s’amuser ou même de commencer à jouer au jeux sur console. &lt;br /&gt;
Cette manette aidera fortement dans les centre de rééducation pour faire passer le temps et donner du plaisir à des personnes qui ne peuvent plus s’amuser avec leur console traditionnelle. Elle pourra aussi ouvrir de nouvelles possibilités pour certaines personnes qui n’auraient jamais essayé jusqu'à présent.   &lt;br /&gt;
Comme son nom l'indique, elle sera modulaire et s'adaptera à différents handicaps. Accompagnée de son application d’initialisation, elle sera accessible aussi bien aux enfants, patients, parents et aides soignantes.&lt;br /&gt;
&lt;br /&gt;
Quelques mois plus tard...Le jeune patient fan de Need For Speed, peut maintenant piloter sa voiture comme un vrai professionnel grâce à l'un des joysticks qu'il utilisera avec sa main valide et il pourra accélérer à des vitesses folles à l'aide de boutons poussoirs au niveau de son pied valide et gagner la partie. Son ami venu lui rendre visite, pourra en lieu et place des aides soignantes configurer à l'aide de la tablette (portable) la manette du patient. &lt;br /&gt;
Si le patient change de jeu pour Tekken et que la configuration des modules ne lui convient plus, il peut interchanger les éléments de la manette selon son envie et son confort. Ainsi il peut faire sauter son personnage, il utilisera un module bouton supplémentaire, qu'il actionnera avec le poing.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Fonctionnement&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier: beteacorne.jpg||middle|600px|Bete a corne manette]] &lt;br /&gt;
&lt;br /&gt;
Suite à une analyse fonctionnelle et à la formulation de notre projet, nous avons pu définir le fonctionnement de notre système. Notre produit, la manette, doit être accessible d’après nos objectifs à différents types de handicaps moteurs. Ainsi, l’idéal serait de concevoir une manette modulable afin qu’elle puisse s’adapter à toutes les situations. Ce n’est plus au patient de s’adapter à la manette mais à la manette de s’adapter au patient.&lt;br /&gt;
Cela signifie que la manette sera, dans la limite du possible et de la sensibilité du corps du patient, composée de plusieurs parties dites « modules » comportant un ou plusieurs actionneurs (boutons, joysticks, gâchettes...). Ces modules seront déplaçables afin d’être utilisé avec différents membres du corps : un doigt, une main,&lt;br /&gt;
une jambe ou même un pied. Il suffira de les connectés entre eux suivant l’organisation souhaitée, le Gameplay du jeu ou en fonction du handicap. Le tout sera relié à une application.&lt;br /&gt;
L’application sera alors mise en place pour connecter les différentes parties du point de vue software pour prérégler la manette en fonction du patient. Il pourra alors choisir les boutons en fonction du jeu, de ses mouvements mais aussi choisir la sensibilité.&lt;br /&gt;
&lt;br /&gt;
L’application et les modules devront être intuitifs et faciles d’utilisation. De cette manière des utilisateurs non avertis dans le domaine informatique ou jeunes pourront eux-mêmes gérer les connexions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Réponse à la question difficile&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
'''Question : Comment interconnecter les différents modules de la manette ?'''&lt;br /&gt;
&lt;br /&gt;
Il nous faut pour ce projet interconnecter les modules modélisant la manette qui seront connectés à la consoles PS4 via une Raspberry Pi 3.&lt;br /&gt;
Le choix de la Raspberry Pi 3 nous permet d'utiliser son module Bluetooth pour communiquer avec la PS4, ce choix est plus adaptée au projet que du filaire.&lt;br /&gt;
Concernant l'interconnexion des modules, nous travaillerons en deux étapes &amp;quot;preuves concept&amp;quot; : filaire et sans fils (Bluetooth).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;''Objectif 1 : Preuve concept filaire''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans cette première partie de projet, nous souhaitons avoir une 1ère preuve de prototype rapidement. Nous nous concentrerons alors sur la communication entre la RPi3 et la PS4 ainsi que sur la conception des modules. Pour les modules, nous réaliserons des cartes électronique pour chaque module avec un micro-contrôleur. La communication filaire nous permettra d'interconnecter les modules à la RPi3 avec un bus SPI.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;''Objectif 2: preuve concept sans fils''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une deuxième étape du projet est la réalisation de la solution idéale sans fils. Celle-ci pourra commencer à être développée petit à petit en parallèle avec l'objectif 1. Le but ici, est d'interconnecter les modules en Bluetooth. Nous avons choisi le Bluetooth pour garder une connexion commune sur toute la chaîne. &lt;br /&gt;
Nous rajouterons alors un module bluetooth à chaque module de la manette. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;''Objectif 3: possibilité d'adapter les boutons (capuchon en 3D)''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Préparation du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Cahier des charges&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Choix techniques : matériel et logiciel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
'''Liste de matériel :'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;3x Push buttons :&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
- O X Y Carré R3 L3 &amp;lt;br&amp;gt;&lt;br /&gt;
- Guide PS &amp;lt;br&amp;gt;&lt;br /&gt;
- start/back &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 0,45€/unité TTC [https://www.gotronic.fr/art-bp-miniature-krs1273-16976.htm]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;1x Thumbsticks originaux:&amp;lt;/u&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
Joystick analogique 4 directions --&amp;gt; 4,25€/unité TTC [https://www.gotronic.fr/art-joystick-analogique-4-directions-19063.htm]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;1x buttons trigger L1 L2:&amp;lt;/u&amp;gt; --&amp;gt; 1,49€/unité TTC [http://fr.farnell.com/mcm/32-37210/replacement-l1l2-trigger-buttons/dp/2801418] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;1x Led RGB neopixel&amp;lt;/u&amp;gt; [https://www.adafruit.com/product/1734]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;1x Raspberry Pi 3 &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; ~36,23€/unité TTC [https://fr.rs-online.com/web/p/processor-microcontroller-development-kits/8968660/?src=raspberrypi]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;3x Arduino UNO &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;6x Alimentation 5V &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
par exemple, 12 piles de type CR2016 3V rechargeables ou 24 piles AAA 1,5 V rechargeables  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;5 modules Bluetooth nrf de Nordic : nRF52810-QFAA-R &amp;lt;/u&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 3,17€/unité + frais expédition  [https://www.mouser.fr/productdetail/nordic-semiconductor/nrf52810-qfaa-r?qs=sGAEpiMZZMve4%2FbfQkoj%252bG%2FosjLoe2oghFQwQllMrQ4%3D]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;5 2x Lignes broches mâles et femelles&amp;lt;/u&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Logiciels:'''&lt;br /&gt;
&lt;br /&gt;
- IDE arduino&lt;br /&gt;
- Altium&lt;br /&gt;
- FreeCAD ou Inkscape&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Liste des tâches à effectuer&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 1 : Gestion du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Définition des cahiers des charges fonctionnel et technique, choix d'orientation...&lt;br /&gt;
* Recherche techniques sur les différentes connexions possibles entre les modules, la RPi 3 et la console PS4&lt;br /&gt;
#Recherche connexion SPI entre les modules et la RPi3&lt;br /&gt;
# Recherche connexion bluetooth entre la RPi3 et la PS4&lt;br /&gt;
# Recherche connexion bluetooth pour les modules&lt;br /&gt;
# Recherche carte avec montage Atmega328P-PU et anticipation module bluetooth&lt;br /&gt;
* Détermination du matériel nécessaire&lt;br /&gt;
* Réflexion sur l'application&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 2: Réalisation du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Partie 1: Preuve concept manette en filaire'''&lt;br /&gt;
&lt;br /&gt;
* Conception de cartes électroniques pour 2 modules (/!\ prévoir modules bluetooth)&lt;br /&gt;
* Réalisation connexion SPI avec 2 modules : programmation des Atmega328p en liaison série. &lt;br /&gt;
* Si tests concluant, ajouter des modules jusqu'à en avoir 5 (1 pour chaque type de boutons) &lt;br /&gt;
* Connexion bluetooth entre la PS4 et la RPi3&lt;br /&gt;
* Réalisation du support des modules avec fixations possibles (imprimante 3D)&lt;br /&gt;
&lt;br /&gt;
'''Partie 2: Preuve concept manette en bluetooth'''&lt;br /&gt;
&lt;br /&gt;
* Ajout des modules bluetooth aux cartes électroniques&lt;br /&gt;
* Connexion bluetooth entre les modules&lt;br /&gt;
&lt;br /&gt;
'''Partie 3: Application Android : paramétrage de la manette'''&lt;br /&gt;
&lt;br /&gt;
* Créer une application sur tablette ou smartphone (Android) afin de configurer la manette aux besoins (inter-connexion des modules et console)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Calendrier prévisionnel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Date'''&amp;lt;/u&amp;gt;&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Tache à réaliser''' &amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
17/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
'''Durant la séance:''' &lt;br /&gt;
Faire des recherches sur les différentes interconnexions du système : Bluetooth, RPi-Atmega328 (SPI), RPi-PS4&lt;br /&gt;
Peaufiner le wiki&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
24/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
'''Pour la séance : '''&lt;br /&gt;
Continuer liste des taches, cahier des charges, recherches&lt;br /&gt;
'''Durant la séance : '''&lt;br /&gt;
Continuer les recherches + montage modules boutons si possible + réflexion fixation support des modules&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Réalisation du Projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Feuille d'heures&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 10&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Cherches techniques &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Rédaction du wiki et rapport de projet&lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Total Semaine&lt;br /&gt;
| 10&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Prologue&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Avant la réalisation et conception d'un projet, il est important d'analyser celui-ci. Nous avons allons consacré le prologue à l'analyse fonctionnelle de la manette. Nous avons également eu une réflexion sur l'analyse technique, cela nous a permis de réaliser une liste de matériel. Il est important de définir les objectifs ainsi que les besoins afin de ne rien oublier. (Voir ci-dessus Analyse projet) &lt;br /&gt;
Nous avons également organisé notre travail, pour le partage de documents de recherches et la rédaction de compte-rendu final nous avons réalisé un google drive. Par la suite, nous créerons un projet Git. &lt;br /&gt;
&lt;br /&gt;
Durant ce temps, nous avons décidé de réaliser 5 modules. Les modules sont les différents boutons de la manettes qui nous pourrons placer selon nos choix (boutons modulaires) pour notre prototype projet pour chaque type des boutons d'une manette PS4. Ces modules devrons être connectés à la console et interconnectés. Le tout sera lié à une application Android. Suite à quelques recherches et nos analyses, nous avons décidé les points suivants :&lt;br /&gt;
&lt;br /&gt;
- On commencera avec 2 modules et on les multipliera par la suite. &lt;br /&gt;
- Les premiers tests sont réalisés avec des boutons petits pour assurer leur caractéristique &amp;quot;modulaires&amp;quot;, par la suite nous pourrons ajouter des capuchons de taille plus importante (imprimante 3D ou achat)&lt;br /&gt;
- Conception modules : réalisation de carte avec un microcontrôleur atmega328 programmable pour chaque module (anticiper le module Bluetooth) &lt;br /&gt;
- Projet en 2 parties : prototype filaire et prototype Bluetooth&lt;br /&gt;
# Prototype filaire : connexions entre les modules et la RPi3 en SPI, connexion Rpi3-PS4 en Bluetooth, avec l'application en filaire à la RPi3&lt;br /&gt;
# Prototype Bluetooth: connexion Bluetooth entre modules-RPi3-PS4-apllication&lt;br /&gt;
&lt;br /&gt;
[[Fichier: structuremanette.png||center|400px|Concept manette modulable]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 1&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous nous sommes concentrés sur des recherches techniques afin de définir clairement les inter-connexions que nous devrons réaliser au cours de notre projet.&lt;br /&gt;
Ainsi, nous avons fait des recherches sur :&lt;br /&gt;
&lt;br /&gt;
*'''Connexion SPI entre les modules (Atmega328p) et la RPi3'''&lt;br /&gt;
&lt;br /&gt;
SPI: Serial périphérique interface BUS&lt;br /&gt;
&lt;br /&gt;
[[Fichier: yWGmW.png||right|200px|Concept manette modulable]]&lt;br /&gt;
Comme indiqué sur l'image ci-dessus, la Raspberry pi 3  peut communiquer en SPI avec ses broches CS0 (24), CS1 (26), SCLK (23), MISO (21), MOSI (19). Celles-ci permettent de communiquer avec un ou plusieurs esclaves (dans notre cas, des Atmega328p) en reliant directement les broches concernées de la RPi3 à celles des composants esclaves.&lt;br /&gt;
Chaque broche CS0 (24) ou CS1 (26) ne peut être connectée qu'à l'entrée SS (aussi appelé CS) d'un seul esclave.&lt;br /&gt;
C'est a dire que chaque CS est lié à un esclave afin de choisir avec lequel la communication est établie à un moment donné, et les MISO sont reliées entre elles en cascade, de même pour les SCLK et les MOSI. On peut noter que le maître impose la fréquence d’horloge et sélectionne l’esclave auquel les données sont envoyées.  8 MHz est le plus rapide supportable a 3,3V&lt;br /&gt;
&lt;br /&gt;
[[Fichier: fonctionnementSPI.png||right|200px|Connexion SPI multi-esclaves]]&lt;br /&gt;
&lt;br /&gt;
Voici un schéma du fonctionnement souhaité : &lt;br /&gt;
&lt;br /&gt;
Comme nous souhaitons avoir 5 modules environ il nous faudra rajouter un composant en plus afin d'augmenter les possibilités de sélection, par exemple des démultiplexeurs.&lt;br /&gt;
Dans un premier temps nous esterons avex 2 esclaves, puis on augmentera le nombre. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: schémaSPI.png||right|200px|connexion filaire principe]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Connexion Bluetooth PS4-RPi3'''&lt;br /&gt;
&lt;br /&gt;
Caracteristique pour la PS4:  Bluetooth®v4.0, Qualcomm Atheros AR3002 Buetooth LE: 2,4-2,5 GHz  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caracteristique de la connexion : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vitesse de transmission &amp;gt;&amp;gt; 3 Mbit/s   8N1  &amp;lt;br/&amp;gt;&lt;br /&gt;
Relevé tous les 1.3 millisecond (peut-être) &amp;lt;br/&amp;gt;&lt;br /&gt;
Chaque manette à une adresse unique BD_ADDR qui correspond à l’adresse MAC de la carte Réseau&amp;lt;br/&amp;gt;&lt;br /&gt;
Protocole de détection est le SDP basé sur une emission reception PDU &amp;lt;br/&amp;gt;&lt;br /&gt;
l’Attribut ID est representer en TLV Type Length Value &amp;lt;br/&amp;gt;&lt;br /&gt;
Communication HCI ACL Data Packet  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''Rélisation des cartes électroniques'''&lt;br /&gt;
&lt;br /&gt;
matériel nécessaire pour un PCB : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-breadboard&lt;br /&gt;
-cables&lt;br /&gt;
-1 x 10k Ohm resistance&lt;br /&gt;
-Quartz 16Mhz clock crystal&lt;br /&gt;
-2 x 22 pF capaciteurs&lt;br /&gt;
-Atmega328P-PU&lt;br /&gt;
&lt;br /&gt;
Ressources: &lt;br /&gt;
[[https://www.arduino.cc/en/Main/Standalone]]&lt;br /&gt;
[[http://www.eprojectszone.com/atmega-328-pu-standalone/]]&lt;br /&gt;
[[https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 2&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la semaine deux et durant la séance, nous avons continué et approfondie nos recherches sur le projet. Nous avons pu ainsi affiner nos taches de réalisation et donc notre cahier des charges.&lt;br /&gt;
&lt;br /&gt;
*'''Bluetooth sur la Raspberry Pi 3'''&lt;br /&gt;
&lt;br /&gt;
voir https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018#Configuration_du_syst.C3.A8me_embarqu.C3.A9&lt;br /&gt;
&lt;br /&gt;
(sudo apt-get install pi-bluetooth)&lt;br /&gt;
&lt;br /&gt;
''connexion sur la raspberry par ssh:''&lt;br /&gt;
 su&lt;br /&gt;
 update-rc.d ssh enable&lt;br /&gt;
 invoke-rc.d ssh start &lt;br /&gt;
 ssh pi@172.26.79.1XX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''bluetooth''&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
 agent on&lt;br /&gt;
 default-agent&lt;br /&gt;
 scan on&lt;br /&gt;
 pair [device Bluetooth address]  (exemple: pair XX:XX:XX:XX:XX:XX )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''NOUVELLE REFLEXION : Connexion SPI entre les modules (Atmega328p) et la RPi3 --&amp;gt; MODULES BLUETOOTH'''&lt;br /&gt;
&lt;br /&gt;
Si multi-esclaves= plusieurs modules : &lt;br /&gt;
Il faut ajouter des sélections pour les SPI → démultiplexeurs OU ne pas utiliser les CS0 et CS1, et plutôt des pins entrée/sortie de la RPi3 lié au SS comme ça on choisit direct le module esclave voulu.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' Nous avons étudié à nouveau la datasheet de notre module bluetooth nrf de Nordik. Le module bluetooth comporte  déjà un microprocesseur !&lt;br /&gt;
Un module plutôt peut donc jouer le rôle de notre atmega328p. Il n'y a alors pas besoin de réaliser des cartes électronique de type arduino standalone. Nos PCB regrouperont alors uniquement l'alimentation, un actionneur (bouton, joystick), le module bluetooth et les broches de connexion si besoin... &lt;br /&gt;
&lt;br /&gt;
Cette séance nous a alors permise de revoir entièrement le matériel nécessaire. Notre liste de matériel nous semble alors plus réfléchie et limitée au nécessaire. &lt;br /&gt;
&lt;br /&gt;
*'''Connexion Bluetooth PS4-RPi3'''&lt;br /&gt;
&lt;br /&gt;
Le site qui détaille le protocole Bluetooth PS4 n'est pas complet et de plus n'ayant pas accès à une PS4 (pour le moment) nous avons décidé de commencer par une connexion USB (pour laquelle on dispose de toutes les informations) et qu'on pourra tester plus facilement.&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=49489</id>
		<title>IMA4 2017/2018 P35</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=49489"/>
				<updated>2018-01-31T16:39:52Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : /* 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;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Présentation générale: Manette modulable&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Description&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Tout le monde joue aux jeux vidéo cependant, les manettes ne sont pas adaptées aux personnes ayant un handicap pouvant toucher les bras ou les mains.&lt;br /&gt;
C’est le cas, de plusieurs patients dans les centres de soins et de rééducation.&lt;br /&gt;
&lt;br /&gt;
Pour ce projet IMA4, nous travaillerons avec le centre SSR (soin de suite et de réadaptation) Marc Sautelet de Villeneuve d’Ascq.&lt;br /&gt;
Un adolescent, patient de Marc Sautelet, est passionné par les jeux vidéo. En effet, ayant perdu la motricité d’une partie de son corps, il ne peut pas jouer à deux mains. Pour cela, il bloque la manette entre son épaule et son coude, usant de la mâchoire et des doigts pour contrôler les&lt;br /&gt;
joysticks et les boutons. Cet exercice peut s’avérer fatiguant et pénible.&lt;br /&gt;
&lt;br /&gt;
Ainsi, nous chercherons à concevoir une manette PS4 adaptée au handicap de l’adolescent. &lt;br /&gt;
Cette manette devra aussi être adaptée pour d’autres patients présentant également des handicaps moteurs. Ainsi nous prendrons pour cibles: tous les patients du centre voulant jouer; et non pas que les enfants et adolescents.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Membre du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Transley Gracias et Camille Saad&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Cible&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Patient présentant un handicap moteur&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Période du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
janvier 2018 - mai 2018&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Partenaire/Client&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Centre SSR Marc Sautelet à Villeneuve d'Ascq&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Objectifs&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ce projet a pour objectif de créer un prototype de manette qui puisse interagir avec la console PS4 et dont le paramétrage se fait à l’aide d’une application mobile et/ou web. Cette manette devra suivre les demandes du patient ainsi que des aides-soignantes du centre, dans la mesure du possible.&lt;br /&gt;
&lt;br /&gt;
Plus précisément, pour le premier prototype, nous mettrons en œuvre l'utilisation de quelques boutons spécifiques: &lt;br /&gt;
&lt;br /&gt;
* Un joystick (type L/R)&lt;br /&gt;
* Quelques boutons poussoirs (type Croix/Triangle/Carré/Rond/R1/L1/Start/...)&lt;br /&gt;
* Des boutons gâchettes progressives (type L2/R2).&lt;br /&gt;
&lt;br /&gt;
Le but serait donc dans un premier temps de rendre fonctionnel un bouton de chaque type, puis de les multiplier une fois cela fait. Tous ces boutons réunis constituent une manette fonctionnelle.Ainsi, la manette sera ajustable, c’est à dire qu’elle devra s’adapter aux différents handicaps moteurs possibles.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Analyse du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Positionnement par rapport à l'existant&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre prototype aura une présentation unique par rapport à l’existant. En effet, les concurrents et produits existants ciblent pour la majorité un seul handicap. Cela&lt;br /&gt;
engendre une solution fermée à beaucoup de patients. Notre projet propose une mobilité des mouvements et également un choix large dans la composition et le&lt;br /&gt;
design de notre manette.&lt;br /&gt;
Le patient n’est pas retreint à jouer à une seule main, à utiliser beaucoup de force...Il y a moins de technique dans la manipulation et on ne joue pas avec une&lt;br /&gt;
manette adaptée uniquement pour un droitier ou un gaucher. Cependant, cela nous limitera peut-être dans le choix possible des types de jeux. Tout comme les autres&lt;br /&gt;
manettes adapté, l’utilisateur nécessitera un peu d’entrainement.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du premier concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Jouer aux jeux vidéo à une main n’est pas une idée d’aujourd’hui. En 1990, Nintendo propose le Power Glove. Mais il tombe très rapidement aux oubliettes suite à des problèmes techniques.&lt;br /&gt;
&lt;br /&gt;
Un autre gant a fait son apparition quelques années plus tard. Celui-ci, plus technique, il faut office de manette Play Station: le Reality Quest Power Glove.Cette idée de manette-gant, permet de jouer à la PS avec une seule main, elle a était conçue et présentée pour les E3, un salon d’exposition de gaming.Le gant est conçu pour contrôler l’équivalent des 14 boutons et 2 joysticks à l’aide d’une seule main. La « manette » est fixée dans la pomme de la main. L’utilisateur contrôle les mouvements verticaux et horizontaux en pivotant le poignet, et utilisent les 4 boutons d’action principaux et L1/R1 avec les doigts. Les autres boutons sont accessibles par un seul bouton rond contrôlé par le pouce.&lt;br /&gt;
La manette est adaptée pour beaucoup de jeux vidéo, dont les plus simples sont les jeux de voitures et de combats (arcade).&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec ce gant&lt;br /&gt;
*Design obligatoirement droitier&lt;br /&gt;
*Les boutons de contrôle sont peu sensibles et peuvent nécessiter de la force&lt;br /&gt;
*Design compliqué et nécessitant beaucoup d’entrainement.&lt;br /&gt;
&lt;br /&gt;
;Lien : https://www.youtube.com/watch?v=qV0SxSJDCYg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du second concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ben Heck, de son vrai nom Benjamin J.Heckendorn, est un concepteur de mods de consoles (mods pour modification, soit « manettes modifiées ») et une star&lt;br /&gt;
du net grâce à ses vidéos tutoriels.Il propose alors énormément de produits adaptés ou dérivés en guise de manettes.&lt;br /&gt;
Parmi les mods qu’il a réalisé, il a modifié une manette de PS4 afin de la rendre accessible à une personne ne pouvant jouer qu’à une main. Pour cela, il a déplacé les boutons en respectant l’ergonomie de la main valide et modifie les connexions. Il peut lui arriver de rajouter des boutons pour en remplacer un autre. Il réalise également le même système avec la Xbox. Sur la photo ci-dessous, il a adapté la manette pour un droitier.&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec cette ma&lt;br /&gt;
*Design obligatoirement droitier ou gaucher, une modification = une manette= une personne&lt;br /&gt;
*Besoin obligé du pouce et de l’index, même si avantage : 3 doigts nécessaire.&lt;br /&gt;
&lt;br /&gt;
;Lien :: https://www.youtube.com/watch?v=LieHIscadjk&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Scénario d'usage du produit ou du concept envisagé&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
La technologie est ,aujourd’hui, omniprésente dans notre vie. Les consoles de jeux ont envahies les maisons avec plus de 7 personnes sur 10 jouant aux jeux vidéos sur consoles en France (chiffre de l’Express). 0,18% des français sont handicapés cela représente 12 millions de français. Dans ce chiffre, 13,4% des personnes ont un handicap moteur. En 2017, les grands groupes comme Sony ou Microsoft avec respectivement PlayStation et Xbox ne permettent pas à tout le monde de jouer avec une manette. Les manettes sont prévues pour des personnes ayant leurs membres valides, plus précisément les mains et les bras.&lt;br /&gt;
&lt;br /&gt;
Après un accident de voiture, un jeune garçon a perdu la motricité d’un côté du corps. Passionné de jeux vidéo, il se retrouve avec des difficultés à jouer sur sa console PS4. Ingénieux, il utilise la manette en la coinçant entre son épaule et le creux du cou. Usant de la mâchoire et de sa main valide pour contrôler les joysticks et les boutons. L'exercice étant inconfortable et fatiguant il eu l’idée de proposer à des futurs ingénieurs de lui proposer une manette adaptée à son handicap. &lt;br /&gt;
&lt;br /&gt;
Les deux pré-ingénieurs ,avec leur tuteur, ont une idée révolutionnaire : La manette modulable ! Elle permettrait au jeune garçon, ainsi que d’autres joueurs, de pouvoir continuer de s’amuser ou même de commencer à jouer au jeux sur console. &lt;br /&gt;
Cette manette aidera fortement dans les centre de rééducation pour faire passer le temps et donner du plaisir à des personnes qui ne peuvent plus s’amuser avec leur console traditionnelle. Elle pourra aussi ouvrir de nouvelles possibilités pour certaines personnes qui n’auraient jamais essayé jusqu'à présent.   &lt;br /&gt;
Comme son nom l'indique, elle sera modulaire et s'adaptera à différents handicaps. Accompagnée de son application d’initialisation, elle sera accessible aussi bien aux enfants, patients, parents et aides soignantes.&lt;br /&gt;
&lt;br /&gt;
Quelques mois plus tard...Le jeune patient fan de Need For Speed, peut maintenant piloter sa voiture comme un vrai professionnel grâce à l'un des joysticks qu'il utilisera avec sa main valide et il pourra accélérer à des vitesses folles à l'aide de boutons poussoirs au niveau de son pied valide et gagner la partie. Son ami venu lui rendre visite, pourra en lieu et place des aides soignantes configurer à l'aide de la tablette (portable) la manette du patient. &lt;br /&gt;
Si le patient change de jeu pour Tekken et que la configuration des modules ne lui convient plus, il peut interchanger les éléments de la manette selon son envie et son confort. Ainsi il peut faire sauter son personnage, il utilisera un module bouton supplémentaire, qu'il actionnera avec le poing.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Fonctionnement&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier: beteacorne.jpg||middle|600px|Bete a corne manette]] &lt;br /&gt;
&lt;br /&gt;
Suite à une analyse fonctionnelle et à la formulation de notre projet, nous avons pu définir le fonctionnement de notre système. Notre produit, la manette, doit être accessible d’après nos objectifs à différents types de handicaps moteurs. Ainsi, l’idéal serait de concevoir une manette modulable afin qu’elle puisse s’adapter à toutes les situations. Ce n’est plus au patient de s’adapter à la manette mais à la manette de s’adapter au patient.&lt;br /&gt;
Cela signifie que la manette sera, dans la limite du possible et de la sensibilité du corps du patient, composée de plusieurs parties dites « modules » comportant un ou plusieurs actionneurs (boutons, joysticks, gâchettes...). Ces modules seront déplaçables afin d’être utilisé avec différents membres du corps : un doigt, une main,&lt;br /&gt;
une jambe ou même un pied. Il suffira de les connectés entre eux suivant l’organisation souhaitée, le Gameplay du jeu ou en fonction du handicap. Le tout sera relié à une application.&lt;br /&gt;
L’application sera alors mise en place pour connecter les différentes parties du point de vue software pour prérégler la manette en fonction du patient. Il pourra alors choisir les boutons en fonction du jeu, de ses mouvements mais aussi choisir la sensibilité.&lt;br /&gt;
&lt;br /&gt;
L’application et les modules devront être intuitifs et faciles d’utilisation. De cette manière des utilisateurs non avertis dans le domaine informatique ou jeunes pourront eux-mêmes gérer les connexions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Réponse à la question difficile&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
'''Question : Comment interconnecter les différents modules de la manette ?'''&lt;br /&gt;
&lt;br /&gt;
Il nous faut pour ce projet interconnecter les modules modélisant la manette qui seront connectés à la consoles PS4 via une Raspberry Pi 3.&lt;br /&gt;
Le choix de la Raspberry Pi 3 nous permet d'utiliser son module Bluetooth pour communiquer avec la PS4, ce choix est plus adaptée au projet que du filaire.&lt;br /&gt;
Concernant l'interconnexion des modules, nous travaillerons en deux étapes &amp;quot;preuves concept&amp;quot; : filaire et sans fils (Bluetooth).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;''Objectif 1 : Preuve concept filaire''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans cette première partie de projet, nous souhaitons avoir une 1ère preuve de prototype rapidement. Nous nous concentrerons alors sur la communication entre la RPi3 et la PS4 ainsi que sur la conception des modules. Pour les modules, nous réaliserons des cartes électronique pour chaque module avec un micro-contrôleur. La communication filaire nous permettra d'interconnecter les modules à la RPi3 avec un bus SPI.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;''Objectif 2: preuve concept sans fils''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une deuxième étape du projet est la réalisation de la solution idéale sans fils. Celle-ci pourra commencer à être développée petit à petit en parallèle avec l'objectif 1. Le but ici, est d'interconnecter les modules en Bluetooth. Nous avons choisi le Bluetooth pour garder une connexion commune sur toute la chaîne. &lt;br /&gt;
Nous rajouterons alors un module bluetooth à chaque module de la manette. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;''Objectif 3: possibilité d'adapter les boutons (capuchon en 3D)''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Préparation du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Cahier des charges&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Choix techniques : matériel et logiciel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
'''Liste de matériel :'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;3x Push buttons :&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
- O X Y Carré R3 L3 &amp;lt;br&amp;gt;&lt;br /&gt;
- Guide PS &amp;lt;br&amp;gt;&lt;br /&gt;
- start/back &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 0,45€/unité TTC [https://www.gotronic.fr/art-bp-miniature-krs1273-16976.htm]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;1x Thumbsticks originaux:&amp;lt;/u&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
Joystick analogique 4 directions --&amp;gt; 4,25€/unité TTC [https://www.gotronic.fr/art-joystick-analogique-4-directions-19063.htm]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;1x buttons trigger L1 L2:&amp;lt;/u&amp;gt; --&amp;gt; 1,49€/unité TTC [http://fr.farnell.com/mcm/32-37210/replacement-l1l2-trigger-buttons/dp/2801418] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;1x Led RGB neopixel&amp;lt;/u&amp;gt; [https://www.adafruit.com/product/1734]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;1x Raspberry Pi 3 &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; ~36,23€/unité TTC [https://fr.rs-online.com/web/p/processor-microcontroller-development-kits/8968660/?src=raspberrypi]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;3x Arduino UNO &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;6x Alimentation 5V &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
par exemple, 12 piles de type CR2016 3V rechargeables ou 24 piles AAA 1,5 V rechargeables  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;5 modules Bluetooth nrf de Nordic : nRF52810-QFAA-R &amp;lt;/u&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 3,17€/unité + frais expédition  [https://www.mouser.fr/productdetail/nordic-semiconductor/nrf52810-qfaa-r?qs=sGAEpiMZZMve4%2FbfQkoj%252bG%2FosjLoe2oghFQwQllMrQ4%3D]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;5 2x Lignes broches mâles et femelles&amp;lt;/u&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Logiciels:'''&lt;br /&gt;
&lt;br /&gt;
- IDE arduino&lt;br /&gt;
- Altium&lt;br /&gt;
- FreeCAD ou Inkscape&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Liste des tâches à effectuer&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 1 : Gestion du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Définition des cahiers des charges fonctionnel et technique, choix d'orientation...&lt;br /&gt;
* Recherche techniques sur les différentes connexions possibles entre les modules, la RPi 3 et la console PS4&lt;br /&gt;
#Recherche connexion SPI entre les modules et la RPi3&lt;br /&gt;
# Recherche connexion bluetooth entre la RPi3 et la PS4&lt;br /&gt;
# Recherche connexion bluetooth pour les modules&lt;br /&gt;
# Recherche carte avec montage Atmega328P-PU et anticipation module bluetooth&lt;br /&gt;
* Détermination du matériel nécessaire&lt;br /&gt;
* Réflexion sur l'application&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 2: Réalisation du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Partie 1: Preuve concept manette en filaire'''&lt;br /&gt;
&lt;br /&gt;
* Conception de cartes électroniques pour 2 modules (/!\ prévoir modules bluetooth)&lt;br /&gt;
* Réalisation connexion SPI avec 2 modules : programmation des Atmega328p en liaison série. &lt;br /&gt;
* Si tests concluant, ajouter des modules jusqu'à en avoir 5 (1 pour chaque type de boutons) &lt;br /&gt;
* Connexion bluetooth entre la PS4 et la RPi3&lt;br /&gt;
* Réalisation du support des modules avec fixations possibles (imprimante 3D)&lt;br /&gt;
&lt;br /&gt;
'''Partie 2: Preuve concept manette en bluetooth'''&lt;br /&gt;
&lt;br /&gt;
* Ajout des modules bluetooth aux cartes électroniques&lt;br /&gt;
* Connexion bluetooth entre les modules&lt;br /&gt;
&lt;br /&gt;
'''Partie 3: Application Android : paramétrage de la manette'''&lt;br /&gt;
&lt;br /&gt;
* Créer une application sur tablette ou smartphone (Android) afin de configurer la manette aux besoins (inter-connexion des modules et console)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Calendrier prévisionnel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Date'''&amp;lt;/u&amp;gt;&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Tache à réaliser''' &amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
17/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
'''Durant la séance:''' &lt;br /&gt;
Faire des recherches sur les différentes interconnexions du système : Bluetooth, RPi-Atmega328 (SPI), RPi-PS4&lt;br /&gt;
Peaufiner le wiki&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
24/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
'''Pour la séance : '''&lt;br /&gt;
Continuer liste des taches, cahier des charges, recherches&lt;br /&gt;
'''Durant la séance : '''&lt;br /&gt;
Continuer les recherches + montage modules boutons si possible + réflexion fixation support des modules&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Réalisation du Projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Feuille d'heures&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 10&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Cherches techniques &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Rédaction du wiki et rapport de projet&lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Total Semaine&lt;br /&gt;
| 10&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Prologue&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Avant la réalisation et conception d'un projet, il est important d'analyser celui-ci. Nous avons allons consacré le prologue à l'analyse fonctionnelle de la manette. Nous avons également eu une réflexion sur l'analyse technique, cela nous a permis de réaliser une liste de matériel. Il est important de définir les objectifs ainsi que les besoins afin de ne rien oublier. (Voir ci-dessus Analyse projet) &lt;br /&gt;
Nous avons également organisé notre travail, pour le partage de documents de recherches et la rédaction de compte-rendu final nous avons réalisé un google drive. Par la suite, nous créerons un projet Git. &lt;br /&gt;
&lt;br /&gt;
Durant ce temps, nous avons décidé de réaliser 5 modules. Les modules sont les différents boutons de la manettes qui nous pourrons placer selon nos choix (boutons modulaires) pour notre prototype projet pour chaque type des boutons d'une manette PS4. Ces modules devrons être connectés à la console et interconnectés. Le tout sera lié à une application Android. Suite à quelques recherches et nos analyses, nous avons décidé les points suivants :&lt;br /&gt;
&lt;br /&gt;
- On commencera avec 2 modules et on les multipliera par la suite. &lt;br /&gt;
- Les premiers tests sont réalisés avec des boutons petits pour assurer leur caractéristique &amp;quot;modulaires&amp;quot;, par la suite nous pourrons ajouter des capuchons de taille plus importante (imprimante 3D ou achat)&lt;br /&gt;
- Conception modules : réalisation de carte avec un microcontrôleur atmega328 programmable pour chaque module (anticiper le module Bluetooth) &lt;br /&gt;
- Projet en 2 parties : prototype filaire et prototype Bluetooth&lt;br /&gt;
# Prototype filaire : connexions entre les modules et la RPi3 en SPI, connexion Rpi3-PS4 en Bluetooth, avec l'application en filaire à la RPi3&lt;br /&gt;
# Prototype Bluetooth: connexion Bluetooth entre modules-RPi3-PS4-apllication&lt;br /&gt;
&lt;br /&gt;
[[Fichier: structuremanette.png||center|400px|Concept manette modulable]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 1&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous nous sommes concentrés sur des recherches techniques afin de définir clairement les inter-connexions que nous devrons réaliser au cours de notre projet.&lt;br /&gt;
Ainsi, nous avons fait des recherches sur :&lt;br /&gt;
&lt;br /&gt;
*'''Connexion SPI entre les modules (Atmega328p) et la RPi3'''&lt;br /&gt;
&lt;br /&gt;
SPI: Serial périphérique interface BUS&lt;br /&gt;
&lt;br /&gt;
[[Fichier: yWGmW.png||right|200px|Concept manette modulable]]&lt;br /&gt;
Comme indiqué sur l'image ci-dessus, la Raspberry pi 3  peut communiquer en SPI avec ses broches CS0 (24), CS1 (26), SCLK (23), MISO (21), MOSI (19). Celles-ci permettent de communiquer avec un ou plusieurs esclaves (dans notre cas, des Atmega328p) en reliant directement les broches concernées de la RPi3 à celles des composants esclaves.&lt;br /&gt;
Chaque broche CS0 (24) ou CS1 (26) ne peut être connectée qu'à l'entrée SS (aussi appelé CS) d'un seul esclave.&lt;br /&gt;
C'est a dire que chaque CS est lié à un esclave afin de choisir avec lequel la communication est établie à un moment donné, et les MISO sont reliées entre elles en cascade, de même pour les SCLK et les MOSI. On peut noter que le maître impose la fréquence d’horloge et sélectionne l’esclave auquel les données sont envoyées.  8 MHz est le plus rapide supportable a 3,3V&lt;br /&gt;
&lt;br /&gt;
[[Fichier: fonctionnementSPI.png||right|200px|Connexion SPI multi-esclaves]]&lt;br /&gt;
&lt;br /&gt;
Voici un schéma du fonctionnement souhaité : &lt;br /&gt;
&lt;br /&gt;
Comme nous souhaitons avoir 5 modules environ il nous faudra rajouter un composant en plus afin d'augmenter les possibilités de sélection, par exemple des démultiplexeurs.&lt;br /&gt;
Dans un premier temps nous esterons avex 2 esclaves, puis on augmentera le nombre. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: schémaSPI.png||right|200px|connexion filaire principe]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Connexion Bluetooth PS4-RPi3'''&lt;br /&gt;
&lt;br /&gt;
Caracteristique pour la PS4:  Bluetooth®v4.0, Qualcomm Atheros AR3002 Buetooth LE: 2,4-2,5 GHz  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caracteristique de la connexion : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vitesse de transmission &amp;gt;&amp;gt; 3 Mbit/s   8N1  &amp;lt;br/&amp;gt;&lt;br /&gt;
Relevé tous les 1.3 millisecond (peut-être) &amp;lt;br/&amp;gt;&lt;br /&gt;
Chaque manette à une adresse unique BD_ADDR qui correspond à l’adresse MAC de la carte Réseau&amp;lt;br/&amp;gt;&lt;br /&gt;
Protocole de détection est le SDP basé sur une emission reception PDU &amp;lt;br/&amp;gt;&lt;br /&gt;
l’Attribut ID est representer en TLV Type Length Value &amp;lt;br/&amp;gt;&lt;br /&gt;
Communication HCI ACL Data Packet  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''Rélisation des cartes électroniques'''&lt;br /&gt;
&lt;br /&gt;
matériel nécessaire pour un PCB : &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-breadboard&lt;br /&gt;
-cables&lt;br /&gt;
-1 x 10k Ohm resistance&lt;br /&gt;
-Quartz 16Mhz clock crystal&lt;br /&gt;
-2 x 22 pF capaciteurs&lt;br /&gt;
-Atmega328P-PU&lt;br /&gt;
&lt;br /&gt;
Ressources: &lt;br /&gt;
[[https://www.arduino.cc/en/Main/Standalone]]&lt;br /&gt;
[[http://www.eprojectszone.com/atmega-328-pu-standalone/]]&lt;br /&gt;
[[https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 2&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la semaine deux et durant la séance, nous avons continué et approfondie nos recherches sur le projet. Nous avons pu ainsi affiner nos taches de réalisation et donc notre cahier des charges.&lt;br /&gt;
&lt;br /&gt;
*'''Bluetooth sur la Raspberry Pi 3'''&lt;br /&gt;
&lt;br /&gt;
voir https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018#Configuration_du_syst.C3.A8me_embarqu.C3.A9&lt;br /&gt;
&lt;br /&gt;
(sudo apt-get install pi-bluetooth)&lt;br /&gt;
&lt;br /&gt;
''connexion sur la raspberry par ssh:''&lt;br /&gt;
 su&lt;br /&gt;
 update-rc.d ssh enable&lt;br /&gt;
 invoke-rc.d ssh start &lt;br /&gt;
 ssh pi@172.26.79.1XX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''bluetooth''&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
 agent on&lt;br /&gt;
 default-agent&lt;br /&gt;
 scan on&lt;br /&gt;
 pair [device Bluetooth address]  (exemple: pair XX:XX:XX:XX:XX:XX )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''NOUVELLE REFLEXION : Connexion SPI entre les modules (Atmega328p) et la RPi3 --&amp;gt; MODULES BLUETOOTH'''&lt;br /&gt;
&lt;br /&gt;
Si multi-esclaves= plusieurs modules : &lt;br /&gt;
Il faut ajouter des sélections pour les SPI → démultiplexeurs OU ne pas utiliser les CS0 et CS1, et plutôt des pins entrée/sortie de la RPi3 lié au SS comme ça on choisit direct le module esclave voulu.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' Nous avons étudié à nouveau la datasheet de notre module bluetooth nrf de Nordik. Le module bluetooth comporte  déjà un microprocesseur !&lt;br /&gt;
Un module plutôt peut donc jouer le rôle de notre atmega328p. Il n'y a alors pas besoin de réaliser des cartes électronique de type arduino standalone. Nos PCB regrouperont alors uniquement l'alimentation, un actionneur (bouton, joystick), le module bluetooth et les broches de connexion si besoin... &lt;br /&gt;
&lt;br /&gt;
Cette séance nous a alors permise de revoir entièrement le matériel nécessaire. Notre liste de matériel nous semble alors plus réfléchie et limitée au nécessaire. &lt;br /&gt;
&lt;br /&gt;
*'''Connexion Bluetooth PS4-RPi3'''&lt;br /&gt;
connexion bluetooth remplacée par une connexion série USB&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=49483</id>
		<title>IMA4 2017/2018 P35</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=49483"/>
				<updated>2018-01-31T16:38:22Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : /* 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;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Présentation générale: Manette modulable&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Description&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Tout le monde joue aux jeux vidéo cependant, les manettes ne sont pas adaptées aux personnes ayant un handicap pouvant toucher les bras ou les mains.&lt;br /&gt;
C’est le cas, de plusieurs patients dans les centres de soins et de rééducation.&lt;br /&gt;
&lt;br /&gt;
Pour ce projet IMA4, nous travaillerons avec le centre SSR (soin de suite et de réadaptation) Marc Sautelet de Villeneuve d’Ascq.&lt;br /&gt;
Un adolescent, patient de Marc Sautelet, est passionné par les jeux vidéo. En effet, ayant perdu la motricité d’une partie de son corps, il ne peut pas jouer à deux mains. Pour cela, il bloque la manette entre son épaule et son coude, usant de la mâchoire et des doigts pour contrôler les&lt;br /&gt;
joysticks et les boutons. Cet exercice peut s’avérer fatiguant et pénible.&lt;br /&gt;
&lt;br /&gt;
Ainsi, nous chercherons à concevoir une manette PS4 adaptée au handicap de l’adolescent. &lt;br /&gt;
Cette manette devra aussi être adaptée pour d’autres patients présentant également des handicaps moteurs. Ainsi nous prendrons pour cibles: tous les patients du centre voulant jouer; et non pas que les enfants et adolescents.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Membre du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Transley Gracias et Camille Saad&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Cible&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Patient présentant un handicap moteur&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Période du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
janvier 2018 - mai 2018&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Partenaire/Client&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Centre SSR Marc Sautelet à Villeneuve d'Ascq&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Objectifs&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ce projet a pour objectif de créer un prototype de manette qui puisse interagir avec la console PS4 et dont le paramétrage se fait à l’aide d’une application mobile et/ou web. Cette manette devra suivre les demandes du patient ainsi que des aides-soignantes du centre, dans la mesure du possible.&lt;br /&gt;
&lt;br /&gt;
Plus précisément, pour le premier prototype, nous mettrons en œuvre l'utilisation de quelques boutons spécifiques: &lt;br /&gt;
&lt;br /&gt;
* Un joystick (type L/R)&lt;br /&gt;
* Quelques boutons poussoirs (type Croix/Triangle/Carré/Rond/R1/L1/Start/...)&lt;br /&gt;
* Des boutons gâchettes progressives (type L2/R2).&lt;br /&gt;
&lt;br /&gt;
Le but serait donc dans un premier temps de rendre fonctionnel un bouton de chaque type, puis de les multiplier une fois cela fait. Tous ces boutons réunis constituent une manette fonctionnelle.Ainsi, la manette sera ajustable, c’est à dire qu’elle devra s’adapter aux différents handicaps moteurs possibles.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Analyse du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Positionnement par rapport à l'existant&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre prototype aura une présentation unique par rapport à l’existant. En effet, les concurrents et produits existants ciblent pour la majorité un seul handicap. Cela&lt;br /&gt;
engendre une solution fermée à beaucoup de patients. Notre projet propose une mobilité des mouvements et également un choix large dans la composition et le&lt;br /&gt;
design de notre manette.&lt;br /&gt;
Le patient n’est pas retreint à jouer à une seule main, à utiliser beaucoup de force...Il y a moins de technique dans la manipulation et on ne joue pas avec une&lt;br /&gt;
manette adaptée uniquement pour un droitier ou un gaucher. Cependant, cela nous limitera peut-être dans le choix possible des types de jeux. Tout comme les autres&lt;br /&gt;
manettes adapté, l’utilisateur nécessitera un peu d’entrainement.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du premier concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Jouer aux jeux vidéo à une main n’est pas une idée d’aujourd’hui. En 1990, Nintendo propose le Power Glove. Mais il tombe très rapidement aux oubliettes suite à des problèmes techniques.&lt;br /&gt;
&lt;br /&gt;
Un autre gant a fait son apparition quelques années plus tard. Celui-ci, plus technique, il faut office de manette Play Station: le Reality Quest Power Glove.Cette idée de manette-gant, permet de jouer à la PS avec une seule main, elle a était conçue et présentée pour les E3, un salon d’exposition de gaming.Le gant est conçu pour contrôler l’équivalent des 14 boutons et 2 joysticks à l’aide d’une seule main. La « manette » est fixée dans la pomme de la main. L’utilisateur contrôle les mouvements verticaux et horizontaux en pivotant le poignet, et utilisent les 4 boutons d’action principaux et L1/R1 avec les doigts. Les autres boutons sont accessibles par un seul bouton rond contrôlé par le pouce.&lt;br /&gt;
La manette est adaptée pour beaucoup de jeux vidéo, dont les plus simples sont les jeux de voitures et de combats (arcade).&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec ce gant&lt;br /&gt;
*Design obligatoirement droitier&lt;br /&gt;
*Les boutons de contrôle sont peu sensibles et peuvent nécessiter de la force&lt;br /&gt;
*Design compliqué et nécessitant beaucoup d’entrainement.&lt;br /&gt;
&lt;br /&gt;
;Lien : https://www.youtube.com/watch?v=qV0SxSJDCYg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du second concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ben Heck, de son vrai nom Benjamin J.Heckendorn, est un concepteur de mods de consoles (mods pour modification, soit « manettes modifiées ») et une star&lt;br /&gt;
du net grâce à ses vidéos tutoriels.Il propose alors énormément de produits adaptés ou dérivés en guise de manettes.&lt;br /&gt;
Parmi les mods qu’il a réalisé, il a modifié une manette de PS4 afin de la rendre accessible à une personne ne pouvant jouer qu’à une main. Pour cela, il a déplacé les boutons en respectant l’ergonomie de la main valide et modifie les connexions. Il peut lui arriver de rajouter des boutons pour en remplacer un autre. Il réalise également le même système avec la Xbox. Sur la photo ci-dessous, il a adapté la manette pour un droitier.&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec cette ma&lt;br /&gt;
*Design obligatoirement droitier ou gaucher, une modification = une manette= une personne&lt;br /&gt;
*Besoin obligé du pouce et de l’index, même si avantage : 3 doigts nécessaire.&lt;br /&gt;
&lt;br /&gt;
;Lien :: https://www.youtube.com/watch?v=LieHIscadjk&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Scénario d'usage du produit ou du concept envisagé&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
La technologie est ,aujourd’hui, omniprésente dans notre vie. Les consoles de jeux ont envahies les maisons avec plus de 7 personnes sur 10 jouant aux jeux vidéos sur consoles en France (chiffre de l’Express). 0,18% des français sont handicapés cela représente 12 millions de français. Dans ce chiffre, 13,4% des personnes ont un handicap moteur. En 2017, les grands groupes comme Sony ou Microsoft avec respectivement PlayStation et Xbox ne permettent pas à tout le monde de jouer avec une manette. Les manettes sont prévues pour des personnes ayant leurs membres valides, plus précisément les mains et les bras.&lt;br /&gt;
&lt;br /&gt;
Après un accident de voiture, un jeune garçon a perdu la motricité d’un côté du corps. Passionné de jeux vidéo, il se retrouve avec des difficultés à jouer sur sa console PS4. Ingénieux, il utilise la manette en la coinçant entre son épaule et le creux du cou. Usant de la mâchoire et de sa main valide pour contrôler les joysticks et les boutons. L'exercice étant inconfortable et fatiguant il eu l’idée de proposer à des futurs ingénieurs de lui proposer une manette adaptée à son handicap. &lt;br /&gt;
&lt;br /&gt;
Les deux pré-ingénieurs ,avec leur tuteur, ont une idée révolutionnaire : La manette modulable ! Elle permettrait au jeune garçon, ainsi que d’autres joueurs, de pouvoir continuer de s’amuser ou même de commencer à jouer au jeux sur console. &lt;br /&gt;
Cette manette aidera fortement dans les centre de rééducation pour faire passer le temps et donner du plaisir à des personnes qui ne peuvent plus s’amuser avec leur console traditionnelle. Elle pourra aussi ouvrir de nouvelles possibilités pour certaines personnes qui n’auraient jamais essayé jusqu'à présent.   &lt;br /&gt;
Comme son nom l'indique, elle sera modulaire et s'adaptera à différents handicaps. Accompagnée de son application d’initialisation, elle sera accessible aussi bien aux enfants, patients, parents et aides soignantes.&lt;br /&gt;
&lt;br /&gt;
Quelques mois plus tard...Le jeune patient fan de Need For Speed, peut maintenant piloter sa voiture comme un vrai professionnel grâce à l'un des joysticks qu'il utilisera avec sa main valide et il pourra accélérer à des vitesses folles à l'aide de boutons poussoirs au niveau de son pied valide et gagner la partie. Son ami venu lui rendre visite, pourra en lieu et place des aides soignantes configurer à l'aide de la tablette (portable) la manette du patient. &lt;br /&gt;
Si le patient change de jeu pour Tekken et que la configuration des modules ne lui convient plus, il peut interchanger les éléments de la manette selon son envie et son confort. Ainsi il peut faire sauter son personnage, il utilisera un module bouton supplémentaire, qu'il actionnera avec le poing.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Fonctionnement&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier: beteacorne.jpg||middle|600px|Bete a corne manette]] &lt;br /&gt;
&lt;br /&gt;
Suite à une analyse fonctionnelle et à la formulation de notre projet, nous avons pu définir le fonctionnement de notre système. Notre produit, la manette, doit être accessible d’après nos objectifs à différents types de handicaps moteurs. Ainsi, l’idéal serait de concevoir une manette modulable afin qu’elle puisse s’adapter à toutes les situations. Ce n’est plus au patient de s’adapter à la manette mais à la manette de s’adapter au patient.&lt;br /&gt;
Cela signifie que la manette sera, dans la limite du possible et de la sensibilité du corps du patient, composée de plusieurs parties dites « modules » comportant un ou plusieurs actionneurs (boutons, joysticks, gâchettes...). Ces modules seront déplaçables afin d’être utilisé avec différents membres du corps : un doigt, une main,&lt;br /&gt;
une jambe ou même un pied. Il suffira de les connectés entre eux suivant l’organisation souhaitée, le Gameplay du jeu ou en fonction du handicap. Le tout sera relié à une application.&lt;br /&gt;
L’application sera alors mise en place pour connecter les différentes parties du point de vue software pour prérégler la manette en fonction du patient. Il pourra alors choisir les boutons en fonction du jeu, de ses mouvements mais aussi choisir la sensibilité.&lt;br /&gt;
&lt;br /&gt;
L’application et les modules devront être intuitifs et faciles d’utilisation. De cette manière des utilisateurs non avertis dans le domaine informatique ou jeunes pourront eux-mêmes gérer les connexions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Réponse à la question difficile&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
'''Question : Comment interconnecter les différents modules de la manette ?'''&lt;br /&gt;
&lt;br /&gt;
Il nous faut pour ce projet interconnecter les modules modélisant la manette qui seront connectés à la consoles PS4 via une Raspberry Pi 3.&lt;br /&gt;
Le choix de la Raspberry Pi 3 nous permet d'utiliser son module Bluetooth pour communiquer avec la PS4, ce choix est plus adaptée au projet que du filaire.&lt;br /&gt;
Concernant l'interconnexion des modules, nous travaillerons en deux étapes &amp;quot;preuves concept&amp;quot; : filaire et sans fils (Bluetooth).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;''Objectif 1 : Preuve concept filaire''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans cette première partie de projet, nous souhaitons avoir une 1ère preuve de prototype rapidement. Nous nous concentrerons alors sur la communication entre la RPi3 et la PS4 ainsi que sur la conception des modules. Pour les modules, nous réaliserons des cartes électronique pour chaque module avec un micro-contrôleur. La communication filaire nous permettra d'interconnecter les modules à la RPi3 avec un bus SPI.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;''Objectif 2: preuve concept sans fils''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une deuxième étape du projet est la réalisation de la solution idéale sans fils. Celle-ci pourra commencer à être développée petit à petit en parallèle avec l'objectif 1. Le but ici, est d'interconnecter les modules en Bluetooth. Nous avons choisi le Bluetooth pour garder une connexion commune sur toute la chaîne. &lt;br /&gt;
Nous rajouterons alors un module bluetooth à chaque module de la manette. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;''Objectif 3: possibilité d'adapter les boutons (capuchon en 3D)''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Préparation du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Cahier des charges&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Choix techniques : matériel et logiciel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
'''Liste de matériel :'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;3x Push buttons :&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
- O X Y Carré R3 L3 &amp;lt;br&amp;gt;&lt;br /&gt;
- Guide PS &amp;lt;br&amp;gt;&lt;br /&gt;
- start/back &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 0,45€/unité TTC [https://www.gotronic.fr/art-bp-miniature-krs1273-16976.htm]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;1x Thumbsticks originaux:&amp;lt;/u&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
Joystick analogique 4 directions --&amp;gt; 4,25€/unité TTC [https://www.gotronic.fr/art-joystick-analogique-4-directions-19063.htm]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;1x buttons trigger L1 L2:&amp;lt;/u&amp;gt; --&amp;gt; 1,49€/unité TTC [http://fr.farnell.com/mcm/32-37210/replacement-l1l2-trigger-buttons/dp/2801418] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;1x Led RGB neopixel&amp;lt;/u&amp;gt; [https://www.adafruit.com/product/1734]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;1x Raspberry Pi 3 &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; ~36,23€/unité TTC [https://fr.rs-online.com/web/p/processor-microcontroller-development-kits/8968660/?src=raspberrypi]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;3x Arduino UNO &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;6x Alimentation 5V &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
par exemple, 12 piles de type CR2016 3V rechargeables ou 24 piles AAA 1,5 V rechargeables  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;5 modules Bluetooth nrf de Nordic : nRF52810-QFAA-R &amp;lt;/u&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 3,17€/unité + frais expédition  [https://www.mouser.fr/productdetail/nordic-semiconductor/nrf52810-qfaa-r?qs=sGAEpiMZZMve4%2FbfQkoj%252bG%2FosjLoe2oghFQwQllMrQ4%3D]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;5 2x Lignes broches mâles et femelles&amp;lt;/u&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Logiciels:'''&lt;br /&gt;
&lt;br /&gt;
- IDE arduino&lt;br /&gt;
- Altium&lt;br /&gt;
- FreeCAD ou Inkscape&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Liste des tâches à effectuer&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 1 : Gestion du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Définition des cahiers des charges fonctionnel et technique, choix d'orientation...&lt;br /&gt;
* Recherche techniques sur les différentes connexions possibles entre les modules, la RPi 3 et la console PS4&lt;br /&gt;
#Recherche connexion SPI entre les modules et la RPi3&lt;br /&gt;
# Recherche connexion bluetooth entre la RPi3 et la PS4&lt;br /&gt;
# Recherche connexion bluetooth pour les modules&lt;br /&gt;
# Recherche carte avec montage Atmega328P-PU et anticipation module bluetooth&lt;br /&gt;
* Détermination du matériel nécessaire&lt;br /&gt;
* Réflexion sur l'application&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 2: Réalisation du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Partie 1: Preuve concept manette en filaire'''&lt;br /&gt;
&lt;br /&gt;
* Conception de cartes électroniques pour 2 modules (/!\ prévoir modules bluetooth)&lt;br /&gt;
* Réalisation connexion SPI avec 2 modules : programmation des Atmega328p en liaison série. &lt;br /&gt;
* Si tests concluant, ajouter des modules jusqu'à en avoir 5 (1 pour chaque type de boutons) &lt;br /&gt;
* Connexion bluetooth entre la PS4 et la RPi3&lt;br /&gt;
* Réalisation du support des modules avec fixations possibles (imprimante 3D)&lt;br /&gt;
&lt;br /&gt;
'''Partie 2: Preuve concept manette en bluetooth'''&lt;br /&gt;
&lt;br /&gt;
* Ajout des modules bluetooth aux cartes électroniques&lt;br /&gt;
* Connexion bluetooth entre les modules&lt;br /&gt;
&lt;br /&gt;
'''Partie 3: Application Android : paramétrage de la manette'''&lt;br /&gt;
&lt;br /&gt;
* Créer une application sur tablette ou smartphone (Android) afin de configurer la manette aux besoins (inter-connexion des modules et console)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Calendrier prévisionnel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Date'''&amp;lt;/u&amp;gt;&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Tache à réaliser''' &amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
17/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
'''Durant la séance:''' &lt;br /&gt;
Faire des recherches sur les différentes interconnexions du système : Bluetooth, RPi-Atmega328 (SPI), RPi-PS4&lt;br /&gt;
Peaufiner le wiki&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
24/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
'''Pour la séance : '''&lt;br /&gt;
Continuer liste des taches, cahier des charges, recherches&lt;br /&gt;
'''Durant la séance : '''&lt;br /&gt;
Continuer les recherches + montage modules boutons si possible + réflexion fixation support des modules&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Réalisation du Projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Feuille d'heures&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 10&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Cherches techniques &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Rédaction du wiki et rapport de projet&lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Total Semaine&lt;br /&gt;
| 10&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Prologue&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Avant la réalisation et conception d'un projet, il est important d'analyser celui-ci. Nous avons allons consacré le prologue à l'analyse fonctionnelle de la manette. Nous avons également eu une réflexion sur l'analyse technique, cela nous a permis de réaliser une liste de matériel. Il est important de définir les objectifs ainsi que les besoins afin de ne rien oublier. (Voir ci-dessus Analyse projet) &lt;br /&gt;
Nous avons également organisé notre travail, pour le partage de documents de recherches et la rédaction de compte-rendu final nous avons réalisé un google drive. Par la suite, nous créerons un projet Git. &lt;br /&gt;
&lt;br /&gt;
Durant ce temps, nous avons décidé de réaliser 5 modules. Les modules sont les différents boutons de la manettes qui nous pourrons placer selon nos choix (boutons modulaires) pour notre prototype projet pour chaque type des boutons d'une manette PS4. Ces modules devrons être connectés à la console et interconnectés. Le tout sera lié à une application Android. Suite à quelques recherches et nos analyses, nous avons décidé les points suivants :&lt;br /&gt;
&lt;br /&gt;
- On commencera avec 2 modules et on les multipliera par la suite. &lt;br /&gt;
- Les premiers tests sont réalisés avec des boutons petits pour assurer leur caractéristique &amp;quot;modulaires&amp;quot;, par la suite nous pourrons ajouter des capuchons de taille plus importante (imprimante 3D ou achat)&lt;br /&gt;
- Conception modules : réalisation de carte avec un microcontrôleur atmega328 programmable pour chaque module (anticiper le module Bluetooth) &lt;br /&gt;
- Projet en 2 parties : prototype filaire et prototype Bluetooth&lt;br /&gt;
# Prototype filaire : connexions entre les modules et la RPi3 en SPI, connexion Rpi3-PS4 en Bluetooth, avec l'application en filaire à la RPi3&lt;br /&gt;
# Prototype Bluetooth: connexion Bluetooth entre modules-RPi3-PS4-apllication&lt;br /&gt;
&lt;br /&gt;
[[Fichier: structuremanette.png||center|400px|Concept manette modulable]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 1&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous nous sommes concentrés sur des recherches techniques afin de définir clairement les inter-connexions que nous devrons réaliser au cours de notre projet.&lt;br /&gt;
Ainsi, nous avons fait des recherches sur :&lt;br /&gt;
&lt;br /&gt;
*'''Connexion SPI entre les modules (Atmega328p) et la RPi3'''&lt;br /&gt;
&lt;br /&gt;
SPI: Serial périphérique interface BUS&lt;br /&gt;
&lt;br /&gt;
[[Fichier: yWGmW.png||right|200px|Concept manette modulable]]&lt;br /&gt;
Comme indiqué sur l'image ci-dessus, la Raspberry pi 3  peut communiquer en SPI avec ses broches CS0 (24), CS1 (26), SCLK (23), MISO (21), MOSI (19). Celles-ci permettent de communiquer avec un ou plusieurs esclaves (dans notre cas, des Atmega328p) en reliant directement les broches concernées de la RPi3 à celles des composants esclaves.&lt;br /&gt;
Chaque broche CS0 (24) ou CS1 (26) ne peut être connectée qu'à l'entrée SS (aussi appelé CS) d'un seul esclave.&lt;br /&gt;
C'est a dire que chaque CS est lié à un esclave afin de choisir avec lequel la communication est établie à un moment donné, et les MISO sont reliées entre elles en cascade, de même pour les SCLK et les MOSI. On peut noter que le maître impose la fréquence d’horloge et sélectionne l’esclave auquel les données sont envoyées.  8 MHz est le plus rapide supportable a 3,3V&lt;br /&gt;
&lt;br /&gt;
[[Fichier: fonctionnementSPI.png||right|200px|Connexion SPI multi-esclaves]]&lt;br /&gt;
&lt;br /&gt;
Voici un schéma du fonctionnement souhaité : &lt;br /&gt;
&lt;br /&gt;
Comme nous souhaitons avoir 5 modules environ il nous faudra rajouter un composant en plus afin d'augmenter les possibilités de sélection, par exemple des démultiplexeurs.&lt;br /&gt;
Dans un premier temps nous esterons avex 2 esclaves, puis on augmentera le nombre. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: schémaSPI.png||right|200px|connexion filaire principe]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Connexion Bluetooth PS4-RPi3'''&lt;br /&gt;
&lt;br /&gt;
Caracteristique pour la PS4:  Bluetooth®v4.0, Qualcomm Atheros AR3002 Buetooth LE: 2,4-2,5 GHz  &amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caracteristique de la connexion : &amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; Vitesse de transmission &amp;gt;&amp;gt; 3 Mbit/s   8N1  &amp;lt;/br&amp;gt;&lt;br /&gt;
Relevé tous les 1.3 millisecond (peut-être) &amp;lt;/br&amp;gt;&lt;br /&gt;
Chaque manette à une adresse unique BD_ADDR qui correspond à l’adresse MAC de la carte Réseau&amp;lt;/br&amp;gt;&lt;br /&gt;
Protocole de détection est le SDP basé sur une emission reception PDU &amp;lt;/br&amp;gt;&lt;br /&gt;
l’Attribut ID est representer en TLV Type Length Value &amp;lt;/br&amp;gt;&lt;br /&gt;
Communication HCI ACL Data Packet  &amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''Rélisation des cartes électroniques'''&lt;br /&gt;
&lt;br /&gt;
matériel nécessaire pour un PCB : &amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-breadboard&lt;br /&gt;
-cables&lt;br /&gt;
-1 x 10k Ohm resistance&lt;br /&gt;
-Quartz 16Mhz clock crystal&lt;br /&gt;
-2 x 22 pF capaciteurs&lt;br /&gt;
-Atmega328P-PU&lt;br /&gt;
&lt;br /&gt;
Ressources: &lt;br /&gt;
[[https://www.arduino.cc/en/Main/Standalone]]&lt;br /&gt;
[[http://www.eprojectszone.com/atmega-328-pu-standalone/]]&lt;br /&gt;
[[https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 2&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la semaine deux et durant la séance, nous avons continué et approfondie nos recherches sur le projet. Nous avons pu ainsi affiner nos taches de réalisation et donc notre cahier des charges.&lt;br /&gt;
&lt;br /&gt;
*'''Bluetooth sur la Raspberry Pi 3'''&lt;br /&gt;
&lt;br /&gt;
voir https://peip-ima.plil.fr/mediawiki/index.php/BE_2017-2018#Configuration_du_syst.C3.A8me_embarqu.C3.A9&lt;br /&gt;
&lt;br /&gt;
(sudo apt-get install pi-bluetooth)&lt;br /&gt;
&lt;br /&gt;
''connexion sur la raspberry par ssh:''&lt;br /&gt;
 su&lt;br /&gt;
 update-rc.d ssh enable&lt;br /&gt;
 invoke-rc.d ssh start &lt;br /&gt;
 ssh pi@172.26.79.1XX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''bluetooth''&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
 agent on&lt;br /&gt;
 default-agent&lt;br /&gt;
 scan on&lt;br /&gt;
 pair [device Bluetooth address]  (exemple: pair XX:XX:XX:XX:XX:XX )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''NOUVELLE REFLEXION : Connexion SPI entre les modules (Atmega328p) et la RPi3 --&amp;gt; MODULES BLUETOOTH'''&lt;br /&gt;
&lt;br /&gt;
Si multi-esclaves= plusieurs modules : &lt;br /&gt;
Il faut ajouter des sélections pour les SPI → démultiplexeurs OU ne pas utiliser les CS0 et CS1, et plutôt des pins entrée/sortie de la RPi3 lié au SS comme ça on choisit direct le module esclave voulu.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' Nous avons étudié à nouveau la datasheet de notre module bluetooth nrf de Nordik. Le module bluetooth comporte  déjà un microprocesseur !&lt;br /&gt;
Un module plutôt peut donc jouer le rôle de notre atmega328p. Il n'y a alors pas besoin de réaliser des cartes électronique de type arduino standalone. Nos PCB regrouperont alors uniquement l'alimentation, un actionneur (bouton, joystick), le module bluetooth et les broches de connexion si besoin... &lt;br /&gt;
&lt;br /&gt;
Cette séance nous a alors permise de revoir entièrement le matériel nécessaire. Notre liste de matériel nous semble alors plus réfléchie et limitée au nécessaire. &lt;br /&gt;
&lt;br /&gt;
*'''Connexion Bluetooth PS4-RPi3'''&lt;br /&gt;
connexion bluetooth remplacée par une connexion série USB&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Discussion:Projets_IMA4_SC_%26_SA_2017/2018&amp;diff=49479</id>
		<title>Discussion:Projets IMA4 SC &amp; SA 2017/2018</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Discussion:Projets_IMA4_SC_%26_SA_2017/2018&amp;diff=49479"/>
				<updated>2018-01-31T16:35:42Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : /* Fiche de présence */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==  Notes sur les projets ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| Projet || Analyse du projet || Retour sur l'analyse || Matériel || Mi-parcours || Wiki terminé || Rapport || Vidéo&lt;br /&gt;
|-&lt;br /&gt;
| P1 [[IMA4 2017/2018 P1|Automatisation de la production de bière]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Présentation sans supports, bonne analyse de la concurrence. Par contre le scénario d'usage est à revoir en précisant l'usage pour le particulier.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Le scénario est précisé mais aucune réponse aux questions difficiles &amp;quot;gestion des températures et procédure d'entretien&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Rien.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P3 [[IMA4 2017/2018 P3|Sécurisation de l'Internet des Objets par surveillance globale]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Présentation focalisée sur les réseaux de neurones. Exercice mal compris (pas d'introduction du contexte, pas de scénario d'usage).&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Toujours pas d'analyse de la concurrence, ni de scénario d'usage. Pas de réponse aux questions difficiles &amp;quot;quel est le matériel ? quel est le protocole ? quelles sont les entrées du réseau de neurones ?&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Une liste mais il manque des références vers les fournisseurs agréés (voir page de l'an dernier).&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P4 [[IMA4 2017/2018 P4|Développement d'un module d'énergie pour Internet des Objets]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Exercice correctement réalisé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Pas de réponse aux questions difficiles &amp;quot;Architecture de la source d'énergie (nombre de chemins d'énergie ?)&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Rien.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| P5 [[IMA4 2017/2018 P5|Réseau de capteurs de pollution]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt; Présentation focalisée sur la création du site Web. Effort fait pour rédiger un scénario d'usage.&amp;lt;/font&amp;gt; &lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt; Réponses aux questions mais l'analyse de la consommation est imprécise. &amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt; Du matériel listé dans la page Wiki mais à reporter en bas de la page des projets de cette année avec des références valides.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P6 [[IMA4 2017/2018 P6|Réseau LoRaWAN]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Exercice correctement réalisé. Scénario d'usage à préciser sur la partie réseau de capteurs.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt; Scénario d'usage non précisé. Pas de réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt; Du matériel listé mais sans référence, êtes-vous sur que le matériel n'a pas besoin d'être acheté ?&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P7 [[IMA4 2017/2018 P7|Brique pour apprentissage informatique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; Pas de support. Exercice très bien réalisé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Pas de réponse aux questions difficiles &amp;quot;quelle alimentation ? comment faire pour différencier les briques ? comment les briques vont-elles communiquer ? quelle sécurité vis-à-vis des enfants ?&amp;quot;&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Pas de liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P10 [[IMA4 2017/2018 P10|Portage de RIOT-OS sur MSP430 pour IOT]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; Rien à signaler (juste une confusion entre le MSP430 et le CC430).&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt; Questions difficiles évacuées. &amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt; Du matériel listé mais sans référence.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P12 [[IMA4 2017/2018 P12|Système d'ostéophonie pour magicien]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Un peu rapide, exercice réalisé. &amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Pas d'analyse de la concurrence. Peu d'effort de rédaction. Des coquilles. Une réponse rapide à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt; Du matériel listé mais pas forcément exhaustif et sans référence valide.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P14 [[IMA4 2017/2018 P14|Ecran géant modulaire]]&lt;br /&gt;
| Doublant&lt;br /&gt;
| Doublant&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Page Wiki vide, pas de liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P15 [[IMA4 2017/2018 P15|Balle vibrante connectée pour enfants sourd]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Présentation acceptable mais avec des supports non soignés. Pas d'analyse de la concurrence, pas de scénario d'usage.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;L'analyse de la concurrence et le scénario d'usage ont été ajoutés. Par contre pas de réponse aux questions difficiles &amp;quot;quelle sera l'autonomie de la balle et quel sera le système de rechargement ?&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Pas de liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P16 [[IMA4 2017/2018 P16|Sous-chaussure chauffante pour docker]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Présentation acceptable mais avec des supports non soignés. Trouver des concurrents indirects. Une histoire mais pas de scénario d'usage.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Page Wiki modifiée après la présentation. Une réponse incomplète à la question difficile. Trop de coquilles pour ce niveau d'études.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Pas de liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P17 [[IMA4 2017/2018 P17|Safe Watch]]&lt;br /&gt;
| Doublant&lt;br /&gt;
| Doublant&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune modification de la page Wiki depuis début octobre.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P18 [[IMA4 2017/2018 P18|Mandala électronique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Supports très textuels, pas de scénario d'usage mais une rédaction sur l'intérêt psychologique, pas vraiment de partie &amp;quot;concurrents&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Un effort pour trouver des &amp;quot;concurrents&amp;quot;, pas de réponses aux questions difficiles &amp;quot;combien de LEDs ? quelle alimentation pour quelle autonomie&amp;quot;.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt; Pas de liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P19 [[IMA4 2017/2018 P19|Bijou électronique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Bonne présentation orale. Utilisation du bluetooth peu convainquant. Pas de scénario d'usage. Un &amp;quot;concurrent&amp;quot; trouvé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Concept de scénario d'usage non compris. Une réponse à la question difficile très rapide et non convaincante.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Une liste de matériel dans la page Wiki mais à insérer dans le tableau en bas de la page principale. Pas de référence (voir sur la page de l'an passé).&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P20 [[IMA4 2017/2018 P20|Solution de messagerie à base de conteneurs]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Support assez corrects, sujet non entièrement compris, scénario d'usage minimal.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Un problème dans le scénario d'usage : les conteneurs doivent être lancés sur un serveur. Une réponse acceptable à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas de matériel particulier.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P22 [[IMA4 2017/2018 P22|Horloge numérique DCF77, serveur de temps et ludique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Analyse très correcte.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P23 [[IMA4 2017/2018 P23|Table de bar connectée]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Présentation trop impécise, pas vraiment de scénario d'usage. Par contre des concurrents ont été présentés.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Un scénario d'usage éloigné de la future utilisation. Trop de coquilles dans ce scénario. Réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Une liste du matériel mais pas dans la page principale. Pas de référence (voir page de l'an passé).&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P25 [[IMA4 2017/2018 P25|Essaim de robots]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Analyse très correcte. Un concurrent assez peu en rapport avec les essaims de robots mais dans la ligne des dispositifs de déminage.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas de question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Liste du matériel. Préciser pour le chassis.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[IMA4 2017/2018 P30|Contrôle d'une caméra WiFi.]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Objectif mal expliqué. Exercice réalisé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Mieux définir l'objectif suite à la visite en entreprise. Pas de réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P32 [[IMA4 2017/2018 P32|Tribute to Peter Vogel]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Excellente présentation et excellent travail préparatoire, Scénario d'usage à préciser, trouver des concurrents.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P35 [[IMA4 2017/2018 P35|Manette de jeu vidéo pour personne en situation de handicap]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Exercice réussi. Cependant précisez les acteurs dans le scénario d'usage.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Pas de modification du scénario. Pas de réponse à la question difficile.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Rien à redire sur la liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P39 [[IMA4 2017/2018 P39|Musique des plantes]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Analyse très correcte.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Réponses aux questions difficiles.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P40 [[IMA4 2017/2018 P40|Exploration du réseau d'anonymisation Tor]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Sujet se prêtant peu à l'exercice mais très bonne présentation. Sujet travaillé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas vraiment de question, la suggestion est noté dans la page Wiki.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas de matériel à commander.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P42 [[IMA4 2017/2018 P42|Automatisation de l'assemblage de LEGO]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Analyse très correcte.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Pas de réponse aux questions difficiles &amp;quot;Comment démarrer l'imprimante à distance ? Comment sera calibrée la plaque d’impression ?&lt;br /&gt;
Comment la plaque va se fixer sur le sol ? &amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P44 [[IMA4 2017/2018 P44|Reconnaissance d’objets via Traitement d’image]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Le projet ne semble pas encore avoir été sérieusement étudié.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Net effort de documentation de la page Wiki. Pas de réponse directe à la question difficile sur la Kinect mais une discussion sur le problème posé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P49 [[IMA4 2017/2018 P49|Suivi de la qualité de l’air]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Contexte mal présenté, sujet flou. Scénario d'usage à préciser. Pas de contact avec les encadrants avant la présentation.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Page de Wiki vide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P50 [[IMA4 2017/2018 P50|Etage commande de Centaure]]&lt;br /&gt;
| Doublant&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Page de Wiki assez vide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P60 [[IMA4 2017/2018 P60|Commande de niveaux d’eau]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Présentation très correcte.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Pas de réponse à la question difficile. Page Wiki un peu vide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas de matériel à commander.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P64 [[IMA4 2017/2018 P64|Simulation Labview et mise en réseau Modbus d’un ascenseur]]&lt;br /&gt;
| Doublant&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Wiki avec quelques informations sur le travail accompli depuis fin novembre : étude sur modbus et labview. Quelques coquilles.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P65 [[IMA4 2017/2018 P65|Exosquelette pour apprentissage]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Présentation sans support. Trouver des concurrents indirects. Pas de scénario d'usage.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Page Wiki vide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Aucune liste de matériel.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P66 [[IMA4 2017/2018 P66|Coupe de France de robotique]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Analyse très correcte.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Page Wiki bien tenue. Ajoutez des illustrations.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: yellow; background-color: grey;&amp;quot;&amp;gt;Quelques éléments sur le matériel dans la page Wiki mais aucune liste avec références.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P67 [[IMA4 2017/2018 P67|Scanner 3D DIY]]&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Exercice bien réalisé.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Page Wiki très complète. Ajoutez des illustrations.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: lightgreen; background-color: grey;&amp;quot;&amp;gt;Une liste probablement pas exhaustive.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P68 [[IMA4 2017/2018 P68|Générateur de chronogrammes d'ordonnancement]]&lt;br /&gt;
| Doublant&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: red;&amp;quot;&amp;gt;Page Wiki vide.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Pas de matériel à commander.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| PP1 [[IMA4 2017/2018 Pré-projet 1|Robot hexapode pour escalier]]&lt;br /&gt;
| Erasmus &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fiche de présence ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Projet !! Elèves !! Séance 1 (17/01) !! Séance 2 (24/01) !! Séance 3 (31/01) !! Séance 4 (7/02) !! Séance 5 (14/02) !! Séance 6 (21/02) !! Séance 7 (7/03) !! Séance 8 (14/03) !! Séance 9 (21/03) !! Séance 10 (28/03) !! Séance 11 (4/04) !! Séance 12 (11/04) !! Séance 13 (18/04)&lt;br /&gt;
|-&lt;br /&gt;
| P1 [[IMA4 2017/2018 P1|Automatisation de la production de bière]]&lt;br /&gt;
|Quentin Boëns / Henri Carlier&lt;br /&gt;
|E304 &lt;br /&gt;
|E304/305&lt;br /&gt;
|E304&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| P3 [[IMA4 2017/2018 P3|Sécurisation de l'Internet des Objets par surveillance globale]]&lt;br /&gt;
|Ji Yang&lt;br /&gt;
|E306&lt;br /&gt;
|E303&lt;br /&gt;
|-&lt;br /&gt;
| P4 [[IMA4 2017/2018 P4|Développement d'un module d'énergie pour Internet des Objets]]&lt;br /&gt;
| Alexis Viscogliosi/ Abass Ayoub &lt;br /&gt;
|C008&lt;br /&gt;
|C008&lt;br /&gt;
|E304&lt;br /&gt;
|-&lt;br /&gt;
| P5 [[IMA4 2017/2018 P5|Réseau de capteurs de pollution]]&lt;br /&gt;
| Paul Ribeiro / Mehanna Naïf&lt;br /&gt;
|E303&lt;br /&gt;
|E301&lt;br /&gt;
|A204&lt;br /&gt;
|-&lt;br /&gt;
| P6 [[IMA4 2017/2018 P6|Réseau LoRaWAN]]&lt;br /&gt;
|  Antoine Gosse&lt;br /&gt;
| E306&lt;br /&gt;
| E306 &lt;br /&gt;
|-&lt;br /&gt;
| P7 [[IMA4 2017/2018 P7|Brique pour apprentissage informatique]]&lt;br /&gt;
| Maëva Delaporte / Simon Blas&lt;br /&gt;
| E304 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E304 &amp;lt;br/&amp;gt;&lt;br /&gt;
| E304 &amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P10 [[IMA4 2017/2018 P10|Portage de RIOT-OS sur MSP430 pour IOT]]&lt;br /&gt;
| Baptiste Cartier&lt;br /&gt;
| E306&lt;br /&gt;
| E301&lt;br /&gt;
| E306&lt;br /&gt;
|-&lt;br /&gt;
| P12 [[IMA4 2017/2018 P12|Système d'ostéophonie pour magicien]]&lt;br /&gt;
| Amine El Messaoudi / Simon Feutrier&lt;br /&gt;
| E301&lt;br /&gt;
| C201&lt;br /&gt;
|-&lt;br /&gt;
| P14 [[IMA4 2017/2018 P14|Ecran géant modulaire]]&lt;br /&gt;
| Jade Dupont&lt;br /&gt;
|E304 &lt;br /&gt;
|E304 &lt;br /&gt;
|E304 &lt;br /&gt;
|-&lt;br /&gt;
| P15 [[IMA4 2017/2018 P15|Balle vibrante connectée pour enfants sourd]]&lt;br /&gt;
| Thomas Cunin / Thibault Cattelain&lt;br /&gt;
| E304&lt;br /&gt;
| B306/E304&lt;br /&gt;
|-&lt;br /&gt;
| P16 [[IMA4 2017/2018 P16|Sous-chaussure chauffante pour docker]]&lt;br /&gt;
| Rémi Mairesse / Gustave Roux&lt;br /&gt;
| E304&lt;br /&gt;
| E301&lt;br /&gt;
|-&lt;br /&gt;
| P17 [[IMA4 2017/2018 P17|Safe Watch]]&lt;br /&gt;
| Oumaima Naanaa&lt;br /&gt;
|E302&lt;br /&gt;
|E304 &lt;br /&gt;
|-&lt;br /&gt;
| P18 [[IMA4 2017/2018 P18|Mandala électronique]]&lt;br /&gt;
| Lirui Zhang / Lihe Zhang&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P19 [[IMA4 2017/2018 P19|Bijou électronique]]&lt;br /&gt;
| Lijie Yao / Keren Qiang&lt;br /&gt;
| E303&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P20 [[IMA4 2017/2018 P20|Solution de messagerie à base de conteneurs]]&lt;br /&gt;
| Maxime Creteur / Gao Fan&lt;br /&gt;
|E303&lt;br /&gt;
|E301&lt;br /&gt;
|A204&lt;br /&gt;
|-&lt;br /&gt;
| P22 [[IMA4 2017/2018 P22|Horloge numérique DCF77, serveur de temps et ludique]]&lt;br /&gt;
| Amaury Knockaert / Fabrice Taingland&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304/E302&lt;br /&gt;
|-&lt;br /&gt;
| P23 [[IMA4 2017/2018 P23|Table de bar connectée]]&lt;br /&gt;
| Matthieu Delobelle&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E303 - C201&lt;br /&gt;
|-&lt;br /&gt;
| P25 [[IMA4 2017/2018 P25|Essaim de robots]]&lt;br /&gt;
| Benjamin Canu / Ganix Etcheguibel&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[IMA4 2017/2018 P30|Contrôle d'une caméra WiFi.]]&lt;br /&gt;
| Taky Djeraba / Thomas Hubert&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
|-&lt;br /&gt;
| P32 [[IMA4 2017/2018 P32|Tribute to Peter Vogel]]&lt;br /&gt;
| Jean-Baptiste Watine / Antoine Untereiner&lt;br /&gt;
| E306/C201&lt;br /&gt;
| E301&lt;br /&gt;
|-&lt;br /&gt;
| P35 [[IMA4 2017/2018 P35|Manette de jeu vidéo pour personne en situation de handicap]]&lt;br /&gt;
| Transley Gracias / Camille Saad&lt;br /&gt;
| E306 &lt;br /&gt;
| E306 &lt;br /&gt;
| E305&lt;br /&gt;
|-&lt;br /&gt;
| P39 [[IMA4 2017/2018 P39|Musique des plantes]]&lt;br /&gt;
| Xavier Chenot / Rodolphe Toin&lt;br /&gt;
| E306 &lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
|-&lt;br /&gt;
| P40 [[IMA4 2017/2018 P40|Exploration du réseau d'anonymisation Tor]]&lt;br /&gt;
| Antoine Duquenoy / Anthony Durot&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
|-&lt;br /&gt;
| P42 [[IMA4 2017/2018 P42|Automatisation de l'assemblage de LEGO]]&lt;br /&gt;
| Eloi Zalczer / Justine Senellart&lt;br /&gt;
|E302/E306&lt;br /&gt;
|E302/E306&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| P44 [[IMA4 2017/2018 P44|Reconnaissance d’objets via Traitement d’image]]&lt;br /&gt;
| Damien Narbais / Zoé Briois&lt;br /&gt;
| E306&lt;br /&gt;
| E301&lt;br /&gt;
|-&lt;br /&gt;
| P49 [[IMA4 2017/2018 P49|Suivi de la qualité de l’air]]&lt;br /&gt;
| Hugo Delbroucq / Nicolas Havard &lt;br /&gt;
| E301&lt;br /&gt;
| INRIA&lt;br /&gt;
|-&lt;br /&gt;
| P50 [[IMA4 2017/2018 P50|Etage commande de Centaure]]&lt;br /&gt;
|-&lt;br /&gt;
| P60 [[IMA4 2017/2018 P60|Commande de niveaux d’eau]]&lt;br /&gt;
| Claire Vandamme / Alexandra Villa &lt;br /&gt;
|C008&lt;br /&gt;
|C008&lt;br /&gt;
|- &lt;br /&gt;
| P64 [[IMA4 2017/2018 P64|Simulation Labview et mise en réseau Modbus d’un ascenseur]]&lt;br /&gt;
|-&lt;br /&gt;
| P65 [[IMA4 2017/2018 P65|Exosquelette pour apprentissage]]&lt;br /&gt;
| Florian Le Foll&lt;br /&gt;
| E301&lt;br /&gt;
| E301&lt;br /&gt;
|-&lt;br /&gt;
| P66 [[IMA4 2017/2018 P66|Coupe de France de robotique]]&lt;br /&gt;
| Carval Amaury&lt;br /&gt;
| fabricarium &lt;br /&gt;
| fabricarium puis Hors Polytech&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P67 [[IMA4 2017/2018 P67|Scanner 3D DIY]]&lt;br /&gt;
| Erwan Dufresne&lt;br /&gt;
| E302/E306&lt;br /&gt;
| E301&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P68 [[IMA4 2017/2018 P68|Générateur de chronogrammes d'ordonnancement]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:YWGmW.png&amp;diff=48969</id>
		<title>Fichier:YWGmW.png</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:YWGmW.png&amp;diff=48969"/>
				<updated>2018-01-24T18:15:50Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : Tgracias a téléversé une nouvelle version de Fichier:YWGmW.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:FonctionnementSPI.png&amp;diff=48968</id>
		<title>Fichier:FonctionnementSPI.png</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:FonctionnementSPI.png&amp;diff=48968"/>
				<updated>2018-01-24T18:14:27Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:YWGmW.png&amp;diff=48967</id>
		<title>Fichier:YWGmW.png</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:YWGmW.png&amp;diff=48967"/>
				<updated>2018-01-24T18:13:44Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=48965</id>
		<title>IMA4 2017/2018 P35</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=48965"/>
				<updated>2018-01-24T18:13:17Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : /* 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;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Présentation générale: Manette modulable&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Description&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Tout le monde joue aux jeux vidéo cependant, les manettes ne sont pas adaptées aux personnes ayant un handicap pouvant toucher les bras ou les mains.&lt;br /&gt;
C’est le cas, de plusieurs patients dans les centres de soins et de rééducation.&lt;br /&gt;
&lt;br /&gt;
Pour ce projet IMA4, nous travaillerons avec le centre SSR (soin de suite et de réadaptation) Marc Sautelet de Villeneuve d’Ascq.&lt;br /&gt;
Un adolescent, patient de Marc Sautelet, est passionné par les jeux vidéo. En effet, ayant perdu la motricité d’une partie de son corps, il ne peut pas jouer à deux mains. Pour cela, il bloque la manette entre son épaule et son coude, usant de la mâchoire et des doigts pour contrôler les&lt;br /&gt;
joysticks et les boutons. Cet exercice peut s’avérer fatiguant et pénible.&lt;br /&gt;
&lt;br /&gt;
Ainsi, nous chercherons à concevoir une manette PS4 adaptée au handicap de l’adolescent. &lt;br /&gt;
Cette manette devra aussi être adaptée pour d’autres patients présentant également des handicaps moteurs. Ainsi nous prendrons pour cibles: tous les patients du centre voulant jouer; et non pas que les enfants et adolescents.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Membre du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Transley Gracias et Camille Saad&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Cible&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Patient présentant un handicap moteur&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Période du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
janvier 2018 - mai 2018&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Partenaire/Client&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Centre SSR Marc Sautelet à Villeneuve d'Ascq&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Objectifs&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ce projet a pour objectif de créer un prototype de manette qui puisse interagir avec la console PS4 et dont le paramétrage se fait à l’aide d’une application mobile et/ou web. Cette manette devra suivre les demandes du patient ainsi que des aides-soignantes du centre, dans la mesure du possible.&lt;br /&gt;
&lt;br /&gt;
Plus précisément, pour le premier prototype, nous mettrons en œuvre l'utilisation de quelques boutons spécifiques: &lt;br /&gt;
&lt;br /&gt;
* Un joystick (type L/R)&lt;br /&gt;
* Quelques boutons poussoirs (type Croix/Triangle/Carré/Rond/R1/L1/Start/...)&lt;br /&gt;
* Des boutons gâchettes progressives (type L2/R2).&lt;br /&gt;
&lt;br /&gt;
Le but serait donc dans un premier temps de rendre fonctionnel un bouton de chaque type, puis de les multiplier une fois cela fait. Tous ces boutons réunis constituent une manette fonctionnelle.Ainsi, la manette sera ajustable, c’est à dire qu’elle devra s’adapter aux différents handicaps moteurs possibles.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Analyse du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Positionnement par rapport à l'existant&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre prototype aura une présentation unique par rapport à l’existant. En effet, les concurrents et produits existants ciblent pour la majorité un seul handicap. Cela&lt;br /&gt;
engendre une solution fermée à beaucoup de patients. Notre projet propose une mobilité des mouvements et également un choix large dans la composition et le&lt;br /&gt;
design de notre manette.&lt;br /&gt;
Le patient n’est pas retreint à jouer à une seule main, à utiliser beaucoup de force...Il y a moins de technique dans la manipulation et on ne joue pas avec une&lt;br /&gt;
manette adaptée uniquement pour un droitier ou un gaucher. Cependant, cela nous limitera peut-être dans le choix possible des types de jeux. Tout comme les autres&lt;br /&gt;
manettes adapté, l’utilisateur nécessitera un peu d’entrainement.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du premier concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Jouer aux jeux vidéo à une main n’est pas une idée d’aujourd’hui. En 1990, Nintendo propose le Power Glove. Mais il tombe très rapidement aux oubliettes suite à des problèmes techniques.&lt;br /&gt;
&lt;br /&gt;
Un autre gant a fait son apparition quelques années plus tard. Celui-ci, plus technique, il faut office de manette Play Station: le Reality Quest Power Glove.Cette idée de manette-gant, permet de jouer à la PS avec une seule main, elle a était conçue et présentée pour les E3, un salon d’exposition de gaming.Le gant est conçu pour contrôler l’équivalent des 14 boutons et 2 joysticks à l’aide d’une seule main. La « manette » est fixée dans la pomme de la main. L’utilisateur contrôle les mouvements verticaux et horizontaux en pivotant le poignet, et utilisent les 4 boutons d’action principaux et L1/R1 avec les doigts. Les autres boutons sont accessibles par un seul bouton rond contrôlé par le pouce.&lt;br /&gt;
La manette est adaptée pour beaucoup de jeux vidéo, dont les plus simples sont les jeux de voitures et de combats (arcade).&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec ce gant&lt;br /&gt;
*Design obligatoirement droitier&lt;br /&gt;
*Les boutons de contrôle sont peu sensibles et peuvent nécessiter de la force&lt;br /&gt;
*Design compliqué et nécessitant beaucoup d’entrainement.&lt;br /&gt;
&lt;br /&gt;
;Lien : https://www.youtube.com/watch?v=qV0SxSJDCYg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du second concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ben Heck, de son vrai nom Benjamin J.Heckendorn, est un concepteur de mods de consoles (mods pour modification, soit « manettes modifiées ») et une star&lt;br /&gt;
du net grâce à ses vidéos tutoriels.Il propose alors énormément de produits adaptés ou dérivés en guise de manettes.&lt;br /&gt;
Parmi les mods qu’il a réalisé, il a modifié une manette de PS4 afin de la rendre accessible à une personne ne pouvant jouer qu’à une main. Pour cela, il a déplacé les boutons en respectant l’ergonomie de la main valide et modifie les connexions. Il peut lui arriver de rajouter des boutons pour en remplacer un autre. Il réalise également le même système avec la Xbox. Sur la photo ci-dessous, il a adapté la manette pour un droitier.&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec cette ma&lt;br /&gt;
*Design obligatoirement droitier ou gaucher, une modification = une manette= une personne&lt;br /&gt;
*Besoin obligé du pouce et de l’index, même si avantage : 3 doigts nécessaire.&lt;br /&gt;
&lt;br /&gt;
;Lien :: https://www.youtube.com/watch?v=LieHIscadjk&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Scénario d'usage du produit ou du concept envisagé&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
La technologie est ,aujourd’hui, omniprésente dans notre vie. Les consoles de jeux ont envahies les maisons avec plus de 7 personnes sur 10 jouant aux jeux vidéos sur consoles en France (chiffre de l’Express). 0,18% des français sont handicapés cela représente 12 millions de français. Dans ce chiffre, 13,4% des personnes ont un handicap moteur. En 2017, les grands groupes comme Sony ou Microsoft avec respectivement PlayStation et Xbox ne permettent pas à tout le monde de jouer avec une manette. Les manettes sont prévues pour des personnes ayant leurs membres valides, plus précisément les mains et les bras.&lt;br /&gt;
&lt;br /&gt;
Après un accident de voiture, un jeune garçon a perdu la motricité d’un côté du corps. Passionné de jeux vidéo, il se retrouve avec des difficultés à jouer sur sa console PS4. Ingénieux, il utilise la manette en la coinçant entre son épaule et le creux du cou. Usant de la mâchoire et de sa main valide pour contrôler les joysticks et les boutons. L'exercice étant inconfortable et fatiguant il eu l’idée de proposer à des futurs ingénieurs de lui proposer une manette adaptée à son handicap. &lt;br /&gt;
&lt;br /&gt;
Les deux pré-ingénieurs ,avec leur tuteur, ont une idée révolutionnaire : La manette modulable ! Elle permettrait au jeune garçon, ainsi que d’autres joueurs, de pouvoir continuer de s’amuser ou même de commencer à jouer au jeux sur console. &lt;br /&gt;
Cette manette aidera fortement dans les centre de rééducation pour faire passer le temps et donner du plaisir à des personnes qui ne peuvent plus s’amuser avec leur console traditionnelle. Elle pourra aussi ouvrir de nouvelles possibilités pour certaines personnes qui n’auraient jamais essayé jusqu'à présent.   &lt;br /&gt;
Comme son nom l'indique, elle sera modulaire et s'adaptera à différents handicaps. Accompagnée de son application d’initialisation, elle sera accessible aussi bien aux enfants, patients, parents et aides soignantes.&lt;br /&gt;
&lt;br /&gt;
Quelques mois plus tard...Le jeune patient fan de Need For Speed, peut maintenant piloter sa voiture comme un vrai professionnel grâce à l'un des joysticks qu'il utilisera avec sa main valide et il pourra accélérer à des vitesses folles à l'aide de boutons poussoirs au niveau de son pied valide et gagner la partie. Son ami venu lui rendre visite, pourra en lieu et place des aides soignantes configurer à l'aide de la tablette (portable) la manette du patient. &lt;br /&gt;
Si le patient change de jeu pour Tekken et que la configuration des modules ne lui convient plus, il peut interchanger les éléments de la manette selon son envie et son confort. Ainsi il peut faire sauter son personnage, il utilisera un module bouton supplémentaire, qu'il actionnera avec le poing.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Fonctionnement&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier: beteacorne.jpg||middle|600px|Bete a corne manette]] &lt;br /&gt;
&lt;br /&gt;
Suite à une analyse fonctionnelle et à la formulation de notre projet, nous avons pu définir le fonctionnement de notre système. Notre produit, la manette, doit être accessible d’après nos objectifs à différents types de handicaps moteurs. Ainsi, l’idéal serait de concevoir une manette modulable afin qu’elle puisse s’adapter à toutes les situations. Ce n’est plus au patient de s’adapter à la manette mais à la manette de s’adapter au patient.&lt;br /&gt;
Cela signifie que la manette sera, dans la limite du possible et de la sensibilité du corps du patient, composée de plusieurs parties dites « modules » comportant un ou plusieurs actionneurs (boutons, joysticks, gâchettes...). Ces modules seront déplaçables afin d’être utilisé avec différents membres du corps : un doigt, une main,&lt;br /&gt;
une jambe ou même un pied. Il suffira de les connectés entre eux suivant l’organisation souhaitée, le Gameplay du jeu ou en fonction du handicap. Le tout sera relié à une application.&lt;br /&gt;
L’application sera alors mise en place pour connecter les différentes parties du point de vue software pour prérégler la manette en fonction du patient. Il pourra alors choisir les boutons en fonction du jeu, de ses mouvements mais aussi choisir la sensibilité.&lt;br /&gt;
&lt;br /&gt;
L’application et les modules devront être intuitifs et faciles d’utilisation. De cette manière des utilisateurs non avertis dans le domaine informatique ou jeunes pourront eux-mêmes gérer les connexions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Réponse à la question difficile&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
'''Question : Comment interconnecter les différents modules de la manette ?'''&lt;br /&gt;
&lt;br /&gt;
Il nous faut pour ce projet interconnecter les modules modélisant la manette qui seront connectés à la consoles PS4 via une Raspberry Pi 3.&lt;br /&gt;
Le choix de la Raspberry Pi 3 nous permet d'utiliser son module Bluetooth pour communiquer avec la PS4, ce choix est plus adaptée au projet que du filaire.&lt;br /&gt;
Concernant l'interconnexion des modules, nous travaillerons en deux étapes &amp;quot;preuves concept&amp;quot; : filaire et sans fils (Bluetooth).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;''Objectif 1 : Preuve concept filaire''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans cette première partie de projet, nous souhaitons avoir une 1ère preuve de prototype rapidement. Nous nous concentrerons alors sur la communication entre la RPi3 et la PS4 ainsi que sur la conception des modules. Pour les modules, nous réaliserons des cartes électronique pour chaque module avec un micro-contrôleur. La communication filaire nous permettra d'interconnecter les modules à la RPi3 avec un bus SPI.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;''Objectif 2: preuve concept sans fils''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une deuxième étape du projet est la réalisation de la solution idéale sans fils. Celle-ci pourra commencer à être développée petit à petit en parallèle avec l'objectif 1. Le but ici, est d'interconnecter les modules en Bluetooth. Nous avons choisi le Bluetooth pour garder une connexion commune sur toute la chaîne. &lt;br /&gt;
Nous rajouterons alors un module bluetooth à chaque module de la manette. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;''Objectif 3: possibilité d'adapter les boutons (capuchon en 3D)''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Préparation du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Cahier des charges&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Choix techniques : matériel et logiciel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
'''Liste de matériel :'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;3x Push buttons :&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
- O X Y Carré R3 L3 &amp;lt;br&amp;gt;&lt;br /&gt;
- Guide PS &amp;lt;br&amp;gt;&lt;br /&gt;
- start/back &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 0,45€/unité TTC [https://www.gotronic.fr/art-bp-miniature-krs1273-16976.htm]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;1x Thumbsticks originaux:&amp;lt;/u&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
Joystick analogique 4 directions --&amp;gt; 4,25€/unité TTC [https://www.gotronic.fr/art-joystick-analogique-4-directions-19063.htm]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;1x buttons trigger L1 L2:&amp;lt;/u&amp;gt; --&amp;gt; 1,49€/unité TTC [http://fr.farnell.com/mcm/32-37210/replacement-l1l2-trigger-buttons/dp/2801418] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;1x Led RGB neopixel&amp;lt;/u&amp;gt; [https://www.adafruit.com/product/1734]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;1x Raspberry Pi 3 &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; ~36,23€/unité TTC [https://fr.rs-online.com/web/p/processor-microcontroller-development-kits/8968660/?src=raspberrypi]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;3x Arduino UNO &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;6x Alimentation 5V &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
par exemple, 12 piles de type CR2016 3V rechargeables ou 24 piles AAA 1,5 V rechargeables  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;5 modules Bluetooth nrf de Nordic : nRF52810-QFAA-R &amp;lt;/u&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 3,17€/unité + frais expédition  [https://www.mouser.fr/productdetail/nordic-semiconductor/nrf52810-qfaa-r?qs=sGAEpiMZZMve4%2FbfQkoj%252bG%2FosjLoe2oghFQwQllMrQ4%3D]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;5 2x Lignes broches mâles et femelles&amp;lt;/u&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Logiciels:'''&lt;br /&gt;
&lt;br /&gt;
- IDE arduino&lt;br /&gt;
- Altium&lt;br /&gt;
- FreeCAD ou Inkscape&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Liste des tâches à effectuer&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 1 : Gestion du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Définition des cahiers des charges fonctionnel et technique, choix d'orientation...&lt;br /&gt;
* Recherche techniques sur les différentes connexions possibles entre les modules, la RPi 3 et la console PS4&lt;br /&gt;
#Recherche connexion SPI entre les modules et la RPi3&lt;br /&gt;
# Recherche connexion bluetooth entre la RPi3 et la PS4&lt;br /&gt;
# Recherche connexion bluetooth pour les modules&lt;br /&gt;
# Recherche carte avec montage Atmega328P-PU et anticipation module bluetooth&lt;br /&gt;
* Détermination du matériel nécessaire&lt;br /&gt;
* Réflexion sur l'application&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 2: Réalisation du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Partie 1: Preuve concept manette en filaire'''&lt;br /&gt;
&lt;br /&gt;
* Conception de cartes électroniques pour 2 modules (/!\ prévoir modules bluetooth)&lt;br /&gt;
* Réalisation connexion SPI avec 2 modules : programmation des Atmega328p en liaison série. &lt;br /&gt;
* Si tests concluant, ajouter des modules jusqu'à en avoir 5 (1 pour chaque type de boutons) &lt;br /&gt;
* Connexion bluetooth entre la PS4 et la RPi3&lt;br /&gt;
* Réalisation du support des modules avec fixations possibles (imprimante 3D)&lt;br /&gt;
&lt;br /&gt;
'''Partie 2: Preuve concept manette en bluetooth'''&lt;br /&gt;
&lt;br /&gt;
* Ajout des modules bluetooth aux cartes électroniques&lt;br /&gt;
* Connexion bluetooth entre les modules&lt;br /&gt;
&lt;br /&gt;
'''Partie 3: Application Android : paramétrage de la manette'''&lt;br /&gt;
&lt;br /&gt;
* Créer une application sur tablette ou smartphone (Android) afin de configurer la manette aux besoins (inter-connexion des modules et console)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Calendrier prévisionnel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Date'''&amp;lt;/u&amp;gt;&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Tache à réaliser''' &amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
17/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
'''Durant la séance:''' &lt;br /&gt;
Faire des recherches sur les différentes interconnexions du système : Bluetooth, RPi-Atmega328 (SPI), RPi-PS4&lt;br /&gt;
Peaufiner le wiki&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
24/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
'''Pour la séance : '''&lt;br /&gt;
Continuer liste des taches, cahier des charges, recherches&lt;br /&gt;
'''Durant la séance : '''&lt;br /&gt;
Continuer les recherches + montage modules boutons si possible + réflexion fixation support des modules&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Réalisation du Projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Feuille d'heures&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 10&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Cherches techniques &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Rédaction du wiki et rapport de projet&lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Total Semaine&lt;br /&gt;
| 10&lt;br /&gt;
| 6&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Prologue&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Avant la réalisation et conception d'un projet, il est important d'analyser celui-ci. Nous avons allons consacré le prologue à l'analyse fonctionnelle de la manette. Nous avons également eu une réflexion sur l'analyse technique, cela nous a permis de réaliser une liste de matériel. Il est important de définir les objectifs ainsi que les besoins afin de ne rien oublier. (Voir ci-dessus Analyse projet) &lt;br /&gt;
Nous avons également organisé notre travail, pour le partage de documents de recherches et la rédaction de compte-rendu final nous avons réalisé un google drive. Par la suite, nous créerons un projet Git. &lt;br /&gt;
&lt;br /&gt;
Durant ce temps, nous avons décidé de réaliser 5 modules. Les modules sont les différents boutons de la manettes qui nous pourrons placer selon nos choix (boutons modulaires) pour notre prototype projet pour chaque type des boutons d'une manette PS4. Ces modules devrons être connectés à la console et interconnectés. Le tout sera lié à une application Android. Suite à quelques recherches et nos analyses, nous avons décidé les points suivants :&lt;br /&gt;
&lt;br /&gt;
- On commencera avec 2 modules et on les multipliera par la suite. &lt;br /&gt;
- Les premiers tests sont réalisés avec des boutons petits pour assurer leur caractéristique &amp;quot;modulaires&amp;quot;, par la suite nous pourrons ajouter des capuchons de taille plus importante (imprimante 3D ou achat)&lt;br /&gt;
- Conception modules : réalisation de carte avec un microcontrôleur atmega328 programmable pour chaque module (anticiper le module Bluetooth) &lt;br /&gt;
- Projet en 2 parties : prototype filaire et prototype Bluetooth&lt;br /&gt;
# Prototype filaire : connexions entre les modules et la RPi3 en SPI, connexion Rpi3-PS4 en Bluetooth, avec l'application en filaire à la RPi3&lt;br /&gt;
# Prototype Bluetooth: connexion Bluetooth entre modules-RPi3-PS4-apllication&lt;br /&gt;
&lt;br /&gt;
[[Fichier: structuremanette.png||center|400px|Concept manette modulable]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 1&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous nous sommes concentrés sur des recherches techniques afin de définir clairement les inter-connexions que nous devrons réaliser au cours de notre projet.&lt;br /&gt;
Ainsi, nous avons fait des recherches sur :&lt;br /&gt;
&lt;br /&gt;
*Connexion SPI entre les modules (Atmega328p) et la RPi3&lt;br /&gt;
&lt;br /&gt;
SPI: Serial périphérique interface BUS&lt;br /&gt;
&lt;br /&gt;
[[Fichier: yWGmW.png||right|200px|Concept manette modulable]]&lt;br /&gt;
Comme indiqué sur l'image ci-dessus, la Raspberry pi 3  peut communiquer en SPI avec ses broches CS0 (24), CS1 (26), SCLK (23), MISO (21), MOSI (19). Celles-ci permettent de communiquer avec un ou plusieurs esclaves (dans notre cas, des Atmega328p) en reliant directement les broches concernées de la RPi3 à celles des composants esclaves.&lt;br /&gt;
Chaque broche CS0 (24) ou CS1 (26) ne peut être connectée qu'à l'entrée SS (aussi appelé CS) d'un seul esclave.&lt;br /&gt;
C'est a dire que chaque CS est lié à un esclave afin de choisir avec lequel la communication est établie à un moment donné, et les MISO sont reliées entre elles en cascade, de même pour les SCLK et les MOSI. On peut noter que le maître impose la fréquence d’horloge et sélectionne l’esclave auquel les données sont envoyées.  8 MHz est le plus rapide supportable a 3,3V&lt;br /&gt;
&lt;br /&gt;
[[Fichier: fonctionnementSPI.png||right|200px|Connexion SPI multi-esclaves]]&lt;br /&gt;
&lt;br /&gt;
Voici un schéma du fonctionnement souhaité : &lt;br /&gt;
&lt;br /&gt;
Comme nous souhaitons avoir 5 modules environ il nous faudra rajouter un composant en plus afin d'augmenter les possibilités de sélection, par exemple des démultiplexeurs.&lt;br /&gt;
Dans un premier temps nous esterons avex 2 esclaves, puis on augmentera le nombre. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: schémaSPI.png||right|200px|connexion filaire principe]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Connexion Bluetooth PS4-RPi3&lt;br /&gt;
&lt;br /&gt;
Caracteristique pour la PS4:  Bluetooth®v4.0, Qualcomm Atheros AR3002 Buetooth LE: 2,4-2,5 GHz  &amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caracteristique de la connexion : &amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vitesse de transmission &amp;gt;&amp;gt; 3 Mbit/s   8N1  &amp;lt;/br&amp;gt;&lt;br /&gt;
Relevé tous les 1.3 millisecond (peut-être) &amp;lt;/br&amp;gt;&lt;br /&gt;
Chaque manette à une adresse unique BD_ADDR qui correspond à l’adresse MAC de la carte Réseau&amp;lt;/br&amp;gt;&lt;br /&gt;
Protocole de détection est le SDP basé sur une emission reception PDU &amp;lt;/br&amp;gt;&lt;br /&gt;
l’Attribut ID est representer en TLV Type Length Value &amp;lt;/br&amp;gt;&lt;br /&gt;
Communication HCI ACL Data Packet  &amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Rélisation des cartes électroniques&lt;br /&gt;
&lt;br /&gt;
matériel nécessaire pour un PCB : &amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#breadboard&lt;br /&gt;
#cables&lt;br /&gt;
#1 x 10k Ohm resistance&lt;br /&gt;
#Quartz 16Mhz clock crystal&lt;br /&gt;
#2 x 22 pF capaciteurs&lt;br /&gt;
#Atmega328P-PU&lt;br /&gt;
&lt;br /&gt;
Ressources: &lt;br /&gt;
[[https://www.arduino.cc/en/Main/Standalone]]&lt;br /&gt;
[[http://www.eprojectszone.com/atmega-328-pu-standalone/]]&lt;br /&gt;
[[https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 2&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=48963</id>
		<title>IMA4 2017/2018 P35</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=48963"/>
				<updated>2018-01-24T18:11:17Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Présentation générale: Manette modulable&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Description&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Tout le monde joue aux jeux vidéo cependant, les manettes ne sont pas adaptées aux personnes ayant un handicap pouvant toucher les bras ou les mains.&lt;br /&gt;
C’est le cas, de plusieurs patients dans les centres de soins et de rééducation.&lt;br /&gt;
&lt;br /&gt;
Pour ce projet IMA4, nous travaillerons avec le centre SSR (soin de suite et de réadaptation) Marc Sautelet de Villeneuve d’Ascq.&lt;br /&gt;
Un adolescent, patient de Marc Sautelet, est passionné par les jeux vidéo. En effet, ayant perdu la motricité d’une partie de son corps, il ne peut pas jouer à deux mains. Pour cela, il bloque la manette entre son épaule et son coude, usant de la mâchoire et des doigts pour contrôler les&lt;br /&gt;
joysticks et les boutons. Cet exercice peut s’avérer fatiguant et pénible.&lt;br /&gt;
&lt;br /&gt;
Ainsi, nous chercherons à concevoir une manette PS4 adaptée au handicap de l’adolescent. &lt;br /&gt;
Cette manette devra aussi être adaptée pour d’autres patients présentant également des handicaps moteurs. Ainsi nous prendrons pour cibles: tous les patients du centre voulant jouer; et non pas que les enfants et adolescents.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Membre du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Transley Gracias et Camille Saad&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Cible&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Patient présentant un handicap moteur&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Période du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
janvier 2018 - mai 2018&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Partenaire/Client&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Centre SSR Marc Sautelet à Villeneuve d'Ascq&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Objectifs&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ce projet a pour objectif de créer un prototype de manette qui puisse interagir avec la console PS4 et dont le paramétrage se fait à l’aide d’une application mobile et/ou web. Cette manette devra suivre les demandes du patient ainsi que des aides-soignantes du centre, dans la mesure du possible.&lt;br /&gt;
&lt;br /&gt;
Plus précisément, pour le premier prototype, nous mettrons en œuvre l'utilisation de quelques boutons spécifiques: &lt;br /&gt;
&lt;br /&gt;
* Un joystick (type L/R)&lt;br /&gt;
* Quelques boutons poussoirs (type Croix/Triangle/Carré/Rond/R1/L1/Start/...)&lt;br /&gt;
* Des boutons gâchettes progressives (type L2/R2).&lt;br /&gt;
&lt;br /&gt;
Le but serait donc dans un premier temps de rendre fonctionnel un bouton de chaque type, puis de les multiplier une fois cela fait. Tous ces boutons réunis constituent une manette fonctionnelle.Ainsi, la manette sera ajustable, c’est à dire qu’elle devra s’adapter aux différents handicaps moteurs possibles.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Analyse du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Positionnement par rapport à l'existant&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre prototype aura une présentation unique par rapport à l’existant. En effet, les concurrents et produits existants ciblent pour la majorité un seul handicap. Cela&lt;br /&gt;
engendre une solution fermée à beaucoup de patients. Notre projet propose une mobilité des mouvements et également un choix large dans la composition et le&lt;br /&gt;
design de notre manette.&lt;br /&gt;
Le patient n’est pas retreint à jouer à une seule main, à utiliser beaucoup de force...Il y a moins de technique dans la manipulation et on ne joue pas avec une&lt;br /&gt;
manette adaptée uniquement pour un droitier ou un gaucher. Cependant, cela nous limitera peut-être dans le choix possible des types de jeux. Tout comme les autres&lt;br /&gt;
manettes adapté, l’utilisateur nécessitera un peu d’entrainement.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du premier concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Jouer aux jeux vidéo à une main n’est pas une idée d’aujourd’hui. En 1990, Nintendo propose le Power Glove. Mais il tombe très rapidement aux oubliettes suite à des problèmes techniques.&lt;br /&gt;
&lt;br /&gt;
Un autre gant a fait son apparition quelques années plus tard. Celui-ci, plus technique, il faut office de manette Play Station: le Reality Quest Power Glove.Cette idée de manette-gant, permet de jouer à la PS avec une seule main, elle a était conçue et présentée pour les E3, un salon d’exposition de gaming.Le gant est conçu pour contrôler l’équivalent des 14 boutons et 2 joysticks à l’aide d’une seule main. La « manette » est fixée dans la pomme de la main. L’utilisateur contrôle les mouvements verticaux et horizontaux en pivotant le poignet, et utilisent les 4 boutons d’action principaux et L1/R1 avec les doigts. Les autres boutons sont accessibles par un seul bouton rond contrôlé par le pouce.&lt;br /&gt;
La manette est adaptée pour beaucoup de jeux vidéo, dont les plus simples sont les jeux de voitures et de combats (arcade).&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec ce gant&lt;br /&gt;
*Design obligatoirement droitier&lt;br /&gt;
*Les boutons de contrôle sont peu sensibles et peuvent nécessiter de la force&lt;br /&gt;
*Design compliqué et nécessitant beaucoup d’entrainement.&lt;br /&gt;
&lt;br /&gt;
;Lien : https://www.youtube.com/watch?v=qV0SxSJDCYg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du second concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ben Heck, de son vrai nom Benjamin J.Heckendorn, est un concepteur de mods de consoles (mods pour modification, soit « manettes modifiées ») et une star&lt;br /&gt;
du net grâce à ses vidéos tutoriels.Il propose alors énormément de produits adaptés ou dérivés en guise de manettes.&lt;br /&gt;
Parmi les mods qu’il a réalisé, il a modifié une manette de PS4 afin de la rendre accessible à une personne ne pouvant jouer qu’à une main. Pour cela, il a déplacé les boutons en respectant l’ergonomie de la main valide et modifie les connexions. Il peut lui arriver de rajouter des boutons pour en remplacer un autre. Il réalise également le même système avec la Xbox. Sur la photo ci-dessous, il a adapté la manette pour un droitier.&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec cette ma&lt;br /&gt;
*Design obligatoirement droitier ou gaucher, une modification = une manette= une personne&lt;br /&gt;
*Besoin obligé du pouce et de l’index, même si avantage : 3 doigts nécessaire.&lt;br /&gt;
&lt;br /&gt;
;Lien :: https://www.youtube.com/watch?v=LieHIscadjk&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Scénario d'usage du produit ou du concept envisagé&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
La technologie est ,aujourd’hui, omniprésente dans notre vie. Les consoles de jeux ont envahies les maisons avec plus de 7 personnes sur 10 jouant aux jeux vidéos sur consoles en France (chiffre de l’Express). 0,18% des français sont handicapés cela représente 12 millions de français. Dans ce chiffre, 13,4% des personnes ont un handicap moteur. En 2017, les grands groupes comme Sony ou Microsoft avec respectivement PlayStation et Xbox ne permettent pas à tout le monde de jouer avec une manette. Les manettes sont prévues pour des personnes ayant leurs membres valides, plus précisément les mains et les bras.&lt;br /&gt;
&lt;br /&gt;
Après un accident de voiture, un jeune garçon a perdu la motricité d’un côté du corps. Passionné de jeux vidéo, il se retrouve avec des difficultés à jouer sur sa console PS4. Ingénieux, il utilise la manette en la coinçant entre son épaule et le creux du cou. Usant de la mâchoire et de sa main valide pour contrôler les joysticks et les boutons. L'exercice étant inconfortable et fatiguant il eu l’idée de proposer à des futurs ingénieurs de lui proposer une manette adaptée à son handicap. &lt;br /&gt;
&lt;br /&gt;
Les deux pré-ingénieurs ,avec leur tuteur, ont une idée révolutionnaire : La manette modulable ! Elle permettrait au jeune garçon, ainsi que d’autres joueurs, de pouvoir continuer de s’amuser ou même de commencer à jouer au jeux sur console. &lt;br /&gt;
Cette manette aidera fortement dans les centre de rééducation pour faire passer le temps et donner du plaisir à des personnes qui ne peuvent plus s’amuser avec leur console traditionnelle. Elle pourra aussi ouvrir de nouvelles possibilités pour certaines personnes qui n’auraient jamais essayé jusqu'à présent.   &lt;br /&gt;
Comme son nom l'indique, elle sera modulaire et s'adaptera à différents handicaps. Accompagnée de son application d’initialisation, elle sera accessible aussi bien aux enfants, patients, parents et aides soignantes.&lt;br /&gt;
&lt;br /&gt;
Quelques mois plus tard...Le jeune patient fan de Need For Speed, peut maintenant piloter sa voiture comme un vrai professionnel grâce à l'un des joysticks qu'il utilisera avec sa main valide et il pourra accélérer à des vitesses folles à l'aide de boutons poussoirs au niveau de son pied valide et gagner la partie. Son ami venu lui rendre visite, pourra en lieu et place des aides soignantes configurer à l'aide de la tablette (portable) la manette du patient. &lt;br /&gt;
Si le patient change de jeu pour Tekken et que la configuration des modules ne lui convient plus, il peut interchanger les éléments de la manette selon son envie et son confort. Ainsi il peut faire sauter son personnage, il utilisera un module bouton supplémentaire, qu'il actionnera avec le poing.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Fonctionnement&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier: beteacorne.jpg||middle|600px|Bete a corne manette]] &lt;br /&gt;
&lt;br /&gt;
Suite à une analyse fonctionnelle et à la formulation de notre projet, nous avons pu définir le fonctionnement de notre système. Notre produit, la manette, doit être accessible d’après nos objectifs à différents types de handicaps moteurs. Ainsi, l’idéal serait de concevoir une manette modulable afin qu’elle puisse s’adapter à toutes les situations. Ce n’est plus au patient de s’adapter à la manette mais à la manette de s’adapter au patient.&lt;br /&gt;
Cela signifie que la manette sera, dans la limite du possible et de la sensibilité du corps du patient, composée de plusieurs parties dites « modules » comportant un ou plusieurs actionneurs (boutons, joysticks, gâchettes...). Ces modules seront déplaçables afin d’être utilisé avec différents membres du corps : un doigt, une main,&lt;br /&gt;
une jambe ou même un pied. Il suffira de les connectés entre eux suivant l’organisation souhaitée, le Gameplay du jeu ou en fonction du handicap. Le tout sera relié à une application.&lt;br /&gt;
L’application sera alors mise en place pour connecter les différentes parties du point de vue software pour prérégler la manette en fonction du patient. Il pourra alors choisir les boutons en fonction du jeu, de ses mouvements mais aussi choisir la sensibilité.&lt;br /&gt;
&lt;br /&gt;
L’application et les modules devront être intuitifs et faciles d’utilisation. De cette manière des utilisateurs non avertis dans le domaine informatique ou jeunes pourront eux-mêmes gérer les connexions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Réponse à la question difficile&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
'''Question : Comment interconnecter les différents modules de la manette ?'''&lt;br /&gt;
&lt;br /&gt;
Il nous faut pour ce projet interconnecter les modules modélisant la manette qui seront connectés à la consoles PS4 via une Raspberry Pi 3.&lt;br /&gt;
Le choix de la Raspberry Pi 3 nous permet d'utiliser son module Bluetooth pour communiquer avec la PS4, ce choix est plus adaptée au projet que du filaire.&lt;br /&gt;
Concernant l'interconnexion des modules, nous travaillerons en deux étapes &amp;quot;preuves concept&amp;quot; : filaire et sans fils (Bluetooth).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;''Objectif 1 : Preuve concept filaire''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans cette première partie de projet, nous souhaitons avoir une 1ère preuve de prototype rapidement. Nous nous concentrerons alors sur la communication entre la RPi3 et la PS4 ainsi que sur la conception des modules. Pour les modules, nous réaliserons des cartes électronique pour chaque module avec un micro-contrôleur. La communication filaire nous permettra d'interconnecter les modules à la RPi3 avec un bus SPI.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;''Objectif 2: preuve concept sans fils''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une deuxième étape du projet est la réalisation de la solution idéale sans fils. Celle-ci pourra commencer à être développée petit à petit en parallèle avec l'objectif 1. Le but ici, est d'interconnecter les modules en Bluetooth. Nous avons choisi le Bluetooth pour garder une connexion commune sur toute la chaîne. &lt;br /&gt;
Nous rajouterons alors un module bluetooth à chaque module de la manette. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;''Objectif 3: possibilité d'adapter les boutons (capuchon en 3D)''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Préparation du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Cahier des charges&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Choix techniques : matériel et logiciel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
'''Liste de matériel :'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;3x Push buttons :&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
- O X Y Carré R3 L3 &amp;lt;br&amp;gt;&lt;br /&gt;
- Guide PS &amp;lt;br&amp;gt;&lt;br /&gt;
- start/back &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 0,45€/unité TTC [https://www.gotronic.fr/art-bp-miniature-krs1273-16976.htm]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;1x Thumbsticks originaux:&amp;lt;/u&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
Joystick analogique 4 directions --&amp;gt; 4,25€/unité TTC [https://www.gotronic.fr/art-joystick-analogique-4-directions-19063.htm]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;1x buttons trigger L1 L2:&amp;lt;/u&amp;gt; --&amp;gt; 1,49€/unité TTC [http://fr.farnell.com/mcm/32-37210/replacement-l1l2-trigger-buttons/dp/2801418] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;1x Led RGB neopixel&amp;lt;/u&amp;gt; [https://www.adafruit.com/product/1734]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;1x Raspberry Pi 3 &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; ~36,23€/unité TTC [https://fr.rs-online.com/web/p/processor-microcontroller-development-kits/8968660/?src=raspberrypi]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;3x Arduino UNO &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;6x Alimentation 5V &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
par exemple, 12 piles de type CR2016 3V rechargeables ou 24 piles AAA 1,5 V rechargeables  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;5 modules Bluetooth nrf de Nordic : nRF52810-QFAA-R &amp;lt;/u&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 3,17€/unité + frais expédition  [https://www.mouser.fr/productdetail/nordic-semiconductor/nrf52810-qfaa-r?qs=sGAEpiMZZMve4%2FbfQkoj%252bG%2FosjLoe2oghFQwQllMrQ4%3D]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;5 2x Lignes broches mâles et femelles&amp;lt;/u&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Logiciels:'''&lt;br /&gt;
&lt;br /&gt;
- IDE arduino&lt;br /&gt;
- Altium&lt;br /&gt;
- FreeCAD ou Inkscape&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Liste des tâches à effectuer&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 1 : Gestion du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Définition des cahiers des charges fonctionnel et technique, choix d'orientation...&lt;br /&gt;
* Recherche techniques sur les différentes connexions possibles entre les modules, la RPi 3 et la console PS4&lt;br /&gt;
#Recherche connexion SPI entre les modules et la RPi3&lt;br /&gt;
# Recherche connexion bluetooth entre la RPi3 et la PS4&lt;br /&gt;
# Recherche connexion bluetooth pour les modules&lt;br /&gt;
# Recherche carte avec montage Atmega328P-PU et anticipation module bluetooth&lt;br /&gt;
* Détermination du matériel nécessaire&lt;br /&gt;
* Réflexion sur l'application&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Etape 2: Réalisation du projet'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Partie 1: Preuve concept manette en filaire'''&lt;br /&gt;
&lt;br /&gt;
* Conception de cartes électroniques pour 2 modules (/!\ prévoir modules bluetooth)&lt;br /&gt;
* Réalisation connexion SPI avec 2 modules : programmation des Atmega328p en liaison série. &lt;br /&gt;
* Si tests concluant, ajouter des modules jusqu'à en avoir 5 (1 pour chaque type de boutons) &lt;br /&gt;
* Connexion bluetooth entre la PS4 et la RPi3&lt;br /&gt;
* Réalisation du support des modules avec fixations possibles (imprimante 3D)&lt;br /&gt;
&lt;br /&gt;
'''Partie 2: Preuve concept manette en bluetooth'''&lt;br /&gt;
&lt;br /&gt;
* Ajout des modules bluetooth aux cartes électroniques&lt;br /&gt;
* Connexion bluetooth entre les modules&lt;br /&gt;
&lt;br /&gt;
'''Partie 3: Application Android : paramétrage de la manette'''&lt;br /&gt;
&lt;br /&gt;
* Créer une application sur tablette ou smartphone (Android) afin de configurer la manette aux besoins (inter-connexion des modules et console)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Calendrier prévisionnel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Date'''&amp;lt;/u&amp;gt;&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
&amp;lt;u&amp;gt;'''Tache à réaliser''' &amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
17/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
'''Durant la séance:''' &lt;br /&gt;
Faire des recherches sur les différentes interconnexions du système : Bluetooth, RPi-Atmega328 (SPI), RPi-PS4&lt;br /&gt;
Peaufiner le wiki&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
24/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
'''Pour la séance : '''&lt;br /&gt;
Continuer liste des taches, cahier des charges, recherches&lt;br /&gt;
'''Durant la séance : '''&lt;br /&gt;
Continuer les recherches + montage modules boutons si possible + réflexion fixation support des modules&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
31/01/18&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Réalisation du Projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Feuille d'heures&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 10&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Cherches techniques &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Rédaction du wiki et rapport de projet&lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Total Semaine&lt;br /&gt;
| 10&lt;br /&gt;
| 6&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Prologue&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Avant la réalisation et conception d'un projet, il est important d'analyser celui-ci. Nous avons allons consacré le prologue à l'analyse fonctionnelle de la manette. Nous avons également eu une réflexion sur l'analyse technique, cela nous a permis de réaliser une liste de matériel. Il est important de définir les objectifs ainsi que les besoins afin de ne rien oublier. (Voir ci-dessus Analyse projet) &lt;br /&gt;
Nous avons également organisé notre travail, pour le partage de documents de recherches et la rédaction de compte-rendu final nous avons réalisé un google drive. Par la suite, nous créerons un projet Git. &lt;br /&gt;
&lt;br /&gt;
Durant ce temps, nous avons décidé de réaliser 5 modules. Les modules sont les différents boutons de la manettes qui nous pourrons placer selon nos choix (boutons modulaires) pour notre prototype projet pour chaque type des boutons d'une manette PS4. Ces modules devrons être connectés à la console et interconnectés. Le tout sera lié à une application Android. Suite à quelques recherches et nos analyses, nous avons décidé les points suivants :&lt;br /&gt;
&lt;br /&gt;
- On commencera avec 2 modules et on les multipliera par la suite. &lt;br /&gt;
- Les premiers tests sont réalisés avec des boutons petits pour assurer leur caractéristique &amp;quot;modulaires&amp;quot;, par la suite nous pourrons ajouter des capuchons de taille plus importante (imprimante 3D ou achat)&lt;br /&gt;
- Conception modules : réalisation de carte avec un microcontrôleur atmega328 programmable pour chaque module (anticiper le module Bluetooth) &lt;br /&gt;
- Projet en 2 parties : prototype filaire et prototype Bluetooth&lt;br /&gt;
# Prototype filaire : connexions entre les modules et la RPi3 en SPI, connexion Rpi3-PS4 en Bluetooth, avec l'application en filaire à la RPi3&lt;br /&gt;
# Prototype Bluetooth: connexion Bluetooth entre modules-RPi3-PS4-apllication&lt;br /&gt;
&lt;br /&gt;
[[Fichier: structuremanette.png||center|400px|Concept manette modulable]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 1&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Durant la séance, nous nous sommes concentrés sur des recherches techniques afin de définir clairement les inter-connexions que nous devrons réaliser au cours de notre projet.&lt;br /&gt;
Ainsi, nous avons fait des recherches sur :&lt;br /&gt;
&lt;br /&gt;
#Connexion SPI entre les modules (Atmega328p) et la RPi3&lt;br /&gt;
&lt;br /&gt;
SPI: Serial périphérique interface BUS&lt;br /&gt;
&lt;br /&gt;
[[Fichier: yWGmW.png||right|200px|Concept manette modulable]]&lt;br /&gt;
Comme indiqué sur l'image ci-dessus, la Raspberry pi 3  peut communiquer en SPI avec ses broches CS0 (24), CS1 (26), SCLK (23), MISO (21), MOSI (19). Celles-ci permettent de communiquer avec un ou plusieurs esclaves (dans notre cas, des Atmega328p) en reliant directement les broches concernées de la RPi3 à celles des composants esclaves.&lt;br /&gt;
Chaque broche CS0 (24) ou CS1 (26) ne peut être connectée qu'à l'entrée SS (aussi appelé CS) d'un seul esclave.&lt;br /&gt;
C'est a dire que chaque CS est lié à un esclave afin de choisir avec lequel la communication est établie à un moment donné, et les MISO sont reliées entre elles en cascade, de même pour les SCLK et les MOSI. On peut noter que le maître impose la fréquence d’horloge et sélectionne l’esclave auquel les données sont envoyées.  8 MHz est le plus rapide supportable a 3,3V&lt;br /&gt;
&lt;br /&gt;
[[Fichier: fonctionnementSPI.png||right|200px|Connexion SPI multi-esclaves]]&lt;br /&gt;
&lt;br /&gt;
Voici un schéma du fonctionnement souhaité : &lt;br /&gt;
&lt;br /&gt;
Comme nous souhaitons avoir 5 modules environ il nous faudra rajouter un composant en plus afin d'augmenter les possibilités de sélection, par exemple des démultiplexeurs.&lt;br /&gt;
Dans un premier temps nous esterons avex 2 esclaves, puis on augmentera le nombre. &lt;br /&gt;
&lt;br /&gt;
[[Fichier: schémaSPI.png||right|200px|connexion filaire principe]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Connexion Bluetooth PS4-RPi3&lt;br /&gt;
&lt;br /&gt;
Caracteristique pour la PS4:  Bluetooth®v4.0, Qualcomm Atheros AR3002 Buetooth LE: 2,4-2,5 GHz&lt;br /&gt;
&lt;br /&gt;
Caracteristique de la connexion :&lt;br /&gt;
&lt;br /&gt;
Vitesse de transmission &amp;gt;&amp;gt; 3 Mbit/s   8N1&lt;br /&gt;
Relevé tous les 1.3 millisecond (peut-être)&lt;br /&gt;
Chaque manette à une adresse unique BD_ADDR qui correspond à l’adresse MAC de la carte Réseau&lt;br /&gt;
Protocole de détection est le SDP basé sur une emission reception PDU&lt;br /&gt;
l’Attribut ID est representer en TLV Type Length Value&lt;br /&gt;
Communication HCI ACL Data Packet &lt;br /&gt;
&lt;br /&gt;
#Rélisation des cartes électroniques&lt;br /&gt;
&lt;br /&gt;
matériel nécessaire pour un PCB :&lt;br /&gt;
&lt;br /&gt;
- breadboard&lt;br /&gt;
- cables&lt;br /&gt;
- 1 x 10k Ohm resistance&lt;br /&gt;
- Quartz 16Mhz clock crystal&lt;br /&gt;
- 2 x 22 pF capaciteurs&lt;br /&gt;
- Atmega328P-PU&lt;br /&gt;
&lt;br /&gt;
Ressources: &lt;br /&gt;
[[https://www.arduino.cc/en/Main/Standalone]]&lt;br /&gt;
[[http://www.eprojectszone.com/atmega-328-pu-standalone/]]&lt;br /&gt;
[[https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 2&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=47814</id>
		<title>IMA4 2017/2018 P35</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=47814"/>
				<updated>2018-01-15T15:23:07Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : /* Réponse à la question difficile */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Présentation générale: Manette modulable&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Description&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Tout le monde joue aux jeux vidéo cependant, les manettes ne sont pas adaptées aux personnes ayant un handicap pouvant toucher les bras ou les mains.&lt;br /&gt;
C’est le cas, de plusieurs patients dans les centres de soins et de rééducation.&lt;br /&gt;
&lt;br /&gt;
Pour ce projet IMA4, nous travaillerons avec le centre SSR (soin de suite et de réadaptation) Marc Sautelet de Villeneuve d’Ascq.&lt;br /&gt;
Un adolescent, patient de Marc Sautelet, est passionné par les jeux vidéo. En effet, ayant perdu la motricité d’une partie de son corps, il ne peut pas jouer à deux mains. Pour cela, il bloque la manette entre son épaule et son coude, usant de la mâchoire et des doigts pour contrôler les&lt;br /&gt;
joysticks et les boutons. Cet exercice peut s’avérer fatiguant et pénible.&lt;br /&gt;
&lt;br /&gt;
Ainsi, nous chercherons à concevoir une manette PS4 adaptée au handicap de l’adolescent. &lt;br /&gt;
Cette manette devra aussi être adaptée pour d’autres patients présentant également des handicaps moteurs. Ainsi nous prendrons pour cibles: tous les patients du centre voulant jouer; et non pas que les enfants et adolescents.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Membre du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Transley Gracias et Camille Saad&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Cible&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Patient présentant un handicap moteur&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Période du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
janvier 2018 - mai 2018&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Partenaire/Client&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Centre SSR Marc Sautelet à Villeneuve d'Ascq&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Objectifs&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ce projet a pour objectif de créer un prototype de manette qui puisse interagir avec la console PS4 et dont le paramétrage se fait à l’aide d’une application mobile et/ou web. Cette manette devra suivre les demandes du patient ainsi que des aides-soignantes du centre, dans la mesure du possible.&lt;br /&gt;
&lt;br /&gt;
Plus précisément, pour le premier prototype, nous mettrons en œuvre l'utilisation de quelques boutons spécifiques: &lt;br /&gt;
&lt;br /&gt;
* Un joystick (type L/R)&lt;br /&gt;
* Quelques boutons poussoirs (type Croix/Triangle/Carré/Rond/R1/L1/Start/...)&lt;br /&gt;
* Des boutons gâchettes progressives (type L2/R2).&lt;br /&gt;
&lt;br /&gt;
Le but serait donc dans un premier temps de rendre fonctionnel un bouton de chaque type, puis de les multiplier une fois cela fait. Tous ces boutons réunis constituent une manette fonctionnelle.Ainsi, la manette sera ajustable, c’est à dire qu’elle devra s’adapter aux différents handicaps moteurs possibles.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Analyse du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Positionnement par rapport à l'existant&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre prototype aura une présentation unique par rapport à l’existant. En effet, les concurrents et produits existants ciblent pour la majorité un seul handicap. Cela&lt;br /&gt;
engendre une solution fermée à beaucoup de patients. Notre projet propose une mobilité des mouvements et également un choix large dans la composition et le&lt;br /&gt;
design de notre manette.&lt;br /&gt;
Le patient n’est pas retreint à jouer à une seule main, à utiliser beaucoup de force...Il y a moins de technique dans la manipulation et on ne joue pas avec une&lt;br /&gt;
manette adaptée uniquement pour un droitier ou un gaucher. Cependant, cela nous limitera peut-être dans le choix possible des types de jeux. Tout comme les autres&lt;br /&gt;
manettes adapté, l’utilisateur nécessitera un peu d’entrainement.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du premier concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Jouer aux jeux vidéo à une main n’est pas une idée d’aujourd’hui. En 1990, Nintendo propose le Power Glove. Mais il tombe très rapidement aux oubliettes suite à des problèmes techniques.&lt;br /&gt;
&lt;br /&gt;
Un autre gant a fait son apparition quelques années plus tard. Celui-ci, plus technique, il faut office de manette Play Station: le Reality Quest Power Glove.Cette idée de manette-gant, permet de jouer à la PS avec une seule main, elle a était conçue et présentée pour les E3, un salon d’exposition de gaming.Le gant est conçu pour contrôler l’équivalent des 14 boutons et 2 joysticks à l’aide d’une seule main. La « manette » est fixée dans la pomme de la main. L’utilisateur contrôle les mouvements verticaux et horizontaux en pivotant le poignet, et utilisent les 4 boutons d’action principaux et L1/R1 avec les doigts. Les autres boutons sont accessibles par un seul bouton rond contrôlé par le pouce.&lt;br /&gt;
La manette est adaptée pour beaucoup de jeux vidéo, dont les plus simples sont les jeux de voitures et de combats (arcade).&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec ce gant&lt;br /&gt;
*Design obligatoirement droitier&lt;br /&gt;
*Les boutons de contrôle sont peu sensibles et peuvent nécessiter de la force&lt;br /&gt;
*Design compliqué et nécessitant beaucoup d’entrainement.&lt;br /&gt;
&lt;br /&gt;
;Lien : https://www.youtube.com/watch?v=qV0SxSJDCYg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du second concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ben Heck, de son vrai nom Benjamin J.Heckendorn, est un concepteur de mods de consoles (mods pour modification, soit « manettes modifiées ») et une star&lt;br /&gt;
du net grâce à ses vidéos tutoriels.Il propose alors énormément de produits adaptés ou dérivés en guise de manettes.&lt;br /&gt;
Parmi les mods qu’il a réalisé, il a modifié une manette de PS4 afin de la rendre accessible à une personne ne pouvant jouer qu’à une main. Pour cela, il a déplacé les boutons en respectant l’ergonomie de la main valide et modifie les connexions. Il peut lui arriver de rajouter des boutons pour en remplacer un autre. Il réalise également le même système avec la Xbox. Sur la photo ci-dessous, il a adapté la manette pour un droitier.&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec cette ma&lt;br /&gt;
*Design obligatoirement droitier ou gaucher, une modification = une manette= une personne&lt;br /&gt;
*Besoin obligé du pouce et de l’index, même si avantage : 3 doigts nécessaire.&lt;br /&gt;
&lt;br /&gt;
;Lien :: https://www.youtube.com/watch?v=LieHIscadjk&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Scénario d'usage du produit ou du concept envisagé&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
La technologie est ,aujourd’hui, omniprésente dans notre vie. Les consoles de jeux ont envahies les maisons avec plus de 7 personnes sur 10 jouant aux jeux vidéos sur consoles en France (chiffre de l’Express). 0,18% des français sont handicapés cela représente 12 millions de français. Dans ce chiffre, 13,4% des personnes ont un handicap moteur. En 2017, les grands groupes comme Sony ou Microsoft avec respectivement PlayStation et Xbox ne permettent pas à tout le monde de jouer avec une manette. Les manettes sont prévues pour des personnes ayant leurs membres valides, plus précisément les mains et les bras.&lt;br /&gt;
&lt;br /&gt;
Après un accident de voiture, un jeune garçon a perdu la motricité d’un côté du corps. Passionné de jeux vidéo, il se retrouve avec des difficultés à jouer sur sa console PS4. Ingénieux, il utilise la manette en la coinçant entre son épaule et le creux du cou. Usant de la mâchoire et de sa main valide pour contrôler les joysticks et les boutons. L'exercice étant inconfortable et fatiguant il eu l’idée de proposer à des futurs ingénieurs de lui proposer une manette adaptée à son handicap. &lt;br /&gt;
&lt;br /&gt;
Les deux pré-ingénieurs ,avec leur tuteur, ont une idée révolutionnaire : La manette modulable ! Elle permettrait au jeune garçon, ainsi que d’autres joueurs, de pouvoir continuer de s’amuser ou même de commencer à jouer au jeux sur console. &lt;br /&gt;
Cette manette aidera fortement dans les centre de rééducation pour faire passer le temps et donner du plaisir à des personnes qui ne peuvent plus s’amuser avec leur console traditionnelle. Elle pourra aussi ouvrir de nouvelles possibilités pour certaines personnes qui n’auraient jamais essayé jusqu'à présent.   &lt;br /&gt;
Comme son nom l'indique, elle sera modulaire et s'adaptera à différents handicaps. Accompagnée de son application d’initialisation, elle sera accessible aussi bien aux enfants, patients, parents et aides soignantes.&lt;br /&gt;
&lt;br /&gt;
Quelques mois plus tard...Le jeune patient fan de Need For Speed, peut maintenant piloter sa voiture comme un vrai professionnel grâce à l'un des joysticks qu'il utilisera avec sa main valide et il pourra accélérer à des vitesses folles à l'aide de boutons poussoirs au niveau de son pied valide et gagner la partie. Son ami venu lui rendre visite, pourra en lieu et place des aides soignantes configurer à l'aide de la tablette (portable) la manette du patient. &lt;br /&gt;
Si le patient change de jeu pour Tekken et que la configuration des modules ne lui convient plus, il peut interchanger les éléments de la manette selon son envie et son confort. Ainsi il peut faire sauter son personnage, il utilisera un module bouton supplémentaire, qu'il actionnera avec le poing.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Fonctionnement&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier: beteacorne.jpg||middle|600px|Bete a corne manette]] &lt;br /&gt;
&lt;br /&gt;
Suite à une analyse fonctionnelle et à la formulation de notre projet, nous avons pu définir le fonctionnement de notre système. Notre produit, la manette, doit être accessible d’après nos objectifs à différents types de handicaps moteurs. Ainsi, l’idéal serait de concevoir une manette modulable afin qu’elle puisse s’adapter à toutes les situations. Ce n’est plus au patient de s’adapter à la manette mais à la manette de s’adapter au patient.&lt;br /&gt;
Cela signifie que la manette sera, dans la limite du possible et de la sensibilité du corps du patient, composée de plusieurs parties dites « modules » comportant un ou plusieurs actionneurs (boutons, joysticks, gâchettes...). Ces modules seront déplaçables afin d’être utilisé avec différents membres du corps : un doigt, une main,&lt;br /&gt;
une jambe ou même un pied. Il suffira de les connectés entre eux suivant l’organisation souhaitée, le Gameplay du jeu ou en fonction du handicap. Le tout sera relié à une application.&lt;br /&gt;
L’application sera alors mise en place pour connecter les différentes parties du point de vue software pour prérégler la manette en fonction du patient. Il pourra alors choisir les boutons en fonction du jeu, de ses mouvements mais aussi choisir la sensibilité.&lt;br /&gt;
&lt;br /&gt;
L’application et les modules devront être intuitifs et faciles d’utilisation. De cette manière des utilisateurs non avertis dans le domaine informatique ou jeunes pourront eux-mêmes gérer les connexions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Réponse à la question difficile&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
'''Question : Comment interconnecter les différents modules de la manette ?'''&lt;br /&gt;
&lt;br /&gt;
Il nous faut pour ce projet interconnecter les modules modélisant la manette qui seront connectés à la consoles PS4 via une Raspberry Pi 3.&lt;br /&gt;
Le choix de la Raspberry Pi 3 nous permet d'utiliser son module Bluetooth pour communiquer avec la PS4, ce choix est plus adaptée au projet que du filaire.&lt;br /&gt;
Concernant l'interconnexion des modules, nous travaillerons en deux étapes &amp;quot;preuves concept&amp;quot; : filaire et sans fils (Bluetooth).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;''Objectif 1 : Preuve concept filaire''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans cette première partie de projet, nous souhaitons avoir une 1ère preuve de prototype rapidement. Nous nous concentrerons alors sur la communication entre la RPi3 et la PS4 ainsi que sur la conception des modules. Pour les modules, nous réaliserons des cartes électronique pour chaque module avec un micro-contrôleur. La communication filaire nous permettra d'interconnecter les modules à la RPi3 avec un bus SPI.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;''Objectif 2: preuve concept sans fils''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une deuxième étape du projet est la réalisation de la solution idéale sans fils. Celle-ci pourra commencer à être développée petit à petit en parallèle avec l'objectif 1. Le but ici, est d'interconnecter les modules en Bluetooth. Nous avons choisi le Bluetooth pour garder une connexion commune sur toute la chaîne. &lt;br /&gt;
Nous rajouterons alors un module bluetooth à chaque module de la manette. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;''Objectif 3: possibilité d'adapter les boutons (capuchon en 3D)''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Préparation du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Cahier des charges&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Choix techniques : matériel et logiciel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
'''Liste de matériel :'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;3x Push buttons :&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
- O X Y Carré R3 L3 &amp;lt;br&amp;gt;&lt;br /&gt;
- Guide PS &amp;lt;br&amp;gt;&lt;br /&gt;
- start/back &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 0,45€/unité TTC [https://www.gotronic.fr/art-bp-miniature-krs1273-16976.htm]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;1x Thumbsticks originaux:&amp;lt;/u&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
Joystick analogique 4 directions --&amp;gt; 4,25€/unité TTC [https://www.gotronic.fr/art-joystick-analogique-4-directions-19063.htm]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;1x buttons trigger L1 L2:&amp;lt;/u&amp;gt; --&amp;gt; 1,49€/unité TTC [http://fr.farnell.com/mcm/32-37210/replacement-l1l2-trigger-buttons/dp/2801418] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;1x Thumbsticks miniature:&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Joystick miniature 4 directions --&amp;gt; 2,80€/unité TTC [https://www.gotronic.fr/art-joystick-miniature-2-axes-jst2765-25359.htm]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;1x Led RGB neopixel&amp;lt;/u&amp;gt; [https://www.adafruit.com/product/1734]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;1x Raspberry Pi 3 &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; ~36,23€/unité TTC [https://fr.rs-online.com/web/p/processor-microcontroller-development-kits/8968660/?src=raspberrypi]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;1x Arduino Méga &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Alimentation 5V &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
12 piles de type CR 3V &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;5x Microcontroleur Atmega328&amp;lt;/u&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 5,80€/unité TTC [https://www.gotronic.fr/art-circuit-atmega328-12423.htm]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Logiciels:'''&lt;br /&gt;
&lt;br /&gt;
- IDE arduino&lt;br /&gt;
- Altium&lt;br /&gt;
- FreeCAD ou Inkscape&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Liste des tâches à effectuer&amp;lt;/span&amp;gt;==&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Calendrier prévisionnel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;le 15/01&amp;quot;&amp;quot;&amp;quot; : A faire scénario, réponse à la question difficile , schémas structure du projet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Réalisation du Projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Feuille d'heures&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 0&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Prologue&amp;lt;/span&amp;gt;==&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 1&amp;lt;/span&amp;gt;==&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 2&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=47781</id>
		<title>IMA4 2017/2018 P35</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2017/2018_P35&amp;diff=47781"/>
				<updated>2018-01-15T14:38:01Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : /* Scénario d'usage du produit ou du concept envisagé */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Présentation générale: Manette modulable&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Description&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Tout le monde joue aux jeux vidéo cependant, les manettes ne sont pas adaptées aux personnes ayant un handicap pouvant toucher les bras ou les mains.&lt;br /&gt;
C’est le cas, de plusieurs patients dans les centres de soins et de rééducation.&lt;br /&gt;
&lt;br /&gt;
Pour ce projet IMA4, nous travaillerons avec le centre SSR (soin de suite et de réadaptation) Marc Sautelet de Villeneuve d’Ascq.&lt;br /&gt;
Un adolescent, patient de Marc Sautelet, est passionné par les jeux vidéo. En effet, ayant perdu la motricité d’une partie de son corps, il ne peut pas jouer à deux mains. Pour cela, il bloque la manette entre son épaule et son coude, usant de la mâchoire et des doigts pour contrôler les&lt;br /&gt;
joysticks et les boutons. Cet exercice peut s’avérer fatiguant et pénible.&lt;br /&gt;
&lt;br /&gt;
Ainsi, nous chercherons à concevoir une manette PS4 adaptée au handicap de l’adolescent. &lt;br /&gt;
Cette manette devra aussi être adaptée pour d’autres patients présentant également des handicaps moteurs. Ainsi nous prendrons pour cibles: tous les patients du centre voulant jouer; et non pas que les enfants et adolescents.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable centre&amp;quot; width=&amp;quot;80%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Membre du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Transley Gracias et Camille Saad&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Cible&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Patient présentant un handicap moteur&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Période du projet&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
janvier 2018 - mai 2018&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;23%&amp;quot; |&lt;br /&gt;
Partenaire/Client&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; |&lt;br /&gt;
Centre SSR Marc Sautelet à Villeneuve d'Ascq&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Objectifs&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ce projet a pour objectif de créer un prototype de manette qui puisse interagir avec la console PS4 et dont le paramétrage se fait à l’aide d’une application mobile et/ou web. Cette manette devra suivre les demandes du patient ainsi que des aides-soignantes du centre, dans la mesure du possible.&lt;br /&gt;
&lt;br /&gt;
Plus précisément, pour le premier prototype, nous mettrons en œuvre l'utilisation de quelques boutons spécifiques: &lt;br /&gt;
&lt;br /&gt;
* Un joystick (type L/R)&lt;br /&gt;
* Quelques boutons poussoirs (type Croix/Triangle/Carré/Rond/R1/L1/Start/...)&lt;br /&gt;
* Des boutons gâchettes progressives (type L2/R2).&lt;br /&gt;
&lt;br /&gt;
Le but serait donc dans un premier temps de rendre fonctionnel un bouton de chaque type, puis de les multiplier une fois cela fait. Tous ces boutons réunis constituent une manette fonctionnelle.Ainsi, la manette sera ajustable, c’est à dire qu’elle devra s’adapter aux différents handicaps moteurs possibles.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Analyse du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Positionnement par rapport à l'existant&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre prototype aura une présentation unique par rapport à l’existant. En effet, les concurrents et produits existants ciblent pour la majorité un seul handicap. Cela&lt;br /&gt;
engendre une solution fermée à beaucoup de patients. Notre projet propose une mobilité des mouvements et également un choix large dans la composition et le&lt;br /&gt;
design de notre manette.&lt;br /&gt;
Le patient n’est pas retreint à jouer à une seule main, à utiliser beaucoup de force...Il y a moins de technique dans la manipulation et on ne joue pas avec une&lt;br /&gt;
manette adaptée uniquement pour un droitier ou un gaucher. Cependant, cela nous limitera peut-être dans le choix possible des types de jeux. Tout comme les autres&lt;br /&gt;
manettes adapté, l’utilisateur nécessitera un peu d’entrainement.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du premier concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Jouer aux jeux vidéo à une main n’est pas une idée d’aujourd’hui. En 1990, Nintendo propose le Power Glove. Mais il tombe très rapidement aux oubliettes suite à des problèmes techniques.&lt;br /&gt;
&lt;br /&gt;
Un autre gant a fait son apparition quelques années plus tard. Celui-ci, plus technique, il faut office de manette Play Station: le Reality Quest Power Glove.Cette idée de manette-gant, permet de jouer à la PS avec une seule main, elle a était conçue et présentée pour les E3, un salon d’exposition de gaming.Le gant est conçu pour contrôler l’équivalent des 14 boutons et 2 joysticks à l’aide d’une seule main. La « manette » est fixée dans la pomme de la main. L’utilisateur contrôle les mouvements verticaux et horizontaux en pivotant le poignet, et utilisent les 4 boutons d’action principaux et L1/R1 avec les doigts. Les autres boutons sont accessibles par un seul bouton rond contrôlé par le pouce.&lt;br /&gt;
La manette est adaptée pour beaucoup de jeux vidéo, dont les plus simples sont les jeux de voitures et de combats (arcade).&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec ce gant&lt;br /&gt;
*Design obligatoirement droitier&lt;br /&gt;
*Les boutons de contrôle sont peu sensibles et peuvent nécessiter de la force&lt;br /&gt;
*Design compliqué et nécessitant beaucoup d’entrainement.&lt;br /&gt;
&lt;br /&gt;
;Lien : https://www.youtube.com/watch?v=qV0SxSJDCYg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Analyse du second concurrent&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Ben Heck, de son vrai nom Benjamin J.Heckendorn, est un concepteur de mods de consoles (mods pour modification, soit « manettes modifiées ») et une star&lt;br /&gt;
du net grâce à ses vidéos tutoriels.Il propose alors énormément de produits adaptés ou dérivés en guise de manettes.&lt;br /&gt;
Parmi les mods qu’il a réalisé, il a modifié une manette de PS4 afin de la rendre accessible à une personne ne pouvant jouer qu’à une main. Pour cela, il a déplacé les boutons en respectant l’ergonomie de la main valide et modifie les connexions. Il peut lui arriver de rajouter des boutons pour en remplacer un autre. Il réalise également le même système avec la Xbox. Sur la photo ci-dessous, il a adapté la manette pour un droitier.&lt;br /&gt;
&lt;br /&gt;
; Problèmes: &lt;br /&gt;
*Besoin de toute la motricité de la main, c’est-à-dire que si le patient à un doigt paralysé ou manquant, il ne pourra pas jouer avec cette ma&lt;br /&gt;
*Design obligatoirement droitier ou gaucher, une modification = une manette= une personne&lt;br /&gt;
*Besoin obligé du pouce et de l’index, même si avantage : 3 doigts nécessaire.&lt;br /&gt;
&lt;br /&gt;
;Lien :: https://www.youtube.com/watch?v=LieHIscadjk&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Scénario d'usage du produit ou du concept envisagé&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
La technologie est ,aujourd’hui, omniprésente dans notre vie. Les consoles de jeux ont envahies les maisons avec plus de 7 personnes sur 10 jouant aux jeux vidéos sur consoles en France (chiffre de l’Express). 0,18% des français sont handicapés cela représente 12 millions de français. Dans ce chiffre, 13,4% des personnes ont un handicap moteur. En 2017, les grands groupes comme Sony ou Microsoft avec respectivement PlayStation et Xbox ne permettent pas à tout le monde de jouer avec une manette. Les manettes sont prévues pour des personnes ayant leurs membres valides, plus précisément les mains et les bras.&lt;br /&gt;
&lt;br /&gt;
Après un accident de voiture, un jeune garçon a perdu la motricité d’un côté du corps. Passionné de jeux vidéo, il se retrouve avec des difficultés à jouer sur sa console PS4. Ingénieux, il utilise la manette en la coinçant entre son épaule et le creux du cou. Usant de la mâchoire et de sa main valide pour contrôler les joysticks et les boutons. L'exercice étant inconfortable et fatiguant il eu l’idée de proposer à des futurs ingénieurs de lui proposer une manette adaptée à son handicap. &lt;br /&gt;
&lt;br /&gt;
Les deux pré-ingénieurs ,avec leur tuteur, ont une idée révolutionnaire : La manette modulable ! Elle permettrait au jeune garçon, ainsi que d’autres joueurs, de pouvoir continuer de s’amuser ou même de commencer à jouer au jeux sur console. &lt;br /&gt;
Cette manette aidera fortement dans les centre de rééducation pour faire passer le temps et donner du plaisir à des personnes qui ne peuvent plus s’amuser avec leur console traditionnelle. Elle pourra aussi ouvrir de nouvelles possibilités pour certaines personnes qui n’auraient jamais essayé jusqu'à présent.   &lt;br /&gt;
Comme son nom l'indique, elle sera modulaire et s'adaptera à différents handicaps. Accompagnée de son application d’initialisation, elle sera accessible aussi bien aux enfants, patients, parents et aides soignantes.&lt;br /&gt;
&lt;br /&gt;
Quelques mois plus tard...Le jeune patient fan de Need For Speed, peut maintenant piloter sa voiture comme un vrai professionnel grâce à l'un des joysticks qu'il utilisera avec sa main valide et il pourra accélérer à des vitesses folles à l'aide de boutons poussoirs au niveau de son pied valide et gagner la partie. Son ami venu lui rendre visite, pourra en lieu et place des aides soignantes configurer à l'aide de la tablette (portable) la manette du patient. &lt;br /&gt;
Si le patient change de jeu pour Tekken et que la configuration des modules ne lui convient plus, il peut interchanger les éléments de la manette selon son envie et son confort. Ainsi il peut faire sauter son personnage, il utilisera un module bouton supplémentaire, qu'il actionnera avec le poing.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Fonctionnement&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier: beteacorne.jpg||middle|600px|Bete a corne manette]] &lt;br /&gt;
&lt;br /&gt;
Suite à une analyse fonctionnelle et à la formulation de notre projet, nous avons pu définir le fonctionnement de notre système. Notre produit, la manette, doit être accessible d’après nos objectifs à différents types de handicaps moteurs. Ainsi, l’idéal serait de concevoir une manette modulable afin qu’elle puisse s’adapter à toutes les situations. Ce n’est plus au patient de s’adapter à la manette mais à la manette de s’adapter au patient.&lt;br /&gt;
Cela signifie que la manette sera, dans la limite du possible et de la sensibilité du corps du patient, composée de plusieurs parties dites « modules » comportant un ou plusieurs actionneurs (boutons, joysticks, gâchettes...). Ces modules seront déplaçables afin d’être utilisé avec différents membres du corps : un doigt, une main,&lt;br /&gt;
une jambe ou même un pied. Il suffira de les connectés entre eux suivant l’organisation souhaitée, le Gameplay du jeu ou en fonction du handicap. Le tout sera relié à une application.&lt;br /&gt;
L’application sera alors mise en place pour connecter les différentes parties du point de vue software pour prérégler la manette en fonction du patient. Il pourra alors choisir les boutons en fonction du jeu, de ses mouvements mais aussi choisir la sensibilité.&lt;br /&gt;
&lt;br /&gt;
L’application et les modules devront être intuitifs et faciles d’utilisation. De cette manière des utilisateurs non avertis dans le domaine informatique ou jeunes pourront eux-mêmes gérer les connexions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Réponse à la question difficile&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Question : Comment interconnecter les différents modules de la manettes ?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: Red&amp;quot;&amp;gt;A modifier ! voir le 15/01 aprem &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
qu'est ce que je veux faire ? &lt;br /&gt;
--&amp;gt; expliquer la solution idéale, finale qu'on aimerait avoir&lt;br /&gt;
&lt;br /&gt;
--&amp;gt; on sait qu'on doit réaliser une preuve de concept rapidement, qu'on est aussi prix par le budget et le temps&lt;br /&gt;
--&amp;gt; voir ce qui est possible de faire comme PROTOTYPE ?&lt;br /&gt;
&lt;br /&gt;
objectif 1 : Preuve concept filaire&lt;br /&gt;
&lt;br /&gt;
(objectif pour seance 7)&lt;br /&gt;
Raspi en bluetooth et on s'emmerde pas avec les connexions de modules&lt;br /&gt;
peut-etre plus chiant mais rapide == 1ere preuve de prototype&lt;br /&gt;
&lt;br /&gt;
objectif 2: preuve concept sans fils (peut-être que ce ne sera pas fini)&lt;br /&gt;
(objectif développer ou commencer en parallèle avec le filaire)&lt;br /&gt;
sans fil , spi,bluetooth, chaque module--&amp;gt; cas idéal &lt;br /&gt;
&lt;br /&gt;
pour chaque module --&amp;gt; atmega + voir les autres composants necessaires + nordic nrf  module bluetooth&lt;br /&gt;
&lt;br /&gt;
objectif 3: adapter les boutons (champi en 3D)&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Préparation du projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Cahier des charges&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Choix techniques : matériel et logiciel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
'''Liste de matériel :'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;3x Push buttons :&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
- O X Y Carré R3 L3 &amp;lt;br&amp;gt;&lt;br /&gt;
- Guide PS &amp;lt;br&amp;gt;&lt;br /&gt;
- start/back &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 0,45€/unité TTC [https://www.gotronic.fr/art-bp-miniature-krs1273-16976.htm]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;1x Thumbsticks originaux:&amp;lt;/u&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
Joystick analogique 4 directions --&amp;gt; 4,25€/unité TTC [https://www.gotronic.fr/art-joystick-analogique-4-directions-19063.htm]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;1x buttons trigger L1 L2:&amp;lt;/u&amp;gt; --&amp;gt; 1,49€/unité TTC [http://fr.farnell.com/mcm/32-37210/replacement-l1l2-trigger-buttons/dp/2801418] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;1x Thumbsticks miniature:&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Joystick miniature 4 directions --&amp;gt; 2,80€/unité TTC [https://www.gotronic.fr/art-joystick-miniature-2-axes-jst2765-25359.htm]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;1x Led RGB neopixel&amp;lt;/u&amp;gt; [https://www.adafruit.com/product/1734]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;1x Raspberry Pi 3 &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; ~36,23€/unité TTC [https://fr.rs-online.com/web/p/processor-microcontroller-development-kits/8968660/?src=raspberrypi]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;1x Arduino Méga &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Alimentation 5V &amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
12 piles de type CR 3V &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;5x Microcontroleur Atmega328&amp;lt;/u&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt; 5,80€/unité TTC [https://www.gotronic.fr/art-circuit-atmega328-12423.htm]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Logiciels:'''&lt;br /&gt;
&lt;br /&gt;
- IDE arduino&lt;br /&gt;
- Altium&lt;br /&gt;
- FreeCAD ou Inkscape&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Liste des tâches à effectuer&amp;lt;/span&amp;gt;==&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Calendrier prévisionnel&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;le 15/01&amp;quot;&amp;quot;&amp;quot; : A faire scénario, réponse à la question difficile , schémas structure du projet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: RoyalBlue&amp;quot;&amp;gt;Réalisation du Projet&amp;lt;/span&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Feuille d'heures&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 0&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Prologue&amp;lt;/span&amp;gt;==&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 1&amp;lt;/span&amp;gt;==&lt;br /&gt;
==&amp;lt;span style=&amp;quot;color: Black&amp;quot;&amp;gt;Semaine 2&amp;lt;/span&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Projet_IMA3_P2,_2016/2017,_TD2&amp;diff=44195</id>
		<title>Projet IMA3 P2, 2016/2017, TD2</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Projet_IMA3_P2,_2016/2017,_TD2&amp;diff=44195"/>
				<updated>2017-06-18T13:02:19Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : /* Partie électronique */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Projet IMA3-SC 2016/2017 : Station Météo =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Description du système ==&lt;br /&gt;
&lt;br /&gt;
Notre projet est de mettre en place une station météorologique permettant de connaître :&lt;br /&gt;
* la température&lt;br /&gt;
* la pression&lt;br /&gt;
* l'humidité de l'air &lt;br /&gt;
* la vitesse du vent &lt;br /&gt;
* la luminosité extérieur&lt;br /&gt;
&lt;br /&gt;
Les données de cette station météo seront visible par toute personne se connectant à une application web.&lt;br /&gt;
&lt;br /&gt;
=== Cahier des charges ===&lt;br /&gt;
* La station permettra de prendre des mesures chaque heure de manière automatique, mais il devra être possible d'utiliser une interface web afin de prendre des mesures de manière manuelle.&lt;br /&gt;
* L'utilisateur pourra accéder à la base de donnée de la station à partir du site web et visualiser les variations des données (température, vitesse du vent, ...) en fonction du temps ou encore d'afficher toutes les données disponibles pour un jour donné.&lt;br /&gt;
* La page d'accueil du site doit permettre la visualisation du temps qu'il fait (clair, grisâtre, pluvieux) et de la température actuelle. L'accès aux données enregistrées se fera via un champ de recherche situé plus bas sur la page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le capteur température-humidité-pression sera relié à une carte arduino Uno. L'anémomètre ainsi que le capteur de luminosité seront reliés directement à un FPGA.&lt;br /&gt;
L'arduino sera elle aussi reliée au FPGA. En effet le capteurs mesurant la température, la pression et l'humidité de l'air communique par protocole SPI avec le microcontrôleur auquel il est relié. C'est pourquoi l'arduino, qui peut communiquer par SPI, fera office d'interface entre le capteur et le FPGA.&lt;br /&gt;
La connexion entre le FPGA et la Raspberry Pi se fera par liaison série filaire. Il sera peut-être possible de remplacer, par la suite, la liaison filaire par une liaison sans-fil à l'aide de modules Xbee.&lt;br /&gt;
&lt;br /&gt;
=== Le matériel ===&lt;br /&gt;
&lt;br /&gt;
* 1 Raspberry Pi &lt;br /&gt;
* 1 Arduino Uno&lt;br /&gt;
* 1 Shield Xbee (pour l'arduino)&lt;br /&gt;
* 1 adaptateur Xbee-USB (pour la raspberry)&lt;br /&gt;
* 1 XBee T et R&lt;br /&gt;
* 1 Capteur température, pression et humidité (BME280)&lt;br /&gt;
* 1 Anémomètre fabriqué avec  4 émetteurs/récepteurs ultrason (HC-SR04)&lt;br /&gt;
* 1 capteur de luminosité (GA1A1S202WP)&lt;br /&gt;
&lt;br /&gt;
== Git du projet ==&lt;br /&gt;
'''L'intégralité du code source du projet se trouve sur l'archive.'''&lt;br /&gt;
&lt;br /&gt;
[https://archives.plil.fr/aknockae/projet_SC_IMA3.git Archive du projet]&lt;br /&gt;
&lt;br /&gt;
L'archive du projet contient tous les codes sources. &lt;br /&gt;
Se trouvant dans le dossier /appWeb :&lt;br /&gt;
* index.html, page sur laquelle seront affichée les données.&lt;br /&gt;
/appWeb/js&lt;br /&gt;
* script.js, le script javascript qui gère la communication entre la page et le serveurs.&lt;br /&gt;
&lt;br /&gt;
/prog&lt;br /&gt;
* main.c, le script principale C qui gère la communication entre les capteurs et l'application Web.&lt;br /&gt;
&lt;br /&gt;
/code arduino&lt;br /&gt;
* serialArduino/, dossier contenant le programme arduino permettant de récupérer les données du capteur BME280, qui les envoient par liaison série à la carte Arduino. Pour l'instant le Xbee n'est pas pris en charge&lt;br /&gt;
* Plusieurs dossier contenant la librairie du capteur BME280, les test du port série, de la communication série par Xbee, etc...&lt;br /&gt;
&lt;br /&gt;
== Réalisation ==&lt;br /&gt;
&lt;br /&gt;
=== Partie informatique ===&lt;br /&gt;
&lt;br /&gt;
==== L'application web ====&lt;br /&gt;
&lt;br /&gt;
[[ Image:Capture_web.png | frame | center | 800 | aperçu de l'application web connectée au serveur websockets ]]&lt;br /&gt;
L'application web consiste en une page web codé en HTML. La partie dynamique de la page est codée en JavaScript avec l'aide de la bibliothèque Jquery.&lt;br /&gt;
&lt;br /&gt;
La page web contient :&amp;lt;br/&amp;gt;&lt;br /&gt;
- Un indicateur permettant d'informer l'utilisateur de l'état de la connexion au serveur websockets&amp;lt;br/&amp;gt;&lt;br /&gt;
- Un tableau présentant les relevé météo des capteurs&amp;lt;br/&amp;gt;&lt;br /&gt;
- Un bouton permettant de rafraîchir les données&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'indicateur permet de savoir si l'application est connectée au serveur Websockets, celui-ci se met en rouge si la connexion est absente ou si il y a un problème.&lt;br /&gt;
Le tableau affiche des valeurs entières. Ces valeurs n'ont donc qu'un cardinal restreint de 256 valeurs. Ceci constitue une limite principale de notre système, la précision.&lt;br /&gt;
&lt;br /&gt;
Le bouton qui permet de rafraîchir les données est appelle lors du clique, une fonction javascript chargé d'envoyer un signal &amp;quot;GET&amp;quot; au serveur websocket.&lt;br /&gt;
Le programme codé en C, envoie alors les données sous forme de 3 octets. Ces 3 octets représentent dans l'ordre, la pression, la température et l’humidité.&lt;br /&gt;
&lt;br /&gt;
Pour gérer les octets de donnée, nous avons utilisé un tableau typé javascript de type &amp;lt;em&amp;gt;Uint8ClampedArray&amp;lt;/em&amp;gt;. Toute donnée de ce tableau est de taille 8 bits et sa valeur est un entier non-signé.&lt;br /&gt;
&lt;br /&gt;
Cette structure est très pratique dans notre cas puisque elle permet à la fois de formater la requête &amp;quot;GET&amp;quot; pour l'envoi au serveur websocket mais aussi les donnée reçu du serveur websocket, pour la lecture. La communication entre le site et le serveur se fait par envoi et réception d'une suite d'octets.&lt;br /&gt;
&lt;br /&gt;
Dans le cas de l'émission, chaque lettre du mot &amp;quot;GET&amp;quot; sont converties en un octet. Ces octets sont mis bout à bout en utilisant un tableau typé. Il suffit juste d'envoyer le buffer de données du tableau en argument à la fonction send(), qui envoie les donnée au serveur.&lt;br /&gt;
&lt;br /&gt;
Dans le cas de la réception, le serveur envoie les octets les uns à la suite des autres. L'application web les récupères sous forme d'un buffer. On crée un autre tableau typé à partir de ce buffer, il &amp;quot;découpe&amp;quot; la chaîne d'octet ce qui permet de les différencier et facilite leurs traitement. Enfin on affiche ces octets dans les bonnes cases du tableau.&lt;br /&gt;
&lt;br /&gt;
Étant donné que les valeurs échangée ne vont que de 0 à 255, il a fallut effectuer quelques conversions.&lt;br /&gt;
La pression moyenne au niveau de la mer vaut généralement 1013 hPa. Les relevé météo n'ont jamais relevé de pression en dessous de 845 hPa ni au dessus de 1100 hPa. Partant de ce principe, la valeur affichée sur le site ne sortira jamais de cette intervalle de taille 255.&lt;br /&gt;
&lt;br /&gt;
Pour la température, l'intervalle va de -128 à +127 degré.&lt;br /&gt;
&lt;br /&gt;
La mesure de l'humidité ne pose aucun problème puisqu'elle s'effectue en pourcent.&lt;br /&gt;
&lt;br /&gt;
Ces conversions s'effectue avant l'affichage, par le script javascript.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Le côté serveur (Raspberry Pi) ====&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture_serveur_websockets.png|800px|frame|center|Aperçu de la réponse du serveur websocket quand il a reçu une requête de l'application web]]&lt;br /&gt;
&lt;br /&gt;
=== Partie electronique ===&lt;br /&gt;
&lt;br /&gt;
Le montage électrique final est en 2 partie, la partie Arduino et la partie FPGA.&lt;br /&gt;
Le montage Arduino est composé de la partie capteurs et la partie réception constitué d'un module Xbee fixé à un shield, relié à la Raspberry Pi.&lt;br /&gt;
Nous utilisons une liaison sans-fil Xbee pour récupérer les données des capteurs. Les Xbee sont des modules échangeant des données par communication série.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici la 1ere partie, la partie sensorielle :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Montage arduino.jpg|800px|frame|center|Partie émetteur du montage Arduino]]&lt;br /&gt;
&lt;br /&gt;
Voici la 2e partie, la réception surla Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Receveur_Xbee.jpg‎|800px|frame|center|Partie récepteur du montage Arduino]]&lt;br /&gt;
&lt;br /&gt;
La 2e partie, programmé par FPGA, est l'anémomètre. Ce circuit composé de 2 capteurs ultrasons, permet de détecter la vitesse du vent. Le principe est simple. Le vent est un déplacement de particules qui constituent l'air. Le son est le déplacement d'une onde mécanique dans l'air. Si les particules sont en mouvement pendant le déplacement de l'onde mécanique, alors la vitesse de cette onde est modifiée.&lt;br /&gt;
Le premier capteur émet une impulsion, au même moment, on déclenche un chronomètre. Ce chronomètre s'arrête quand le second capteur reçoit l'impulsion.&lt;br /&gt;
Il suffit de mesurer la vitesse de l'impulsion. En effectuant sa différence avec la vitesse d'une onde mécanique dans l'air quand les particules sont immobiles, on obtient la vitesse du vent.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Anemometre.jpg‎|800px|frame|center|Montage de l'anémomètre, ce montage permet de détecter la vitesse du vent dans une direction (au sens vectoriel)]]&lt;br /&gt;
&lt;br /&gt;
== Séance 1 ==&lt;br /&gt;
&lt;br /&gt;
=== Partie électronique ===&lt;br /&gt;
&lt;br /&gt;
Lors de cette première séance, nous avons pu récupérer et nous informer sur les capteurs BME280 et GA1A1S202WP. Après avoir regardé les documentations de ces deux capteurs, nous avons téléchargé la librairie permettant de faire fonctionner le capteur BME280 (https://github.com/adafruit/Adafruit_BME280_Library).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BME280.jpg|300px|frame|center|Capteur Adafruit BME280. Mesure la pression, la température et l'humiditée]] &lt;br /&gt;
&lt;br /&gt;
Une fois câblé comme il le fallait, nous avons donc d'abord testé le capteur BME280 et écrit un petit script Arduino qui affichait donc la température, la pression et l'humidité. Puis nous avons branché le capteur de luminosité (GA1A1S202WP) seul à l'arduino, et lancé un nouveau script qui affichait alors la luminosité en Lux de l'objet vers lequel on pointait le capteur. On a ainsi pu constaté une grande différence entre un ciel  nuageux, le soleil, et la luminosité de la pièce. Ces observation permettront à l'application web de déduire si le temps est clair ou nuageux uniquement grâce aux relevés du luxmètre.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Luxmetre.jpg‎|300px|frame|center|Capteur Adafruit GA1A12S202, mesure la lumière]]&lt;br /&gt;
&lt;br /&gt;
=== Partie informatique ===&lt;br /&gt;
&lt;br /&gt;
Nous avons effectué les test des capteurs BME280 et luxmètres sur une carte programmable Arduino Uno. Ces test nous ont permis de bien comprendre le fonctionnement de ces 2 capteurs.&lt;br /&gt;
Les données du capteur de luminosité se lisent très facilement sur un port analogique.&lt;br /&gt;
NOTE:Nous aurions pu le faire fonctionner par FPGA à l'aide d'un convertisseurs analogique numérique.&lt;br /&gt;
&lt;br /&gt;
Le capteur BME280, contrôlé par une puce, communique par protocole I2C ou SPI, nous devons donc utiliser une carte Arduino pour extraire les données du capteurs, du flot d'information envoyé par la puce. De plus, les données des capteurs sont envoyées à la carte arduino, uniquement si une demande de transfert a été envoyé à la puce du capteur. Le programme qui permet de lire les valeurs est donc complexe. Nous utilisons donc les bilbiothèques Adafruit_Sensor.h et Adafruit_BME280.h pour nous faciliter le travail.&lt;br /&gt;
&lt;br /&gt;
== Séance 2 ==&lt;br /&gt;
&lt;br /&gt;
=== Partie électronique ===&lt;br /&gt;
&lt;br /&gt;
Dans le but de faire notre anémomètre, nous avons commencé à faire un montage avec deux capteurs HC-SR04 : nous devons en placer un face à l'autre, le premier captant les ultrasons du second.&lt;br /&gt;
En effet, si on sait que v = d/t où v est une vitesse, d une distance et t un temps, le temps mis par les ultrasons pour aller d'un point A vers un point B en étant portés par un vent allant à une vitesse v est : tab = d/(v+c) où c est la vitesse du son. Dans l'autre sens, on obtient tba = d/(c-v) puisque le vent s'oppose à la propagation du son dans ce cas.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:AnémomètreVuArduino.jpg|left|500px|Câblage niveau Arduino]] &lt;br /&gt;
[[Fichier:AnémomètreVuUltrasson.jpg|center|500px|Câblage niveau capteur ultrason]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Partie informatique ===&lt;br /&gt;
&lt;br /&gt;
Initialisation et appairage des 2 modules Xbee. Ces modules servent à rendre sans-fil la connexion entre les capteurs et la Raspberry Pi sur laquelle se trouve le serveur websocket et l'application web. Ce choix est motivé par notre volonté d'avoir une station météo réaliste et portable. Ainsi des mesures peuvent être prise n'importe où.&lt;br /&gt;
Des difficultés de configuration ont rendu la réalisation de la tâche, très longue.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Préparation du serveur websocket. Nous utilisons un ordinateur Raspberry Pi comme &amp;quot;cerveau&amp;quot; de notre station météo. Elle se chargera de récupérer les données des capteurs et de les afficher sur l'application web. Nous avons modifié les différents fichiers de configuration. Nous avons notamment modifié les paramètres IP de la carte pour qu'elle soit accessible depuis les ordinateurs de Polytech. L'IP attribuée pour notre carte sera ''172.26.79.15''&lt;br /&gt;
&lt;br /&gt;
== Séance 3 ==&lt;br /&gt;
&lt;br /&gt;
=== Partie électronique ===&lt;br /&gt;
&lt;br /&gt;
Lors de cette séance, on est passé sur Altium pour remplacer l'Arduino est le code par du FPGA.&lt;br /&gt;
On a tout d'abord commencer par réduire la vitesse de l'horloge en la divisant successivement après avoir fait le TP de prise en main.&lt;br /&gt;
Pour cela, on est passé par différente méthode : via un compteur pour commencer, mais on était obligé de passer par l'ordinateur pour définir la valeur d’arrêt. Puis on a trouvé la méthode des blocs diviseur qui était beaucoup plus simple à mettre en place. Pour visualiser, on utilisait les DEL. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:PremiereVersion.png| 800px| center| Premiers essai ]]&lt;br /&gt;
&lt;br /&gt;
=== Partie informatique ===&lt;br /&gt;
&lt;br /&gt;
Création du squelette HTML du site web et du début du script JavaScript. Nous utilisons uniquement la bibliothèque Jquery pour faciliter la manipulation du code HTML à travers JavaScript. Dans le fichier ''/js/script.js'', nous gérons la communication par le protocole websocket du côté application web. Nous l'initialisons, initialisons la fonction d'envoi et l'algorithme à exécuter quand l'évènement de réception de données est déclenché.&lt;br /&gt;
Pour le moment nous ne savons pas comment exactement envoyer les donnée, quel objet transmettre à la méthode ''send()'', pour avoir un bon traitement des données par le serveur.&lt;br /&gt;
&lt;br /&gt;
== Travail complémentaire ==&lt;br /&gt;
&lt;br /&gt;
Cette étape représente une majeure partie de l'avancée du projet.&lt;br /&gt;
=== Partie électronique ===&lt;br /&gt;
&lt;br /&gt;
Il est plus ou moins facile de gérer les capteurs ultrason&lt;br /&gt;
Il suffit d'envoyer un signal de temps haut 10µs et temps bas supérieurs à 60ms sur la pâte &amp;quot;trig&amp;quot; du capteur et il émet une onde.&lt;br /&gt;
Lorsque l'onde est captée le capteur émet sur la pâte &amp;quot;echo&amp;quot; un signal dont le temps haut est proportionnel à la distance. (suite à un problème, on n'a pas pu faire une capture d'écran du schéma définitif)&lt;br /&gt;
&lt;br /&gt;
=== Partie informatique ===&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé du protocole de communication entre application web et capteurs. L'application web doit envoyer le message 'GET' par websocket au serveur. Le programme du serveur envoie la requête 'GET' à l’Arduino, qui envoie un buffer d'octets. Chaque octet représente la valeur d'un capteur. Dans l'ordre d'envoi : la pression, la température, l'humidité, la luminosité. Le programme de la Raspberry Pi a pour rôle de transférer ces données à l'application web, sous le même format et dans le même ordre. &lt;br /&gt;
Le script JavaScript décompose le buffer de donnée et affiche le résultat dans les bonnes cases du tableau.&lt;br /&gt;
&lt;br /&gt;
==== Programme serveur ====&lt;br /&gt;
&lt;br /&gt;
Le fichier '''main.c''' contient le code source permettant de faire fonctionner le serveur websocket et la communication série.&lt;br /&gt;
La partie série a été relativement facile à mettre en place puisqu'elle est basé sur l'utilisation des fichier en langage C.&lt;br /&gt;
En revanche la partie websocket a été la plus compliqué à mettre en place puisqu'il faut suivre un certain protocole pour récupérer les données reçu et envoyer des données.&lt;br /&gt;
&lt;br /&gt;
'''Partie websockets'''&lt;br /&gt;
&lt;br /&gt;
L'étape de réception websocket permet de récupérer le mot 'GET'.&lt;br /&gt;
Pour lire des données reçu il faut allouer de la mémoire de la taille du buffer et ajouter la taille des chaînes d'octets enveloppant le buffer. A partir de la on peut stocker dans cette case le contenu ayant pour adresse &amp;quot;'''in'''&amp;quot;, étant un argument de la fonction de réception. Dans notre cas, le buffer a pour taille &amp;quot;'''len'''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    requete=malloc(len+LWS_SEND_BUFFER_PRE_PADDING+LWS_SEND_BUFFER_POST_PADDING);&lt;br /&gt;
    memcpy(requete,in,len);&lt;br /&gt;
&lt;br /&gt;
L'étape d'envoi permet d'envoyer les données des capteurs vers l'application web.&lt;br /&gt;
Pour envoyer un message, il faut allouer une case mémoire de taille égale à la taille du buffer à envoyer, plus les octets enveloppant le message. &lt;br /&gt;
    unsigned char *buf = malloc(LWS_SEND_BUFFER_PRE_PADDING + length + LWS_SEND_BUFFER_POST_PADDING);&lt;br /&gt;
Nous avons choisi le type '''char''' (allant de -127 à 127) car il équivaut à une variable de taille 1 octet. Nous l'avons mis unsigned (allant de 0 à 255) uniquement pour pouvoir correctement lire les valeurs des données dans la console. Ceci nous a permis de vérifier que nous recevions les bonnes donnée par le port série. Il faut savoir que le formatage des données n'est utile que si nous voulons afficher les valeurs. Comme nous échangeons 4 octets, nous aurions pu stocker le message entier dans une unique variable de type &amp;quot;'''int'''&amp;quot; puisque ce type de donnée en C est précisément de taille 4 octets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut copier le message que l'on souhaite envoyer dans la case mémoire située à l'adresse de la mémoire alloué plus la taille des octets de début :&lt;br /&gt;
    memcpy (buf + LWS_SEND_BUFFER_PRE_PADDING, reponse, length );&lt;br /&gt;
&amp;quot;'''length'''&amp;quot; étant la taille du message sans les octets entourant ce message.&lt;br /&gt;
&lt;br /&gt;
Enfin, on envoie le message avec une fonction fournie par la librairie ''libwebsockets''. Le message se trouve alors à l'adresse buf + LWS_SEND_BUFFER_PRE_PADDING, définie précédemment   :&lt;br /&gt;
    libwebsocket_write(wsi, buf + LWS_SEND_BUFFER_PRE_PADDING, length, LWS_WRITE_BINARY); //LWS_WRITE_TEXT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Partie série'''&lt;br /&gt;
&lt;br /&gt;
La fonction '''getDataFromSensors()''' gère la communication série entre la Raspberry Pi et l'arduino/FPGA.&lt;br /&gt;
&lt;br /&gt;
Pour envoyer un octets en série, il faut juste faire un ''write()''. Dans notre cas nous en avons 3, correspondant au message 'GET'. '''sizeOfRequest''' vaut 3.&lt;br /&gt;
&lt;br /&gt;
    for(i = 0; i &amp;lt; sizeOfRequest;i++)&lt;br /&gt;
    {&lt;br /&gt;
        if(write(sd,(void*)&amp;amp;request[i],sizeof(char))!=1)&lt;br /&gt;
        { &lt;br /&gt;
            perror(&amp;quot;main.write&amp;quot;); exit(-1); &lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
Pour recevoir un octet c'est le même principe mais avec la fonction ''read()''. Nous en recevons 4. Ce morceau de code est placé juste après la partie qui envoie un message, car le circuit arduino/FPGA envoie directement les données dès qu'ils reçoivent 'GET' :&lt;br /&gt;
&lt;br /&gt;
    for(i=0;i &amp;lt; 4;i++)&lt;br /&gt;
    {//on lit ce que nous envoie l'arduino à la suite de la requete GET&lt;br /&gt;
        if(read(sd,(void*)&amp;amp;reponse[i],sizeof(unsigned char))!=1)&lt;br /&gt;
        { &lt;br /&gt;
            perror(&amp;quot;main.read&amp;quot;); exit(-1); &lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Projet_IMA3_P2,_2016/2017,_TD2&amp;diff=44193</id>
		<title>Projet IMA3 P2, 2016/2017, TD2</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Projet_IMA3_P2,_2016/2017,_TD2&amp;diff=44193"/>
				<updated>2017-06-18T12:46:23Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : /* Partie électronique */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Projet IMA3-SC 2016/2017 : Station Météo =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Description du système ==&lt;br /&gt;
&lt;br /&gt;
Notre projet est de mettre en place une station météorologique permettant de connaître :&lt;br /&gt;
* la température&lt;br /&gt;
* la pression&lt;br /&gt;
* l'humidité de l'air &lt;br /&gt;
* la vitesse du vent &lt;br /&gt;
* la luminosité extérieur&lt;br /&gt;
&lt;br /&gt;
Les données de cette station météo seront visible par toute personne se connectant à une application web.&lt;br /&gt;
&lt;br /&gt;
=== Cahier des charges ===&lt;br /&gt;
* La station permettra de prendre des mesures chaque heure de manière automatique, mais il devra être possible d'utiliser une interface web afin de prendre des mesures de manière manuelle.&lt;br /&gt;
* L'utilisateur pourra accéder à la base de donnée de la station à partir du site web et visualiser les variations des données (température, vitesse du vent, ...) en fonction du temps ou encore d'afficher toutes les données disponibles pour un jour donné.&lt;br /&gt;
* La page d'accueil du site doit permettre la visualisation du temps qu'il fait (clair, grisâtre, pluvieux) et de la température actuelle. L'accès aux données enregistrées se fera via un champ de recherche situé plus bas sur la page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le capteur température-humidité-pression sera relié à une carte arduino Uno. L'anémomètre ainsi que le capteur de luminosité seront reliés directement à un FPGA.&lt;br /&gt;
L'arduino sera elle aussi reliée au FPGA. En effet le capteurs mesurant la température, la pression et l'humidité de l'air communique par protocole SPI avec le microcontrôleur auquel il est relié. C'est pourquoi l'arduino, qui peut communiquer par SPI, fera office d'interface entre le capteur et le FPGA.&lt;br /&gt;
La connexion entre le FPGA et la Raspberry Pi se fera par liaison série filaire. Il sera peut-être possible de remplacer, par la suite, la liaison filaire par une liaison sans-fil à l'aide de modules Xbee.&lt;br /&gt;
&lt;br /&gt;
=== Le matériel ===&lt;br /&gt;
&lt;br /&gt;
* 1 Raspberry Pi &lt;br /&gt;
* 1 Arduino Uno&lt;br /&gt;
* 1 Shield Xbee (pour l'arduino)&lt;br /&gt;
* 1 adaptateur Xbee-USB (pour la raspberry)&lt;br /&gt;
* 1 XBee T et R&lt;br /&gt;
* 1 Capteur température, pression et humidité (BME280)&lt;br /&gt;
* 1 Anémomètre fabriqué avec  4 émetteurs/récepteurs ultrason (HC-SR04)&lt;br /&gt;
* 1 capteur de luminosité (GA1A1S202WP)&lt;br /&gt;
&lt;br /&gt;
== Git du projet ==&lt;br /&gt;
'''L'intégralité du code source du projet se trouve sur l'archive.'''&lt;br /&gt;
&lt;br /&gt;
[https://archives.plil.fr/aknockae/projet_SC_IMA3.git Archive du projet]&lt;br /&gt;
&lt;br /&gt;
L'archive du projet contient tous les codes sources. &lt;br /&gt;
Se trouvant dans le dossier /appWeb :&lt;br /&gt;
* index.html, page sur laquelle seront affichée les données.&lt;br /&gt;
/appWeb/js&lt;br /&gt;
* script.js, le script javascript qui gère la communication entre la page et le serveurs.&lt;br /&gt;
&lt;br /&gt;
/prog&lt;br /&gt;
* main.c, le script principale C qui gère la communication entre les capteurs et l'application Web.&lt;br /&gt;
&lt;br /&gt;
/code arduino&lt;br /&gt;
* serialArduino/, dossier contenant le programme arduino permettant de récupérer les données du capteur BME280, qui les envoient par liaison série à la carte Arduino. Pour l'instant le Xbee n'est pas pris en charge&lt;br /&gt;
* Plusieurs dossier contenant la librairie du capteur BME280, les test du port série, de la communication série par Xbee, etc...&lt;br /&gt;
&lt;br /&gt;
== Réalisation ==&lt;br /&gt;
&lt;br /&gt;
=== Partie informatique ===&lt;br /&gt;
&lt;br /&gt;
==== L'application web ====&lt;br /&gt;
&lt;br /&gt;
[[ Image:Capture_web.png | frame | center | 800 | aperçu de l'application web connectée au serveur websockets ]]&lt;br /&gt;
L'application web consiste en une page web codé en HTML. La partie dynamique de la page est codée en JavaScript avec l'aide de la bibliothèque Jquery.&lt;br /&gt;
&lt;br /&gt;
La page web contient :&amp;lt;br/&amp;gt;&lt;br /&gt;
- Un indicateur permettant d'informer l'utilisateur de l'état de la connexion au serveur websockets&amp;lt;br/&amp;gt;&lt;br /&gt;
- Un tableau présentant les relevé météo des capteurs&amp;lt;br/&amp;gt;&lt;br /&gt;
- Un bouton permettant de rafraîchir les données&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'indicateur permet de savoir si l'application est connectée au serveur Websockets, celui-ci se met en rouge si la connexion est absente ou si il y a un problème.&lt;br /&gt;
Le tableau affiche des valeurs entières. Ces valeurs n'ont donc qu'un cardinal restreint de 256 valeurs. Ceci constitue une limite principale de notre système, la précision.&lt;br /&gt;
&lt;br /&gt;
Le bouton qui permet de rafraîchir les données est appelle lors du clique, une fonction javascript chargé d'envoyer un signal &amp;quot;GET&amp;quot; au serveur websocket.&lt;br /&gt;
Le programme codé en C, envoie alors les données sous forme de 3 octets. Ces 3 octets représentent dans l'ordre, la pression, la température et l’humidité.&lt;br /&gt;
&lt;br /&gt;
Pour gérer les octets de donnée, nous avons utilisé un tableau typé javascript de type &amp;lt;em&amp;gt;Uint8ClampedArray&amp;lt;/em&amp;gt;. Toute donnée de ce tableau est de taille 8 bits et sa valeur est un entier non-signé.&lt;br /&gt;
&lt;br /&gt;
Cette structure est très pratique dans notre cas puisque elle permet à la fois de formater la requête &amp;quot;GET&amp;quot; pour l'envoi au serveur websocket mais aussi les donnée reçu du serveur websocket, pour la lecture. La communication entre le site et le serveur se fait par envoi et réception d'une suite d'octets.&lt;br /&gt;
&lt;br /&gt;
Dans le cas de l'émission, chaque lettre du mot &amp;quot;GET&amp;quot; sont converties en un octet. Ces octets sont mis bout à bout en utilisant un tableau typé. Il suffit juste d'envoyer le buffer de données du tableau en argument à la fonction send(), qui envoie les donnée au serveur.&lt;br /&gt;
&lt;br /&gt;
Dans le cas de la réception, le serveur envoie les octets les uns à la suite des autres. L'application web les récupères sous forme d'un buffer. On crée un autre tableau typé à partir de ce buffer, il &amp;quot;découpe&amp;quot; la chaîne d'octet ce qui permet de les différencier et facilite leurs traitement. Enfin on affiche ces octets dans les bonnes cases du tableau.&lt;br /&gt;
&lt;br /&gt;
Étant donné que les valeurs échangée ne vont que de 0 à 255, il a fallut effectuer quelques conversions.&lt;br /&gt;
La pression moyenne au niveau de la mer vaut généralement 1013 hPa. Les relevé météo n'ont jamais relevé de pression en dessous de 845 hPa ni au dessus de 1100 hPa. Partant de ce principe, la valeur affichée sur le site ne sortira jamais de cette intervalle de taille 255.&lt;br /&gt;
&lt;br /&gt;
Pour la température, l'intervalle va de -128 à +127 degré.&lt;br /&gt;
&lt;br /&gt;
La mesure de l'humidité ne pose aucun problème puisqu'elle s'effectue en pourcent.&lt;br /&gt;
&lt;br /&gt;
Ces conversions s'effectue avant l'affichage, par le script javascript.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Le côté serveur (Raspberry Pi) ====&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture_serveur_websockets.png|800px|frame|center|Aperçu de la réponse du serveur websocket quand il a reçu une requête de l'application web]]&lt;br /&gt;
&lt;br /&gt;
=== Partie electronique ===&lt;br /&gt;
&lt;br /&gt;
Le montage électrique final est en 2 partie, la partie Arduino et la partie FPGA.&lt;br /&gt;
Le montage Arduino est composé de la partie capteurs et la partie réception constitué d'un module Xbee fixé à un shield, relié à la Raspberry Pi.&lt;br /&gt;
Nous utilisons une liaison sans-fil Xbee pour récupérer les données des capteurs. Les Xbee sont des modules échangeant des données par communication série.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici la 1ere partie, la partie sensorielle :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Montage arduino.jpg|800px|frame|center|Partie émetteur du montage Arduino]]&lt;br /&gt;
&lt;br /&gt;
Voici la 2e partie, la réception surla Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Receveur_Xbee.jpg‎|800px|frame|center|Partie récepteur du montage Arduino]]&lt;br /&gt;
&lt;br /&gt;
La 2e partie, programmé par FPGA, est l'anémomètre. Ce circuit composé de 2 capteurs ultrasons, permet de détecter la vitesse du vent. Le principe est simple. Le vent est un déplacement de particules qui constituent l'air. Le son est le déplacement d'une onde mécanique dans l'air. Si les particules sont en mouvement pendant le déplacement de l'onde mécanique, alors la vitesse de cette onde est modifiée.&lt;br /&gt;
Le premier capteur émet une impulsion, au même moment, on déclenche un chronomètre. Ce chronomètre s'arrête quand le second capteur reçoit l'impulsion.&lt;br /&gt;
Il suffit de mesurer la vitesse de l'impulsion. En effectuant sa différence avec la vitesse d'une onde mécanique dans l'air quand les particules sont immobiles, on obtient la vitesse du vent.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Anemometre.jpg‎|800px|frame|center|Montage de l'anémomètre, ce montage permet de détecter la vitesse du vent dans une direction (au sens vectoriel)]]&lt;br /&gt;
&lt;br /&gt;
== Séance 1 ==&lt;br /&gt;
&lt;br /&gt;
=== Partie électronique ===&lt;br /&gt;
&lt;br /&gt;
Lors de cette première séance, nous avons pu récupérer et nous informer sur les capteurs BME280 et GA1A1S202WP. Après avoir regardé les documentations de ces deux capteurs, nous avons téléchargé la librairie permettant de faire fonctionner le capteur BME280 (https://github.com/adafruit/Adafruit_BME280_Library).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BME280.jpg|300px|frame|center|Capteur Adafruit BME280. Mesure la pression, la température et l'humiditée]] &lt;br /&gt;
&lt;br /&gt;
Une fois câblé comme il le fallait, nous avons donc d'abord testé le capteur BME280 et écrit un petit script Arduino qui affichait donc la température, la pression et l'humidité. Puis nous avons branché le capteur de luminosité (GA1A1S202WP) seul à l'arduino, et lancé un nouveau script qui affichait alors la luminosité en Lux de l'objet vers lequel on pointait le capteur. On a ainsi pu constaté une grande différence entre un ciel  nuageux, le soleil, et la luminosité de la pièce. Ces observation permettront à l'application web de déduire si le temps est clair ou nuageux uniquement grâce aux relevés du luxmètre.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Luxmetre.jpg‎|300px|frame|center|Capteur Adafruit GA1A12S202, mesure la lumière]]&lt;br /&gt;
&lt;br /&gt;
=== Partie informatique ===&lt;br /&gt;
&lt;br /&gt;
Nous avons effectué les test des capteurs BME280 et luxmètres sur une carte programmable Arduino Uno. Ces test nous ont permis de bien comprendre le fonctionnement de ces 2 capteurs.&lt;br /&gt;
Les données du capteur de luminosité se lisent très facilement sur un port analogique.&lt;br /&gt;
NOTE:Nous aurions pu le faire fonctionner par FPGA à l'aide d'un convertisseurs analogique numérique.&lt;br /&gt;
&lt;br /&gt;
Le capteur BME280, contrôlé par une puce, communique par protocole I2C ou SPI, nous devons donc utiliser une carte Arduino pour extraire les données du capteurs, du flot d'information envoyé par la puce. De plus, les données des capteurs sont envoyées à la carte arduino, uniquement si une demande de transfert a été envoyé à la puce du capteur. Le programme qui permet de lire les valeurs est donc complexe. Nous utilisons donc les bilbiothèques Adafruit_Sensor.h et Adafruit_BME280.h pour nous faciliter le travail.&lt;br /&gt;
&lt;br /&gt;
== Séance 2 ==&lt;br /&gt;
&lt;br /&gt;
=== Partie électronique ===&lt;br /&gt;
&lt;br /&gt;
Dans le but de faire notre anémomètre, nous avons commencé à faire un montage avec deux capteurs HC-SR04 : nous devons en placer un face à l'autre, le premier captant les ultrasons du second.&lt;br /&gt;
En effet, si on sait que v = d/t où v est une vitesse, d une distance et t un temps, le temps mis par les ultrasons pour aller d'un point A vers un point B en étant portés par un vent allant à une vitesse v est : tab = d/(v+c) où c est la vitesse du son. Dans l'autre sens, on obtient tba = d/(c-v) puisque le vent s'oppose à la propagation du son dans ce cas.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:AnémomètreVuArduino.jpg|left|500px|Câblage niveau Arduino]] &lt;br /&gt;
[[Fichier:AnémomètreVuUltrasson.jpg|center|500px|Câblage niveau capteur ultrason]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Partie informatique ===&lt;br /&gt;
&lt;br /&gt;
Initialisation et appairage des 2 modules Xbee. Ces modules servent à rendre sans-fil la connexion entre les capteurs et la Raspberry Pi sur laquelle se trouve le serveur websocket et l'application web. Ce choix est motivé par notre volonté d'avoir une station météo réaliste et portable. Ainsi des mesures peuvent être prise n'importe où.&lt;br /&gt;
Des difficultés de configuration ont rendu la réalisation de la tâche, très longue.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Préparation du serveur websocket. Nous utilisons un ordinateur Raspberry Pi comme &amp;quot;cerveau&amp;quot; de notre station météo. Elle se chargera de récupérer les données des capteurs et de les afficher sur l'application web. Nous avons modifié les différents fichiers de configuration. Nous avons notamment modifié les paramètres IP de la carte pour qu'elle soit accessible depuis les ordinateurs de Polytech. L'IP attribuée pour notre carte sera ''172.26.79.15''&lt;br /&gt;
&lt;br /&gt;
== Séance 3 ==&lt;br /&gt;
&lt;br /&gt;
=== Partie électronique ===&lt;br /&gt;
&lt;br /&gt;
Lors de cette séance, on est passé sur Altium pour remplacer l'Arduino est le code par du FPGA.&lt;br /&gt;
On a tout d'abord commencer par réduire la vitesse de l'horloge en la divisant successivement après avoir fait le TP de prise en main.&lt;br /&gt;
Pour cela, on est passé par différente méthode : via un compteur pour commencer, mais on était obligé de passer par l'ordinateur pour définir la valeur d’arrêt. Puis on a trouvé la méthode des blocs diviseur qui était beaucoup plus simple à mettre en place. Pour visualiser, on utilisait les DEL. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:PremiereVersion.png| 800px| center| Premiers essai ]]&lt;br /&gt;
&lt;br /&gt;
=== Partie informatique ===&lt;br /&gt;
&lt;br /&gt;
Création du squelette HTML du site web et du début du script JavaScript. Nous utilisons uniquement la bibliothèque Jquery pour faciliter la manipulation du code HTML à travers JavaScript. Dans le fichier ''/js/script.js'', nous gérons la communication par le protocole websocket du côté application web. Nous l'initialisons, initialisons la fonction d'envoi et l'algorithme à exécuter quand l'évènement de réception de données est déclenché.&lt;br /&gt;
Pour le moment nous ne savons pas comment exactement envoyer les donnée, quel objet transmettre à la méthode ''send()'', pour avoir un bon traitement des données par le serveur.&lt;br /&gt;
&lt;br /&gt;
== Travail complémentaire ==&lt;br /&gt;
&lt;br /&gt;
Cette étape représente une majeure partie de l'avancée du projet.&lt;br /&gt;
=== Partie électronique ===&lt;br /&gt;
&lt;br /&gt;
=== Partie informatique ===&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé du protocole de communication entre application web et capteurs. L'application web doit envoyer le message 'GET' par websocket au serveur. Le programme du serveur envoie la requête 'GET' à l’Arduino, qui envoie un buffer d'octets. Chaque octet représente la valeur d'un capteur. Dans l'ordre d'envoi : la pression, la température, l'humidité, la luminosité. Le programme de la Raspberry Pi a pour rôle de transférer ces données à l'application web, sous le même format et dans le même ordre. &lt;br /&gt;
Le script JavaScript décompose le buffer de donnée et affiche le résultat dans les bonnes cases du tableau.&lt;br /&gt;
&lt;br /&gt;
==== Programme serveur ====&lt;br /&gt;
&lt;br /&gt;
Le fichier '''main.c''' contient le code source permettant de faire fonctionner le serveur websocket et la communication série.&lt;br /&gt;
La partie série a été relativement facile à mettre en place puisqu'elle est basé sur l'utilisation des fichier en langage C.&lt;br /&gt;
En revanche la partie websocket a été la plus compliqué à mettre en place puisqu'il faut suivre un certain protocole pour récupérer les données reçu et envoyer des données.&lt;br /&gt;
&lt;br /&gt;
'''Partie websockets'''&lt;br /&gt;
&lt;br /&gt;
L'étape de réception websocket permet de récupérer le mot 'GET'.&lt;br /&gt;
Pour lire des données reçu il faut allouer de la mémoire de la taille du buffer et ajouter la taille des chaînes d'octets enveloppant le buffer. A partir de la on peut stocker dans cette case le contenu ayant pour adresse &amp;quot;'''in'''&amp;quot;, étant un argument de la fonction de réception. Dans notre cas, le buffer a pour taille &amp;quot;'''len'''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    requete=malloc(len+LWS_SEND_BUFFER_PRE_PADDING+LWS_SEND_BUFFER_POST_PADDING);&lt;br /&gt;
    memcpy(requete,in,len);&lt;br /&gt;
&lt;br /&gt;
L'étape d'envoi permet d'envoyer les données des capteurs vers l'application web.&lt;br /&gt;
Pour envoyer un message, il faut allouer une case mémoire de taille égale à la taille du buffer à envoyer, plus les octets enveloppant le message. &lt;br /&gt;
    unsigned char *buf = malloc(LWS_SEND_BUFFER_PRE_PADDING + length + LWS_SEND_BUFFER_POST_PADDING);&lt;br /&gt;
Nous avons choisi le type '''char''' (allant de -127 à 127) car il équivaut à une variable de taille 1 octet. Nous l'avons mis unsigned (allant de 0 à 255) uniquement pour pouvoir correctement lire les valeurs des données dans la console. Ceci nous a permis de vérifier que nous recevions les bonnes donnée par le port série. Il faut savoir que le formatage des données n'est utile que si nous voulons afficher les valeurs. Comme nous échangeons 4 octets, nous aurions pu stocker le message entier dans une unique variable de type &amp;quot;'''int'''&amp;quot; puisque ce type de donnée en C est précisément de taille 4 octets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut copier le message que l'on souhaite envoyer dans la case mémoire située à l'adresse de la mémoire alloué plus la taille des octets de début :&lt;br /&gt;
    memcpy (buf + LWS_SEND_BUFFER_PRE_PADDING, reponse, length );&lt;br /&gt;
&amp;quot;'''length'''&amp;quot; étant la taille du message sans les octets entourant ce message.&lt;br /&gt;
&lt;br /&gt;
Enfin, on envoie le message avec une fonction fournie par la librairie ''libwebsockets''. Le message se trouve alors à l'adresse buf + LWS_SEND_BUFFER_PRE_PADDING, définie précédemment   :&lt;br /&gt;
    libwebsocket_write(wsi, buf + LWS_SEND_BUFFER_PRE_PADDING, length, LWS_WRITE_BINARY); //LWS_WRITE_TEXT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Partie série'''&lt;br /&gt;
&lt;br /&gt;
La fonction '''getDataFromSensors()''' gère la communication série entre la Raspberry Pi et l'arduino/FPGA.&lt;br /&gt;
&lt;br /&gt;
Pour envoyer un octets en série, il faut juste faire un ''write()''. Dans notre cas nous en avons 3, correspondant au message 'GET'. '''sizeOfRequest''' vaut 3.&lt;br /&gt;
&lt;br /&gt;
    for(i = 0; i &amp;lt; sizeOfRequest;i++)&lt;br /&gt;
    {&lt;br /&gt;
        if(write(sd,(void*)&amp;amp;request[i],sizeof(char))!=1)&lt;br /&gt;
        { &lt;br /&gt;
            perror(&amp;quot;main.write&amp;quot;); exit(-1); &lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
Pour recevoir un octet c'est le même principe mais avec la fonction ''read()''. Nous en recevons 4. Ce morceau de code est placé juste après la partie qui envoie un message, car le circuit arduino/FPGA envoie directement les données dès qu'ils reçoivent 'GET' :&lt;br /&gt;
&lt;br /&gt;
    for(i=0;i &amp;lt; 4;i++)&lt;br /&gt;
    {//on lit ce que nous envoie l'arduino à la suite de la requete GET&lt;br /&gt;
        if(read(sd,(void*)&amp;amp;reponse[i],sizeof(unsigned char))!=1)&lt;br /&gt;
        { &lt;br /&gt;
            perror(&amp;quot;main.read&amp;quot;); exit(-1); &lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:PremiereVersion.png&amp;diff=44192</id>
		<title>Fichier:PremiereVersion.png</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:PremiereVersion.png&amp;diff=44192"/>
				<updated>2017-06-18T12:44:11Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Projet_IMA3_P2,_2016/2017,_TD2&amp;diff=44184</id>
		<title>Projet IMA3 P2, 2016/2017, TD2</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Projet_IMA3_P2,_2016/2017,_TD2&amp;diff=44184"/>
				<updated>2017-06-18T11:05:23Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : /* Séance 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Projet IMA3-SC 2016/2017 : Station Météo =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Description du système ==&lt;br /&gt;
&lt;br /&gt;
Notre projet est de mettre en place une station météorologique permettant de connaître :&lt;br /&gt;
* la température&lt;br /&gt;
* la pression&lt;br /&gt;
* l'humidité de l'air &lt;br /&gt;
* la vitesse du vent &lt;br /&gt;
* la luminosité extérieur&lt;br /&gt;
&lt;br /&gt;
Les données de cette station météo seront visible par toute personne se connectant à une application web.&lt;br /&gt;
&lt;br /&gt;
=== Cahier des charges ===&lt;br /&gt;
* La station permettra de prendre des mesures chaque heure de manière automatique, mais il devra être possible d'utiliser une interface web afin de prendre des mesures de manière manuelle.&lt;br /&gt;
* L'utilisateur pourra accéder à la base de donnée de la station à partir du site web et visualiser les variations des données (température, vitesse du vent, ...) en fonction du temps ou encore d'afficher toutes les données disponibles pour un jour donné.&lt;br /&gt;
* La page d'accueil du site doit permettre la visualisation du temps qu'il fait (clair, grisâtre, pluvieux) et de la température actuelle. L'accès aux données enregistrées se fera via un champ de recherche situé plus bas sur la page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le capteur température-humidité-pression sera relié à une carte arduino Uno. L'anémomètre ainsi que le capteur de luminosité seront reliés directement à un FPGA.&lt;br /&gt;
L'arduino sera elle aussi reliée au FPGA. En effet le capteurs mesurant la température, la pression et l'humidité de l'air communique par protocole SPI avec le microcontrôleur auquel il est relié. C'est pourquoi l'arduino, qui peut communiquer par SPI, fera office d'interface entre le capteur et le FPGA.&lt;br /&gt;
La connexion entre le FPGA et la Raspberry Pi se fera par liaison série filaire. Il sera peut-être possible de remplacer, par la suite, la liaison filaire par une liaison sans-fil à l'aide de modules Xbee.&lt;br /&gt;
&lt;br /&gt;
=== Le matériel ===&lt;br /&gt;
&lt;br /&gt;
* 1 Raspberry Pi &lt;br /&gt;
* 1 Arduino Uno&lt;br /&gt;
* 1 Shield Xbee (pour l'arduino)&lt;br /&gt;
* 1 adaptateur Xbee-USB (pour la raspberry)&lt;br /&gt;
* 1 XBee T et R&lt;br /&gt;
* 1 Capteur température, pression et humidité (BME280)&lt;br /&gt;
* 1 Anémomètre fabriqué avec  4 émetteurs/récepteurs ultrason (HC-SR04)&lt;br /&gt;
* 1 capteur de luminosité (GA1A1S202WP)&lt;br /&gt;
&lt;br /&gt;
== Git du projet ==&lt;br /&gt;
'''L'intégralité du code source du projet se trouve sur l'archive.'''&lt;br /&gt;
&lt;br /&gt;
[https://archives.plil.fr/aknockae/projet_SC_IMA3.git Archive du projet]&lt;br /&gt;
&lt;br /&gt;
L'archive du projet contient tous les codes sources. &lt;br /&gt;
Se trouvant dans le dossier /appWeb :&lt;br /&gt;
* index.html, page sur laquelle seront affichée les données.&lt;br /&gt;
/appWeb/js&lt;br /&gt;
* script.js, le script javascript qui gère la communication entre la page et le serveurs.&lt;br /&gt;
&lt;br /&gt;
/prog&lt;br /&gt;
* main.c, le script principale C qui gère la communication entre les capteurs et l'application Web.&lt;br /&gt;
&lt;br /&gt;
/code arduino&lt;br /&gt;
* serialArduino/, dossier contenant le programme arduino permettant de récupérer les données du capteur BME280, qui les envoient par liaison série à la carte Arduino. Pour l'instant le Xbee n'est pas pris en charge&lt;br /&gt;
* Plusieurs dossier contenant la librairie du capteur BME280, les test du port série, de la communication série par Xbee, etc...&lt;br /&gt;
&lt;br /&gt;
== Réalisation ==&lt;br /&gt;
&lt;br /&gt;
=== Partie informatique ===&lt;br /&gt;
&lt;br /&gt;
==== L'application web ====&lt;br /&gt;
&lt;br /&gt;
[[ Image:Capture_web.png | frame | center | 800 | aperçu de l'application web connectée au serveur websockets ]]&lt;br /&gt;
L'application web consiste en une page web codé en HTML. La partie dynamique de la page est codée en JavaScript avec l'aide de la bibliothèque Jquery.&lt;br /&gt;
&lt;br /&gt;
La page web contient :&amp;lt;br/&amp;gt;&lt;br /&gt;
- Un indicateur permettant d'informer l'utilisateur de l'état de la connexion au serveur websockets&amp;lt;br/&amp;gt;&lt;br /&gt;
- Un tableau présentant les relevé météo des capteurs&amp;lt;br/&amp;gt;&lt;br /&gt;
- Un bouton permettant de rafraîchir les données&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'indicateur permet de savoir si l'application est connectée au serveur Websockets, celui-ci se met en rouge si la connexion est absente ou si il y a un problème.&lt;br /&gt;
Le tableau affiche des valeurs entières. Ces valeurs n'ont donc qu'un cardinal restreint de 256 valeurs. Ceci constitue une limite principale de notre système, la précision.&lt;br /&gt;
&lt;br /&gt;
Le bouton qui permet de rafraîchir les données est appelle lors du clique, une fonction javascript chargé d'envoyer un signal &amp;quot;GET&amp;quot; au serveur websocket.&lt;br /&gt;
Le programme codé en C, envoie alors les données sous forme de 3 octets. Ces 3 octets représentent dans l'ordre, la pression, la température et l’humidité.&lt;br /&gt;
&lt;br /&gt;
Pour gérer les octets de donnée, nous avons utilisé un tableau typé javascript de type &amp;lt;em&amp;gt;Uint8ClampedArray&amp;lt;/em&amp;gt;. Toute donnée de ce tableau est de taille 8 bits et sa valeur est un entier non-signé.&lt;br /&gt;
&lt;br /&gt;
Cette structure est très pratique dans notre cas puisque elle permet à la fois de formater la requête &amp;quot;GET&amp;quot; pour l'envoi au serveur websocket mais aussi les donnée reçu du serveur websocket, pour la lecture. La communication entre le site et le serveur se fait par envoi et réception d'une suite d'octets.&lt;br /&gt;
&lt;br /&gt;
Dans le cas de l'émission, chaque lettre du mot &amp;quot;GET&amp;quot; sont converties en un octet. Ces octets sont mis bout à bout en utilisant un tableau typé. Il suffit juste d'envoyer le buffer de données du tableau en argument à la fonction send(), qui envoie les donnée au serveur.&lt;br /&gt;
&lt;br /&gt;
Dans le cas de la réception, le serveur envoie les octets les uns à la suite des autres. L'application web les récupères sous forme d'un buffer. On crée un autre tableau typé à partir de ce buffer, il &amp;quot;découpe&amp;quot; la chaîne d'octet ce qui permet de les différencier et facilite leurs traitement. Enfin on affiche ces octets dans les bonnes cases du tableau.&lt;br /&gt;
&lt;br /&gt;
Étant donné que les valeurs échangée ne vont que de 0 à 255, il a fallut effectuer quelques conversions.&lt;br /&gt;
La pression moyenne au niveau de la mer vaut généralement 1013 hPa. Les relevé météo n'ont jamais relevé de pression en dessous de 845 hPa ni au dessus de 1100 hPa. Partant de ce principe, la valeur affichée sur le site ne sortira jamais de cette intervalle de taille 255.&lt;br /&gt;
&lt;br /&gt;
Pour la température, l'intervalle va de -128 à +127 degré.&lt;br /&gt;
&lt;br /&gt;
La mesure de l'humidité ne pose aucun problème puisqu'elle s'effectue en pourcent.&lt;br /&gt;
&lt;br /&gt;
Ces conversions s'effectue avant l'affichage, par le script javascript.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Le côté serveur (Raspberry Pi) ====&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture_serveur_websockets.png|800px|frame|center|Aperçu de la réponse du serveur websocket quand il a reçu une requête de l'application web]]&lt;br /&gt;
&lt;br /&gt;
=== Partie electronique ===&lt;br /&gt;
&lt;br /&gt;
Le montage électrique final est en 2 partie, la partie Arduino et la partie FPGA.&lt;br /&gt;
Le montage Arduino est composé de la partie capteurs et la partie réception constitué d'un module Xbee fixé à un shield, relié à la Raspberry Pi.&lt;br /&gt;
Nous utilisons une liaison sans-fil Xbee pour récupérer les données des capteurs. Les Xbee sont des modules échangeant des données par communication série.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici la 1ere partie, la partie sensorielle :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Montage arduino.jpg|800px|frame|center|Partie émetteur du montage Arduino]]&lt;br /&gt;
&lt;br /&gt;
Voici la 2e partie, la réception surla Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Receveur_Xbee.jpg‎|800px|frame|center|Partie récepteur du montage Arduino]]&lt;br /&gt;
&lt;br /&gt;
La 2e partie, programmé par FPGA, est l'anémomètre. Ce circuit composé de 2 capteurs ultrasons, permet de détecter la vitesse du vent. Le principe est simple. Le vent est un déplacement de particules qui constituent l'air. Le son est le déplacement d'une onde mécanique dans l'air. Si les particules sont en mouvement pendant le déplacement de l'onde mécanique, alors la vitesse de cette onde est modifiée.&lt;br /&gt;
Le premier capteur émet une impulsion, au même moment, on déclenche un chronomètre. Ce chronomètre s'arrête quand le second capteur reçoit l'impulsion.&lt;br /&gt;
Il suffit de mesurer la vitesse de l'impulsion. En effectuant sa différence avec la vitesse d'une onde mécanique dans l'air quand les particules sont immobiles, on obtient la vitesse du vent.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Anemometre.jpg‎|800px|frame|center|Montage de l'anémomètre, ce montage permet de détecter la vitesse du vent dans une direction (au sens vectoriel)]]&lt;br /&gt;
&lt;br /&gt;
== Séance 1 ==&lt;br /&gt;
&lt;br /&gt;
=== Partie électronique ===&lt;br /&gt;
&lt;br /&gt;
Lors de cette première séance, nous avons pu récupérer et nous informer sur les capteurs BME280 et GA1A1S202WP. Après avoir regardé les documentations de ces deux capteurs, nous avons téléchargé la librairie permettant de faire fonctionner le capteur BME280 (https://github.com/adafruit/Adafruit_BME280_Library).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BME280.jpg|300px|frame|center|Capteur Adafruit BME280. Mesure la pression, la température et l'humiditée]] &lt;br /&gt;
&lt;br /&gt;
Une fois câblé comme il le fallait, nous avons donc d'abord testé le capteur BME280 et écrit un petit script Arduino qui affichait donc la température, la pression et l'humidité. Puis nous avons branché le capteur de luminosité (GA1A1S202WP) seul à l'arduino, et lancé un nouveau script qui affichait alors la luminosité en Lux de l'objet vers lequel on pointait le capteur. On a ainsi pu constaté une grande différence entre un ciel  nuageux, le soleil, et la luminosité de la pièce. Ces observation permettront à l'application web de déduire si le temps est clair ou nuageux uniquement grâce aux relevés du luxmètre.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Luxmetre.jpg‎|300px|frame|center|Capteur Adafruit GA1A12S202, mesure la lumière]]&lt;br /&gt;
&lt;br /&gt;
=== Partie informatique ===&lt;br /&gt;
&lt;br /&gt;
Nous avons effectué les test des capteurs BME280 et luxmètres sur une carte programmable Arduino Uno. Ces test nous ont permis de bien comprendre le fonctionnement de ces 2 capteurs.&lt;br /&gt;
Les données du capteur de luminosité se lisent très facilement sur un port analogique.&lt;br /&gt;
NOTE:Nous aurions pu le faire fonctionner par FPGA à l'aide d'un convertisseurs analogique numérique.&lt;br /&gt;
&lt;br /&gt;
Le capteur BME280, contrôlé par une puce, communique par protocole I2C ou SPI, nous devons donc utiliser une carte Arduino pour extraire les données du capteurs, du flot d'information envoyé par la puce. De plus, les données des capteurs sont envoyées à la carte arduino, uniquement si une demande de transfert a été envoyé à la puce du capteur. Le programme qui permet de lire les valeurs est donc complexe. Nous utilisons donc les bilbiothèques Adafruit_Sensor.h et Adafruit_BME280.h pour nous faciliter le travail.&lt;br /&gt;
&lt;br /&gt;
== Séance 2 ==&lt;br /&gt;
&lt;br /&gt;
=== Partie électronique ===&lt;br /&gt;
&lt;br /&gt;
Dans le but de faire notre anémomètre, nous avons commencé à faire un montage avec deux capteurs HC-SR04 : nous devons en placer un face à l'autre, le premier captant les ultrasons du second.&lt;br /&gt;
En effet, si on sait que v = d/t où v est une vitesse, d une distance et t un temps, le temps mis par les ultrasons pour aller d'un point A vers un point B en étant portés par un vent allant à une vitesse v est : tab = d/(v+c) où c est la vitesse du son. Dans l'autre sens, on obtient tba = d/(c-v) puisque le vent s'oppose à la propagation du son dans ce cas.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:AnémomètreVuArduino.jpg|left|500px|Câblage niveau Arduino]] &lt;br /&gt;
[[Fichier:AnémomètreVuUltrasson.jpg|center|500px|Câblage niveau capteur ultrason]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Partie informatique ===&lt;br /&gt;
&lt;br /&gt;
Initialisation et appairage des 2 modules Xbee. Ces modules servent à rendre sans-fil la connexion entre les capteurs et la Raspberry Pi sur laquelle se trouve le serveur websocket et l'application web. Ce choix est motivé par notre volonté d'avoir une station météo réaliste et portable. Ainsi des mesures peuvent être prise n'importe où.&lt;br /&gt;
Des difficultés de configuration ont rendu la réalisation de la tâche, très longue.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Préparation du serveur websocket. Nous utilisons un ordinateur Raspberry Pi comme &amp;quot;cerveau&amp;quot; de notre station météo. Elle se chargera de récupérer les données des capteurs et de les afficher sur l'application web. Nous avons modifié les différents fichiers de configuration. Nous avons notamment modifié les paramètres IP de la carte pour qu'elle soit accessible depuis les ordinateurs de Polytech. L'IP attribuée pour notre carte sera ''172.26.79.15''&lt;br /&gt;
&lt;br /&gt;
== Séance 3 ==&lt;br /&gt;
&lt;br /&gt;
=== Partie électronique ===&lt;br /&gt;
&lt;br /&gt;
=== Partie informatique ===&lt;br /&gt;
&lt;br /&gt;
Création du squelette HTML du site web et du début du script JavaScript. Nous utilisons uniquement la bibliothèque Jquery pour faciliter la manipulation du code HTML à travers JavaScript. Dans le fichier ''/js/script.js'', nous gérons la communication par le protocole websocket du côté application web. Nous l'initialisons, initialisons la fonction d'envoi et l'algorithme à exécuter quand l'évènement de réception de données est déclenché.&lt;br /&gt;
Pour le moment nous ne savons pas comment exactement envoyer les donnée, quel objet transmettre à la méthode ''send()'', pour avoir un bon traitement des données par le serveur.&lt;br /&gt;
&lt;br /&gt;
== Travail complémentaire ==&lt;br /&gt;
&lt;br /&gt;
Cette étape représente une majeure partie de l'avancée du projet.&lt;br /&gt;
=== Partie électronique ===&lt;br /&gt;
&lt;br /&gt;
=== Partie informatique ===&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé du protocole de communication entre application web et capteurs. L'application web doit envoyer le message 'GET' par websocket au serveur. Le programme du serveur envoie la requête 'GET' à l’Arduino, qui envoie un buffer d'octets. Chaque octet représente la valeur d'un capteur. Dans l'ordre d'envoi : la pression, la température, l'humidité, la luminosité. Le programme de la Raspberry Pi a pour rôle de transférer ces données à l'application web, sous le même format et dans le même ordre. &lt;br /&gt;
Le script JavaScript décompose le buffer de donnée et affiche le résultat dans les bonnes cases du tableau.&lt;br /&gt;
&lt;br /&gt;
==== Programme serveur ====&lt;br /&gt;
&lt;br /&gt;
Le fichier '''main.c''' contient le code source permettant de faire fonctionner le serveur websocket et la communication série.&lt;br /&gt;
La partie série a été relativement facile à mettre en place puisqu'elle est basé sur l'utilisation des fichier en langage C.&lt;br /&gt;
En revanche la partie websocket a été la plus compliqué à mettre en place puisqu'il faut suivre un certain protocole pour récupérer les données reçu et envoyer des données.&lt;br /&gt;
&lt;br /&gt;
'''Partie websockets'''&lt;br /&gt;
&lt;br /&gt;
L'étape de réception websocket permet de récupérer le mot 'GET'.&lt;br /&gt;
Pour lire des données reçu il faut allouer de la mémoire de la taille du buffer et ajouter la taille des chaînes d'octets enveloppant le buffer. A partir de la on peut stocker dans cette case le contenu ayant pour adresse &amp;quot;'''in'''&amp;quot;, étant un argument de la fonction de réception. Dans notre cas, le buffer a pour taille &amp;quot;'''len'''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    requete=malloc(len+LWS_SEND_BUFFER_PRE_PADDING+LWS_SEND_BUFFER_POST_PADDING);&lt;br /&gt;
    memcpy(requete,in,len);&lt;br /&gt;
&lt;br /&gt;
L'étape d'envoi permet d'envoyer les données des capteurs vers l'application web.&lt;br /&gt;
Pour envoyer un message, il faut allouer une case mémoire de taille égale à la taille du buffer à envoyer, plus les octets enveloppant le message. &lt;br /&gt;
    unsigned char *buf = malloc(LWS_SEND_BUFFER_PRE_PADDING + length + LWS_SEND_BUFFER_POST_PADDING);&lt;br /&gt;
Nous avons choisi le type '''char''' (allant de -127 à 127) car il équivaut à une variable de taille 1 octet. Nous l'avons mis unsigned (allant de 0 à 255) uniquement pour pouvoir correctement lire les valeurs des données dans la console. Ceci nous a permis de vérifier que nous recevions les bonnes donnée par le port série. Il faut savoir que le formatage des données n'est utile que si nous voulons afficher les valeurs. Comme nous échangeons 4 octets, nous aurions pu stocker le message entier dans une unique variable de type &amp;quot;'''int'''&amp;quot; puisque ce type de donnée en C est précisément de taille 4 octets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut copier le message que l'on souhaite envoyer dans la case mémoire située à l'adresse de la mémoire alloué plus la taille des octets de début :&lt;br /&gt;
    memcpy (buf + LWS_SEND_BUFFER_PRE_PADDING, reponse, length );&lt;br /&gt;
&amp;quot;'''length'''&amp;quot; étant la taille du message sans les octets entourant ce message.&lt;br /&gt;
&lt;br /&gt;
Enfin, on envoie le message avec une fonction fournie par la librairie ''libwebsockets''. Le message se trouve alors à l'adresse buf + LWS_SEND_BUFFER_PRE_PADDING, définie précédemment   :&lt;br /&gt;
    libwebsocket_write(wsi, buf + LWS_SEND_BUFFER_PRE_PADDING, length, LWS_WRITE_BINARY); //LWS_WRITE_TEXT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Partie série'''&lt;br /&gt;
&lt;br /&gt;
La fonction '''getDataFromSensors()''' gère la communication série entre la Raspberry Pi et l'arduino/FPGA.&lt;br /&gt;
&lt;br /&gt;
Pour envoyer un octets en série, il faut juste faire un ''write()''. Dans notre cas nous en avons 3, correspondant au message 'GET'. '''sizeOfRequest''' vaut 3.&lt;br /&gt;
&lt;br /&gt;
    for(i = 0; i &amp;lt; sizeOfRequest;i++)&lt;br /&gt;
    {&lt;br /&gt;
        if(write(sd,(void*)&amp;amp;request[i],sizeof(char))!=1)&lt;br /&gt;
        { &lt;br /&gt;
            perror(&amp;quot;main.write&amp;quot;); exit(-1); &lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
Pour recevoir un octet c'est le même principe mais avec la fonction ''read()''. Nous en recevons 4. Ce morceau de code est placé juste après la partie qui envoie un message, car le circuit arduino/FPGA envoie directement les données dès qu'ils reçoivent 'GET' :&lt;br /&gt;
&lt;br /&gt;
    for(i=0;i &amp;lt; 4;i++)&lt;br /&gt;
    {//on lit ce que nous envoie l'arduino à la suite de la requete GET&lt;br /&gt;
        if(read(sd,(void*)&amp;amp;reponse[i],sizeof(unsigned char))!=1)&lt;br /&gt;
        { &lt;br /&gt;
            perror(&amp;quot;main.read&amp;quot;); exit(-1); &lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Projet_IMA3_P2,_2016/2017,_TD2&amp;diff=44183</id>
		<title>Projet IMA3 P2, 2016/2017, TD2</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Projet_IMA3_P2,_2016/2017,_TD2&amp;diff=44183"/>
				<updated>2017-06-18T11:01:15Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : /* Partie électronique */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Projet IMA3-SC 2016/2017 : Station Météo =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Description du système ==&lt;br /&gt;
&lt;br /&gt;
Notre projet est de mettre en place une station météorologique permettant de connaître :&lt;br /&gt;
* la température&lt;br /&gt;
* la pression&lt;br /&gt;
* l'humidité de l'air &lt;br /&gt;
* la vitesse du vent &lt;br /&gt;
* la luminosité extérieur&lt;br /&gt;
&lt;br /&gt;
Les données de cette station météo seront visible par toute personne se connectant à une application web.&lt;br /&gt;
&lt;br /&gt;
=== Cahier des charges ===&lt;br /&gt;
* La station permettra de prendre des mesures chaque heure de manière automatique, mais il devra être possible d'utiliser une interface web afin de prendre des mesures de manière manuelle.&lt;br /&gt;
* L'utilisateur pourra accéder à la base de donnée de la station à partir du site web et visualiser les variations des données (température, vitesse du vent, ...) en fonction du temps ou encore d'afficher toutes les données disponibles pour un jour donné.&lt;br /&gt;
* La page d'accueil du site doit permettre la visualisation du temps qu'il fait (clair, grisâtre, pluvieux) et de la température actuelle. L'accès aux données enregistrées se fera via un champ de recherche situé plus bas sur la page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le capteur température-humidité-pression sera relié à une carte arduino Uno. L'anémomètre ainsi que le capteur de luminosité seront reliés directement à un FPGA.&lt;br /&gt;
L'arduino sera elle aussi reliée au FPGA. En effet le capteurs mesurant la température, la pression et l'humidité de l'air communique par protocole SPI avec le microcontrôleur auquel il est relié. C'est pourquoi l'arduino, qui peut communiquer par SPI, fera office d'interface entre le capteur et le FPGA.&lt;br /&gt;
La connexion entre le FPGA et la Raspberry Pi se fera par liaison série filaire. Il sera peut-être possible de remplacer, par la suite, la liaison filaire par une liaison sans-fil à l'aide de modules Xbee.&lt;br /&gt;
&lt;br /&gt;
=== Le matériel ===&lt;br /&gt;
&lt;br /&gt;
* 1 Raspberry Pi &lt;br /&gt;
* 1 Arduino Uno&lt;br /&gt;
* 1 Shield Xbee (pour l'arduino)&lt;br /&gt;
* 1 adaptateur Xbee-USB (pour la raspberry)&lt;br /&gt;
* 1 XBee T et R&lt;br /&gt;
* 1 Capteur température, pression et humidité (BME280)&lt;br /&gt;
* 1 Anémomètre fabriqué avec  4 émetteurs/récepteurs ultrason (HC-SR04)&lt;br /&gt;
* 1 capteur de luminosité (GA1A1S202WP)&lt;br /&gt;
&lt;br /&gt;
== Git du projet ==&lt;br /&gt;
'''L'intégralité du code source du projet se trouve sur l'archive.'''&lt;br /&gt;
&lt;br /&gt;
[https://archives.plil.fr/aknockae/projet_SC_IMA3.git Archive du projet]&lt;br /&gt;
&lt;br /&gt;
L'archive du projet contient tous les codes sources. &lt;br /&gt;
Se trouvant dans le dossier /appWeb :&lt;br /&gt;
* index.html, page sur laquelle seront affichée les données.&lt;br /&gt;
/appWeb/js&lt;br /&gt;
* script.js, le script javascript qui gère la communication entre la page et le serveurs.&lt;br /&gt;
&lt;br /&gt;
/prog&lt;br /&gt;
* main.c, le script principale C qui gère la communication entre les capteurs et l'application Web.&lt;br /&gt;
&lt;br /&gt;
/code arduino&lt;br /&gt;
* serialArduino/, dossier contenant le programme arduino permettant de récupérer les données du capteur BME280, qui les envoient par liaison série à la carte Arduino. Pour l'instant le Xbee n'est pas pris en charge&lt;br /&gt;
* Plusieurs dossier contenant la librairie du capteur BME280, les test du port série, de la communication série par Xbee, etc...&lt;br /&gt;
&lt;br /&gt;
== Réalisation ==&lt;br /&gt;
&lt;br /&gt;
=== Partie informatique ===&lt;br /&gt;
&lt;br /&gt;
==== L'application web ====&lt;br /&gt;
&lt;br /&gt;
[[ Image:Capture_web.png | frame | center | 800 | aperçu de l'application web connectée au serveur websockets ]]&lt;br /&gt;
L'application web consiste en une page web codé en HTML. La partie dynamique de la page est codée en JavaScript avec l'aide de la bibliothèque Jquery.&lt;br /&gt;
&lt;br /&gt;
La page web contient :&amp;lt;br/&amp;gt;&lt;br /&gt;
- Un indicateur permettant d'informer l'utilisateur de l'état de la connexion au serveur websockets&amp;lt;br/&amp;gt;&lt;br /&gt;
- Un tableau présentant les relevé météo des capteurs&amp;lt;br/&amp;gt;&lt;br /&gt;
- Un bouton permettant de rafraîchir les données&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'indicateur permet de savoir si l'application est connectée au serveur Websockets, celui-ci se met en rouge si la connexion est absente ou si il y a un problème.&lt;br /&gt;
Le tableau affiche des valeurs entières. Ces valeurs n'ont donc qu'un cardinal restreint de 256 valeurs. Ceci constitue une limite principale de notre système, la précision.&lt;br /&gt;
&lt;br /&gt;
Le bouton qui permet de rafraîchir les données est appelle lors du clique, une fonction javascript chargé d'envoyer un signal &amp;quot;GET&amp;quot; au serveur websocket.&lt;br /&gt;
Le programme codé en C, envoie alors les données sous forme de 3 octets. Ces 3 octets représentent dans l'ordre, la pression, la température et l’humidité.&lt;br /&gt;
&lt;br /&gt;
Pour gérer les octets de donnée, nous avons utilisé un tableau typé javascript de type &amp;lt;em&amp;gt;Uint8ClampedArray&amp;lt;/em&amp;gt;. Toute donnée de ce tableau est de taille 8 bits et sa valeur est un entier non-signé.&lt;br /&gt;
&lt;br /&gt;
Cette structure est très pratique dans notre cas puisque elle permet à la fois de formater la requête &amp;quot;GET&amp;quot; pour l'envoi au serveur websocket mais aussi les donnée reçu du serveur websocket, pour la lecture. La communication entre le site et le serveur se fait par envoi et réception d'une suite d'octets.&lt;br /&gt;
&lt;br /&gt;
Dans le cas de l'émission, chaque lettre du mot &amp;quot;GET&amp;quot; sont converties en un octet. Ces octets sont mis bout à bout en utilisant un tableau typé. Il suffit juste d'envoyer le buffer de données du tableau en argument à la fonction send(), qui envoie les donnée au serveur.&lt;br /&gt;
&lt;br /&gt;
Dans le cas de la réception, le serveur envoie les octets les uns à la suite des autres. L'application web les récupères sous forme d'un buffer. On crée un autre tableau typé à partir de ce buffer, il &amp;quot;découpe&amp;quot; la chaîne d'octet ce qui permet de les différencier et facilite leurs traitement. Enfin on affiche ces octets dans les bonnes cases du tableau.&lt;br /&gt;
&lt;br /&gt;
Étant donné que les valeurs échangée ne vont que de 0 à 255, il a fallut effectuer quelques conversions.&lt;br /&gt;
La pression moyenne au niveau de la mer vaut généralement 1013 hPa. Les relevé météo n'ont jamais relevé de pression en dessous de 845 hPa ni au dessus de 1100 hPa. Partant de ce principe, la valeur affichée sur le site ne sortira jamais de cette intervalle de taille 255.&lt;br /&gt;
&lt;br /&gt;
Pour la température, l'intervalle va de -128 à +127 degré.&lt;br /&gt;
&lt;br /&gt;
La mesure de l'humidité ne pose aucun problème puisqu'elle s'effectue en pourcent.&lt;br /&gt;
&lt;br /&gt;
Ces conversions s'effectue avant l'affichage, par le script javascript.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Le côté serveur (Raspberry Pi) ====&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture_serveur_websockets.png|800px|frame|center|Aperçu de la réponse du serveur websocket quand il a reçu une requête de l'application web]]&lt;br /&gt;
&lt;br /&gt;
=== Partie electronique ===&lt;br /&gt;
&lt;br /&gt;
Le montage électrique final est en 2 partie, la partie Arduino et la partie FPGA.&lt;br /&gt;
Le montage Arduino est composé de la partie capteurs et la partie réception constitué d'un module Xbee fixé à un shield, relié à la Raspberry Pi.&lt;br /&gt;
Nous utilisons une liaison sans-fil Xbee pour récupérer les données des capteurs. Les Xbee sont des modules échangeant des données par communication série.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici la 1ere partie, la partie sensorielle :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Montage arduino.jpg|800px|frame|center|Partie émetteur du montage Arduino]]&lt;br /&gt;
&lt;br /&gt;
Voici la 2e partie, la réception surla Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Receveur_Xbee.jpg‎|800px|frame|center|Partie récepteur du montage Arduino]]&lt;br /&gt;
&lt;br /&gt;
La 2e partie, programmé par FPGA, est l'anémomètre. Ce circuit composé de 2 capteurs ultrasons, permet de détecter la vitesse du vent. Le principe est simple. Le vent est un déplacement de particules qui constituent l'air. Le son est le déplacement d'une onde mécanique dans l'air. Si les particules sont en mouvement pendant le déplacement de l'onde mécanique, alors la vitesse de cette onde est modifiée.&lt;br /&gt;
Le premier capteur émet une impulsion, au même moment, on déclenche un chronomètre. Ce chronomètre s'arrête quand le second capteur reçoit l'impulsion.&lt;br /&gt;
Il suffit de mesurer la vitesse de l'impulsion. En effectuant sa différence avec la vitesse d'une onde mécanique dans l'air quand les particules sont immobiles, on obtient la vitesse du vent.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Anemometre.jpg‎|800px|frame|center|Montage de l'anémomètre, ce montage permet de détecter la vitesse du vent dans une direction (au sens vectoriel)]]&lt;br /&gt;
&lt;br /&gt;
== Séance 1 ==&lt;br /&gt;
&lt;br /&gt;
=== Partie électronique ===&lt;br /&gt;
&lt;br /&gt;
Lors de cette première séance, nous avons pu récupérer et nous informer sur les capteurs BME280 et GA1A1S202WP. Après avoir regardé les documentations de ces deux capteurs, nous avons téléchargé la librairie permettant de faire fonctionner le capteur BME280 (https://github.com/adafruit/Adafruit_BME280_Library).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BME280.jpg|300px|frame|center|Capteur Adafruit BME280. Mesure la pression, la température et l'humiditée]] &lt;br /&gt;
&lt;br /&gt;
Une fois câblé comme il le fallait, nous avons donc d'abord testé le capteur BME280 et écrit un petit script Arduino qui affichait donc la température, la pression et l'humidité. Puis nous avons branché le capteur de luminosité (GA1A1S202WP) seul à l'arduino, et lancé un nouveau script qui affichait alors la luminosité en Lux de l'objet vers lequel on pointait le capteur. On a ainsi pu constaté une grande différence entre un ciel  nuageux, le soleil, et la luminosité de la pièce. Ces observation permettront à l'application web de déduire si le temps est clair ou nuageux uniquement grâce aux relevés du luxmètre.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Luxmetre.jpg‎|300px|frame|center|Capteur Adafruit GA1A12S202, mesure la lumière]]&lt;br /&gt;
&lt;br /&gt;
=== Partie informatique ===&lt;br /&gt;
&lt;br /&gt;
Nous avons effectué les test des capteurs BME280 et luxmètres sur une carte programmable Arduino Uno. Ces test nous ont permis de bien comprendre le fonctionnement de ces 2 capteurs.&lt;br /&gt;
Les données du capteur de luminosité se lisent très facilement sur un port analogique.&lt;br /&gt;
NOTE:Nous aurions pu le faire fonctionner par FPGA à l'aide d'un convertisseurs analogique numérique.&lt;br /&gt;
&lt;br /&gt;
Le capteur BME280, contrôlé par une puce, communique par protocole I2C ou SPI, nous devons donc utiliser une carte Arduino pour extraire les données du capteurs, du flot d'information envoyé par la puce. De plus, les données des capteurs sont envoyées à la carte arduino, uniquement si une demande de transfert a été envoyé à la puce du capteur. Le programme qui permet de lire les valeurs est donc complexe. Nous utilisons donc les bilbiothèques Adafruit_Sensor.h et Adafruit_BME280.h pour nous faciliter le travail.&lt;br /&gt;
&lt;br /&gt;
== Séance 2 ==&lt;br /&gt;
&lt;br /&gt;
=== Partie électronique ===&lt;br /&gt;
&lt;br /&gt;
Dans le but de faire notre anémomètre, nous avons commencé à faire un montage avec deux capteurs HC-SR04 : nous devons en placer un face à l'autre, le premier captant les ultrasons du second.&lt;br /&gt;
En effet, si on sait que v = d/t où v est une vitesse, d une distance et t un temps, le temps mis par les ultrasons pour aller d'un point A vers un point B en étant portés par un vent allant à une vitesse v est : tab = d/(v+c) où c est la vitesse du son. Dans l'autre sens, on obtient tba = d/(c-v) puisque le vent s'oppose à la propagation du son dans ce cas.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:AnémomètreVuUltrasson.jpg||left|500px|Câblage niveau capteur ultrason]][[Fichier:AnémomètreVuArduino.jpg||right|500px|Câblage niveau Arduino]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Partie informatique ===&lt;br /&gt;
&lt;br /&gt;
Initialisation et appairage des 2 modules Xbee. Ces modules servent à rendre sans-fil la connexion entre les capteurs et la Raspberry Pi sur laquelle se trouve le serveur websocket et l'application web. Ce choix est motivé par notre volonté d'avoir une station météo réaliste et portable. Ainsi des mesures peuvent être prise n'importe où.&lt;br /&gt;
Des difficultés de configuration ont rendu la réalisation de la tâche, très longue.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Préparation du serveur websocket. Nous utilisons un ordinateur Raspberry Pi comme &amp;quot;cerveau&amp;quot; de notre station météo. Elle se chargera de récupérer les données des capteurs et de les afficher sur l'application web. Nous avons modifié les différents fichiers de configuration. Nous avons notamment modifié les paramètres IP de la carte pour qu'elle soit accessible depuis les ordinateurs de Polytech. L'IP attribuée pour notre carte sera ''172.26.79.15''&lt;br /&gt;
&lt;br /&gt;
== Séance 3 ==&lt;br /&gt;
&lt;br /&gt;
=== Partie électronique ===&lt;br /&gt;
&lt;br /&gt;
=== Partie informatique ===&lt;br /&gt;
&lt;br /&gt;
Création du squelette HTML du site web et du début du script JavaScript. Nous utilisons uniquement la bibliothèque Jquery pour faciliter la manipulation du code HTML à travers JavaScript. Dans le fichier ''/js/script.js'', nous gérons la communication par le protocole websocket du côté application web. Nous l'initialisons, initialisons la fonction d'envoi et l'algorithme à exécuter quand l'évènement de réception de données est déclenché.&lt;br /&gt;
Pour le moment nous ne savons pas comment exactement envoyer les donnée, quel objet transmettre à la méthode ''send()'', pour avoir un bon traitement des données par le serveur.&lt;br /&gt;
&lt;br /&gt;
== Travail complémentaire ==&lt;br /&gt;
&lt;br /&gt;
Cette étape représente une majeure partie de l'avancée du projet.&lt;br /&gt;
=== Partie électronique ===&lt;br /&gt;
&lt;br /&gt;
=== Partie informatique ===&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé du protocole de communication entre application web et capteurs. L'application web doit envoyer le message 'GET' par websocket au serveur. Le programme du serveur envoie la requête 'GET' à l’Arduino, qui envoie un buffer d'octets. Chaque octet représente la valeur d'un capteur. Dans l'ordre d'envoi : la pression, la température, l'humidité, la luminosité. Le programme de la Raspberry Pi a pour rôle de transférer ces données à l'application web, sous le même format et dans le même ordre. &lt;br /&gt;
Le script JavaScript décompose le buffer de donnée et affiche le résultat dans les bonnes cases du tableau.&lt;br /&gt;
&lt;br /&gt;
==== Programme serveur ====&lt;br /&gt;
&lt;br /&gt;
Le fichier '''main.c''' contient le code source permettant de faire fonctionner le serveur websocket et la communication série.&lt;br /&gt;
La partie série a été relativement facile à mettre en place puisqu'elle est basé sur l'utilisation des fichier en langage C.&lt;br /&gt;
En revanche la partie websocket a été la plus compliqué à mettre en place puisqu'il faut suivre un certain protocole pour récupérer les données reçu et envoyer des données.&lt;br /&gt;
&lt;br /&gt;
'''Partie websockets'''&lt;br /&gt;
&lt;br /&gt;
L'étape de réception websocket permet de récupérer le mot 'GET'.&lt;br /&gt;
Pour lire des données reçu il faut allouer de la mémoire de la taille du buffer et ajouter la taille des chaînes d'octets enveloppant le buffer. A partir de la on peut stocker dans cette case le contenu ayant pour adresse &amp;quot;'''in'''&amp;quot;, étant un argument de la fonction de réception. Dans notre cas, le buffer a pour taille &amp;quot;'''len'''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    requete=malloc(len+LWS_SEND_BUFFER_PRE_PADDING+LWS_SEND_BUFFER_POST_PADDING);&lt;br /&gt;
    memcpy(requete,in,len);&lt;br /&gt;
&lt;br /&gt;
L'étape d'envoi permet d'envoyer les données des capteurs vers l'application web.&lt;br /&gt;
Pour envoyer un message, il faut allouer une case mémoire de taille égale à la taille du buffer à envoyer, plus les octets enveloppant le message. &lt;br /&gt;
    unsigned char *buf = malloc(LWS_SEND_BUFFER_PRE_PADDING + length + LWS_SEND_BUFFER_POST_PADDING);&lt;br /&gt;
Nous avons choisi le type '''char''' (allant de -127 à 127) car il équivaut à une variable de taille 1 octet. Nous l'avons mis unsigned (allant de 0 à 255) uniquement pour pouvoir correctement lire les valeurs des données dans la console. Ceci nous a permis de vérifier que nous recevions les bonnes donnée par le port série. Il faut savoir que le formatage des données n'est utile que si nous voulons afficher les valeurs. Comme nous échangeons 4 octets, nous aurions pu stocker le message entier dans une unique variable de type &amp;quot;'''int'''&amp;quot; puisque ce type de donnée en C est précisément de taille 4 octets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut copier le message que l'on souhaite envoyer dans la case mémoire située à l'adresse de la mémoire alloué plus la taille des octets de début :&lt;br /&gt;
    memcpy (buf + LWS_SEND_BUFFER_PRE_PADDING, reponse, length );&lt;br /&gt;
&amp;quot;'''length'''&amp;quot; étant la taille du message sans les octets entourant ce message.&lt;br /&gt;
&lt;br /&gt;
Enfin, on envoie le message avec une fonction fournie par la librairie ''libwebsockets''. Le message se trouve alors à l'adresse buf + LWS_SEND_BUFFER_PRE_PADDING, définie précédemment   :&lt;br /&gt;
    libwebsocket_write(wsi, buf + LWS_SEND_BUFFER_PRE_PADDING, length, LWS_WRITE_BINARY); //LWS_WRITE_TEXT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Partie série'''&lt;br /&gt;
&lt;br /&gt;
La fonction '''getDataFromSensors()''' gère la communication série entre la Raspberry Pi et l'arduino/FPGA.&lt;br /&gt;
&lt;br /&gt;
Pour envoyer un octets en série, il faut juste faire un ''write()''. Dans notre cas nous en avons 3, correspondant au message 'GET'. '''sizeOfRequest''' vaut 3.&lt;br /&gt;
&lt;br /&gt;
    for(i = 0; i &amp;lt; sizeOfRequest;i++)&lt;br /&gt;
    {&lt;br /&gt;
        if(write(sd,(void*)&amp;amp;request[i],sizeof(char))!=1)&lt;br /&gt;
        { &lt;br /&gt;
            perror(&amp;quot;main.write&amp;quot;); exit(-1); &lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
Pour recevoir un octet c'est le même principe mais avec la fonction ''read()''. Nous en recevons 4. Ce morceau de code est placé juste après la partie qui envoie un message, car le circuit arduino/FPGA envoie directement les données dès qu'ils reçoivent 'GET' :&lt;br /&gt;
&lt;br /&gt;
    for(i=0;i &amp;lt; 4;i++)&lt;br /&gt;
    {//on lit ce que nous envoie l'arduino à la suite de la requete GET&lt;br /&gt;
        if(read(sd,(void*)&amp;amp;reponse[i],sizeof(unsigned char))!=1)&lt;br /&gt;
        { &lt;br /&gt;
            perror(&amp;quot;main.read&amp;quot;); exit(-1); &lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Projet_IMA3_P2,_2016/2017,_TD2&amp;diff=44182</id>
		<title>Projet IMA3 P2, 2016/2017, TD2</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Projet_IMA3_P2,_2016/2017,_TD2&amp;diff=44182"/>
				<updated>2017-06-18T11:00:43Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : /* Partie électronique */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Projet IMA3-SC 2016/2017 : Station Météo =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Description du système ==&lt;br /&gt;
&lt;br /&gt;
Notre projet est de mettre en place une station météorologique permettant de connaître :&lt;br /&gt;
* la température&lt;br /&gt;
* la pression&lt;br /&gt;
* l'humidité de l'air &lt;br /&gt;
* la vitesse du vent &lt;br /&gt;
* la luminosité extérieur&lt;br /&gt;
&lt;br /&gt;
Les données de cette station météo seront visible par toute personne se connectant à une application web.&lt;br /&gt;
&lt;br /&gt;
=== Cahier des charges ===&lt;br /&gt;
* La station permettra de prendre des mesures chaque heure de manière automatique, mais il devra être possible d'utiliser une interface web afin de prendre des mesures de manière manuelle.&lt;br /&gt;
* L'utilisateur pourra accéder à la base de donnée de la station à partir du site web et visualiser les variations des données (température, vitesse du vent, ...) en fonction du temps ou encore d'afficher toutes les données disponibles pour un jour donné.&lt;br /&gt;
* La page d'accueil du site doit permettre la visualisation du temps qu'il fait (clair, grisâtre, pluvieux) et de la température actuelle. L'accès aux données enregistrées se fera via un champ de recherche situé plus bas sur la page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le capteur température-humidité-pression sera relié à une carte arduino Uno. L'anémomètre ainsi que le capteur de luminosité seront reliés directement à un FPGA.&lt;br /&gt;
L'arduino sera elle aussi reliée au FPGA. En effet le capteurs mesurant la température, la pression et l'humidité de l'air communique par protocole SPI avec le microcontrôleur auquel il est relié. C'est pourquoi l'arduino, qui peut communiquer par SPI, fera office d'interface entre le capteur et le FPGA.&lt;br /&gt;
La connexion entre le FPGA et la Raspberry Pi se fera par liaison série filaire. Il sera peut-être possible de remplacer, par la suite, la liaison filaire par une liaison sans-fil à l'aide de modules Xbee.&lt;br /&gt;
&lt;br /&gt;
=== Le matériel ===&lt;br /&gt;
&lt;br /&gt;
* 1 Raspberry Pi &lt;br /&gt;
* 1 Arduino Uno&lt;br /&gt;
* 1 Shield Xbee (pour l'arduino)&lt;br /&gt;
* 1 adaptateur Xbee-USB (pour la raspberry)&lt;br /&gt;
* 1 XBee T et R&lt;br /&gt;
* 1 Capteur température, pression et humidité (BME280)&lt;br /&gt;
* 1 Anémomètre fabriqué avec  4 émetteurs/récepteurs ultrason (HC-SR04)&lt;br /&gt;
* 1 capteur de luminosité (GA1A1S202WP)&lt;br /&gt;
&lt;br /&gt;
== Git du projet ==&lt;br /&gt;
'''L'intégralité du code source du projet se trouve sur l'archive.'''&lt;br /&gt;
&lt;br /&gt;
[https://archives.plil.fr/aknockae/projet_SC_IMA3.git Archive du projet]&lt;br /&gt;
&lt;br /&gt;
L'archive du projet contient tous les codes sources. &lt;br /&gt;
Se trouvant dans le dossier /appWeb :&lt;br /&gt;
* index.html, page sur laquelle seront affichée les données.&lt;br /&gt;
/appWeb/js&lt;br /&gt;
* script.js, le script javascript qui gère la communication entre la page et le serveurs.&lt;br /&gt;
&lt;br /&gt;
/prog&lt;br /&gt;
* main.c, le script principale C qui gère la communication entre les capteurs et l'application Web.&lt;br /&gt;
&lt;br /&gt;
/code arduino&lt;br /&gt;
* serialArduino/, dossier contenant le programme arduino permettant de récupérer les données du capteur BME280, qui les envoient par liaison série à la carte Arduino. Pour l'instant le Xbee n'est pas pris en charge&lt;br /&gt;
* Plusieurs dossier contenant la librairie du capteur BME280, les test du port série, de la communication série par Xbee, etc...&lt;br /&gt;
&lt;br /&gt;
== Réalisation ==&lt;br /&gt;
&lt;br /&gt;
=== Partie informatique ===&lt;br /&gt;
&lt;br /&gt;
==== L'application web ====&lt;br /&gt;
&lt;br /&gt;
[[ Image:Capture_web.png | frame | center | 800 | aperçu de l'application web connectée au serveur websockets ]]&lt;br /&gt;
L'application web consiste en une page web codé en HTML. La partie dynamique de la page est codée en JavaScript avec l'aide de la bibliothèque Jquery.&lt;br /&gt;
&lt;br /&gt;
La page web contient :&amp;lt;br/&amp;gt;&lt;br /&gt;
- Un indicateur permettant d'informer l'utilisateur de l'état de la connexion au serveur websockets&amp;lt;br/&amp;gt;&lt;br /&gt;
- Un tableau présentant les relevé météo des capteurs&amp;lt;br/&amp;gt;&lt;br /&gt;
- Un bouton permettant de rafraîchir les données&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'indicateur permet de savoir si l'application est connectée au serveur Websockets, celui-ci se met en rouge si la connexion est absente ou si il y a un problème.&lt;br /&gt;
Le tableau affiche des valeurs entières. Ces valeurs n'ont donc qu'un cardinal restreint de 256 valeurs. Ceci constitue une limite principale de notre système, la précision.&lt;br /&gt;
&lt;br /&gt;
Le bouton qui permet de rafraîchir les données est appelle lors du clique, une fonction javascript chargé d'envoyer un signal &amp;quot;GET&amp;quot; au serveur websocket.&lt;br /&gt;
Le programme codé en C, envoie alors les données sous forme de 3 octets. Ces 3 octets représentent dans l'ordre, la pression, la température et l’humidité.&lt;br /&gt;
&lt;br /&gt;
Pour gérer les octets de donnée, nous avons utilisé un tableau typé javascript de type &amp;lt;em&amp;gt;Uint8ClampedArray&amp;lt;/em&amp;gt;. Toute donnée de ce tableau est de taille 8 bits et sa valeur est un entier non-signé.&lt;br /&gt;
&lt;br /&gt;
Cette structure est très pratique dans notre cas puisque elle permet à la fois de formater la requête &amp;quot;GET&amp;quot; pour l'envoi au serveur websocket mais aussi les donnée reçu du serveur websocket, pour la lecture. La communication entre le site et le serveur se fait par envoi et réception d'une suite d'octets.&lt;br /&gt;
&lt;br /&gt;
Dans le cas de l'émission, chaque lettre du mot &amp;quot;GET&amp;quot; sont converties en un octet. Ces octets sont mis bout à bout en utilisant un tableau typé. Il suffit juste d'envoyer le buffer de données du tableau en argument à la fonction send(), qui envoie les donnée au serveur.&lt;br /&gt;
&lt;br /&gt;
Dans le cas de la réception, le serveur envoie les octets les uns à la suite des autres. L'application web les récupères sous forme d'un buffer. On crée un autre tableau typé à partir de ce buffer, il &amp;quot;découpe&amp;quot; la chaîne d'octet ce qui permet de les différencier et facilite leurs traitement. Enfin on affiche ces octets dans les bonnes cases du tableau.&lt;br /&gt;
&lt;br /&gt;
Étant donné que les valeurs échangée ne vont que de 0 à 255, il a fallut effectuer quelques conversions.&lt;br /&gt;
La pression moyenne au niveau de la mer vaut généralement 1013 hPa. Les relevé météo n'ont jamais relevé de pression en dessous de 845 hPa ni au dessus de 1100 hPa. Partant de ce principe, la valeur affichée sur le site ne sortira jamais de cette intervalle de taille 255.&lt;br /&gt;
&lt;br /&gt;
Pour la température, l'intervalle va de -128 à +127 degré.&lt;br /&gt;
&lt;br /&gt;
La mesure de l'humidité ne pose aucun problème puisqu'elle s'effectue en pourcent.&lt;br /&gt;
&lt;br /&gt;
Ces conversions s'effectue avant l'affichage, par le script javascript.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Le côté serveur (Raspberry Pi) ====&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture_serveur_websockets.png|800px|frame|center|Aperçu de la réponse du serveur websocket quand il a reçu une requête de l'application web]]&lt;br /&gt;
&lt;br /&gt;
=== Partie electronique ===&lt;br /&gt;
&lt;br /&gt;
Le montage électrique final est en 2 partie, la partie Arduino et la partie FPGA.&lt;br /&gt;
Le montage Arduino est composé de la partie capteurs et la partie réception constitué d'un module Xbee fixé à un shield, relié à la Raspberry Pi.&lt;br /&gt;
Nous utilisons une liaison sans-fil Xbee pour récupérer les données des capteurs. Les Xbee sont des modules échangeant des données par communication série.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici la 1ere partie, la partie sensorielle :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Montage arduino.jpg|800px|frame|center|Partie émetteur du montage Arduino]]&lt;br /&gt;
&lt;br /&gt;
Voici la 2e partie, la réception surla Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Receveur_Xbee.jpg‎|800px|frame|center|Partie récepteur du montage Arduino]]&lt;br /&gt;
&lt;br /&gt;
La 2e partie, programmé par FPGA, est l'anémomètre. Ce circuit composé de 2 capteurs ultrasons, permet de détecter la vitesse du vent. Le principe est simple. Le vent est un déplacement de particules qui constituent l'air. Le son est le déplacement d'une onde mécanique dans l'air. Si les particules sont en mouvement pendant le déplacement de l'onde mécanique, alors la vitesse de cette onde est modifiée.&lt;br /&gt;
Le premier capteur émet une impulsion, au même moment, on déclenche un chronomètre. Ce chronomètre s'arrête quand le second capteur reçoit l'impulsion.&lt;br /&gt;
Il suffit de mesurer la vitesse de l'impulsion. En effectuant sa différence avec la vitesse d'une onde mécanique dans l'air quand les particules sont immobiles, on obtient la vitesse du vent.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Anemometre.jpg‎|800px|frame|center|Montage de l'anémomètre, ce montage permet de détecter la vitesse du vent dans une direction (au sens vectoriel)]]&lt;br /&gt;
&lt;br /&gt;
== Séance 1 ==&lt;br /&gt;
&lt;br /&gt;
=== Partie électronique ===&lt;br /&gt;
&lt;br /&gt;
Lors de cette première séance, nous avons pu récupérer et nous informer sur les capteurs BME280 et GA1A1S202WP. Après avoir regardé les documentations de ces deux capteurs, nous avons téléchargé la librairie permettant de faire fonctionner le capteur BME280 (https://github.com/adafruit/Adafruit_BME280_Library).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BME280.jpg|300px|frame|center|Capteur Adafruit BME280. Mesure la pression, la température et l'humiditée]] &lt;br /&gt;
&lt;br /&gt;
Une fois câblé comme il le fallait, nous avons donc d'abord testé le capteur BME280 et écrit un petit script Arduino qui affichait donc la température, la pression et l'humidité. Puis nous avons branché le capteur de luminosité (GA1A1S202WP) seul à l'arduino, et lancé un nouveau script qui affichait alors la luminosité en Lux de l'objet vers lequel on pointait le capteur. On a ainsi pu constaté une grande différence entre un ciel  nuageux, le soleil, et la luminosité de la pièce. Ces observation permettront à l'application web de déduire si le temps est clair ou nuageux uniquement grâce aux relevés du luxmètre.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Luxmetre.jpg‎|300px|frame|center|Capteur Adafruit GA1A12S202, mesure la lumière]]&lt;br /&gt;
&lt;br /&gt;
=== Partie informatique ===&lt;br /&gt;
&lt;br /&gt;
Nous avons effectué les test des capteurs BME280 et luxmètres sur une carte programmable Arduino Uno. Ces test nous ont permis de bien comprendre le fonctionnement de ces 2 capteurs.&lt;br /&gt;
Les données du capteur de luminosité se lisent très facilement sur un port analogique.&lt;br /&gt;
NOTE:Nous aurions pu le faire fonctionner par FPGA à l'aide d'un convertisseurs analogique numérique.&lt;br /&gt;
&lt;br /&gt;
Le capteur BME280, contrôlé par une puce, communique par protocole I2C ou SPI, nous devons donc utiliser une carte Arduino pour extraire les données du capteurs, du flot d'information envoyé par la puce. De plus, les données des capteurs sont envoyées à la carte arduino, uniquement si une demande de transfert a été envoyé à la puce du capteur. Le programme qui permet de lire les valeurs est donc complexe. Nous utilisons donc les bilbiothèques Adafruit_Sensor.h et Adafruit_BME280.h pour nous faciliter le travail.&lt;br /&gt;
&lt;br /&gt;
== Séance 2 ==&lt;br /&gt;
&lt;br /&gt;
=== Partie électronique ===&lt;br /&gt;
&lt;br /&gt;
Dans le but de faire notre anémomètre, nous avons commencé à faire un montage avec deux capteurs HC-SR04 : nous devons en placer un face à l'autre, le premier captant les ultrasons du second.&lt;br /&gt;
En effet, si on sait que v = d/t où v est une vitesse, d une distance et t un temps, le temps mis par les ultrasons pour aller d'un point A vers un point B en étant portés par un vent allant à une vitesse v est : tab = d/(v+c) où c est la vitesse du son. Dans l'autre sens, on obtient tba = d/(c-v) puisque le vent s'oppose à la propagation du son dans ce cas.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:AnémomètreVuUltrasson.jpg||left|500px|Câblage niveau capteur ultrason]][[Fichier:AnémomètreVuArduino.jpg||right|500px|Câblage niveau Arduino]]&lt;br /&gt;
&lt;br /&gt;
=== Partie informatique ===&lt;br /&gt;
&lt;br /&gt;
Initialisation et appairage des 2 modules Xbee. Ces modules servent à rendre sans-fil la connexion entre les capteurs et la Raspberry Pi sur laquelle se trouve le serveur websocket et l'application web. Ce choix est motivé par notre volonté d'avoir une station météo réaliste et portable. Ainsi des mesures peuvent être prise n'importe où.&lt;br /&gt;
Des difficultés de configuration ont rendu la réalisation de la tâche, très longue.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Préparation du serveur websocket. Nous utilisons un ordinateur Raspberry Pi comme &amp;quot;cerveau&amp;quot; de notre station météo. Elle se chargera de récupérer les données des capteurs et de les afficher sur l'application web. Nous avons modifié les différents fichiers de configuration. Nous avons notamment modifié les paramètres IP de la carte pour qu'elle soit accessible depuis les ordinateurs de Polytech. L'IP attribuée pour notre carte sera ''172.26.79.15''&lt;br /&gt;
&lt;br /&gt;
== Séance 3 ==&lt;br /&gt;
&lt;br /&gt;
=== Partie électronique ===&lt;br /&gt;
&lt;br /&gt;
=== Partie informatique ===&lt;br /&gt;
&lt;br /&gt;
Création du squelette HTML du site web et du début du script JavaScript. Nous utilisons uniquement la bibliothèque Jquery pour faciliter la manipulation du code HTML à travers JavaScript. Dans le fichier ''/js/script.js'', nous gérons la communication par le protocole websocket du côté application web. Nous l'initialisons, initialisons la fonction d'envoi et l'algorithme à exécuter quand l'évènement de réception de données est déclenché.&lt;br /&gt;
Pour le moment nous ne savons pas comment exactement envoyer les donnée, quel objet transmettre à la méthode ''send()'', pour avoir un bon traitement des données par le serveur.&lt;br /&gt;
&lt;br /&gt;
== Travail complémentaire ==&lt;br /&gt;
&lt;br /&gt;
Cette étape représente une majeure partie de l'avancée du projet.&lt;br /&gt;
=== Partie électronique ===&lt;br /&gt;
&lt;br /&gt;
=== Partie informatique ===&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé du protocole de communication entre application web et capteurs. L'application web doit envoyer le message 'GET' par websocket au serveur. Le programme du serveur envoie la requête 'GET' à l’Arduino, qui envoie un buffer d'octets. Chaque octet représente la valeur d'un capteur. Dans l'ordre d'envoi : la pression, la température, l'humidité, la luminosité. Le programme de la Raspberry Pi a pour rôle de transférer ces données à l'application web, sous le même format et dans le même ordre. &lt;br /&gt;
Le script JavaScript décompose le buffer de donnée et affiche le résultat dans les bonnes cases du tableau.&lt;br /&gt;
&lt;br /&gt;
==== Programme serveur ====&lt;br /&gt;
&lt;br /&gt;
Le fichier '''main.c''' contient le code source permettant de faire fonctionner le serveur websocket et la communication série.&lt;br /&gt;
La partie série a été relativement facile à mettre en place puisqu'elle est basé sur l'utilisation des fichier en langage C.&lt;br /&gt;
En revanche la partie websocket a été la plus compliqué à mettre en place puisqu'il faut suivre un certain protocole pour récupérer les données reçu et envoyer des données.&lt;br /&gt;
&lt;br /&gt;
'''Partie websockets'''&lt;br /&gt;
&lt;br /&gt;
L'étape de réception websocket permet de récupérer le mot 'GET'.&lt;br /&gt;
Pour lire des données reçu il faut allouer de la mémoire de la taille du buffer et ajouter la taille des chaînes d'octets enveloppant le buffer. A partir de la on peut stocker dans cette case le contenu ayant pour adresse &amp;quot;'''in'''&amp;quot;, étant un argument de la fonction de réception. Dans notre cas, le buffer a pour taille &amp;quot;'''len'''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    requete=malloc(len+LWS_SEND_BUFFER_PRE_PADDING+LWS_SEND_BUFFER_POST_PADDING);&lt;br /&gt;
    memcpy(requete,in,len);&lt;br /&gt;
&lt;br /&gt;
L'étape d'envoi permet d'envoyer les données des capteurs vers l'application web.&lt;br /&gt;
Pour envoyer un message, il faut allouer une case mémoire de taille égale à la taille du buffer à envoyer, plus les octets enveloppant le message. &lt;br /&gt;
    unsigned char *buf = malloc(LWS_SEND_BUFFER_PRE_PADDING + length + LWS_SEND_BUFFER_POST_PADDING);&lt;br /&gt;
Nous avons choisi le type '''char''' (allant de -127 à 127) car il équivaut à une variable de taille 1 octet. Nous l'avons mis unsigned (allant de 0 à 255) uniquement pour pouvoir correctement lire les valeurs des données dans la console. Ceci nous a permis de vérifier que nous recevions les bonnes donnée par le port série. Il faut savoir que le formatage des données n'est utile que si nous voulons afficher les valeurs. Comme nous échangeons 4 octets, nous aurions pu stocker le message entier dans une unique variable de type &amp;quot;'''int'''&amp;quot; puisque ce type de donnée en C est précisément de taille 4 octets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut copier le message que l'on souhaite envoyer dans la case mémoire située à l'adresse de la mémoire alloué plus la taille des octets de début :&lt;br /&gt;
    memcpy (buf + LWS_SEND_BUFFER_PRE_PADDING, reponse, length );&lt;br /&gt;
&amp;quot;'''length'''&amp;quot; étant la taille du message sans les octets entourant ce message.&lt;br /&gt;
&lt;br /&gt;
Enfin, on envoie le message avec une fonction fournie par la librairie ''libwebsockets''. Le message se trouve alors à l'adresse buf + LWS_SEND_BUFFER_PRE_PADDING, définie précédemment   :&lt;br /&gt;
    libwebsocket_write(wsi, buf + LWS_SEND_BUFFER_PRE_PADDING, length, LWS_WRITE_BINARY); //LWS_WRITE_TEXT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Partie série'''&lt;br /&gt;
&lt;br /&gt;
La fonction '''getDataFromSensors()''' gère la communication série entre la Raspberry Pi et l'arduino/FPGA.&lt;br /&gt;
&lt;br /&gt;
Pour envoyer un octets en série, il faut juste faire un ''write()''. Dans notre cas nous en avons 3, correspondant au message 'GET'. '''sizeOfRequest''' vaut 3.&lt;br /&gt;
&lt;br /&gt;
    for(i = 0; i &amp;lt; sizeOfRequest;i++)&lt;br /&gt;
    {&lt;br /&gt;
        if(write(sd,(void*)&amp;amp;request[i],sizeof(char))!=1)&lt;br /&gt;
        { &lt;br /&gt;
            perror(&amp;quot;main.write&amp;quot;); exit(-1); &lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
Pour recevoir un octet c'est le même principe mais avec la fonction ''read()''. Nous en recevons 4. Ce morceau de code est placé juste après la partie qui envoie un message, car le circuit arduino/FPGA envoie directement les données dès qu'ils reçoivent 'GET' :&lt;br /&gt;
&lt;br /&gt;
    for(i=0;i &amp;lt; 4;i++)&lt;br /&gt;
    {//on lit ce que nous envoie l'arduino à la suite de la requete GET&lt;br /&gt;
        if(read(sd,(void*)&amp;amp;reponse[i],sizeof(unsigned char))!=1)&lt;br /&gt;
        { &lt;br /&gt;
            perror(&amp;quot;main.read&amp;quot;); exit(-1); &lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Projet_IMA3_P2,_2016/2017,_TD2&amp;diff=44181</id>
		<title>Projet IMA3 P2, 2016/2017, TD2</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Projet_IMA3_P2,_2016/2017,_TD2&amp;diff=44181"/>
				<updated>2017-06-18T11:00:04Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : /* Partie électronique */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Projet IMA3-SC 2016/2017 : Station Météo =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Description du système ==&lt;br /&gt;
&lt;br /&gt;
Notre projet est de mettre en place une station météorologique permettant de connaître :&lt;br /&gt;
* la température&lt;br /&gt;
* la pression&lt;br /&gt;
* l'humidité de l'air &lt;br /&gt;
* la vitesse du vent &lt;br /&gt;
* la luminosité extérieur&lt;br /&gt;
&lt;br /&gt;
Les données de cette station météo seront visible par toute personne se connectant à une application web.&lt;br /&gt;
&lt;br /&gt;
=== Cahier des charges ===&lt;br /&gt;
* La station permettra de prendre des mesures chaque heure de manière automatique, mais il devra être possible d'utiliser une interface web afin de prendre des mesures de manière manuelle.&lt;br /&gt;
* L'utilisateur pourra accéder à la base de donnée de la station à partir du site web et visualiser les variations des données (température, vitesse du vent, ...) en fonction du temps ou encore d'afficher toutes les données disponibles pour un jour donné.&lt;br /&gt;
* La page d'accueil du site doit permettre la visualisation du temps qu'il fait (clair, grisâtre, pluvieux) et de la température actuelle. L'accès aux données enregistrées se fera via un champ de recherche situé plus bas sur la page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le capteur température-humidité-pression sera relié à une carte arduino Uno. L'anémomètre ainsi que le capteur de luminosité seront reliés directement à un FPGA.&lt;br /&gt;
L'arduino sera elle aussi reliée au FPGA. En effet le capteurs mesurant la température, la pression et l'humidité de l'air communique par protocole SPI avec le microcontrôleur auquel il est relié. C'est pourquoi l'arduino, qui peut communiquer par SPI, fera office d'interface entre le capteur et le FPGA.&lt;br /&gt;
La connexion entre le FPGA et la Raspberry Pi se fera par liaison série filaire. Il sera peut-être possible de remplacer, par la suite, la liaison filaire par une liaison sans-fil à l'aide de modules Xbee.&lt;br /&gt;
&lt;br /&gt;
=== Le matériel ===&lt;br /&gt;
&lt;br /&gt;
* 1 Raspberry Pi &lt;br /&gt;
* 1 Arduino Uno&lt;br /&gt;
* 1 Shield Xbee (pour l'arduino)&lt;br /&gt;
* 1 adaptateur Xbee-USB (pour la raspberry)&lt;br /&gt;
* 1 XBee T et R&lt;br /&gt;
* 1 Capteur température, pression et humidité (BME280)&lt;br /&gt;
* 1 Anémomètre fabriqué avec  4 émetteurs/récepteurs ultrason (HC-SR04)&lt;br /&gt;
* 1 capteur de luminosité (GA1A1S202WP)&lt;br /&gt;
&lt;br /&gt;
== Git du projet ==&lt;br /&gt;
'''L'intégralité du code source du projet se trouve sur l'archive.'''&lt;br /&gt;
&lt;br /&gt;
[https://archives.plil.fr/aknockae/projet_SC_IMA3.git Archive du projet]&lt;br /&gt;
&lt;br /&gt;
L'archive du projet contient tous les codes sources. &lt;br /&gt;
Se trouvant dans le dossier /appWeb :&lt;br /&gt;
* index.html, page sur laquelle seront affichée les données.&lt;br /&gt;
/appWeb/js&lt;br /&gt;
* script.js, le script javascript qui gère la communication entre la page et le serveurs.&lt;br /&gt;
&lt;br /&gt;
/prog&lt;br /&gt;
* main.c, le script principale C qui gère la communication entre les capteurs et l'application Web.&lt;br /&gt;
&lt;br /&gt;
/code arduino&lt;br /&gt;
* serialArduino/, dossier contenant le programme arduino permettant de récupérer les données du capteur BME280, qui les envoient par liaison série à la carte Arduino. Pour l'instant le Xbee n'est pas pris en charge&lt;br /&gt;
* Plusieurs dossier contenant la librairie du capteur BME280, les test du port série, de la communication série par Xbee, etc...&lt;br /&gt;
&lt;br /&gt;
== Réalisation ==&lt;br /&gt;
&lt;br /&gt;
=== Partie informatique ===&lt;br /&gt;
&lt;br /&gt;
==== L'application web ====&lt;br /&gt;
&lt;br /&gt;
[[ Image:Capture_web.png | frame | center | 800 | aperçu de l'application web connectée au serveur websockets ]]&lt;br /&gt;
L'application web consiste en une page web codé en HTML. La partie dynamique de la page est codée en JavaScript avec l'aide de la bibliothèque Jquery.&lt;br /&gt;
&lt;br /&gt;
La page web contient :&amp;lt;br/&amp;gt;&lt;br /&gt;
- Un indicateur permettant d'informer l'utilisateur de l'état de la connexion au serveur websockets&amp;lt;br/&amp;gt;&lt;br /&gt;
- Un tableau présentant les relevé météo des capteurs&amp;lt;br/&amp;gt;&lt;br /&gt;
- Un bouton permettant de rafraîchir les données&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'indicateur permet de savoir si l'application est connectée au serveur Websockets, celui-ci se met en rouge si la connexion est absente ou si il y a un problème.&lt;br /&gt;
Le tableau affiche des valeurs entières. Ces valeurs n'ont donc qu'un cardinal restreint de 256 valeurs. Ceci constitue une limite principale de notre système, la précision.&lt;br /&gt;
&lt;br /&gt;
Le bouton qui permet de rafraîchir les données est appelle lors du clique, une fonction javascript chargé d'envoyer un signal &amp;quot;GET&amp;quot; au serveur websocket.&lt;br /&gt;
Le programme codé en C, envoie alors les données sous forme de 3 octets. Ces 3 octets représentent dans l'ordre, la pression, la température et l’humidité.&lt;br /&gt;
&lt;br /&gt;
Pour gérer les octets de donnée, nous avons utilisé un tableau typé javascript de type &amp;lt;em&amp;gt;Uint8ClampedArray&amp;lt;/em&amp;gt;. Toute donnée de ce tableau est de taille 8 bits et sa valeur est un entier non-signé.&lt;br /&gt;
&lt;br /&gt;
Cette structure est très pratique dans notre cas puisque elle permet à la fois de formater la requête &amp;quot;GET&amp;quot; pour l'envoi au serveur websocket mais aussi les donnée reçu du serveur websocket, pour la lecture. La communication entre le site et le serveur se fait par envoi et réception d'une suite d'octets.&lt;br /&gt;
&lt;br /&gt;
Dans le cas de l'émission, chaque lettre du mot &amp;quot;GET&amp;quot; sont converties en un octet. Ces octets sont mis bout à bout en utilisant un tableau typé. Il suffit juste d'envoyer le buffer de données du tableau en argument à la fonction send(), qui envoie les donnée au serveur.&lt;br /&gt;
&lt;br /&gt;
Dans le cas de la réception, le serveur envoie les octets les uns à la suite des autres. L'application web les récupères sous forme d'un buffer. On crée un autre tableau typé à partir de ce buffer, il &amp;quot;découpe&amp;quot; la chaîne d'octet ce qui permet de les différencier et facilite leurs traitement. Enfin on affiche ces octets dans les bonnes cases du tableau.&lt;br /&gt;
&lt;br /&gt;
Étant donné que les valeurs échangée ne vont que de 0 à 255, il a fallut effectuer quelques conversions.&lt;br /&gt;
La pression moyenne au niveau de la mer vaut généralement 1013 hPa. Les relevé météo n'ont jamais relevé de pression en dessous de 845 hPa ni au dessus de 1100 hPa. Partant de ce principe, la valeur affichée sur le site ne sortira jamais de cette intervalle de taille 255.&lt;br /&gt;
&lt;br /&gt;
Pour la température, l'intervalle va de -128 à +127 degré.&lt;br /&gt;
&lt;br /&gt;
La mesure de l'humidité ne pose aucun problème puisqu'elle s'effectue en pourcent.&lt;br /&gt;
&lt;br /&gt;
Ces conversions s'effectue avant l'affichage, par le script javascript.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Le côté serveur (Raspberry Pi) ====&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture_serveur_websockets.png|800px|frame|center|Aperçu de la réponse du serveur websocket quand il a reçu une requête de l'application web]]&lt;br /&gt;
&lt;br /&gt;
=== Partie electronique ===&lt;br /&gt;
&lt;br /&gt;
Le montage électrique final est en 2 partie, la partie Arduino et la partie FPGA.&lt;br /&gt;
Le montage Arduino est composé de la partie capteurs et la partie réception constitué d'un module Xbee fixé à un shield, relié à la Raspberry Pi.&lt;br /&gt;
Nous utilisons une liaison sans-fil Xbee pour récupérer les données des capteurs. Les Xbee sont des modules échangeant des données par communication série.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici la 1ere partie, la partie sensorielle :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Montage arduino.jpg|800px|frame|center|Partie émetteur du montage Arduino]]&lt;br /&gt;
&lt;br /&gt;
Voici la 2e partie, la réception surla Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Receveur_Xbee.jpg‎|800px|frame|center|Partie récepteur du montage Arduino]]&lt;br /&gt;
&lt;br /&gt;
La 2e partie, programmé par FPGA, est l'anémomètre. Ce circuit composé de 2 capteurs ultrasons, permet de détecter la vitesse du vent. Le principe est simple. Le vent est un déplacement de particules qui constituent l'air. Le son est le déplacement d'une onde mécanique dans l'air. Si les particules sont en mouvement pendant le déplacement de l'onde mécanique, alors la vitesse de cette onde est modifiée.&lt;br /&gt;
Le premier capteur émet une impulsion, au même moment, on déclenche un chronomètre. Ce chronomètre s'arrête quand le second capteur reçoit l'impulsion.&lt;br /&gt;
Il suffit de mesurer la vitesse de l'impulsion. En effectuant sa différence avec la vitesse d'une onde mécanique dans l'air quand les particules sont immobiles, on obtient la vitesse du vent.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Anemometre.jpg‎|800px|frame|center|Montage de l'anémomètre, ce montage permet de détecter la vitesse du vent dans une direction (au sens vectoriel)]]&lt;br /&gt;
&lt;br /&gt;
== Séance 1 ==&lt;br /&gt;
&lt;br /&gt;
=== Partie électronique ===&lt;br /&gt;
&lt;br /&gt;
Lors de cette première séance, nous avons pu récupérer et nous informer sur les capteurs BME280 et GA1A1S202WP. Après avoir regardé les documentations de ces deux capteurs, nous avons téléchargé la librairie permettant de faire fonctionner le capteur BME280 (https://github.com/adafruit/Adafruit_BME280_Library).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BME280.jpg|300px|frame|center|Capteur Adafruit BME280. Mesure la pression, la température et l'humiditée]] &lt;br /&gt;
&lt;br /&gt;
Une fois câblé comme il le fallait, nous avons donc d'abord testé le capteur BME280 et écrit un petit script Arduino qui affichait donc la température, la pression et l'humidité. Puis nous avons branché le capteur de luminosité (GA1A1S202WP) seul à l'arduino, et lancé un nouveau script qui affichait alors la luminosité en Lux de l'objet vers lequel on pointait le capteur. On a ainsi pu constaté une grande différence entre un ciel  nuageux, le soleil, et la luminosité de la pièce. Ces observation permettront à l'application web de déduire si le temps est clair ou nuageux uniquement grâce aux relevés du luxmètre.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Luxmetre.jpg‎|300px|frame|center|Capteur Adafruit GA1A12S202, mesure la lumière]]&lt;br /&gt;
&lt;br /&gt;
=== Partie informatique ===&lt;br /&gt;
&lt;br /&gt;
Nous avons effectué les test des capteurs BME280 et luxmètres sur une carte programmable Arduino Uno. Ces test nous ont permis de bien comprendre le fonctionnement de ces 2 capteurs.&lt;br /&gt;
Les données du capteur de luminosité se lisent très facilement sur un port analogique.&lt;br /&gt;
NOTE:Nous aurions pu le faire fonctionner par FPGA à l'aide d'un convertisseurs analogique numérique.&lt;br /&gt;
&lt;br /&gt;
Le capteur BME280, contrôlé par une puce, communique par protocole I2C ou SPI, nous devons donc utiliser une carte Arduino pour extraire les données du capteurs, du flot d'information envoyé par la puce. De plus, les données des capteurs sont envoyées à la carte arduino, uniquement si une demande de transfert a été envoyé à la puce du capteur. Le programme qui permet de lire les valeurs est donc complexe. Nous utilisons donc les bilbiothèques Adafruit_Sensor.h et Adafruit_BME280.h pour nous faciliter le travail.&lt;br /&gt;
&lt;br /&gt;
== Séance 2 ==&lt;br /&gt;
&lt;br /&gt;
=== Partie électronique ===&lt;br /&gt;
&lt;br /&gt;
Dans le but de faire notre anémomètre, nous avons commencé à faire un montage avec deux capteurs HC-SR04 : nous devons en placer un face à l'autre, le premier captant les ultrasons du second.&lt;br /&gt;
En effet, si on sait que v = d/t où v est une vitesse, d une distance et t un temps, le temps mis par les ultrasons pour aller d'un point A vers un point B en étant portés par un vent allant à une vitesse v est : tab = d/(v+c) où c est la vitesse du son. Dans l'autre sens, on obtient tba = d/(c-v) puisque le vent s'oppose à la propagation du son dans ce cas.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:AnémomètreVuUltrasson.jpg||left|400px|Câblage niveau capteur ultrason]][[Fichier:AnémomètreVuArduino.jpg||right|400px|Câblage niveau Arduino]]&lt;br /&gt;
&lt;br /&gt;
=== Partie informatique ===&lt;br /&gt;
&lt;br /&gt;
Initialisation et appairage des 2 modules Xbee. Ces modules servent à rendre sans-fil la connexion entre les capteurs et la Raspberry Pi sur laquelle se trouve le serveur websocket et l'application web. Ce choix est motivé par notre volonté d'avoir une station météo réaliste et portable. Ainsi des mesures peuvent être prise n'importe où.&lt;br /&gt;
Des difficultés de configuration ont rendu la réalisation de la tâche, très longue.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Préparation du serveur websocket. Nous utilisons un ordinateur Raspberry Pi comme &amp;quot;cerveau&amp;quot; de notre station météo. Elle se chargera de récupérer les données des capteurs et de les afficher sur l'application web. Nous avons modifié les différents fichiers de configuration. Nous avons notamment modifié les paramètres IP de la carte pour qu'elle soit accessible depuis les ordinateurs de Polytech. L'IP attribuée pour notre carte sera ''172.26.79.15''&lt;br /&gt;
&lt;br /&gt;
== Séance 3 ==&lt;br /&gt;
&lt;br /&gt;
=== Partie électronique ===&lt;br /&gt;
&lt;br /&gt;
=== Partie informatique ===&lt;br /&gt;
&lt;br /&gt;
Création du squelette HTML du site web et du début du script JavaScript. Nous utilisons uniquement la bibliothèque Jquery pour faciliter la manipulation du code HTML à travers JavaScript. Dans le fichier ''/js/script.js'', nous gérons la communication par le protocole websocket du côté application web. Nous l'initialisons, initialisons la fonction d'envoi et l'algorithme à exécuter quand l'évènement de réception de données est déclenché.&lt;br /&gt;
Pour le moment nous ne savons pas comment exactement envoyer les donnée, quel objet transmettre à la méthode ''send()'', pour avoir un bon traitement des données par le serveur.&lt;br /&gt;
&lt;br /&gt;
== Travail complémentaire ==&lt;br /&gt;
&lt;br /&gt;
Cette étape représente une majeure partie de l'avancée du projet.&lt;br /&gt;
=== Partie électronique ===&lt;br /&gt;
&lt;br /&gt;
=== Partie informatique ===&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé du protocole de communication entre application web et capteurs. L'application web doit envoyer le message 'GET' par websocket au serveur. Le programme du serveur envoie la requête 'GET' à l’Arduino, qui envoie un buffer d'octets. Chaque octet représente la valeur d'un capteur. Dans l'ordre d'envoi : la pression, la température, l'humidité, la luminosité. Le programme de la Raspberry Pi a pour rôle de transférer ces données à l'application web, sous le même format et dans le même ordre. &lt;br /&gt;
Le script JavaScript décompose le buffer de donnée et affiche le résultat dans les bonnes cases du tableau.&lt;br /&gt;
&lt;br /&gt;
==== Programme serveur ====&lt;br /&gt;
&lt;br /&gt;
Le fichier '''main.c''' contient le code source permettant de faire fonctionner le serveur websocket et la communication série.&lt;br /&gt;
La partie série a été relativement facile à mettre en place puisqu'elle est basé sur l'utilisation des fichier en langage C.&lt;br /&gt;
En revanche la partie websocket a été la plus compliqué à mettre en place puisqu'il faut suivre un certain protocole pour récupérer les données reçu et envoyer des données.&lt;br /&gt;
&lt;br /&gt;
'''Partie websockets'''&lt;br /&gt;
&lt;br /&gt;
L'étape de réception websocket permet de récupérer le mot 'GET'.&lt;br /&gt;
Pour lire des données reçu il faut allouer de la mémoire de la taille du buffer et ajouter la taille des chaînes d'octets enveloppant le buffer. A partir de la on peut stocker dans cette case le contenu ayant pour adresse &amp;quot;'''in'''&amp;quot;, étant un argument de la fonction de réception. Dans notre cas, le buffer a pour taille &amp;quot;'''len'''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    requete=malloc(len+LWS_SEND_BUFFER_PRE_PADDING+LWS_SEND_BUFFER_POST_PADDING);&lt;br /&gt;
    memcpy(requete,in,len);&lt;br /&gt;
&lt;br /&gt;
L'étape d'envoi permet d'envoyer les données des capteurs vers l'application web.&lt;br /&gt;
Pour envoyer un message, il faut allouer une case mémoire de taille égale à la taille du buffer à envoyer, plus les octets enveloppant le message. &lt;br /&gt;
    unsigned char *buf = malloc(LWS_SEND_BUFFER_PRE_PADDING + length + LWS_SEND_BUFFER_POST_PADDING);&lt;br /&gt;
Nous avons choisi le type '''char''' (allant de -127 à 127) car il équivaut à une variable de taille 1 octet. Nous l'avons mis unsigned (allant de 0 à 255) uniquement pour pouvoir correctement lire les valeurs des données dans la console. Ceci nous a permis de vérifier que nous recevions les bonnes donnée par le port série. Il faut savoir que le formatage des données n'est utile que si nous voulons afficher les valeurs. Comme nous échangeons 4 octets, nous aurions pu stocker le message entier dans une unique variable de type &amp;quot;'''int'''&amp;quot; puisque ce type de donnée en C est précisément de taille 4 octets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut copier le message que l'on souhaite envoyer dans la case mémoire située à l'adresse de la mémoire alloué plus la taille des octets de début :&lt;br /&gt;
    memcpy (buf + LWS_SEND_BUFFER_PRE_PADDING, reponse, length );&lt;br /&gt;
&amp;quot;'''length'''&amp;quot; étant la taille du message sans les octets entourant ce message.&lt;br /&gt;
&lt;br /&gt;
Enfin, on envoie le message avec une fonction fournie par la librairie ''libwebsockets''. Le message se trouve alors à l'adresse buf + LWS_SEND_BUFFER_PRE_PADDING, définie précédemment   :&lt;br /&gt;
    libwebsocket_write(wsi, buf + LWS_SEND_BUFFER_PRE_PADDING, length, LWS_WRITE_BINARY); //LWS_WRITE_TEXT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Partie série'''&lt;br /&gt;
&lt;br /&gt;
La fonction '''getDataFromSensors()''' gère la communication série entre la Raspberry Pi et l'arduino/FPGA.&lt;br /&gt;
&lt;br /&gt;
Pour envoyer un octets en série, il faut juste faire un ''write()''. Dans notre cas nous en avons 3, correspondant au message 'GET'. '''sizeOfRequest''' vaut 3.&lt;br /&gt;
&lt;br /&gt;
    for(i = 0; i &amp;lt; sizeOfRequest;i++)&lt;br /&gt;
    {&lt;br /&gt;
        if(write(sd,(void*)&amp;amp;request[i],sizeof(char))!=1)&lt;br /&gt;
        { &lt;br /&gt;
            perror(&amp;quot;main.write&amp;quot;); exit(-1); &lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
Pour recevoir un octet c'est le même principe mais avec la fonction ''read()''. Nous en recevons 4. Ce morceau de code est placé juste après la partie qui envoie un message, car le circuit arduino/FPGA envoie directement les données dès qu'ils reçoivent 'GET' :&lt;br /&gt;
&lt;br /&gt;
    for(i=0;i &amp;lt; 4;i++)&lt;br /&gt;
    {//on lit ce que nous envoie l'arduino à la suite de la requete GET&lt;br /&gt;
        if(read(sd,(void*)&amp;amp;reponse[i],sizeof(unsigned char))!=1)&lt;br /&gt;
        { &lt;br /&gt;
            perror(&amp;quot;main.read&amp;quot;); exit(-1); &lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Projet_IMA3_P2,_2016/2017,_TD2&amp;diff=44180</id>
		<title>Projet IMA3 P2, 2016/2017, TD2</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Projet_IMA3_P2,_2016/2017,_TD2&amp;diff=44180"/>
				<updated>2017-06-18T10:59:11Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : /* Partie électronique */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Projet IMA3-SC 2016/2017 : Station Météo =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Description du système ==&lt;br /&gt;
&lt;br /&gt;
Notre projet est de mettre en place une station météorologique permettant de connaître :&lt;br /&gt;
* la température&lt;br /&gt;
* la pression&lt;br /&gt;
* l'humidité de l'air &lt;br /&gt;
* la vitesse du vent &lt;br /&gt;
* la luminosité extérieur&lt;br /&gt;
&lt;br /&gt;
Les données de cette station météo seront visible par toute personne se connectant à une application web.&lt;br /&gt;
&lt;br /&gt;
=== Cahier des charges ===&lt;br /&gt;
* La station permettra de prendre des mesures chaque heure de manière automatique, mais il devra être possible d'utiliser une interface web afin de prendre des mesures de manière manuelle.&lt;br /&gt;
* L'utilisateur pourra accéder à la base de donnée de la station à partir du site web et visualiser les variations des données (température, vitesse du vent, ...) en fonction du temps ou encore d'afficher toutes les données disponibles pour un jour donné.&lt;br /&gt;
* La page d'accueil du site doit permettre la visualisation du temps qu'il fait (clair, grisâtre, pluvieux) et de la température actuelle. L'accès aux données enregistrées se fera via un champ de recherche situé plus bas sur la page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le capteur température-humidité-pression sera relié à une carte arduino Uno. L'anémomètre ainsi que le capteur de luminosité seront reliés directement à un FPGA.&lt;br /&gt;
L'arduino sera elle aussi reliée au FPGA. En effet le capteurs mesurant la température, la pression et l'humidité de l'air communique par protocole SPI avec le microcontrôleur auquel il est relié. C'est pourquoi l'arduino, qui peut communiquer par SPI, fera office d'interface entre le capteur et le FPGA.&lt;br /&gt;
La connexion entre le FPGA et la Raspberry Pi se fera par liaison série filaire. Il sera peut-être possible de remplacer, par la suite, la liaison filaire par une liaison sans-fil à l'aide de modules Xbee.&lt;br /&gt;
&lt;br /&gt;
=== Le matériel ===&lt;br /&gt;
&lt;br /&gt;
* 1 Raspberry Pi &lt;br /&gt;
* 1 Arduino Uno&lt;br /&gt;
* 1 Shield Xbee (pour l'arduino)&lt;br /&gt;
* 1 adaptateur Xbee-USB (pour la raspberry)&lt;br /&gt;
* 1 XBee T et R&lt;br /&gt;
* 1 Capteur température, pression et humidité (BME280)&lt;br /&gt;
* 1 Anémomètre fabriqué avec  4 émetteurs/récepteurs ultrason (HC-SR04)&lt;br /&gt;
* 1 capteur de luminosité (GA1A1S202WP)&lt;br /&gt;
&lt;br /&gt;
== Git du projet ==&lt;br /&gt;
'''L'intégralité du code source du projet se trouve sur l'archive.'''&lt;br /&gt;
&lt;br /&gt;
[https://archives.plil.fr/aknockae/projet_SC_IMA3.git Archive du projet]&lt;br /&gt;
&lt;br /&gt;
L'archive du projet contient tous les codes sources. &lt;br /&gt;
Se trouvant dans le dossier /appWeb :&lt;br /&gt;
* index.html, page sur laquelle seront affichée les données.&lt;br /&gt;
/appWeb/js&lt;br /&gt;
* script.js, le script javascript qui gère la communication entre la page et le serveurs.&lt;br /&gt;
&lt;br /&gt;
/prog&lt;br /&gt;
* main.c, le script principale C qui gère la communication entre les capteurs et l'application Web.&lt;br /&gt;
&lt;br /&gt;
/code arduino&lt;br /&gt;
* serialArduino/, dossier contenant le programme arduino permettant de récupérer les données du capteur BME280, qui les envoient par liaison série à la carte Arduino. Pour l'instant le Xbee n'est pas pris en charge&lt;br /&gt;
* Plusieurs dossier contenant la librairie du capteur BME280, les test du port série, de la communication série par Xbee, etc...&lt;br /&gt;
&lt;br /&gt;
== Réalisation ==&lt;br /&gt;
&lt;br /&gt;
=== Partie informatique ===&lt;br /&gt;
&lt;br /&gt;
==== L'application web ====&lt;br /&gt;
&lt;br /&gt;
[[ Image:Capture_web.png | frame | center | 800 | aperçu de l'application web connectée au serveur websockets ]]&lt;br /&gt;
L'application web consiste en une page web codé en HTML. La partie dynamique de la page est codée en JavaScript avec l'aide de la bibliothèque Jquery.&lt;br /&gt;
&lt;br /&gt;
La page web contient :&amp;lt;br/&amp;gt;&lt;br /&gt;
- Un indicateur permettant d'informer l'utilisateur de l'état de la connexion au serveur websockets&amp;lt;br/&amp;gt;&lt;br /&gt;
- Un tableau présentant les relevé météo des capteurs&amp;lt;br/&amp;gt;&lt;br /&gt;
- Un bouton permettant de rafraîchir les données&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'indicateur permet de savoir si l'application est connectée au serveur Websockets, celui-ci se met en rouge si la connexion est absente ou si il y a un problème.&lt;br /&gt;
Le tableau affiche des valeurs entières. Ces valeurs n'ont donc qu'un cardinal restreint de 256 valeurs. Ceci constitue une limite principale de notre système, la précision.&lt;br /&gt;
&lt;br /&gt;
Le bouton qui permet de rafraîchir les données est appelle lors du clique, une fonction javascript chargé d'envoyer un signal &amp;quot;GET&amp;quot; au serveur websocket.&lt;br /&gt;
Le programme codé en C, envoie alors les données sous forme de 3 octets. Ces 3 octets représentent dans l'ordre, la pression, la température et l’humidité.&lt;br /&gt;
&lt;br /&gt;
Pour gérer les octets de donnée, nous avons utilisé un tableau typé javascript de type &amp;lt;em&amp;gt;Uint8ClampedArray&amp;lt;/em&amp;gt;. Toute donnée de ce tableau est de taille 8 bits et sa valeur est un entier non-signé.&lt;br /&gt;
&lt;br /&gt;
Cette structure est très pratique dans notre cas puisque elle permet à la fois de formater la requête &amp;quot;GET&amp;quot; pour l'envoi au serveur websocket mais aussi les donnée reçu du serveur websocket, pour la lecture. La communication entre le site et le serveur se fait par envoi et réception d'une suite d'octets.&lt;br /&gt;
&lt;br /&gt;
Dans le cas de l'émission, chaque lettre du mot &amp;quot;GET&amp;quot; sont converties en un octet. Ces octets sont mis bout à bout en utilisant un tableau typé. Il suffit juste d'envoyer le buffer de données du tableau en argument à la fonction send(), qui envoie les donnée au serveur.&lt;br /&gt;
&lt;br /&gt;
Dans le cas de la réception, le serveur envoie les octets les uns à la suite des autres. L'application web les récupères sous forme d'un buffer. On crée un autre tableau typé à partir de ce buffer, il &amp;quot;découpe&amp;quot; la chaîne d'octet ce qui permet de les différencier et facilite leurs traitement. Enfin on affiche ces octets dans les bonnes cases du tableau.&lt;br /&gt;
&lt;br /&gt;
Étant donné que les valeurs échangée ne vont que de 0 à 255, il a fallut effectuer quelques conversions.&lt;br /&gt;
La pression moyenne au niveau de la mer vaut généralement 1013 hPa. Les relevé météo n'ont jamais relevé de pression en dessous de 845 hPa ni au dessus de 1100 hPa. Partant de ce principe, la valeur affichée sur le site ne sortira jamais de cette intervalle de taille 255.&lt;br /&gt;
&lt;br /&gt;
Pour la température, l'intervalle va de -128 à +127 degré.&lt;br /&gt;
&lt;br /&gt;
La mesure de l'humidité ne pose aucun problème puisqu'elle s'effectue en pourcent.&lt;br /&gt;
&lt;br /&gt;
Ces conversions s'effectue avant l'affichage, par le script javascript.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Le côté serveur (Raspberry Pi) ====&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture_serveur_websockets.png|800px|frame|center|Aperçu de la réponse du serveur websocket quand il a reçu une requête de l'application web]]&lt;br /&gt;
&lt;br /&gt;
=== Partie electronique ===&lt;br /&gt;
&lt;br /&gt;
Le montage électrique final est en 2 partie, la partie Arduino et la partie FPGA.&lt;br /&gt;
Le montage Arduino est composé de la partie capteurs et la partie réception constitué d'un module Xbee fixé à un shield, relié à la Raspberry Pi.&lt;br /&gt;
Nous utilisons une liaison sans-fil Xbee pour récupérer les données des capteurs. Les Xbee sont des modules échangeant des données par communication série.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici la 1ere partie, la partie sensorielle :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Montage arduino.jpg|800px|frame|center|Partie émetteur du montage Arduino]]&lt;br /&gt;
&lt;br /&gt;
Voici la 2e partie, la réception surla Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Receveur_Xbee.jpg‎|800px|frame|center|Partie récepteur du montage Arduino]]&lt;br /&gt;
&lt;br /&gt;
La 2e partie, programmé par FPGA, est l'anémomètre. Ce circuit composé de 2 capteurs ultrasons, permet de détecter la vitesse du vent. Le principe est simple. Le vent est un déplacement de particules qui constituent l'air. Le son est le déplacement d'une onde mécanique dans l'air. Si les particules sont en mouvement pendant le déplacement de l'onde mécanique, alors la vitesse de cette onde est modifiée.&lt;br /&gt;
Le premier capteur émet une impulsion, au même moment, on déclenche un chronomètre. Ce chronomètre s'arrête quand le second capteur reçoit l'impulsion.&lt;br /&gt;
Il suffit de mesurer la vitesse de l'impulsion. En effectuant sa différence avec la vitesse d'une onde mécanique dans l'air quand les particules sont immobiles, on obtient la vitesse du vent.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Anemometre.jpg‎|800px|frame|center|Montage de l'anémomètre, ce montage permet de détecter la vitesse du vent dans une direction (au sens vectoriel)]]&lt;br /&gt;
&lt;br /&gt;
== Séance 1 ==&lt;br /&gt;
&lt;br /&gt;
=== Partie électronique ===&lt;br /&gt;
&lt;br /&gt;
Lors de cette première séance, nous avons pu récupérer et nous informer sur les capteurs BME280 et GA1A1S202WP. Après avoir regardé les documentations de ces deux capteurs, nous avons téléchargé la librairie permettant de faire fonctionner le capteur BME280 (https://github.com/adafruit/Adafruit_BME280_Library).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:BME280.jpg|300px|frame|center|Capteur Adafruit BME280. Mesure la pression, la température et l'humiditée]] &lt;br /&gt;
&lt;br /&gt;
Une fois câblé comme il le fallait, nous avons donc d'abord testé le capteur BME280 et écrit un petit script Arduino qui affichait donc la température, la pression et l'humidité. Puis nous avons branché le capteur de luminosité (GA1A1S202WP) seul à l'arduino, et lancé un nouveau script qui affichait alors la luminosité en Lux de l'objet vers lequel on pointait le capteur. On a ainsi pu constaté une grande différence entre un ciel  nuageux, le soleil, et la luminosité de la pièce. Ces observation permettront à l'application web de déduire si le temps est clair ou nuageux uniquement grâce aux relevés du luxmètre.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Luxmetre.jpg‎|300px|frame|center|Capteur Adafruit GA1A12S202, mesure la lumière]]&lt;br /&gt;
&lt;br /&gt;
=== Partie informatique ===&lt;br /&gt;
&lt;br /&gt;
Nous avons effectué les test des capteurs BME280 et luxmètres sur une carte programmable Arduino Uno. Ces test nous ont permis de bien comprendre le fonctionnement de ces 2 capteurs.&lt;br /&gt;
Les données du capteur de luminosité se lisent très facilement sur un port analogique.&lt;br /&gt;
NOTE:Nous aurions pu le faire fonctionner par FPGA à l'aide d'un convertisseurs analogique numérique.&lt;br /&gt;
&lt;br /&gt;
Le capteur BME280, contrôlé par une puce, communique par protocole I2C ou SPI, nous devons donc utiliser une carte Arduino pour extraire les données du capteurs, du flot d'information envoyé par la puce. De plus, les données des capteurs sont envoyées à la carte arduino, uniquement si une demande de transfert a été envoyé à la puce du capteur. Le programme qui permet de lire les valeurs est donc complexe. Nous utilisons donc les bilbiothèques Adafruit_Sensor.h et Adafruit_BME280.h pour nous faciliter le travail.&lt;br /&gt;
&lt;br /&gt;
== Séance 2 ==&lt;br /&gt;
&lt;br /&gt;
=== Partie électronique ===&lt;br /&gt;
&lt;br /&gt;
Dans le but de faire notre anémomètre, nous avons commencé à faire un montage avec deux capteurs HC-SR04 : nous devons en placer un face à l'autre, le premier captant les ultrasons du second.&lt;br /&gt;
En effet, si on sait que v = d/t où v est une vitesse, d une distance et t un temps, le temps mis par les ultrasons pour aller d'un point A vers un point B en étant portés par un vent allant à une vitesse v est : tab = d/(v+c) où c est la vitesse du son. Dans l'autre sens, on obtient tba = d/(c-v) puisque le vent s'oppose à la propagation du son dans ce cas.&lt;br /&gt;
[[Fichier:AnémomètreVuUltrasson.jpg||left|400px|Câblage niveau capteur ultrason]][[Fichier:AnémomètreVuArduino.jpg||right|400px|Câblage niveau Arduino]]&lt;br /&gt;
&lt;br /&gt;
=== Partie informatique ===&lt;br /&gt;
&lt;br /&gt;
Initialisation et appairage des 2 modules Xbee. Ces modules servent à rendre sans-fil la connexion entre les capteurs et la Raspberry Pi sur laquelle se trouve le serveur websocket et l'application web. Ce choix est motivé par notre volonté d'avoir une station météo réaliste et portable. Ainsi des mesures peuvent être prise n'importe où.&lt;br /&gt;
Des difficultés de configuration ont rendu la réalisation de la tâche, très longue.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Préparation du serveur websocket. Nous utilisons un ordinateur Raspberry Pi comme &amp;quot;cerveau&amp;quot; de notre station météo. Elle se chargera de récupérer les données des capteurs et de les afficher sur l'application web. Nous avons modifié les différents fichiers de configuration. Nous avons notamment modifié les paramètres IP de la carte pour qu'elle soit accessible depuis les ordinateurs de Polytech. L'IP attribuée pour notre carte sera ''172.26.79.15''&lt;br /&gt;
&lt;br /&gt;
== Séance 3 ==&lt;br /&gt;
&lt;br /&gt;
=== Partie électronique ===&lt;br /&gt;
&lt;br /&gt;
=== Partie informatique ===&lt;br /&gt;
&lt;br /&gt;
Création du squelette HTML du site web et du début du script JavaScript. Nous utilisons uniquement la bibliothèque Jquery pour faciliter la manipulation du code HTML à travers JavaScript. Dans le fichier ''/js/script.js'', nous gérons la communication par le protocole websocket du côté application web. Nous l'initialisons, initialisons la fonction d'envoi et l'algorithme à exécuter quand l'évènement de réception de données est déclenché.&lt;br /&gt;
Pour le moment nous ne savons pas comment exactement envoyer les donnée, quel objet transmettre à la méthode ''send()'', pour avoir un bon traitement des données par le serveur.&lt;br /&gt;
&lt;br /&gt;
== Travail complémentaire ==&lt;br /&gt;
&lt;br /&gt;
Cette étape représente une majeure partie de l'avancée du projet.&lt;br /&gt;
=== Partie électronique ===&lt;br /&gt;
&lt;br /&gt;
=== Partie informatique ===&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé du protocole de communication entre application web et capteurs. L'application web doit envoyer le message 'GET' par websocket au serveur. Le programme du serveur envoie la requête 'GET' à l’Arduino, qui envoie un buffer d'octets. Chaque octet représente la valeur d'un capteur. Dans l'ordre d'envoi : la pression, la température, l'humidité, la luminosité. Le programme de la Raspberry Pi a pour rôle de transférer ces données à l'application web, sous le même format et dans le même ordre. &lt;br /&gt;
Le script JavaScript décompose le buffer de donnée et affiche le résultat dans les bonnes cases du tableau.&lt;br /&gt;
&lt;br /&gt;
==== Programme serveur ====&lt;br /&gt;
&lt;br /&gt;
Le fichier '''main.c''' contient le code source permettant de faire fonctionner le serveur websocket et la communication série.&lt;br /&gt;
La partie série a été relativement facile à mettre en place puisqu'elle est basé sur l'utilisation des fichier en langage C.&lt;br /&gt;
En revanche la partie websocket a été la plus compliqué à mettre en place puisqu'il faut suivre un certain protocole pour récupérer les données reçu et envoyer des données.&lt;br /&gt;
&lt;br /&gt;
'''Partie websockets'''&lt;br /&gt;
&lt;br /&gt;
L'étape de réception websocket permet de récupérer le mot 'GET'.&lt;br /&gt;
Pour lire des données reçu il faut allouer de la mémoire de la taille du buffer et ajouter la taille des chaînes d'octets enveloppant le buffer. A partir de la on peut stocker dans cette case le contenu ayant pour adresse &amp;quot;'''in'''&amp;quot;, étant un argument de la fonction de réception. Dans notre cas, le buffer a pour taille &amp;quot;'''len'''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    requete=malloc(len+LWS_SEND_BUFFER_PRE_PADDING+LWS_SEND_BUFFER_POST_PADDING);&lt;br /&gt;
    memcpy(requete,in,len);&lt;br /&gt;
&lt;br /&gt;
L'étape d'envoi permet d'envoyer les données des capteurs vers l'application web.&lt;br /&gt;
Pour envoyer un message, il faut allouer une case mémoire de taille égale à la taille du buffer à envoyer, plus les octets enveloppant le message. &lt;br /&gt;
    unsigned char *buf = malloc(LWS_SEND_BUFFER_PRE_PADDING + length + LWS_SEND_BUFFER_POST_PADDING);&lt;br /&gt;
Nous avons choisi le type '''char''' (allant de -127 à 127) car il équivaut à une variable de taille 1 octet. Nous l'avons mis unsigned (allant de 0 à 255) uniquement pour pouvoir correctement lire les valeurs des données dans la console. Ceci nous a permis de vérifier que nous recevions les bonnes donnée par le port série. Il faut savoir que le formatage des données n'est utile que si nous voulons afficher les valeurs. Comme nous échangeons 4 octets, nous aurions pu stocker le message entier dans une unique variable de type &amp;quot;'''int'''&amp;quot; puisque ce type de donnée en C est précisément de taille 4 octets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut copier le message que l'on souhaite envoyer dans la case mémoire située à l'adresse de la mémoire alloué plus la taille des octets de début :&lt;br /&gt;
    memcpy (buf + LWS_SEND_BUFFER_PRE_PADDING, reponse, length );&lt;br /&gt;
&amp;quot;'''length'''&amp;quot; étant la taille du message sans les octets entourant ce message.&lt;br /&gt;
&lt;br /&gt;
Enfin, on envoie le message avec une fonction fournie par la librairie ''libwebsockets''. Le message se trouve alors à l'adresse buf + LWS_SEND_BUFFER_PRE_PADDING, définie précédemment   :&lt;br /&gt;
    libwebsocket_write(wsi, buf + LWS_SEND_BUFFER_PRE_PADDING, length, LWS_WRITE_BINARY); //LWS_WRITE_TEXT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Partie série'''&lt;br /&gt;
&lt;br /&gt;
La fonction '''getDataFromSensors()''' gère la communication série entre la Raspberry Pi et l'arduino/FPGA.&lt;br /&gt;
&lt;br /&gt;
Pour envoyer un octets en série, il faut juste faire un ''write()''. Dans notre cas nous en avons 3, correspondant au message 'GET'. '''sizeOfRequest''' vaut 3.&lt;br /&gt;
&lt;br /&gt;
    for(i = 0; i &amp;lt; sizeOfRequest;i++)&lt;br /&gt;
    {&lt;br /&gt;
        if(write(sd,(void*)&amp;amp;request[i],sizeof(char))!=1)&lt;br /&gt;
        { &lt;br /&gt;
            perror(&amp;quot;main.write&amp;quot;); exit(-1); &lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
Pour recevoir un octet c'est le même principe mais avec la fonction ''read()''. Nous en recevons 4. Ce morceau de code est placé juste après la partie qui envoie un message, car le circuit arduino/FPGA envoie directement les données dès qu'ils reçoivent 'GET' :&lt;br /&gt;
&lt;br /&gt;
    for(i=0;i &amp;lt; 4;i++)&lt;br /&gt;
    {//on lit ce que nous envoie l'arduino à la suite de la requete GET&lt;br /&gt;
        if(read(sd,(void*)&amp;amp;reponse[i],sizeof(unsigned char))!=1)&lt;br /&gt;
        { &lt;br /&gt;
            perror(&amp;quot;main.read&amp;quot;); exit(-1); &lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:An%C3%A9mom%C3%A8treVuArduino.jpg&amp;diff=44174</id>
		<title>Fichier:AnémomètreVuArduino.jpg</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:An%C3%A9mom%C3%A8treVuArduino.jpg&amp;diff=44174"/>
				<updated>2017-06-18T10:13:18Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : On peut voir ici le câblage de l’Arduino on à utilisé une breadboard supplémentaire pour pouvoir jouer sur la distance.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On peut voir ici le câblage de l’Arduino on à utilisé une breadboard supplémentaire pour pouvoir jouer sur la distance.&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:An%C3%A9mom%C3%A8treVuUltrasson.jpg&amp;diff=44173</id>
		<title>Fichier:AnémomètreVuUltrasson.jpg</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:An%C3%A9mom%C3%A8treVuUltrasson.jpg&amp;diff=44173"/>
				<updated>2017-06-18T10:11:08Z</updated>
		
		<summary type="html">&lt;p&gt;Tgracias : On peut voir le câblage qui est le même des deux cotés&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On peut voir le câblage qui est le même des deux cotés&lt;/div&gt;</summary>
		<author><name>Tgracias</name></author>	</entry>

	</feed>