<?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=Mdiop</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=Mdiop"/>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php/Sp%C3%A9cial:Contributions/Mdiop"/>
		<updated>2026-05-14T13:23:11Z</updated>
		<subtitle>Contributions de l’utilisateur</subtitle>
		<generator>MediaWiki 1.29.2</generator>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=43069</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=43069"/>
				<updated>2017-05-20T21:10:36Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Fichiers rendus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Les accéléromètres nous permettent de calculer l'angle d'inclinaison à partir de la force gravitationnelle qu'ils peuvent mesurer selon les trois axes. Lorsque la position idéale du patient sera choisie par le médecin, nous pourrons enregistrer cette position en mémorisant l'inclinaison de chaque accéléromètre pour cette position. Ainsi un changement de position sera identifié par une variation des angles d'inclinaison précédemment pris. Nous allons utilisé les accéléromètres analogiques de type adxl335. Une fois que nous aurons à disposition les valeurs de l'accéléromètre et, par conséquent les angles d'inclinaison, nous aurons besoin d'un moyen d'affichage des ces données. Pour ce faire, nous avons opté dans un premier temps pour une affichage sur smartphone. Les données vont être envoyées au smartphone à travers un module WIFI connectés au même réseau que le smartphone.  En récapitulant, nous aurons finalement besoin de:&lt;br /&gt;
* 5 accéléromètres adxl335.&lt;br /&gt;
* un arduino Mega&lt;br /&gt;
* un module WIFI &lt;br /&gt;
* des fils pour la liaison.&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement : accéléromètres à sortie analogique. Nous aurons donc besoin de 3 sorties analogiques par capteur (donc 3*5 sorties analogiques)&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: force gravitationnelle selon les trois axes qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre par rapport à l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
&lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification et acquisition de la position idéale à l'aide des accéléromètres placées le long de la colonne vertébrale;&lt;br /&gt;
*notification au patient (à travers le smartphone) lorsqu'une position différente de celle idéale a été détectée.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
==tâches à réaliser==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Avancement !! Commentaires&lt;br /&gt;
|-&lt;br /&gt;
| acquisition des données 10DOF&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| connexion au WIFI (esp9266)&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| connexion à un wifi standard prédéfinit lors de la programmation&lt;br /&gt;
|-&lt;br /&gt;
| pages application smartphone&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
| envois et réception de données sur smartphone&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| terminé et testé &lt;br /&gt;
|-&lt;br /&gt;
| acquisition des données de l'accéléromètre avec l'arduino mini&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| donnée récupérer à partir de 2 accéléromètre mais on peut en ajouter plus&lt;br /&gt;
|-&lt;br /&gt;
| liaison série arduino mini et esp8266&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;testé&amp;lt;/font&amp;gt;&lt;br /&gt;
| Communication réalisé mais quelque amélioration à faire, il faut optimiser le code&lt;br /&gt;
|-&lt;br /&gt;
| mise en commun de la partie wifi et acquisition de données&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Inachevé&amp;lt;/font&amp;gt;&lt;br /&gt;
| la mise en commun pose quelque problème notamment la réception de donnée non cohérente par le smartphone&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 + Heures supplémentairements !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 2H&lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| documentation&lt;br /&gt;
| 2h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liste du matériel &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
| 6h&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude du module Wi-fi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
| 2H&lt;br /&gt;
| 4H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude, programmation, câblage du 10 DOF &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4H&lt;br /&gt;
| 8H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accéléromètre &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2H&lt;br /&gt;
| étude 3H &lt;br /&gt;
| &lt;br /&gt;
| schématique 2H &lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liaison arduino esp&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 16H&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| étude et programmation arduino mini&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 16H&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| application mobile&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2H&lt;br /&gt;
|4H&lt;br /&gt;
|4H&lt;br /&gt;
|&lt;br /&gt;
|10h&lt;br /&gt;
|10H&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différents choix matériel notamment dans la référence des accéléromètres ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL335. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données vers un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est plus rapide que le module bluetooth. Cependant, ce dernier ne consomme pas beaucoup de charge de la batterie du smartphone mais il fonctionne  essentiellement sur de petites distances et avec des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grandes ainsi que des tailles de données beaucoup plus importantes.&lt;br /&gt;
&lt;br /&gt;
Finalement, nous avons opté pour le module WIFI pour limiter le moins possible l'utilisateur en ce qui concerne la distance entre les appareils et le volume de données transmis.&lt;br /&gt;
&lt;br /&gt;
*Confirmation de la liste de matériel: &lt;br /&gt;
  *accéléromètre ADXL335&lt;br /&gt;
  *Smartphone sous Android&lt;br /&gt;
  *15 longs fils mâle-femelle, mâle-mâle&lt;br /&gt;
  *Arduino pro -mini&lt;br /&gt;
  *Module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnelles avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:cad1_1.PNG| 900px ]]&lt;br /&gt;
[[Fichier:cad1.PNG| 900px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, l’accéléromètre 10 DOF, ainsi que l'arduino MEGA qui sera utilisé pour l’acquisition des données. L'accéléromètre 10DOF incorpore un gyroscope et un magnétomètre. Ceux-ci nous permettront d'avoir une meilleure précision des mesures notamment avec la mesure des orientations (vitesses angulaires).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérées en direct sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes également intéressé au calcule de l'angle à partir de l’accélération. &lt;br /&gt;
Prenons l'exemple de l’accéléromètre penché de la manière suivante.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:exemple5.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Le triangle G,Gx Gz forme un triangle rectangle, dans notre cas nous avons Gx,Gy et Gz qui sont les valeurs du vecteur gravitationnel G sur les trois axes et nous devons déduire 𝝰 (l’angle que fait Gx avec l’axe x), 𝝋 (l’angle que fait Gy avec l’axe y) et ᴪ (l’angle que fait Gz avec l’axe z). La norme de G est&lt;br /&gt;
[[Fichier:Norme2.PNG| 200px ]]&lt;br /&gt;
On récupére ensuite chaque angle de la manière suivante: &lt;br /&gt;
[[Fichier:Calcule_angle.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10DOF que nous testerons la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération de l'angle réalisé par l'accéléromètre.( Dans le code suivant nous avons uniquement l'acquisition des données)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof_code.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendus compte que les calculs ne sont pas réalisés correctement par le MEGA. En effet la mesure de l'angle n'était pas précis car le MEGA n'a pas assez de puissance de calcul pour faire les différentes divisions.  &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 100px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé que le MEGA servira uniquement à récupérer les données et à les envoyer via module WIFI. Ce sera donc à l'application Android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le module WIFI ESP8266 que nous utiliserons, afin de nous faire une idée de son utilisation.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installé les logiciels nécessaires ( Android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes intéressées  au module wifi, en commençant par lire la fiche technique de l'esp 8266, nous avons également cherché les différents types d'exemples . &lt;br /&gt;
&lt;br /&gt;
Des recherches sur le mode de connexion entre le smartphone et le Mega à travers le module WIFI ont également été effectuer dans le but de se faire une idée, nous hésitons sur l'utilisation de Sockets UDP , ou de réaliser une transmission en TCP .&lt;br /&gt;
&lt;br /&gt;
Le programme réalisée lors de la séance précédente a été testé, notamment les tests de récupération des données de l'accéléromètre 10-DOF sur le Mega.&lt;br /&gt;
&lt;br /&gt;
Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 a également été entamé.&lt;br /&gt;
&lt;br /&gt;
Nous avons également rencontré un certain nombre de problème :&lt;br /&gt;
&lt;br /&gt;
Afin se connecter en WIFI à partir de n’importe où, nous avons décidé de se connecter premièrement à un réseau standard (point d'accès fourni par le smartphone dans un premier temps) puis de modifier le réseau sur lequel nous sommes connecté à partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière.&lt;br /&gt;
[[Fichier:connection.PNG| 500px ]]&lt;br /&gt;
&lt;br /&gt;
La possibilité et l'utilité de l'ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête ( gérer les rotations).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle, nous avons également avancé avec la création d'une application android pour la réception et l'affichage de données.&lt;br /&gt;
Nous avons décidé de:&lt;br /&gt;
* faire une page d'accueil dans laquelle le kinésithérapeute devra appuyer sur un bouton lorsqu'il aura bien positionné le patient pour enregistrer la bonne position.&lt;br /&gt;
* à l'appui du bouton, le smartphone va contacter le module WIFI à travers un message broadcast (en utilisant une communication UDP) dans le réseau. &lt;br /&gt;
* Le MODULE WIFI, qui est déjà en attente d'une trame venant du smartphone, reçoit le message broadcast, extrait l'adresse IP du smartphone, puis, lui envoie des données du capteur.&lt;br /&gt;
* le smartphone, à son tour va utiliser ces données pour calculer les angles d'inclinaison sur les différents axes et les afficher. Notons que les premiers angles calculés sont ceux correspondant à la bonne position. &lt;br /&gt;
* A intervalle régulier, le module ESP va envoyer de nouvelles données que le smartphone va traiter et comparer avec les angles de la bonne position et prévenir le patient si la position a changer.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:transmition.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
* Réception du matériel&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ADXL345.PNG| 100px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par étudier l'accéléromètre reçu, en effet la référence de ce dernier est ADXL345 et est digital à l’inverse de celui choisi qui était analogique. De ce fait, nous avons modifié une partie du cahier des charges.&lt;br /&gt;
&lt;br /&gt;
Les accéléromètres adxl345 sont alimentés en 3.3V et sont digitaux. Par conséquent, nous n'aurons plus besoin de sortie analogique.  &lt;br /&gt;
&lt;br /&gt;
*fonctionnement : accéléromètres digitaux pouvant fonctionner en SPI comme en I2C et supportant 3.3V. Résolution: 10 bits, régler en mode +/-2g. Donc les valeurs de notre registre de données seront dans la plage [-512 ,512]. Mais puisque nous ne mesurons que la force gravitationnelle, nous aurons des valeurs comprises entre [-256,256] qui est la plage correspondant à -/1g. 1g correspond à la valeur de 9.80m/s2.&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: des entiers de -512 à 512 qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre selon l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
L'établissement des activités nécessairement et documentation sur le choix des sockets à utiliser pour l'envoi des données a également été entamé.&lt;br /&gt;
&lt;br /&gt;
Coté Smartphone: &lt;br /&gt;
&lt;br /&gt;
*Créations de la page d'accueil et de la page de visualisation des angles d'inclinaisons&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé l'étude de l'accéléromètre digital, nous avons choisis de travailler avec le mode SPI qui consiste à donner la parole à chaque accéléromètre l'un après l'autre en alimentant chaque pin CS l'un après l'autre. ( Le mode SPI utilise les ports digitaux )&lt;br /&gt;
&lt;br /&gt;
Seulement les pins de l’accéléromètre n'acceptent que des tensions de 3.3V alors que ceux du Mega fournissent des tensions de 5v. Nous aurons donc besoin d'un mécanisme de régulation des tensions en sortie de Mega.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes alors documenté sur les circuits de régulations et conversions de tension. Nous devons réaliser un dispositif de préférence réversible qui fourni une tension de 3.3v en sortie lorsqu'on lui injecte une tension de 5v en entré.&lt;br /&gt;
&lt;br /&gt;
Les premières connections à partir se l'esp8266. Nous nous sommes donc connecté à notre téléphone utilisé comme point d’accès.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:espconnect.PNG| 300px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
Nous avons réalisé une carte électronique grâce au logiciel fritzing pour réaliser l’adaptation de tensions entre l’accéléromètre adxl345 et la carte MEGA. En effet l'accéléromètre supporte des tensions maximales de 3.3V alors que le MEGA donne en sortie 5V.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:carte_elec1.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Coté Smartphone:&lt;br /&gt;
&lt;br /&gt;
* création de la page d'accueil avec implémentation du code pour la communication UDP entre le smartphone et l'ESP8266.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_daccueil.jpg | 200px]]&lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé la transmission de donnée avec le smartphone en fixant des valeur à envoyer.&lt;br /&gt;
Dans la photo suivante, on peut voir l'esp connecté et attendant le message venant du smartphone.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:wifi_conect.png | 300px]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la carte électronique faite la semaine précédente. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:carte_elec2.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Afin de tester la carte, nous avons alimenter les pins d’entrée par des 5v et avons observé la sortie du circuit. Malheureusement, seulement un pin en sortie &lt;br /&gt;
fournissait une tension de 3.3V.&lt;br /&gt;
Elle ne fonctionne pas et nous n'avons pas pu comprendre pourquoi. &lt;br /&gt;
&lt;br /&gt;
Par conséquent, nous avons changé de microcontrôleur. Nous avons reçu un arduino pro mini 3.3V compatible avec nos capteurs ( mais qui ne l'est pas avec le 10DOF ). &lt;br /&gt;
Nous commençons par conséquent à recueillir les données du capteurs. Pour cela, nous avons utilisé une librairie pour les ADXL345.&lt;br /&gt;
La première étape est de sélectionner le chip Select en définissant un ADXL grâce à la fonction suivante:&lt;br /&gt;
[[Fichier:def_adxl.PNG| 200px ]]&lt;br /&gt;
Cette fonction prend en paramètre le pin lié au chip Select de accéléromètre.&lt;br /&gt;
&lt;br /&gt;
Ensuite on récupère les données grâce à la fonction readaccel comme suit:&lt;br /&gt;
[[Fichier:readaccel.PNG| 200px ]]&lt;br /&gt;
La fonction stocke alors les valeurs lues par l'accéléromètre dans x,y et z.&lt;br /&gt;
&lt;br /&gt;
 code :&lt;br /&gt;
 [[Fichier:codemini1.PNG| 400px ]]&lt;br /&gt;
 &lt;br /&gt;
 [[Fichier:codemini2.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
Nous réalisons ensuite le montage suivant de manière à pouvoir lire sur le port série les valeurs .&lt;br /&gt;
&lt;br /&gt;
[[Fichier:montageaccel.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Partie smartphone:&lt;br /&gt;
succès de la connexion au wi-fi partagé d'un smartphone. Coté ESP comme coté smartphone.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:affichage_valeur.jpg | 200px]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
'''Etude de la partie communication entre l'arduino pro mini et l'ESP8266 pour l'envoie des données du capteur'''&lt;br /&gt;
&lt;br /&gt;
Nous avons implémenté le module Wifi de manière à ce que l’on puisse recevoir les données des accélérations reçus par l’arduino mini.7&lt;br /&gt;
&lt;br /&gt;
Pour cela, nous avons utilisée la bibliothèque SoftwareSerial d’arduino et avons défini deux liaisons série (l'une du côté du mini et l’autre du coté esp).Le mini envois un “a” indiquant à l'esp qu'il commence à envoyer une série de données.Ensuite on ramène les valeurs de l'accéléromètre sur l'échelle de g (gravitation terrestre ) grâce à un produit en croix . Pour finir, nous envoyons les données grâce à un serial write qui écrit sur les pins de l’esp ( pin 14 RX et 12 TX).&lt;br /&gt;
&lt;br /&gt;
Du côté de l’esp, on définit une liaison du nom de swSer au même baudrate que la précédente (9600). On attend la réception de 72 ( l'équivalent de ‘a’ en integer) indiquant que l’on commence à transmettre des données de l'accéléromètre. Une fois ce nombre reçu on incrémente un compteur à chaque réception d’un chiffre et à partir de la valeur de ce compteur nous plaçons la donnée dans la variable qui la définit ( la première donnée est celle de x1 donc si compteur est à 1 on place la valeur lue par swSer.read dans la variable x1 )&lt;br /&gt;
&lt;br /&gt;
'''Mise en commun de la partie Wifi et arduino mini'''&lt;br /&gt;
&lt;br /&gt;
L’union de ces deux partie n'est pas un succès dans le sens ou bien que la connexion aboutit, les donnée qui sont envoyé au smartphone ne sont pas celle envoyé par le mini. Il se pourrait qu'il y ai un problème dans le software serial mis en place entre les deux éléments. Pour résoudre ce problème il faudrait optimiser le code au maximum en enlevant tous ce qui pourrait paraître excédent.&lt;br /&gt;
&lt;br /&gt;
===Fichiers rendus===&lt;br /&gt;
&lt;br /&gt;
Rapport de projet : [[Fichier:Rapport_Fahem_Diop.pdf]]&lt;br /&gt;
&lt;br /&gt;
Code de la partie smartphone: [https://archives.plil.fr/mdiop/ima4_position_de_la_tete/tree/master/clientServerEspApp]&lt;br /&gt;
&lt;br /&gt;
Code de la partie arduino : [https://archives.plil.fr/mdiop/ima4_position_de_la_tete/blob/master/minipro.ino]&lt;br /&gt;
&lt;br /&gt;
Code de la partie esp: [https://archives.plil.fr/mdiop/ima4_position_de_la_tete/blob/master/espfinal21.ino]&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=43068</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=43068"/>
				<updated>2017-05-20T21:10:15Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Fichiers rendus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Les accéléromètres nous permettent de calculer l'angle d'inclinaison à partir de la force gravitationnelle qu'ils peuvent mesurer selon les trois axes. Lorsque la position idéale du patient sera choisie par le médecin, nous pourrons enregistrer cette position en mémorisant l'inclinaison de chaque accéléromètre pour cette position. Ainsi un changement de position sera identifié par une variation des angles d'inclinaison précédemment pris. Nous allons utilisé les accéléromètres analogiques de type adxl335. Une fois que nous aurons à disposition les valeurs de l'accéléromètre et, par conséquent les angles d'inclinaison, nous aurons besoin d'un moyen d'affichage des ces données. Pour ce faire, nous avons opté dans un premier temps pour une affichage sur smartphone. Les données vont être envoyées au smartphone à travers un module WIFI connectés au même réseau que le smartphone.  En récapitulant, nous aurons finalement besoin de:&lt;br /&gt;
* 5 accéléromètres adxl335.&lt;br /&gt;
* un arduino Mega&lt;br /&gt;
* un module WIFI &lt;br /&gt;
* des fils pour la liaison.&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement : accéléromètres à sortie analogique. Nous aurons donc besoin de 3 sorties analogiques par capteur (donc 3*5 sorties analogiques)&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: force gravitationnelle selon les trois axes qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre par rapport à l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
&lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification et acquisition de la position idéale à l'aide des accéléromètres placées le long de la colonne vertébrale;&lt;br /&gt;
*notification au patient (à travers le smartphone) lorsqu'une position différente de celle idéale a été détectée.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
==tâches à réaliser==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Avancement !! Commentaires&lt;br /&gt;
|-&lt;br /&gt;
| acquisition des données 10DOF&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| connexion au WIFI (esp9266)&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| connexion à un wifi standard prédéfinit lors de la programmation&lt;br /&gt;
|-&lt;br /&gt;
| pages application smartphone&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
| envois et réception de données sur smartphone&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| terminé et testé &lt;br /&gt;
|-&lt;br /&gt;
| acquisition des données de l'accéléromètre avec l'arduino mini&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| donnée récupérer à partir de 2 accéléromètre mais on peut en ajouter plus&lt;br /&gt;
|-&lt;br /&gt;
| liaison série arduino mini et esp8266&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;testé&amp;lt;/font&amp;gt;&lt;br /&gt;
| Communication réalisé mais quelque amélioration à faire, il faut optimiser le code&lt;br /&gt;
|-&lt;br /&gt;
| mise en commun de la partie wifi et acquisition de données&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Inachevé&amp;lt;/font&amp;gt;&lt;br /&gt;
| la mise en commun pose quelque problème notamment la réception de donnée non cohérente par le smartphone&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 + Heures supplémentairements !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 2H&lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| documentation&lt;br /&gt;
| 2h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liste du matériel &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
| 6h&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude du module Wi-fi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
| 2H&lt;br /&gt;
| 4H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude, programmation, câblage du 10 DOF &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4H&lt;br /&gt;
| 8H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accéléromètre &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2H&lt;br /&gt;
| étude 3H &lt;br /&gt;
| &lt;br /&gt;
| schématique 2H &lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liaison arduino esp&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 16H&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| étude et programmation arduino mini&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 16H&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| application mobile&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2H&lt;br /&gt;
|4H&lt;br /&gt;
|4H&lt;br /&gt;
|&lt;br /&gt;
|10h&lt;br /&gt;
|10H&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différents choix matériel notamment dans la référence des accéléromètres ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL335. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données vers un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est plus rapide que le module bluetooth. Cependant, ce dernier ne consomme pas beaucoup de charge de la batterie du smartphone mais il fonctionne  essentiellement sur de petites distances et avec des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grandes ainsi que des tailles de données beaucoup plus importantes.&lt;br /&gt;
&lt;br /&gt;
Finalement, nous avons opté pour le module WIFI pour limiter le moins possible l'utilisateur en ce qui concerne la distance entre les appareils et le volume de données transmis.&lt;br /&gt;
&lt;br /&gt;
*Confirmation de la liste de matériel: &lt;br /&gt;
  *accéléromètre ADXL335&lt;br /&gt;
  *Smartphone sous Android&lt;br /&gt;
  *15 longs fils mâle-femelle, mâle-mâle&lt;br /&gt;
  *Arduino pro -mini&lt;br /&gt;
  *Module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnelles avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:cad1_1.PNG| 900px ]]&lt;br /&gt;
[[Fichier:cad1.PNG| 900px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, l’accéléromètre 10 DOF, ainsi que l'arduino MEGA qui sera utilisé pour l’acquisition des données. L'accéléromètre 10DOF incorpore un gyroscope et un magnétomètre. Ceux-ci nous permettront d'avoir une meilleure précision des mesures notamment avec la mesure des orientations (vitesses angulaires).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérées en direct sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes également intéressé au calcule de l'angle à partir de l’accélération. &lt;br /&gt;
Prenons l'exemple de l’accéléromètre penché de la manière suivante.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:exemple5.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Le triangle G,Gx Gz forme un triangle rectangle, dans notre cas nous avons Gx,Gy et Gz qui sont les valeurs du vecteur gravitationnel G sur les trois axes et nous devons déduire 𝝰 (l’angle que fait Gx avec l’axe x), 𝝋 (l’angle que fait Gy avec l’axe y) et ᴪ (l’angle que fait Gz avec l’axe z). La norme de G est&lt;br /&gt;
[[Fichier:Norme2.PNG| 200px ]]&lt;br /&gt;
On récupére ensuite chaque angle de la manière suivante: &lt;br /&gt;
[[Fichier:Calcule_angle.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10DOF que nous testerons la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération de l'angle réalisé par l'accéléromètre.( Dans le code suivant nous avons uniquement l'acquisition des données)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof_code.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendus compte que les calculs ne sont pas réalisés correctement par le MEGA. En effet la mesure de l'angle n'était pas précis car le MEGA n'a pas assez de puissance de calcul pour faire les différentes divisions.  &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 100px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé que le MEGA servira uniquement à récupérer les données et à les envoyer via module WIFI. Ce sera donc à l'application Android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le module WIFI ESP8266 que nous utiliserons, afin de nous faire une idée de son utilisation.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installé les logiciels nécessaires ( Android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes intéressées  au module wifi, en commençant par lire la fiche technique de l'esp 8266, nous avons également cherché les différents types d'exemples . &lt;br /&gt;
&lt;br /&gt;
Des recherches sur le mode de connexion entre le smartphone et le Mega à travers le module WIFI ont également été effectuer dans le but de se faire une idée, nous hésitons sur l'utilisation de Sockets UDP , ou de réaliser une transmission en TCP .&lt;br /&gt;
&lt;br /&gt;
Le programme réalisée lors de la séance précédente a été testé, notamment les tests de récupération des données de l'accéléromètre 10-DOF sur le Mega.&lt;br /&gt;
&lt;br /&gt;
Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 a également été entamé.&lt;br /&gt;
&lt;br /&gt;
Nous avons également rencontré un certain nombre de problème :&lt;br /&gt;
&lt;br /&gt;
Afin se connecter en WIFI à partir de n’importe où, nous avons décidé de se connecter premièrement à un réseau standard (point d'accès fourni par le smartphone dans un premier temps) puis de modifier le réseau sur lequel nous sommes connecté à partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière.&lt;br /&gt;
[[Fichier:connection.PNG| 500px ]]&lt;br /&gt;
&lt;br /&gt;
La possibilité et l'utilité de l'ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête ( gérer les rotations).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle, nous avons également avancé avec la création d'une application android pour la réception et l'affichage de données.&lt;br /&gt;
Nous avons décidé de:&lt;br /&gt;
* faire une page d'accueil dans laquelle le kinésithérapeute devra appuyer sur un bouton lorsqu'il aura bien positionné le patient pour enregistrer la bonne position.&lt;br /&gt;
* à l'appui du bouton, le smartphone va contacter le module WIFI à travers un message broadcast (en utilisant une communication UDP) dans le réseau. &lt;br /&gt;
* Le MODULE WIFI, qui est déjà en attente d'une trame venant du smartphone, reçoit le message broadcast, extrait l'adresse IP du smartphone, puis, lui envoie des données du capteur.&lt;br /&gt;
* le smartphone, à son tour va utiliser ces données pour calculer les angles d'inclinaison sur les différents axes et les afficher. Notons que les premiers angles calculés sont ceux correspondant à la bonne position. &lt;br /&gt;
* A intervalle régulier, le module ESP va envoyer de nouvelles données que le smartphone va traiter et comparer avec les angles de la bonne position et prévenir le patient si la position a changer.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:transmition.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
* Réception du matériel&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ADXL345.PNG| 100px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par étudier l'accéléromètre reçu, en effet la référence de ce dernier est ADXL345 et est digital à l’inverse de celui choisi qui était analogique. De ce fait, nous avons modifié une partie du cahier des charges.&lt;br /&gt;
&lt;br /&gt;
Les accéléromètres adxl345 sont alimentés en 3.3V et sont digitaux. Par conséquent, nous n'aurons plus besoin de sortie analogique.  &lt;br /&gt;
&lt;br /&gt;
*fonctionnement : accéléromètres digitaux pouvant fonctionner en SPI comme en I2C et supportant 3.3V. Résolution: 10 bits, régler en mode +/-2g. Donc les valeurs de notre registre de données seront dans la plage [-512 ,512]. Mais puisque nous ne mesurons que la force gravitationnelle, nous aurons des valeurs comprises entre [-256,256] qui est la plage correspondant à -/1g. 1g correspond à la valeur de 9.80m/s2.&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: des entiers de -512 à 512 qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre selon l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
L'établissement des activités nécessairement et documentation sur le choix des sockets à utiliser pour l'envoi des données a également été entamé.&lt;br /&gt;
&lt;br /&gt;
Coté Smartphone: &lt;br /&gt;
&lt;br /&gt;
*Créations de la page d'accueil et de la page de visualisation des angles d'inclinaisons&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé l'étude de l'accéléromètre digital, nous avons choisis de travailler avec le mode SPI qui consiste à donner la parole à chaque accéléromètre l'un après l'autre en alimentant chaque pin CS l'un après l'autre. ( Le mode SPI utilise les ports digitaux )&lt;br /&gt;
&lt;br /&gt;
Seulement les pins de l’accéléromètre n'acceptent que des tensions de 3.3V alors que ceux du Mega fournissent des tensions de 5v. Nous aurons donc besoin d'un mécanisme de régulation des tensions en sortie de Mega.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes alors documenté sur les circuits de régulations et conversions de tension. Nous devons réaliser un dispositif de préférence réversible qui fourni une tension de 3.3v en sortie lorsqu'on lui injecte une tension de 5v en entré.&lt;br /&gt;
&lt;br /&gt;
Les premières connections à partir se l'esp8266. Nous nous sommes donc connecté à notre téléphone utilisé comme point d’accès.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:espconnect.PNG| 300px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
Nous avons réalisé une carte électronique grâce au logiciel fritzing pour réaliser l’adaptation de tensions entre l’accéléromètre adxl345 et la carte MEGA. En effet l'accéléromètre supporte des tensions maximales de 3.3V alors que le MEGA donne en sortie 5V.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:carte_elec1.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Coté Smartphone:&lt;br /&gt;
&lt;br /&gt;
* création de la page d'accueil avec implémentation du code pour la communication UDP entre le smartphone et l'ESP8266.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_daccueil.jpg | 200px]]&lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé la transmission de donnée avec le smartphone en fixant des valeur à envoyer.&lt;br /&gt;
Dans la photo suivante, on peut voir l'esp connecté et attendant le message venant du smartphone.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:wifi_conect.png | 300px]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la carte électronique faite la semaine précédente. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:carte_elec2.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Afin de tester la carte, nous avons alimenter les pins d’entrée par des 5v et avons observé la sortie du circuit. Malheureusement, seulement un pin en sortie &lt;br /&gt;
fournissait une tension de 3.3V.&lt;br /&gt;
Elle ne fonctionne pas et nous n'avons pas pu comprendre pourquoi. &lt;br /&gt;
&lt;br /&gt;
Par conséquent, nous avons changé de microcontrôleur. Nous avons reçu un arduino pro mini 3.3V compatible avec nos capteurs ( mais qui ne l'est pas avec le 10DOF ). &lt;br /&gt;
Nous commençons par conséquent à recueillir les données du capteurs. Pour cela, nous avons utilisé une librairie pour les ADXL345.&lt;br /&gt;
La première étape est de sélectionner le chip Select en définissant un ADXL grâce à la fonction suivante:&lt;br /&gt;
[[Fichier:def_adxl.PNG| 200px ]]&lt;br /&gt;
Cette fonction prend en paramètre le pin lié au chip Select de accéléromètre.&lt;br /&gt;
&lt;br /&gt;
Ensuite on récupère les données grâce à la fonction readaccel comme suit:&lt;br /&gt;
[[Fichier:readaccel.PNG| 200px ]]&lt;br /&gt;
La fonction stocke alors les valeurs lues par l'accéléromètre dans x,y et z.&lt;br /&gt;
&lt;br /&gt;
 code :&lt;br /&gt;
 [[Fichier:codemini1.PNG| 400px ]]&lt;br /&gt;
 &lt;br /&gt;
 [[Fichier:codemini2.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
Nous réalisons ensuite le montage suivant de manière à pouvoir lire sur le port série les valeurs .&lt;br /&gt;
&lt;br /&gt;
[[Fichier:montageaccel.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Partie smartphone:&lt;br /&gt;
succès de la connexion au wi-fi partagé d'un smartphone. Coté ESP comme coté smartphone.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:affichage_valeur.jpg | 200px]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
'''Etude de la partie communication entre l'arduino pro mini et l'ESP8266 pour l'envoie des données du capteur'''&lt;br /&gt;
&lt;br /&gt;
Nous avons implémenté le module Wifi de manière à ce que l’on puisse recevoir les données des accélérations reçus par l’arduino mini.7&lt;br /&gt;
&lt;br /&gt;
Pour cela, nous avons utilisée la bibliothèque SoftwareSerial d’arduino et avons défini deux liaisons série (l'une du côté du mini et l’autre du coté esp).Le mini envois un “a” indiquant à l'esp qu'il commence à envoyer une série de données.Ensuite on ramène les valeurs de l'accéléromètre sur l'échelle de g (gravitation terrestre ) grâce à un produit en croix . Pour finir, nous envoyons les données grâce à un serial write qui écrit sur les pins de l’esp ( pin 14 RX et 12 TX).&lt;br /&gt;
&lt;br /&gt;
Du côté de l’esp, on définit une liaison du nom de swSer au même baudrate que la précédente (9600). On attend la réception de 72 ( l'équivalent de ‘a’ en integer) indiquant que l’on commence à transmettre des données de l'accéléromètre. Une fois ce nombre reçu on incrémente un compteur à chaque réception d’un chiffre et à partir de la valeur de ce compteur nous plaçons la donnée dans la variable qui la définit ( la première donnée est celle de x1 donc si compteur est à 1 on place la valeur lue par swSer.read dans la variable x1 )&lt;br /&gt;
&lt;br /&gt;
'''Mise en commun de la partie Wifi et arduino mini'''&lt;br /&gt;
&lt;br /&gt;
L’union de ces deux partie n'est pas un succès dans le sens ou bien que la connexion aboutit, les donnée qui sont envoyé au smartphone ne sont pas celle envoyé par le mini. Il se pourrait qu'il y ai un problème dans le software serial mis en place entre les deux éléments. Pour résoudre ce problème il faudrait optimiser le code au maximum en enlevant tous ce qui pourrait paraître excédent.&lt;br /&gt;
&lt;br /&gt;
===Fichiers rendus===&lt;br /&gt;
&lt;br /&gt;
Rapport de projet : [[Fichier:Rapport_Fahem_Diop.pdf]]&lt;br /&gt;
&lt;br /&gt;
Code de la partie smartphone: [https://archives.plil.fr/mdiop/ima4_position_de_la_tete/tree/master/clientServerEspApp]&lt;br /&gt;
&lt;br /&gt;
Code de la partie arduino : [https://archives.plil.fr/mdiop/ima4_position_de_la_tete/blob/master/minipro.ino]&lt;br /&gt;
Code de la partie esp: [https://archives.plil.fr/mdiop/ima4_position_de_la_tete/blob/master/espfinal21.ino]&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=43061</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=43061"/>
				<updated>2017-05-20T20:42:44Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Fichiers rendus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Les accéléromètres nous permettent de calculer l'angle d'inclinaison à partir de la force gravitationnelle qu'ils peuvent mesurer selon les trois axes. Lorsque la position idéale du patient sera choisie par le médecin, nous pourrons enregistrer cette position en mémorisant l'inclinaison de chaque accéléromètre pour cette position. Ainsi un changement de position sera identifié par une variation des angles d'inclinaison précédemment pris. Nous allons utilisé les accéléromètres analogiques de type adxl335. Une fois que nous aurons à disposition les valeurs de l'accéléromètre et, par conséquent les angles d'inclinaison, nous aurons besoin d'un moyen d'affichage des ces données. Pour ce faire, nous avons opté dans un premier temps pour une affichage sur smartphone. Les données vont être envoyées au smartphone à travers un module WIFI connectés au même réseau que le smartphone.  En récapitulant, nous aurons finalement besoin de:&lt;br /&gt;
* 5 accéléromètres adxl335.&lt;br /&gt;
* un arduino Mega&lt;br /&gt;
* un module WIFI &lt;br /&gt;
* des fils pour la liaison.&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement : accéléromètres à sortie analogique. Nous aurons donc besoin de 3 sorties analogiques par capteur (donc 3*5 sorties analogiques)&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: force gravitationnelle selon les trois axes qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre par rapport à l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
&lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification et acquisition de la position idéale à l'aide des accéléromètres placées le long de la colonne vertébrale;&lt;br /&gt;
*notification au patient (à travers le smartphone) lorsqu'une position différente de celle idéale a été détectée.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
==tâches à réaliser==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Avancement !! Commentaires&lt;br /&gt;
|-&lt;br /&gt;
| acquisition des données 10DOF&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| connexion au WIFI (esp9266)&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| connexion à un wifi standard prédéfinit lors de la programmation&lt;br /&gt;
|-&lt;br /&gt;
| pages application smartphone&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
| envois et réception de données sur smartphone&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| terminé et testé &lt;br /&gt;
|-&lt;br /&gt;
| acquisition des données de l'accéléromètre avec l'arduino mini&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| donnée récupérer à partir de 2 accéléromètre mais on peut en ajouter plus&lt;br /&gt;
|-&lt;br /&gt;
| liaison série arduino mini et esp8266&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;testé&amp;lt;/font&amp;gt;&lt;br /&gt;
| Communication réalisé mais quelque amélioration à faire, il faut optimiser le code&lt;br /&gt;
|-&lt;br /&gt;
| mise en commun de la partie wifi et acquisition de données&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Inachevé&amp;lt;/font&amp;gt;&lt;br /&gt;
| la mise en commun pose quelque problème notamment la réception de donnée non cohérente par le smartphone&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 + Heures supplémentairements !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 2H&lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| documentation&lt;br /&gt;
| 2h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liste du matériel &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
| 6h&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude du module Wi-fi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
| 2H&lt;br /&gt;
| 4H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude, programmation, câblage du 10 DOF &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4H&lt;br /&gt;
| 8H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accéléromètre &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2H&lt;br /&gt;
| étude 3H &lt;br /&gt;
| &lt;br /&gt;
| schématique 2H &lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liaison arduino esp&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 16H&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| étude et programmation arduino mini&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 16H&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| application mobile&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2H&lt;br /&gt;
|4H&lt;br /&gt;
|4H&lt;br /&gt;
|&lt;br /&gt;
|10h&lt;br /&gt;
|10H&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différents choix matériel notamment dans la référence des accéléromètres ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL335. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données vers un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est plus rapide que le module bluetooth. Cependant, ce dernier ne consomme pas beaucoup de charge de la batterie du smartphone mais il fonctionne  essentiellement sur de petites distances et avec des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grandes ainsi que des tailles de données beaucoup plus importantes.&lt;br /&gt;
&lt;br /&gt;
Finalement, nous avons opté pour le module WIFI pour limiter le moins possible l'utilisateur en ce qui concerne la distance entre les appareils et le volume de données transmis.&lt;br /&gt;
&lt;br /&gt;
*Confirmation de la liste de matériel: &lt;br /&gt;
  *accéléromètre ADXL335&lt;br /&gt;
  *Smartphone sous Android&lt;br /&gt;
  *15 longs fils mâle-femelle, mâle-mâle&lt;br /&gt;
  *Arduino pro -mini&lt;br /&gt;
  *Module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnelles avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:cad1_1.PNG| 900px ]]&lt;br /&gt;
[[Fichier:cad1.PNG| 900px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, l’accéléromètre 10 DOF, ainsi que l'arduino MEGA qui sera utilisé pour l’acquisition des données. L'accéléromètre 10DOF incorpore un gyroscope et un magnétomètre. Ceux-ci nous permettront d'avoir une meilleure précision des mesures notamment avec la mesure des orientations (vitesses angulaires).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérées en direct sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes également intéressé au calcule de l'angle à partir de l’accélération. &lt;br /&gt;
Prenons l'exemple de l’accéléromètre penché de la manière suivante.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:exemple5.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Le triangle G,Gx Gz forme un triangle rectangle, dans notre cas nous avons Gx,Gy et Gz qui sont les valeurs du vecteur gravitationnel G sur les trois axes et nous devons déduire 𝝰 (l’angle que fait Gx avec l’axe x), 𝝋 (l’angle que fait Gy avec l’axe y) et ᴪ (l’angle que fait Gz avec l’axe z). La norme de G est&lt;br /&gt;
[[Fichier:Norme2.PNG| 200px ]]&lt;br /&gt;
On récupére ensuite chaque angle de la manière suivante: &lt;br /&gt;
[[Fichier:Calcule_angle.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10DOF que nous testerons la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération de l'angle réalisé par l'accéléromètre.( Dans le code suivant nous avons uniquement l'acquisition des données)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof_code.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendus compte que les calculs ne sont pas réalisés correctement par le MEGA. En effet la mesure de l'angle n'était pas précis car le MEGA n'a pas assez de puissance de calcul pour faire les différentes divisions.  &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 100px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé que le MEGA servira uniquement à récupérer les données et à les envoyer via module WIFI. Ce sera donc à l'application Android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le module WIFI ESP8266 que nous utiliserons, afin de nous faire une idée de son utilisation.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installé les logiciels nécessaires ( Android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes intéressées  au module wifi, en commençant par lire la fiche technique de l'esp 8266, nous avons également cherché les différents types d'exemples . &lt;br /&gt;
&lt;br /&gt;
Des recherches sur le mode de connexion entre le smartphone et le Mega à travers le module WIFI ont également été effectuer dans le but de se faire une idée, nous hésitons sur l'utilisation de Sockets UDP , ou de réaliser une transmission en TCP .&lt;br /&gt;
&lt;br /&gt;
Le programme réalisée lors de la séance précédente a été testé, notamment les tests de récupération des données de l'accéléromètre 10-DOF sur le Mega.&lt;br /&gt;
&lt;br /&gt;
Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 a également été entamé.&lt;br /&gt;
&lt;br /&gt;
Nous avons également rencontré un certain nombre de problème :&lt;br /&gt;
&lt;br /&gt;
Afin se connecter en WIFI à partir de n’importe où, nous avons décidé de se connecter premièrement à un réseau standard (point d'accès fourni par le smartphone dans un premier temps) puis de modifier le réseau sur lequel nous sommes connecté à partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière.&lt;br /&gt;
[[Fichier:connection.PNG| 500px ]]&lt;br /&gt;
&lt;br /&gt;
La possibilité et l'utilité de l'ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête ( gérer les rotations).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle, nous avons également avancé avec la création d'une application android pour la réception et l'affichage de données.&lt;br /&gt;
Nous avons décidé de:&lt;br /&gt;
* faire une page d'accueil dans laquelle le kinésithérapeute devra appuyer sur un bouton lorsqu'il aura bien positionné le patient pour enregistrer la bonne position.&lt;br /&gt;
* à l'appui du bouton, le smartphone va contacter le module WIFI à travers un message broadcast (en utilisant une communication UDP) dans le réseau. &lt;br /&gt;
* Le MODULE WIFI, qui est déjà en attente d'une trame venant du smartphone, reçoit le message broadcast, extrait l'adresse IP du smartphone, puis, lui envoie des données du capteur.&lt;br /&gt;
* le smartphone, à son tour va utiliser ces données pour calculer les angles d'inclinaison sur les différents axes et les afficher. Notons que les premiers angles calculés sont ceux correspondant à la bonne position. &lt;br /&gt;
* A intervalle régulier, le module ESP va envoyer de nouvelles données que le smartphone va traiter et comparer avec les angles de la bonne position et prévenir le patient si la position a changer.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:transmition.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
* Réception du matériel&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ADXL345.PNG| 100px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par étudier l'accéléromètre reçu, en effet la référence de ce dernier est ADXL345 et est digital à l’inverse de celui choisi qui était analogique. De ce fait, nous avons modifié une partie du cahier des charges.&lt;br /&gt;
&lt;br /&gt;
Les accéléromètres adxl345 sont alimentés en 3.3V et sont digitaux. Par conséquent, nous n'aurons plus besoin de sortie analogique.  &lt;br /&gt;
&lt;br /&gt;
*fonctionnement : accéléromètres digitaux pouvant fonctionner en SPI comme en I2C et supportant 3.3V. Résolution: 10 bits, régler en mode +/-2g. Donc les valeurs de notre registre de données seront dans la plage [-512 ,512]. Mais puisque nous ne mesurons que la force gravitationnelle, nous aurons des valeurs comprises entre [-256,256] qui est la plage correspondant à -/1g. 1g correspond à la valeur de 9.80m/s2.&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: des entiers de -512 à 512 qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre selon l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
L'établissement des activités nécessairement et documentation sur le choix des sockets à utiliser pour l'envoi des données a également été entamé.&lt;br /&gt;
&lt;br /&gt;
Coté Smartphone: &lt;br /&gt;
&lt;br /&gt;
*Créations de la page d'accueil et de la page de visualisation des angles d'inclinaisons&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé l'étude de l'accéléromètre digital, nous avons choisis de travailler avec le mode SPI qui consiste à donner la parole à chaque accéléromètre l'un après l'autre en alimentant chaque pin CS l'un après l'autre. ( Le mode SPI utilise les ports digitaux )&lt;br /&gt;
&lt;br /&gt;
Seulement les pins de l’accéléromètre n'acceptent que des tensions de 3.3V alors que ceux du Mega fournissent des tensions de 5v. Nous aurons donc besoin d'un mécanisme de régulation des tensions en sortie de Mega.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes alors documenté sur les circuits de régulations et conversions de tension. Nous devons réaliser un dispositif de préférence réversible qui fourni une tension de 3.3v en sortie lorsqu'on lui injecte une tension de 5v en entré.&lt;br /&gt;
&lt;br /&gt;
Les premières connections à partir se l'esp8266. Nous nous sommes donc connecté à notre téléphone utilisé comme point d’accès.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:espconnect.PNG| 300px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
Nous avons réalisé une carte électronique grâce au logiciel fritzing pour réaliser l’adaptation de tensions entre l’accéléromètre adxl345 et la carte MEGA. En effet l'accéléromètre supporte des tensions maximales de 3.3V alors que le MEGA donne en sortie 5V.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:carte_elec1.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Coté Smartphone:&lt;br /&gt;
&lt;br /&gt;
* création de la page d'accueil avec implémentation du code pour la communication UDP entre le smartphone et l'ESP8266.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_daccueil.jpg | 200px]]&lt;br /&gt;
&lt;br /&gt;
Nous avons également commencé la transmission de donnée avec le smartphone en fixant des valeur à envoyer.&lt;br /&gt;
Dans la photo suivante, on peut voir l'esp connecté et attendant le message venant du smartphone.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:wifi_conect.png | 300px]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la carte électronique faite la semaine précédente. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:carte_elec2.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Afin de tester la carte, nous avons alimenter les pins d’entrée par des 5v et avons observé la sortie du circuit. Malheureusement, seulement un pin en sortie &lt;br /&gt;
fournissait une tension de 3.3V.&lt;br /&gt;
Elle ne fonctionne pas et nous n'avons pas pu comprendre pourquoi. &lt;br /&gt;
&lt;br /&gt;
Par conséquent, nous avons changé de microcontrôleur. Nous avons reçu un arduino pro mini 3.3V compatible avec nos capteurs ( mais qui ne l'est pas avec le 10DOF ). &lt;br /&gt;
Nous commençons par conséquent à recueillir les données du capteurs. Pour cela, nous avons utilisé une librairie pour les ADXL345.&lt;br /&gt;
La première étape est de sélectionner le chip Select en définissant un ADXL grâce à la fonction suivante:&lt;br /&gt;
[[Fichier:def_adxl.PNG| 200px ]]&lt;br /&gt;
Cette fonction prend en paramètre le pin lié au chip Select de accéléromètre.&lt;br /&gt;
&lt;br /&gt;
Ensuite on récupère les données grâce à la fonction readaccel comme suit:&lt;br /&gt;
[[Fichier:readaccel.PNG| 200px ]]&lt;br /&gt;
La fonction stocke alors les valeurs lues par l'accéléromètre dans x,y et z.&lt;br /&gt;
&lt;br /&gt;
 code :&lt;br /&gt;
 [[Fichier:codemini1.PNG| 400px ]]&lt;br /&gt;
 &lt;br /&gt;
 [[Fichier:codemini2.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
Nous réalisons ensuite le montage suivant de manière à pouvoir lire sur le port série les valeurs .&lt;br /&gt;
&lt;br /&gt;
[[Fichier:montageaccel.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Partie smartphone:&lt;br /&gt;
succès de la connexion au wi-fi partagé d'un smartphone. Coté ESP comme coté smartphone.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:affichage_valeur.jpg | 200px]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
'''Etude de la partie communication entre l'arduino pro mini et l'ESP8266 pour l'envoie des données du capteur'''&lt;br /&gt;
&lt;br /&gt;
Nous avons implémenté le module Wifi de manière à ce que l’on puisse recevoir les données des accélérations reçus par l’arduino mini.7&lt;br /&gt;
&lt;br /&gt;
Pour cela, nous avons utilisée la bibliothèque SoftwareSerial d’arduino et avons défini deux liaisons série (l'une du côté du mini et l’autre du coté esp).Le mini envois un “a” indiquant à l'esp qu'il commence à envoyer une série de données.Ensuite on ramène les valeurs de l'accéléromètre sur l'échelle de g (gravitation terrestre ) grâce à un produit en croix . Pour finir, nous envoyons les données grâce à un serial write qui écrit sur les pins de l’esp ( pin 14 RX et 12 TX).&lt;br /&gt;
&lt;br /&gt;
Du côté de l’esp, on définit une liaison du nom de swSer au même baudrate que la précédente (9600). On attend la réception de 72 ( l'équivalent de ‘a’ en integer) indiquant que l’on commence à transmettre des données de l'accéléromètre. Une fois ce nombre reçu on incrémente un compteur à chaque réception d’un chiffre et à partir de la valeur de ce compteur nous plaçons la donnée dans la variable qui la définit ( la première donnée est celle de x1 donc si compteur est à 1 on place la valeur lue par swSer.read dans la variable x1 )&lt;br /&gt;
&lt;br /&gt;
'''Mise en commun de la partie Wifi et arduino mini'''&lt;br /&gt;
&lt;br /&gt;
L’union de ces deux partie n'est pas un succès dans le sens ou bien que la connexion aboutit, les donnée qui sont envoyé au smartphone ne sont pas celle envoyé par le mini. Il se pourrait qu'il y ai un problème dans le software serial mis en place entre les deux éléments. Pour résoudre ce problème il faudrait optimiser le code au maximum en enlevant tous ce qui pourrait paraître excédent.&lt;br /&gt;
&lt;br /&gt;
===Fichiers rendus===&lt;br /&gt;
&lt;br /&gt;
Rapport de projet : [[Fichier:Rapport_Fahem_Diop.pdf]]&lt;br /&gt;
&lt;br /&gt;
Code de la partie smartphone: [https://archives.plil.fr/mdiop/ima4_position_de_la_tete/tree/master/clientServerEspApp]&lt;br /&gt;
&lt;br /&gt;
Code de la partie arduino et esp: [[https://drive.google.com/open?id=0B-4pCR18G57KbDA0ejlSTm1YZmM] fichier zip ]&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=42849</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=42849"/>
				<updated>2017-05-20T15:32:27Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Semaine 8 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Les accéléromètres nous permettent de calculer l'angle d'inclinaison à partir de la force gravitationnelle qu'ils peuvent mesurer selon les trois axes. Lorsque la position idéale du patient sera choisie par le médecin, nous pourrons enregistrer cette position en mémorisant l'inclinaison de chaque accéléromètre pour cette position. Ainsi un changement de position sera identifié par une variation des angles d'inclinaison précédemment pris. Nous allons utilisé les accéléromètres analogiques de type adxl335. Une fois que nous aurons à disposition les valeurs de l'accéléromètre et, par conséquent les angles d'inclinaison, nous aurons besoin d'un moyen d'affichage des ces données. Pour ce faire, nous avons opté dans un premier temps pour une affichage sur smartphone. Les données vont être envoyées au smartphone à travers un module WIFI connectés au même réseau que le smartphone.  En récapitulant, nous aurons finalement besoin de:&lt;br /&gt;
* 5 accéléromètres adxl335.&lt;br /&gt;
* un arduino Mega&lt;br /&gt;
* un module WIFI &lt;br /&gt;
* des fils pour la liaison.&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement : accéléromètres à sortie analogique. Nous aurons donc besoin de 3 sorties analogiques par capteur (donc 3*5 sorties analogiques)&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: force gravitationnelle selon les trois axes qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre par rapport à l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
&lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification et acquisition de la position idéale à l'aide des accéléromètres placées le long de la colonne vertébrale;&lt;br /&gt;
*notification au patient (à travers le smartphone) lorsqu'une position différente de celle idéale a été détectée.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
==tâches à réaliser==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Avancement !! Commentaires&lt;br /&gt;
|-&lt;br /&gt;
| acquisition des données 10DOF&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| connexion au WIFI (esp9266)&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| connexion à un wifi standard prédéfinit lors de la programmation&lt;br /&gt;
|-&lt;br /&gt;
| pages application smartphone&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
| envois et réception de données sur smartphone&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| terminé et testé &lt;br /&gt;
|-&lt;br /&gt;
| acquisition des données de l'accéléromètre avec l'arduino mini&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| donnée récupérer à partir de 2 accéléromètre mais on peut en ajouter plus&lt;br /&gt;
|-&lt;br /&gt;
| liaison série arduino mini et esp8266&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;testé&amp;lt;/font&amp;gt;&lt;br /&gt;
| Communication réalisé mais quelque amélioration à faire, il faut optimiser le code&lt;br /&gt;
|-&lt;br /&gt;
| mise en commun de la partie wifi et acquisition de données&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Inachevé&amp;lt;/font&amp;gt;&lt;br /&gt;
| la mise en commun pose quelque problème notamment la réception de donnée non cohérente par le smartphone&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 + Heures supplémentairements !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 2H&lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| documentation&lt;br /&gt;
| 2h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liste du matériel &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
| 6h&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude du module Wi-fi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
| 2H&lt;br /&gt;
| 4H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude, programmation, câblage du 10 DOF &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4H&lt;br /&gt;
| 8H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accéléromètre &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2H&lt;br /&gt;
| étude 3H &lt;br /&gt;
| &lt;br /&gt;
| schématique 2H &lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liaison arduino esp&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 16H&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| étude et programmation arduino mini&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 16H&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| application mobile&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2H&lt;br /&gt;
|4H&lt;br /&gt;
|4H&lt;br /&gt;
|&lt;br /&gt;
|10h&lt;br /&gt;
|10H&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différents choix matériel notamment dans la référence des accéléromètres ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL335. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données vers un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est plus rapide que le module bluetooth. Cependant, ce dernier ne consomme pas beaucoup de charge de la batterie du smartphone mais il fonctionne  essentiellement sur de petites distances et avec des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grandes ainsi que des tailles de données beaucoup plus importantes.&lt;br /&gt;
&lt;br /&gt;
Finalement, nous avons opté pour le module WIFI pour limiter le moins possible l'utilisateur en ce qui concerne la distance entre les appareils et le volume de données transmis.&lt;br /&gt;
&lt;br /&gt;
*Confirmation de la liste de matériel: &lt;br /&gt;
  *accéléromètre ADXL335&lt;br /&gt;
  *Smartphone sous Android&lt;br /&gt;
  *15 longs fils mâle-femelle, mâle-mâle&lt;br /&gt;
  *Arduino pro -mini&lt;br /&gt;
  *Module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnelles avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:cad1_1.PNG| 900px ]]&lt;br /&gt;
[[Fichier:cad1.PNG| 900px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, l’accéléromètre 10 DOF, ainsi que l'arduino MEGA qui sera utilisé pour l’acquisition des données. L'accéléromètre 10DOF incorpore un gyroscope et un magnétomètre. Ceux-ci nous permettront d'avoir une meilleure précision des mesures notamment avec la mesure des orientations (vitesses angulaires).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérées en direct sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes également intéressé au calcule de l'angle à partir de l’accélération. &lt;br /&gt;
Prenons l'exemple de l’accéléromètre penché de la manière suivante.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:exemple5.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Le triangle G,Gx Gz forme un triangle rectangle, dans notre cas nous avons Gx,Gy et Gz qui sont les valeurs du vecteur gravitationnel G sur les trois axes et nous devons déduire 𝝰 (l’angle que fait Gx avec l’axe x), 𝝋 (l’angle que fait Gy avec l’axe y) et ᴪ (l’angle que fait Gz avec l’axe z). La norme de G est&lt;br /&gt;
[[Fichier:Norme2.PNG| 200px ]]&lt;br /&gt;
On récupére ensuite chaque angle de la manière suivante: &lt;br /&gt;
[[Fichier:Calcule_angle.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10DOF que nous testerons la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération de l'angle réalisé par l'accéléromètre.( Dans le code suivant nous avons uniquement l'acquisition des données)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof_code.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendus compte que les calculs ne sont pas réalisés correctement par le MEGA. En effet la mesure de l'angle n'était pas précis car le MEGA n'a pas assez de puissance de calcul pour faire les différentes divisions.  &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 100px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé que le MEGA servira uniquement à récupérer les données et à les envoyer via module WIFI. Ce sera donc à l'application Android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le module WIFI ESP8266 que nous utiliserons, afin de nous faire une idée de son utilisation.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installé les logiciels nécessaires ( Android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes intéressées  au module wifi, en commençant par lire la fiche technique de l'esp 8266, nous avons également cherché les différents types d'exemples . &lt;br /&gt;
&lt;br /&gt;
Des recherches sur le mode de connexion entre le smartphone et le Mega à travers le module WIFI ont également été effectuer dans le but de se faire une idée, nous hésitons sur l'utilisation de Sockets UDP , ou de réaliser une transmission en TCP .&lt;br /&gt;
&lt;br /&gt;
Le programme réalisée lors de la séance précédente a été testé, notamment les tests de récupération des données de l'accéléromètre 10-DOF sur le Mega.&lt;br /&gt;
&lt;br /&gt;
Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 a également été entamé.&lt;br /&gt;
&lt;br /&gt;
Nous avons également rencontré un certain nombre de problème :&lt;br /&gt;
&lt;br /&gt;
Afin se connecter en WIFI à partir de n’importe où, nous avons décidé de se connecter premièrement à un réseau standard (point d'accès fourni par le smartphone dans un premier temps) puis de modifier le réseau sur lequel nous sommes connecté à partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière.&lt;br /&gt;
[[Fichier:connection.PNG| 500px ]]&lt;br /&gt;
&lt;br /&gt;
La possibilité et l'utilité de l'ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête ( gérer les rotations).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle, nous avons également avancé avec la création d'une application android pour la réception et l'affichage de données.&lt;br /&gt;
Nous avons décidé de:&lt;br /&gt;
* faire une page d'accueil dans laquelle le kinésithérapeute devra appuyer sur un bouton lorsqu'il aura bien positionné le patient pour enregistrer la bonne position.&lt;br /&gt;
* à l'appui du bouton, le smartphone va contacter le module WIFI à travers un message broadcast (en utilisant une communication UDP) dans le réseau. &lt;br /&gt;
* Le MODULE WIFI, qui est déjà en attente d'une trame venant du smartphone, reçoit le message broadcast, extrait l'adresse IP du smartphone, puis, lui envoie des données du capteur.&lt;br /&gt;
* le smartphone, à son tour va utiliser ces données pour calculer les angles d'inclinaison sur les différents axes et les afficher. Notons que les premiers angles calculés sont ceux correspondant à la bonne position. &lt;br /&gt;
* A intervalle régulier, le module ESP va envoyer de nouvelles données que le smartphone va traiter et comparer avec les angles de la bonne position et prévenir le patient si la position a changer.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:transmition.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
* Réception du matériel&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ADXL345.PNG| 100px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par étudier l'accéléromètre reçu, en effet la référence de ce dernier est ADXL345 et est digital à l’inverse de celui choisi qui était analogique. De ce fait, nous avons modifié une partie du cahier des charges.&lt;br /&gt;
&lt;br /&gt;
Les accéléromètres adxl345 sont alimentés en 3.3V et sont digitaux. Par conséquent, nous n'aurons plus besoin de sortie analogique.  &lt;br /&gt;
&lt;br /&gt;
*fonctionnement : accéléromètres digitaux pouvant fonctionner en SPI comme en I2C et supportant 3.3V. Résolution: 10 bits, régler en mode +/-2g. Donc les valeurs de notre registre de données seront dans la plage [-512 ,512]. Mais puisque nous ne mesurons que la force gravitationnelle, nous aurons des valeurs comprises entre [-256,256] qui est la plage correspondant à -/1g. 1g correspond à la valeur de 9.80m/s2.&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: des entiers de -512 à 512 qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre selon l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
L'établissement des activités nécessairement et documentation sur le choix des sockets à utiliser pour l'envoi des données a également été entamé.&lt;br /&gt;
&lt;br /&gt;
Coté Smartphone: &lt;br /&gt;
&lt;br /&gt;
*Créations de la page d'accueil et de la page de visualisation des angles d'inclinaisons&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé l'étude de l'accéléromètre digital, nous devrons nous servir des ports digitaux du MEGA et choisir l’accéléromètre à partir duquel nous récupérons les données grâce à un chip select. Pour cela nous devrons utiliser la bibliothèque SPI.h et brancher le pin CS de l'accéléromètre à des pin digitaux du mega.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mais les pin de l'accéleromètre n'acceptent que des tensions de 3.3V alors que ceux du Mega fournissent des tensions de 5v. Nous aurons donc besoin d'un mécanisme de régulation des tensions en sortie de Mega.&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
Nous avons réalisé une carte électronique grâce au logiciel fritzing pour réaliser l’adaptation de tensions entre l’accéléromètre adxl345 et la carte MEGA. En effet l'accéléromètre supporte des tensions maximales de 3.3V alors que le MEGA donne en sortie 5V.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:carte_elec1.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Coté Smartphone:&lt;br /&gt;
&lt;br /&gt;
* création de la page d'accueil avec implémentation du code pour la communication UDP entre le smartphone et l'ESP8266.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_daccueil.jpg | 200px]]&lt;br /&gt;
* Nous rencontrons des problèmes en ce qui concerne la l'implémentation du programme coté ESP.&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la carte électronique faite la semaine précédente. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:carte_elec2.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Afin de tester la carte, nous avons alimenter les pins d’entrée par des 5v et avons observé la sortie du circuit. Malheureusement, seulement un pin en sortie &lt;br /&gt;
fournissait une tension de 3.3V.&lt;br /&gt;
Elle ne fonctionne pas et nous n'avons pas pu comprendre pourquoi. &lt;br /&gt;
&lt;br /&gt;
Par conséquent, nous avons changé de microcontrôleur. Nous avons reçu un arduino pro mini 3.3V compatible avec nos capteurs ( mais qui ne l'est pas avec le 10DOF ). &lt;br /&gt;
Nous commençons par conséquent à recueillir les données du capteurs. Pour cela, nous avons utilisé une librairie pour les ADXL345.&lt;br /&gt;
La première étape est de sélectionner le chip Select en définissant un ADXL grâce à la fonction suivante:&lt;br /&gt;
[[Fichier:def_adxl.PNG| 200px ]]&lt;br /&gt;
Cette fonction prend en paramètre le pin lié au chip Select de accéléromètre.&lt;br /&gt;
&lt;br /&gt;
Ensuite on récupère les données grâce à la fonction readaccel comme suit:&lt;br /&gt;
[[Fichier:readaccel.PNG| 200px ]]&lt;br /&gt;
La fonction stocke alors les valeurs lues par l'accéléromètre dans x,y et z.&lt;br /&gt;
&lt;br /&gt;
 code :&lt;br /&gt;
 [[Fichier:codemini1.PNG| 400px ]]&lt;br /&gt;
 &lt;br /&gt;
 [[Fichier:codemini2.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
Nous réalisons ensuite le montage suivant de manière à pouvoir lire sur le port série les valeurs .&lt;br /&gt;
&lt;br /&gt;
[[Fichier:montageaccel.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Partie smartphone:&lt;br /&gt;
succès de la connexion au wi-fi partagé d'un smartphone. Coté ESP comme coté smartphone.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:affichage_valeur.jpg | 200px]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
'''Etude de la partie communication entre l'arduino pro mini et l'ESP8266 pour l'envoie des données du capteur'''&lt;br /&gt;
&lt;br /&gt;
Nous avons implémenté le module Wifi de manière à ce que l’on puisse recevoir les données des accélérations reçus par l’arduino mini.7&lt;br /&gt;
&lt;br /&gt;
Pour cela, nous avons utilisée la bibliothèque SoftwareSerial d’arduino et avons défini deux liaisons série (l'une du côté du mini et l’autre du coté esp).Le mini envois un “a” indiquant à l'esp qu'il commence à envoyer une serie de données.Ensuite on ramène les valeurs de l'accéléromètre sur l'échelle de g (gravitation terrestre ) gracz à un produit en croix . Pour finir, nous envoyons les données grâce à un serial write qui écrit sur les pins de l’esp ( pin 14 RX et 12 TX).&lt;br /&gt;
&lt;br /&gt;
Du côté de l’esp, on définit une liaison du nom de swSer au même baudrate que la précédente (9600). On attend la réception de 72 ( l'équivalent de ‘a’ en integer) indiquant que l’on commence à transmettre des données de l'accéléromètre. Une fois ce nombre reçu on incrémente un compteur à chaque réception d’un chiffre et à partir de la valeur de ce compteur nous plaçons la donnée dans la variable qui la définit ( la première donnée est celle de x1 donc si compteur est à 1 on place la valeur lue par swSer.read dans la variable x1 )&lt;br /&gt;
&lt;br /&gt;
===Fichiers rendus===&lt;br /&gt;
&lt;br /&gt;
rapport de projet : [[Fichier:Rapport_Fahem_Diop.pdf]]&lt;br /&gt;
Code de la partie smartphone: [[Fichier:]]&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=42848</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=42848"/>
				<updated>2017-05-20T15:31:45Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Semaine 9 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Les accéléromètres nous permettent de calculer l'angle d'inclinaison à partir de la force gravitationnelle qu'ils peuvent mesurer selon les trois axes. Lorsque la position idéale du patient sera choisie par le médecin, nous pourrons enregistrer cette position en mémorisant l'inclinaison de chaque accéléromètre pour cette position. Ainsi un changement de position sera identifié par une variation des angles d'inclinaison précédemment pris. Nous allons utilisé les accéléromètres analogiques de type adxl335. Une fois que nous aurons à disposition les valeurs de l'accéléromètre et, par conséquent les angles d'inclinaison, nous aurons besoin d'un moyen d'affichage des ces données. Pour ce faire, nous avons opté dans un premier temps pour une affichage sur smartphone. Les données vont être envoyées au smartphone à travers un module WIFI connectés au même réseau que le smartphone.  En récapitulant, nous aurons finalement besoin de:&lt;br /&gt;
* 5 accéléromètres adxl335.&lt;br /&gt;
* un arduino Mega&lt;br /&gt;
* un module WIFI &lt;br /&gt;
* des fils pour la liaison.&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement : accéléromètres à sortie analogique. Nous aurons donc besoin de 3 sorties analogiques par capteur (donc 3*5 sorties analogiques)&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: force gravitationnelle selon les trois axes qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre par rapport à l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
&lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification et acquisition de la position idéale à l'aide des accéléromètres placées le long de la colonne vertébrale;&lt;br /&gt;
*notification au patient (à travers le smartphone) lorsqu'une position différente de celle idéale a été détectée.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
==tâches à réaliser==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Avancement !! Commentaires&lt;br /&gt;
|-&lt;br /&gt;
| acquisition des données 10DOF&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| connexion au WIFI (esp9266)&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| connexion à un wifi standard prédéfinit lors de la programmation&lt;br /&gt;
|-&lt;br /&gt;
| pages application smartphone&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
| envois et réception de données sur smartphone&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| terminé et testé &lt;br /&gt;
|-&lt;br /&gt;
| acquisition des données de l'accéléromètre avec l'arduino mini&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| donnée récupérer à partir de 2 accéléromètre mais on peut en ajouter plus&lt;br /&gt;
|-&lt;br /&gt;
| liaison série arduino mini et esp8266&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;testé&amp;lt;/font&amp;gt;&lt;br /&gt;
| Communication réalisé mais quelque amélioration à faire, il faut optimiser le code&lt;br /&gt;
|-&lt;br /&gt;
| mise en commun de la partie wifi et acquisition de données&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Inachevé&amp;lt;/font&amp;gt;&lt;br /&gt;
| la mise en commun pose quelque problème notamment la réception de donnée non cohérente par le smartphone&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 + Heures supplémentairements !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 2H&lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| documentation&lt;br /&gt;
| 2h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liste du matériel &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
| 6h&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude du module Wi-fi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
| 2H&lt;br /&gt;
| 4H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude, programmation, câblage du 10 DOF &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4H&lt;br /&gt;
| 8H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accéléromètre &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2H&lt;br /&gt;
| étude 3H &lt;br /&gt;
| &lt;br /&gt;
| schématique 2H &lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liaison arduino esp&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 16H&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| étude et programmation arduino mini&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 16H&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| application mobile&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2H&lt;br /&gt;
|4H&lt;br /&gt;
|4H&lt;br /&gt;
|&lt;br /&gt;
|10h&lt;br /&gt;
|10H&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différents choix matériel notamment dans la référence des accéléromètres ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL335. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données vers un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est plus rapide que le module bluetooth. Cependant, ce dernier ne consomme pas beaucoup de charge de la batterie du smartphone mais il fonctionne  essentiellement sur de petites distances et avec des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grandes ainsi que des tailles de données beaucoup plus importantes.&lt;br /&gt;
&lt;br /&gt;
Finalement, nous avons opté pour le module WIFI pour limiter le moins possible l'utilisateur en ce qui concerne la distance entre les appareils et le volume de données transmis.&lt;br /&gt;
&lt;br /&gt;
*Confirmation de la liste de matériel: &lt;br /&gt;
  *accéléromètre ADXL335&lt;br /&gt;
  *Smartphone sous Android&lt;br /&gt;
  *15 longs fils mâle-femelle, mâle-mâle&lt;br /&gt;
  *Arduino pro -mini&lt;br /&gt;
  *Module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnelles avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:cad1_1.PNG| 900px ]]&lt;br /&gt;
[[Fichier:cad1.PNG| 900px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, l’accéléromètre 10 DOF, ainsi que l'arduino MEGA qui sera utilisé pour l’acquisition des données. L'accéléromètre 10DOF incorpore un gyroscope et un magnétomètre. Ceux-ci nous permettront d'avoir une meilleure précision des mesures notamment avec la mesure des orientations (vitesses angulaires).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérées en direct sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes également intéressé au calcule de l'angle à partir de l’accélération. &lt;br /&gt;
Prenons l'exemple de l’accéléromètre penché de la manière suivante.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:exemple5.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Le triangle G,Gx Gz forme un triangle rectangle, dans notre cas nous avons Gx,Gy et Gz qui sont les valeurs du vecteur gravitationnel G sur les trois axes et nous devons déduire 𝝰 (l’angle que fait Gx avec l’axe x), 𝝋 (l’angle que fait Gy avec l’axe y) et ᴪ (l’angle que fait Gz avec l’axe z). La norme de G est&lt;br /&gt;
[[Fichier:Norme2.PNG| 200px ]]&lt;br /&gt;
On récupére ensuite chaque angle de la manière suivante: &lt;br /&gt;
[[Fichier:Calcule_angle.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10DOF que nous testerons la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération de l'angle réalisé par l'accéléromètre.( Dans le code suivant nous avons uniquement l'acquisition des données)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof_code.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendus compte que les calculs ne sont pas réalisés correctement par le MEGA. En effet la mesure de l'angle n'était pas précis car le MEGA n'a pas assez de puissance de calcul pour faire les différentes divisions.  &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 100px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé que le MEGA servira uniquement à récupérer les données et à les envoyer via module WIFI. Ce sera donc à l'application Android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le module WIFI ESP8266 que nous utiliserons, afin de nous faire une idée de son utilisation.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installé les logiciels nécessaires ( Android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes intéressées  au module wifi, en commençant par lire la fiche technique de l'esp 8266, nous avons également cherché les différents types d'exemples . &lt;br /&gt;
&lt;br /&gt;
Des recherches sur le mode de connexion entre le smartphone et le Mega à travers le module WIFI ont également été effectuer dans le but de se faire une idée, nous hésitons sur l'utilisation de Sockets UDP , ou de réaliser une transmission en TCP .&lt;br /&gt;
&lt;br /&gt;
Le programme réalisée lors de la séance précédente a été testé, notamment les tests de récupération des données de l'accéléromètre 10-DOF sur le Mega.&lt;br /&gt;
&lt;br /&gt;
Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 a également été entamé.&lt;br /&gt;
&lt;br /&gt;
Nous avons également rencontré un certain nombre de problème :&lt;br /&gt;
&lt;br /&gt;
Afin se connecter en WIFI à partir de n’importe où, nous avons décidé de se connecter premièrement à un réseau standard (point d'accès fourni par le smartphone dans un premier temps) puis de modifier le réseau sur lequel nous sommes connecté à partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière.&lt;br /&gt;
[[Fichier:connection.PNG| 500px ]]&lt;br /&gt;
&lt;br /&gt;
La possibilité et l'utilité de l'ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête ( gérer les rotations).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle, nous avons également avancé avec la création d'une application android pour la réception et l'affichage de données.&lt;br /&gt;
Nous avons décidé de:&lt;br /&gt;
* faire une page d'accueil dans laquelle le kinésithérapeute devra appuyer sur un bouton lorsqu'il aura bien positionné le patient pour enregistrer la bonne position.&lt;br /&gt;
* à l'appui du bouton, le smartphone va contacter le module WIFI à travers un message broadcast (en utilisant une communication UDP) dans le réseau. &lt;br /&gt;
* Le MODULE WIFI, qui est déjà en attente d'une trame venant du smartphone, reçoit le message broadcast, extrait l'adresse IP du smartphone, puis, lui envoie des données du capteur.&lt;br /&gt;
* le smartphone, à son tour va utiliser ces données pour calculer les angles d'inclinaison sur les différents axes et les afficher. Notons que les premiers angles calculés sont ceux correspondant à la bonne position. &lt;br /&gt;
* A intervalle régulier, le module ESP va envoyer de nouvelles données que le smartphone va traiter et comparer avec les angles de la bonne position et prévenir le patient si la position a changer.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:transmition.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
* Réception du matériel&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ADXL345.PNG| 100px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par étudier l'accéléromètre reçu, en effet la référence de ce dernier est ADXL345 et est digital à l’inverse de celui choisi qui était analogique. De ce fait, nous avons modifié une partie du cahier des charges.&lt;br /&gt;
&lt;br /&gt;
Les accéléromètres adxl345 sont alimentés en 3.3V et sont digitaux. Par conséquent, nous n'aurons plus besoin de sortie analogique.  &lt;br /&gt;
&lt;br /&gt;
*fonctionnement : accéléromètres digitaux pouvant fonctionner en SPI comme en I2C et supportant 3.3V. Résolution: 10 bits, régler en mode +/-2g. Donc les valeurs de notre registre de données seront dans la plage [-512 ,512]. Mais puisque nous ne mesurons que la force gravitationnelle, nous aurons des valeurs comprises entre [-256,256] qui est la plage correspondant à -/1g. 1g correspond à la valeur de 9.80m/s2.&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: des entiers de -512 à 512 qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre selon l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
L'établissement des activités nécessairement et documentation sur le choix des sockets à utiliser pour l'envoi des données a également été entamé.&lt;br /&gt;
&lt;br /&gt;
Coté Smartphone: &lt;br /&gt;
&lt;br /&gt;
*Créations de la page d'accueil et de la page de visualisation des angles d'inclinaisons&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé l'étude de l'accéléromètre digital, nous devrons nous servir des ports digitaux du MEGA et choisir l’accéléromètre à partir duquel nous récupérons les données grâce à un chip select. Pour cela nous devrons utiliser la bibliothèque SPI.h et brancher le pin CS de l'accéléromètre à des pin digitaux du mega.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mais les pin de l'accéleromètre n'acceptent que des tensions de 3.3V alors que ceux du Mega fournissent des tensions de 5v. Nous aurons donc besoin d'un mécanisme de régulation des tensions en sortie de Mega.&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
Nous avons réalisé une carte électronique grâce au logiciel fritzing pour réaliser l’adaptation de tensions entre l’accéléromètre adxl345 et la carte MEGA. En effet l'accéléromètre supporte des tensions maximales de 3.3V alors que le MEGA donne en sortie 5V.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:carte_elec1.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Coté Smartphone:&lt;br /&gt;
&lt;br /&gt;
* création de la page d'accueil avec implémentation du code pour la communication UDP entre le smartphone et l'ESP8266.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_daccueil.jpg]]&lt;br /&gt;
* Nous rencontrons des problèmes en ce qui concerne la l'implémentation du programme coté ESP.&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la carte électronique faite la semaine précédente. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:carte_elec2.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Afin de tester la carte, nous avons alimenter les pins d’entrée par des 5v et avons observé la sortie du circuit. Malheureusement, seulement un pin en sortie &lt;br /&gt;
fournissait une tension de 3.3V.&lt;br /&gt;
Elle ne fonctionne pas et nous n'avons pas pu comprendre pourquoi. &lt;br /&gt;
&lt;br /&gt;
Par conséquent, nous avons changé de microcontrôleur. Nous avons reçu un arduino pro mini 3.3V compatible avec nos capteurs ( mais qui ne l'est pas avec le 10DOF ). &lt;br /&gt;
Nous commençons par conséquent à recueillir les données du capteurs. Pour cela, nous avons utilisé une librairie pour les ADXL345.&lt;br /&gt;
La première étape est de sélectionner le chip Select en définissant un ADXL grâce à la fonction suivante:&lt;br /&gt;
[[Fichier:def_adxl.PNG| 200px ]]&lt;br /&gt;
Cette fonction prend en paramètre le pin lié au chip Select de accéléromètre.&lt;br /&gt;
&lt;br /&gt;
Ensuite on récupère les données grâce à la fonction readaccel comme suit:&lt;br /&gt;
[[Fichier:readaccel.PNG| 200px ]]&lt;br /&gt;
La fonction stocke alors les valeurs lues par l'accéléromètre dans x,y et z.&lt;br /&gt;
&lt;br /&gt;
 code :&lt;br /&gt;
 [[Fichier:codemini1.PNG| 400px ]]&lt;br /&gt;
 &lt;br /&gt;
 [[Fichier:codemini2.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
Nous réalisons ensuite le montage suivant de manière à pouvoir lire sur le port série les valeurs .&lt;br /&gt;
&lt;br /&gt;
[[Fichier:montageaccel.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Partie smartphone:&lt;br /&gt;
succès de la connexion au wi-fi partagé d'un smartphone. Coté ESP comme coté smartphone.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:affichage_valeur.jpg | 200px]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
'''Etude de la partie communication entre l'arduino pro mini et l'ESP8266 pour l'envoie des données du capteur'''&lt;br /&gt;
&lt;br /&gt;
Nous avons implémenté le module Wifi de manière à ce que l’on puisse recevoir les données des accélérations reçus par l’arduino mini.7&lt;br /&gt;
&lt;br /&gt;
Pour cela, nous avons utilisée la bibliothèque SoftwareSerial d’arduino et avons défini deux liaisons série (l'une du côté du mini et l’autre du coté esp).Le mini envois un “a” indiquant à l'esp qu'il commence à envoyer une serie de données.Ensuite on ramène les valeurs de l'accéléromètre sur l'échelle de g (gravitation terrestre ) gracz à un produit en croix . Pour finir, nous envoyons les données grâce à un serial write qui écrit sur les pins de l’esp ( pin 14 RX et 12 TX).&lt;br /&gt;
&lt;br /&gt;
Du côté de l’esp, on définit une liaison du nom de swSer au même baudrate que la précédente (9600). On attend la réception de 72 ( l'équivalent de ‘a’ en integer) indiquant que l’on commence à transmettre des données de l'accéléromètre. Une fois ce nombre reçu on incrémente un compteur à chaque réception d’un chiffre et à partir de la valeur de ce compteur nous plaçons la donnée dans la variable qui la définit ( la première donnée est celle de x1 donc si compteur est à 1 on place la valeur lue par swSer.read dans la variable x1 )&lt;br /&gt;
&lt;br /&gt;
===Fichiers rendus===&lt;br /&gt;
&lt;br /&gt;
rapport de projet : [[Fichier:Rapport_Fahem_Diop.pdf]]&lt;br /&gt;
Code de la partie smartphone: [[Fichier:]]&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=42847</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=42847"/>
				<updated>2017-05-20T15:31:07Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Semaine 9 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Les accéléromètres nous permettent de calculer l'angle d'inclinaison à partir de la force gravitationnelle qu'ils peuvent mesurer selon les trois axes. Lorsque la position idéale du patient sera choisie par le médecin, nous pourrons enregistrer cette position en mémorisant l'inclinaison de chaque accéléromètre pour cette position. Ainsi un changement de position sera identifié par une variation des angles d'inclinaison précédemment pris. Nous allons utilisé les accéléromètres analogiques de type adxl335. Une fois que nous aurons à disposition les valeurs de l'accéléromètre et, par conséquent les angles d'inclinaison, nous aurons besoin d'un moyen d'affichage des ces données. Pour ce faire, nous avons opté dans un premier temps pour une affichage sur smartphone. Les données vont être envoyées au smartphone à travers un module WIFI connectés au même réseau que le smartphone.  En récapitulant, nous aurons finalement besoin de:&lt;br /&gt;
* 5 accéléromètres adxl335.&lt;br /&gt;
* un arduino Mega&lt;br /&gt;
* un module WIFI &lt;br /&gt;
* des fils pour la liaison.&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement : accéléromètres à sortie analogique. Nous aurons donc besoin de 3 sorties analogiques par capteur (donc 3*5 sorties analogiques)&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: force gravitationnelle selon les trois axes qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre par rapport à l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
&lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification et acquisition de la position idéale à l'aide des accéléromètres placées le long de la colonne vertébrale;&lt;br /&gt;
*notification au patient (à travers le smartphone) lorsqu'une position différente de celle idéale a été détectée.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
==tâches à réaliser==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Avancement !! Commentaires&lt;br /&gt;
|-&lt;br /&gt;
| acquisition des données 10DOF&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| connexion au WIFI (esp9266)&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| connexion à un wifi standard prédéfinit lors de la programmation&lt;br /&gt;
|-&lt;br /&gt;
| pages application smartphone&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
| envois et réception de données sur smartphone&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| terminé et testé &lt;br /&gt;
|-&lt;br /&gt;
| acquisition des données de l'accéléromètre avec l'arduino mini&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| donnée récupérer à partir de 2 accéléromètre mais on peut en ajouter plus&lt;br /&gt;
|-&lt;br /&gt;
| liaison série arduino mini et esp8266&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;testé&amp;lt;/font&amp;gt;&lt;br /&gt;
| Communication réalisé mais quelque amélioration à faire, il faut optimiser le code&lt;br /&gt;
|-&lt;br /&gt;
| mise en commun de la partie wifi et acquisition de données&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Inachevé&amp;lt;/font&amp;gt;&lt;br /&gt;
| la mise en commun pose quelque problème notamment la réception de donnée non cohérente par le smartphone&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 + Heures supplémentairements !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 2H&lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| documentation&lt;br /&gt;
| 2h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liste du matériel &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
| 6h&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude du module Wi-fi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
| 2H&lt;br /&gt;
| 4H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude, programmation, câblage du 10 DOF &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4H&lt;br /&gt;
| 8H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accéléromètre &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2H&lt;br /&gt;
| étude 3H &lt;br /&gt;
| &lt;br /&gt;
| schématique 2H &lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liaison arduino esp&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 16H&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| étude et programmation arduino mini&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 16H&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| application mobile&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2H&lt;br /&gt;
|4H&lt;br /&gt;
|4H&lt;br /&gt;
|&lt;br /&gt;
|10h&lt;br /&gt;
|10H&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différents choix matériel notamment dans la référence des accéléromètres ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL335. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données vers un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est plus rapide que le module bluetooth. Cependant, ce dernier ne consomme pas beaucoup de charge de la batterie du smartphone mais il fonctionne  essentiellement sur de petites distances et avec des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grandes ainsi que des tailles de données beaucoup plus importantes.&lt;br /&gt;
&lt;br /&gt;
Finalement, nous avons opté pour le module WIFI pour limiter le moins possible l'utilisateur en ce qui concerne la distance entre les appareils et le volume de données transmis.&lt;br /&gt;
&lt;br /&gt;
*Confirmation de la liste de matériel: &lt;br /&gt;
  *accéléromètre ADXL335&lt;br /&gt;
  *Smartphone sous Android&lt;br /&gt;
  *15 longs fils mâle-femelle, mâle-mâle&lt;br /&gt;
  *Arduino pro -mini&lt;br /&gt;
  *Module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnelles avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:cad1_1.PNG| 900px ]]&lt;br /&gt;
[[Fichier:cad1.PNG| 900px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, l’accéléromètre 10 DOF, ainsi que l'arduino MEGA qui sera utilisé pour l’acquisition des données. L'accéléromètre 10DOF incorpore un gyroscope et un magnétomètre. Ceux-ci nous permettront d'avoir une meilleure précision des mesures notamment avec la mesure des orientations (vitesses angulaires).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérées en direct sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes également intéressé au calcule de l'angle à partir de l’accélération. &lt;br /&gt;
Prenons l'exemple de l’accéléromètre penché de la manière suivante.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:exemple5.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Le triangle G,Gx Gz forme un triangle rectangle, dans notre cas nous avons Gx,Gy et Gz qui sont les valeurs du vecteur gravitationnel G sur les trois axes et nous devons déduire 𝝰 (l’angle que fait Gx avec l’axe x), 𝝋 (l’angle que fait Gy avec l’axe y) et ᴪ (l’angle que fait Gz avec l’axe z). La norme de G est&lt;br /&gt;
[[Fichier:Norme2.PNG| 200px ]]&lt;br /&gt;
On récupére ensuite chaque angle de la manière suivante: &lt;br /&gt;
[[Fichier:Calcule_angle.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10DOF que nous testerons la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération de l'angle réalisé par l'accéléromètre.( Dans le code suivant nous avons uniquement l'acquisition des données)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof_code.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendus compte que les calculs ne sont pas réalisés correctement par le MEGA. En effet la mesure de l'angle n'était pas précis car le MEGA n'a pas assez de puissance de calcul pour faire les différentes divisions.  &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 100px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé que le MEGA servira uniquement à récupérer les données et à les envoyer via module WIFI. Ce sera donc à l'application Android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le module WIFI ESP8266 que nous utiliserons, afin de nous faire une idée de son utilisation.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installé les logiciels nécessaires ( Android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes intéressées  au module wifi, en commençant par lire la fiche technique de l'esp 8266, nous avons également cherché les différents types d'exemples . &lt;br /&gt;
&lt;br /&gt;
Des recherches sur le mode de connexion entre le smartphone et le Mega à travers le module WIFI ont également été effectuer dans le but de se faire une idée, nous hésitons sur l'utilisation de Sockets UDP , ou de réaliser une transmission en TCP .&lt;br /&gt;
&lt;br /&gt;
Le programme réalisée lors de la séance précédente a été testé, notamment les tests de récupération des données de l'accéléromètre 10-DOF sur le Mega.&lt;br /&gt;
&lt;br /&gt;
Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 a également été entamé.&lt;br /&gt;
&lt;br /&gt;
Nous avons également rencontré un certain nombre de problème :&lt;br /&gt;
&lt;br /&gt;
Afin se connecter en WIFI à partir de n’importe où, nous avons décidé de se connecter premièrement à un réseau standard (point d'accès fourni par le smartphone dans un premier temps) puis de modifier le réseau sur lequel nous sommes connecté à partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière.&lt;br /&gt;
[[Fichier:connection.PNG| 500px ]]&lt;br /&gt;
&lt;br /&gt;
La possibilité et l'utilité de l'ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête ( gérer les rotations).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle, nous avons également avancé avec la création d'une application android pour la réception et l'affichage de données.&lt;br /&gt;
Nous avons décidé de:&lt;br /&gt;
* faire une page d'accueil dans laquelle le kinésithérapeute devra appuyer sur un bouton lorsqu'il aura bien positionné le patient pour enregistrer la bonne position.&lt;br /&gt;
* à l'appui du bouton, le smartphone va contacter le module WIFI à travers un message broadcast (en utilisant une communication UDP) dans le réseau. &lt;br /&gt;
* Le MODULE WIFI, qui est déjà en attente d'une trame venant du smartphone, reçoit le message broadcast, extrait l'adresse IP du smartphone, puis, lui envoie des données du capteur.&lt;br /&gt;
* le smartphone, à son tour va utiliser ces données pour calculer les angles d'inclinaison sur les différents axes et les afficher. Notons que les premiers angles calculés sont ceux correspondant à la bonne position. &lt;br /&gt;
* A intervalle régulier, le module ESP va envoyer de nouvelles données que le smartphone va traiter et comparer avec les angles de la bonne position et prévenir le patient si la position a changer.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:transmition.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
* Réception du matériel&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ADXL345.PNG| 100px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par étudier l'accéléromètre reçu, en effet la référence de ce dernier est ADXL345 et est digital à l’inverse de celui choisi qui était analogique. De ce fait, nous avons modifié une partie du cahier des charges.&lt;br /&gt;
&lt;br /&gt;
Les accéléromètres adxl345 sont alimentés en 3.3V et sont digitaux. Par conséquent, nous n'aurons plus besoin de sortie analogique.  &lt;br /&gt;
&lt;br /&gt;
*fonctionnement : accéléromètres digitaux pouvant fonctionner en SPI comme en I2C et supportant 3.3V. Résolution: 10 bits, régler en mode +/-2g. Donc les valeurs de notre registre de données seront dans la plage [-512 ,512]. Mais puisque nous ne mesurons que la force gravitationnelle, nous aurons des valeurs comprises entre [-256,256] qui est la plage correspondant à -/1g. 1g correspond à la valeur de 9.80m/s2.&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: des entiers de -512 à 512 qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre selon l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
L'établissement des activités nécessairement et documentation sur le choix des sockets à utiliser pour l'envoi des données a également été entamé.&lt;br /&gt;
&lt;br /&gt;
Coté Smartphone: &lt;br /&gt;
&lt;br /&gt;
*Créations de la page d'accueil et de la page de visualisation des angles d'inclinaisons&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé l'étude de l'accéléromètre digital, nous devrons nous servir des ports digitaux du MEGA et choisir l’accéléromètre à partir duquel nous récupérons les données grâce à un chip select. Pour cela nous devrons utiliser la bibliothèque SPI.h et brancher le pin CS de l'accéléromètre à des pin digitaux du mega.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mais les pin de l'accéleromètre n'acceptent que des tensions de 3.3V alors que ceux du Mega fournissent des tensions de 5v. Nous aurons donc besoin d'un mécanisme de régulation des tensions en sortie de Mega.&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
Nous avons réalisé une carte électronique grâce au logiciel fritzing pour réaliser l’adaptation de tensions entre l’accéléromètre adxl345 et la carte MEGA. En effet l'accéléromètre supporte des tensions maximales de 3.3V alors que le MEGA donne en sortie 5V.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:carte_elec1.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Coté Smartphone:&lt;br /&gt;
&lt;br /&gt;
* création de la page d'accueil avec implémentation du code pour la communication UDP entre le smartphone et l'ESP8266.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_daccueil.jpg]]&lt;br /&gt;
* Nous rencontrons des problèmes en ce qui concerne la l'implémentation du programme coté ESP.&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la carte électronique faite la semaine précédente. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:carte_elec2.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Afin de tester la carte, nous avons alimenter les pins d’entrée par des 5v et avons observé la sortie du circuit. Malheureusement, seulement un pin en sortie &lt;br /&gt;
fournissait une tension de 3.3V.&lt;br /&gt;
Elle ne fonctionne pas et nous n'avons pas pu comprendre pourquoi. &lt;br /&gt;
&lt;br /&gt;
Par conséquent, nous avons changé de microcontrôleur. Nous avons reçu un arduino pro mini 3.3V compatible avec nos capteurs ( mais qui ne l'est pas avec le 10DOF ). &lt;br /&gt;
Nous commençons par conséquent à recueillir les données du capteurs. Pour cela, nous avons utilisé une librairie pour les ADXL345.&lt;br /&gt;
La première étape est de sélectionner le chip Select en définissant un ADXL grâce à la fonction suivante:&lt;br /&gt;
[[Fichier:def_adxl.PNG| 200px ]]&lt;br /&gt;
Cette fonction prend en paramètre le pin lié au chip Select de accéléromètre.&lt;br /&gt;
&lt;br /&gt;
Ensuite on récupère les données grâce à la fonction readaccel comme suit:&lt;br /&gt;
[[Fichier:readaccel.PNG| 200px ]]&lt;br /&gt;
La fonction stocke alors les valeurs lues par l'accéléromètre dans x,y et z.&lt;br /&gt;
&lt;br /&gt;
 code :&lt;br /&gt;
 [[Fichier:codemini1.PNG| 400px ]]&lt;br /&gt;
 &lt;br /&gt;
 [[Fichier:codemini2.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
Nous réalisons ensuite le montage suivant de manière à pouvoir lire sur le port série les valeurs .&lt;br /&gt;
&lt;br /&gt;
[[Fichier:montageaccel.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Partie smartphone:&lt;br /&gt;
succès de la connexion au wi-fi partagé d'un smartphone. Coté ESP comme coté smartphone.[[Fichier:affichage_valeur.jpg | 200px]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
'''Etude de la partie communication entre l'arduino pro mini et l'ESP8266 pour l'envoie des données du capteur'''&lt;br /&gt;
&lt;br /&gt;
Nous avons implémenté le module Wifi de manière à ce que l’on puisse recevoir les données des accélérations reçus par l’arduino mini.7&lt;br /&gt;
&lt;br /&gt;
Pour cela, nous avons utilisée la bibliothèque SoftwareSerial d’arduino et avons défini deux liaisons série (l'une du côté du mini et l’autre du coté esp).Le mini envois un “a” indiquant à l'esp qu'il commence à envoyer une serie de données.Ensuite on ramène les valeurs de l'accéléromètre sur l'échelle de g (gravitation terrestre ) gracz à un produit en croix . Pour finir, nous envoyons les données grâce à un serial write qui écrit sur les pins de l’esp ( pin 14 RX et 12 TX).&lt;br /&gt;
&lt;br /&gt;
Du côté de l’esp, on définit une liaison du nom de swSer au même baudrate que la précédente (9600). On attend la réception de 72 ( l'équivalent de ‘a’ en integer) indiquant que l’on commence à transmettre des données de l'accéléromètre. Une fois ce nombre reçu on incrémente un compteur à chaque réception d’un chiffre et à partir de la valeur de ce compteur nous plaçons la donnée dans la variable qui la définit ( la première donnée est celle de x1 donc si compteur est à 1 on place la valeur lue par swSer.read dans la variable x1 )&lt;br /&gt;
&lt;br /&gt;
===Fichiers rendus===&lt;br /&gt;
&lt;br /&gt;
rapport de projet : [[Fichier:Rapport_Fahem_Diop.pdf]]&lt;br /&gt;
Code de la partie smartphone: [[Fichier:]]&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=42845</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=42845"/>
				<updated>2017-05-20T15:30:24Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Semaine 9 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Les accéléromètres nous permettent de calculer l'angle d'inclinaison à partir de la force gravitationnelle qu'ils peuvent mesurer selon les trois axes. Lorsque la position idéale du patient sera choisie par le médecin, nous pourrons enregistrer cette position en mémorisant l'inclinaison de chaque accéléromètre pour cette position. Ainsi un changement de position sera identifié par une variation des angles d'inclinaison précédemment pris. Nous allons utilisé les accéléromètres analogiques de type adxl335. Une fois que nous aurons à disposition les valeurs de l'accéléromètre et, par conséquent les angles d'inclinaison, nous aurons besoin d'un moyen d'affichage des ces données. Pour ce faire, nous avons opté dans un premier temps pour une affichage sur smartphone. Les données vont être envoyées au smartphone à travers un module WIFI connectés au même réseau que le smartphone.  En récapitulant, nous aurons finalement besoin de:&lt;br /&gt;
* 5 accéléromètres adxl335.&lt;br /&gt;
* un arduino Mega&lt;br /&gt;
* un module WIFI &lt;br /&gt;
* des fils pour la liaison.&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement : accéléromètres à sortie analogique. Nous aurons donc besoin de 3 sorties analogiques par capteur (donc 3*5 sorties analogiques)&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: force gravitationnelle selon les trois axes qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre par rapport à l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
&lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification et acquisition de la position idéale à l'aide des accéléromètres placées le long de la colonne vertébrale;&lt;br /&gt;
*notification au patient (à travers le smartphone) lorsqu'une position différente de celle idéale a été détectée.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
==tâches à réaliser==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Avancement !! Commentaires&lt;br /&gt;
|-&lt;br /&gt;
| acquisition des données 10DOF&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| connexion au WIFI (esp9266)&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| connexion à un wifi standard prédéfinit lors de la programmation&lt;br /&gt;
|-&lt;br /&gt;
| pages application smartphone&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
| envois et réception de données sur smartphone&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| terminé et testé &lt;br /&gt;
|-&lt;br /&gt;
| acquisition des données de l'accéléromètre avec l'arduino mini&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| donnée récupérer à partir de 2 accéléromètre mais on peut en ajouter plus&lt;br /&gt;
|-&lt;br /&gt;
| liaison série arduino mini et esp8266&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;testé&amp;lt;/font&amp;gt;&lt;br /&gt;
| Communication réalisé mais quelque amélioration à faire, il faut optimiser le code&lt;br /&gt;
|-&lt;br /&gt;
| mise en commun de la partie wifi et acquisition de données&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Inachevé&amp;lt;/font&amp;gt;&lt;br /&gt;
| la mise en commun pose quelque problème notamment la réception de donnée non cohérente par le smartphone&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 + Heures supplémentairements !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 2H&lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| documentation&lt;br /&gt;
| 2h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liste du matériel &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
| 6h&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude du module Wi-fi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
| 2H&lt;br /&gt;
| 4H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude, programmation, câblage du 10 DOF &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4H&lt;br /&gt;
| 8H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accéléromètre &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2H&lt;br /&gt;
| étude 3H &lt;br /&gt;
| &lt;br /&gt;
| schématique 2H &lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liaison arduino esp&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 16H&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| étude et programmation arduino mini&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 16H&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| application mobile&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2H&lt;br /&gt;
|4H&lt;br /&gt;
|4H&lt;br /&gt;
|&lt;br /&gt;
|10h&lt;br /&gt;
|10H&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différents choix matériel notamment dans la référence des accéléromètres ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL335. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données vers un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est plus rapide que le module bluetooth. Cependant, ce dernier ne consomme pas beaucoup de charge de la batterie du smartphone mais il fonctionne  essentiellement sur de petites distances et avec des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grandes ainsi que des tailles de données beaucoup plus importantes.&lt;br /&gt;
&lt;br /&gt;
Finalement, nous avons opté pour le module WIFI pour limiter le moins possible l'utilisateur en ce qui concerne la distance entre les appareils et le volume de données transmis.&lt;br /&gt;
&lt;br /&gt;
*Confirmation de la liste de matériel: &lt;br /&gt;
  *accéléromètre ADXL335&lt;br /&gt;
  *Smartphone sous Android&lt;br /&gt;
  *15 longs fils mâle-femelle, mâle-mâle&lt;br /&gt;
  *Arduino pro -mini&lt;br /&gt;
  *Module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnelles avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:cad1_1.PNG| 900px ]]&lt;br /&gt;
[[Fichier:cad1.PNG| 900px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, l’accéléromètre 10 DOF, ainsi que l'arduino MEGA qui sera utilisé pour l’acquisition des données. L'accéléromètre 10DOF incorpore un gyroscope et un magnétomètre. Ceux-ci nous permettront d'avoir une meilleure précision des mesures notamment avec la mesure des orientations (vitesses angulaires).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérées en direct sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes également intéressé au calcule de l'angle à partir de l’accélération. &lt;br /&gt;
Prenons l'exemple de l’accéléromètre penché de la manière suivante.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:exemple5.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Le triangle G,Gx Gz forme un triangle rectangle, dans notre cas nous avons Gx,Gy et Gz qui sont les valeurs du vecteur gravitationnel G sur les trois axes et nous devons déduire 𝝰 (l’angle que fait Gx avec l’axe x), 𝝋 (l’angle que fait Gy avec l’axe y) et ᴪ (l’angle que fait Gz avec l’axe z). La norme de G est&lt;br /&gt;
[[Fichier:Norme2.PNG| 200px ]]&lt;br /&gt;
On récupére ensuite chaque angle de la manière suivante: &lt;br /&gt;
[[Fichier:Calcule_angle.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10DOF que nous testerons la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération de l'angle réalisé par l'accéléromètre.( Dans le code suivant nous avons uniquement l'acquisition des données)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof_code.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendus compte que les calculs ne sont pas réalisés correctement par le MEGA. En effet la mesure de l'angle n'était pas précis car le MEGA n'a pas assez de puissance de calcul pour faire les différentes divisions.  &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 100px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé que le MEGA servira uniquement à récupérer les données et à les envoyer via module WIFI. Ce sera donc à l'application Android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le module WIFI ESP8266 que nous utiliserons, afin de nous faire une idée de son utilisation.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installé les logiciels nécessaires ( Android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes intéressées  au module wifi, en commençant par lire la fiche technique de l'esp 8266, nous avons également cherché les différents types d'exemples . &lt;br /&gt;
&lt;br /&gt;
Des recherches sur le mode de connexion entre le smartphone et le Mega à travers le module WIFI ont également été effectuer dans le but de se faire une idée, nous hésitons sur l'utilisation de Sockets UDP , ou de réaliser une transmission en TCP .&lt;br /&gt;
&lt;br /&gt;
Le programme réalisée lors de la séance précédente a été testé, notamment les tests de récupération des données de l'accéléromètre 10-DOF sur le Mega.&lt;br /&gt;
&lt;br /&gt;
Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 a également été entamé.&lt;br /&gt;
&lt;br /&gt;
Nous avons également rencontré un certain nombre de problème :&lt;br /&gt;
&lt;br /&gt;
Afin se connecter en WIFI à partir de n’importe où, nous avons décidé de se connecter premièrement à un réseau standard (point d'accès fourni par le smartphone dans un premier temps) puis de modifier le réseau sur lequel nous sommes connecté à partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière.&lt;br /&gt;
[[Fichier:connection.PNG| 500px ]]&lt;br /&gt;
&lt;br /&gt;
La possibilité et l'utilité de l'ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête ( gérer les rotations).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle, nous avons également avancé avec la création d'une application android pour la réception et l'affichage de données.&lt;br /&gt;
Nous avons décidé de:&lt;br /&gt;
* faire une page d'accueil dans laquelle le kinésithérapeute devra appuyer sur un bouton lorsqu'il aura bien positionné le patient pour enregistrer la bonne position.&lt;br /&gt;
* à l'appui du bouton, le smartphone va contacter le module WIFI à travers un message broadcast (en utilisant une communication UDP) dans le réseau. &lt;br /&gt;
* Le MODULE WIFI, qui est déjà en attente d'une trame venant du smartphone, reçoit le message broadcast, extrait l'adresse IP du smartphone, puis, lui envoie des données du capteur.&lt;br /&gt;
* le smartphone, à son tour va utiliser ces données pour calculer les angles d'inclinaison sur les différents axes et les afficher. Notons que les premiers angles calculés sont ceux correspondant à la bonne position. &lt;br /&gt;
* A intervalle régulier, le module ESP va envoyer de nouvelles données que le smartphone va traiter et comparer avec les angles de la bonne position et prévenir le patient si la position a changer.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:transmition.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
* Réception du matériel&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ADXL345.PNG| 100px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par étudier l'accéléromètre reçu, en effet la référence de ce dernier est ADXL345 et est digital à l’inverse de celui choisi qui était analogique. De ce fait, nous avons modifié une partie du cahier des charges.&lt;br /&gt;
&lt;br /&gt;
Les accéléromètres adxl345 sont alimentés en 3.3V et sont digitaux. Par conséquent, nous n'aurons plus besoin de sortie analogique.  &lt;br /&gt;
&lt;br /&gt;
*fonctionnement : accéléromètres digitaux pouvant fonctionner en SPI comme en I2C et supportant 3.3V. Résolution: 10 bits, régler en mode +/-2g. Donc les valeurs de notre registre de données seront dans la plage [-512 ,512]. Mais puisque nous ne mesurons que la force gravitationnelle, nous aurons des valeurs comprises entre [-256,256] qui est la plage correspondant à -/1g. 1g correspond à la valeur de 9.80m/s2.&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: des entiers de -512 à 512 qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre selon l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
L'établissement des activités nécessairement et documentation sur le choix des sockets à utiliser pour l'envoi des données a également été entamé.&lt;br /&gt;
&lt;br /&gt;
Coté Smartphone: &lt;br /&gt;
&lt;br /&gt;
*Créations de la page d'accueil et de la page de visualisation des angles d'inclinaisons&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé l'étude de l'accéléromètre digital, nous devrons nous servir des ports digitaux du MEGA et choisir l’accéléromètre à partir duquel nous récupérons les données grâce à un chip select. Pour cela nous devrons utiliser la bibliothèque SPI.h et brancher le pin CS de l'accéléromètre à des pin digitaux du mega.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mais les pin de l'accéleromètre n'acceptent que des tensions de 3.3V alors que ceux du Mega fournissent des tensions de 5v. Nous aurons donc besoin d'un mécanisme de régulation des tensions en sortie de Mega.&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
Nous avons réalisé une carte électronique grâce au logiciel fritzing pour réaliser l’adaptation de tensions entre l’accéléromètre adxl345 et la carte MEGA. En effet l'accéléromètre supporte des tensions maximales de 3.3V alors que le MEGA donne en sortie 5V.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:carte_elec1.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Coté Smartphone:&lt;br /&gt;
&lt;br /&gt;
* création de la page d'accueil avec implémentation du code pour la communication UDP entre le smartphone et l'ESP8266.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_daccueil.jpg]]&lt;br /&gt;
* Nous rencontrons des problèmes en ce qui concerne la l'implémentation du programme coté ESP.&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la carte électronique faite la semaine précédente. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:carte_elec2.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Afin de tester la carte, nous avons alimenter les pins d’entrée par des 5v et avons observé la sortie du circuit. Malheureusement, seulement un pin en sortie &lt;br /&gt;
fournissait une tension de 3.3V.&lt;br /&gt;
Elle ne fonctionne pas et nous n'avons pas pu comprendre pourquoi. &lt;br /&gt;
&lt;br /&gt;
Par conséquent, nous avons changé de microcontrôleur. Nous avons reçu un arduino pro mini 3.3V compatible avec nos capteurs ( mais qui ne l'est pas avec le 10DOF ). &lt;br /&gt;
Nous commençons par conséquent à recueillir les données du capteurs. Pour cela, nous avons utilisé une librairie pour les ADXL345.&lt;br /&gt;
La première étape est de sélectionner le chip Select en définissant un ADXL grâce à la fonction suivante:&lt;br /&gt;
[[Fichier:def_adxl.PNG| 200px ]]&lt;br /&gt;
Cette fonction prend en paramètre le pin lié au chip Select de accéléromètre.&lt;br /&gt;
&lt;br /&gt;
Ensuite on récupère les données grâce à la fonction readaccel comme suit:&lt;br /&gt;
[[Fichier:readaccel.PNG| 200px ]]&lt;br /&gt;
La fonction stocke alors les valeurs lues par l'accéléromètre dans x,y et z.&lt;br /&gt;
&lt;br /&gt;
 code :&lt;br /&gt;
 [[Fichier:codemini1.PNG| 400px ]]&lt;br /&gt;
 &lt;br /&gt;
 [[Fichier:codemini2.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
Nous réalisons ensuite le montage suivant de manière à pouvoir lire sur le port série les valeurs .&lt;br /&gt;
&lt;br /&gt;
[[Fichier:montageaccel.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Partie smartphone:&lt;br /&gt;
succès de la connexion au wi-fi partagé d'un smartphone. Coté ESP comme coté smartphone.[[Fichier:affichage_valeur.jpg | 400px]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
'''Etude de la partie communication entre l'arduino pro mini et l'ESP8266 pour l'envoie des données du capteur'''&lt;br /&gt;
&lt;br /&gt;
Nous avons implémenté le module Wifi de manière à ce que l’on puisse recevoir les données des accélérations reçus par l’arduino mini.7&lt;br /&gt;
&lt;br /&gt;
Pour cela, nous avons utilisée la bibliothèque SoftwareSerial d’arduino et avons défini deux liaisons série (l'une du côté du mini et l’autre du coté esp).Le mini envois un “a” indiquant à l'esp qu'il commence à envoyer une serie de données.Ensuite on ramène les valeurs de l'accéléromètre sur l'échelle de g (gravitation terrestre ) gracz à un produit en croix . Pour finir, nous envoyons les données grâce à un serial write qui écrit sur les pins de l’esp ( pin 14 RX et 12 TX).&lt;br /&gt;
&lt;br /&gt;
Du côté de l’esp, on définit une liaison du nom de swSer au même baudrate que la précédente (9600). On attend la réception de 72 ( l'équivalent de ‘a’ en integer) indiquant que l’on commence à transmettre des données de l'accéléromètre. Une fois ce nombre reçu on incrémente un compteur à chaque réception d’un chiffre et à partir de la valeur de ce compteur nous plaçons la donnée dans la variable qui la définit ( la première donnée est celle de x1 donc si compteur est à 1 on place la valeur lue par swSer.read dans la variable x1 )&lt;br /&gt;
&lt;br /&gt;
===Fichiers rendus===&lt;br /&gt;
&lt;br /&gt;
rapport de projet : [[Fichier:Rapport_Fahem_Diop.pdf]]&lt;br /&gt;
Code de la partie smartphone: [[Fichier:]]&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=42841</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=42841"/>
				<updated>2017-05-20T15:23:57Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Semaine 9 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Les accéléromètres nous permettent de calculer l'angle d'inclinaison à partir de la force gravitationnelle qu'ils peuvent mesurer selon les trois axes. Lorsque la position idéale du patient sera choisie par le médecin, nous pourrons enregistrer cette position en mémorisant l'inclinaison de chaque accéléromètre pour cette position. Ainsi un changement de position sera identifié par une variation des angles d'inclinaison précédemment pris. Nous allons utilisé les accéléromètres analogiques de type adxl335. Une fois que nous aurons à disposition les valeurs de l'accéléromètre et, par conséquent les angles d'inclinaison, nous aurons besoin d'un moyen d'affichage des ces données. Pour ce faire, nous avons opté dans un premier temps pour une affichage sur smartphone. Les données vont être envoyées au smartphone à travers un module WIFI connectés au même réseau que le smartphone.  En récapitulant, nous aurons finalement besoin de:&lt;br /&gt;
* 5 accéléromètres adxl335.&lt;br /&gt;
* un arduino Mega&lt;br /&gt;
* un module WIFI &lt;br /&gt;
* des fils pour la liaison.&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement : accéléromètres à sortie analogique. Nous aurons donc besoin de 3 sorties analogiques par capteur (donc 3*5 sorties analogiques)&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: force gravitationnelle selon les trois axes qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre par rapport à l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
&lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification et acquisition de la position idéale à l'aide des accéléromètres placées le long de la colonne vertébrale;&lt;br /&gt;
*notification au patient (à travers le smartphone) lorsqu'une position différente de celle idéale a été détectée.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
==tâches à réaliser==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Avancement !! Commentaires&lt;br /&gt;
|-&lt;br /&gt;
| acquisition des données 10DOF&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| connexion au WIFI (esp9266)&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| connexion à un wifi standard prédéfinit lors de la programmation&lt;br /&gt;
|-&lt;br /&gt;
| pages application smartphone&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
| envois et réception de données sur smartphone&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| terminé et testé &lt;br /&gt;
|-&lt;br /&gt;
| acquisition des données de l'accéléromètre avec l'arduino mini&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| donnée récupérer à partir de 2 accéléromètre mais on peut en ajouter plus&lt;br /&gt;
|-&lt;br /&gt;
| liaison série arduino mini et esp8266&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;testé&amp;lt;/font&amp;gt;&lt;br /&gt;
| Communication réalisé mais quelque amélioration à faire, il faut optimiser le code&lt;br /&gt;
|-&lt;br /&gt;
| mise en commun de la partie wifi et acquisition de données&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Inachevé&amp;lt;/font&amp;gt;&lt;br /&gt;
| la mise en commun pose quelque problème notamment la réception de donnée non cohérente par le smartphone&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 + Heures supplémentairements !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 2H&lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| documentation&lt;br /&gt;
| 2h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liste du matériel &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
| 6h&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude du module Wi-fi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
| 2H&lt;br /&gt;
| 4H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude, programmation, câblage du 10 DOF &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4H&lt;br /&gt;
| 8H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accéléromètre &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2H&lt;br /&gt;
| étude 3H &lt;br /&gt;
| &lt;br /&gt;
| schématique 2H &lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liaison arduino esp&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 16H&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| étude et programmation arduino mini&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 16H&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| application mobile&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2H&lt;br /&gt;
|4H&lt;br /&gt;
|4H&lt;br /&gt;
|&lt;br /&gt;
|10h&lt;br /&gt;
|10H&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différents choix matériel notamment dans la référence des accéléromètres ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL335. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données vers un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est plus rapide que le module bluetooth. Cependant, ce dernier ne consomme pas beaucoup de charge de la batterie du smartphone mais il fonctionne  essentiellement sur de petites distances et avec des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grandes ainsi que des tailles de données beaucoup plus importantes.&lt;br /&gt;
&lt;br /&gt;
Finalement, nous avons opté pour le module WIFI pour limiter le moins possible l'utilisateur en ce qui concerne la distance entre les appareils et le volume de données transmis.&lt;br /&gt;
&lt;br /&gt;
*Confirmation de la liste de matériel: &lt;br /&gt;
  *accéléromètre ADXL335&lt;br /&gt;
  *Smartphone sous Android&lt;br /&gt;
  *15 longs fils mâle-femelle, mâle-mâle&lt;br /&gt;
  *Arduino pro -mini&lt;br /&gt;
  *Module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnelles avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:cad1_1.PNG| 900px ]]&lt;br /&gt;
[[Fichier:cad1.PNG| 900px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, l’accéléromètre 10 DOF, ainsi que l'arduino MEGA qui sera utilisé pour l’acquisition des données. L'accéléromètre 10DOF incorpore un gyroscope et un magnétomètre. Ceux-ci nous permettront d'avoir une meilleure précision des mesures notamment avec la mesure des orientations (vitesses angulaires).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérées en direct sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes également intéressé au calcule de l'angle à partir de l’accélération. &lt;br /&gt;
Prenons l'exemple de l’accéléromètre penché de la manière suivante.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:exemple5.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Le triangle G,Gx Gz forme un triangle rectangle, dans notre cas nous avons Gx,Gy et Gz qui sont les valeurs du vecteur gravitationnel G sur les trois axes et nous devons déduire 𝝰 (l’angle que fait Gx avec l’axe x), 𝝋 (l’angle que fait Gy avec l’axe y) et ᴪ (l’angle que fait Gz avec l’axe z). La norme de G est&lt;br /&gt;
[[Fichier:Norme2.PNG| 200px ]]&lt;br /&gt;
On récupére ensuite chaque angle de la manière suivante: &lt;br /&gt;
[[Fichier:Calcule_angle.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10DOF que nous testerons la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération de l'angle réalisé par l'accéléromètre.( Dans le code suivant nous avons uniquement l'acquisition des données)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof_code.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendus compte que les calculs ne sont pas réalisés correctement par le MEGA. En effet la mesure de l'angle n'était pas précis car le MEGA n'a pas assez de puissance de calcul pour faire les différentes divisions.  &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 100px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé que le MEGA servira uniquement à récupérer les données et à les envoyer via module WIFI. Ce sera donc à l'application Android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le module WIFI ESP8266 que nous utiliserons, afin de nous faire une idée de son utilisation.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installé les logiciels nécessaires ( Android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes intéressées  au module wifi, en commençant par lire la fiche technique de l'esp 8266, nous avons également cherché les différents types d'exemples . &lt;br /&gt;
&lt;br /&gt;
Des recherches sur le mode de connexion entre le smartphone et le Mega à travers le module WIFI ont également été effectuer dans le but de se faire une idée, nous hésitons sur l'utilisation de Sockets UDP , ou de réaliser une transmission en TCP .&lt;br /&gt;
&lt;br /&gt;
Le programme réalisée lors de la séance précédente a été testé, notamment les tests de récupération des données de l'accéléromètre 10-DOF sur le Mega.&lt;br /&gt;
&lt;br /&gt;
Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 a également été entamé.&lt;br /&gt;
&lt;br /&gt;
Nous avons également rencontré un certain nombre de problème :&lt;br /&gt;
&lt;br /&gt;
Afin se connecter en WIFI à partir de n’importe où, nous avons décidé de se connecter premièrement à un réseau standard (point d'accès fourni par le smartphone dans un premier temps) puis de modifier le réseau sur lequel nous sommes connecté à partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière.&lt;br /&gt;
[[Fichier:connection.PNG| 500px ]]&lt;br /&gt;
&lt;br /&gt;
La possibilité et l'utilité de l'ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête ( gérer les rotations).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle, nous avons également avancé avec la création d'une application android pour la réception et l'affichage de données.&lt;br /&gt;
Nous avons décidé de:&lt;br /&gt;
* faire une page d'accueil dans laquelle le kinésithérapeute devra appuyer sur un bouton lorsqu'il aura bien positionné le patient pour enregistrer la bonne position.&lt;br /&gt;
* à l'appui du bouton, le smartphone va contacter le module WIFI à travers un message broadcast (en utilisant une communication UDP) dans le réseau. &lt;br /&gt;
* Le MODULE WIFI, qui est déjà en attente d'une trame venant du smartphone, reçoit le message broadcast, extrait l'adresse IP du smartphone, puis, lui envoie des données du capteur.&lt;br /&gt;
* le smartphone, à son tour va utiliser ces données pour calculer les angles d'inclinaison sur les différents axes et les afficher. Notons que les premiers angles calculés sont ceux correspondant à la bonne position. &lt;br /&gt;
* A intervalle régulier, le module ESP va envoyer de nouvelles données que le smartphone va traiter et comparer avec les angles de la bonne position et prévenir le patient si la position a changer.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:transmition.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
* Réception du matériel&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ADXL345.PNG| 100px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par étudier l'accéléromètre reçu, en effet la référence de ce dernier est ADXL345 et est digital à l’inverse de celui choisi qui était analogique. De ce fait, nous avons modifié une partie du cahier des charges.&lt;br /&gt;
&lt;br /&gt;
Les accéléromètres adxl345 sont alimentés en 3.3V et sont digitaux. Par conséquent, nous n'aurons plus besoin de sortie analogique.  &lt;br /&gt;
&lt;br /&gt;
*fonctionnement : accéléromètres digitaux pouvant fonctionner en SPI comme en I2C et supportant 3.3V. Résolution: 10 bits, régler en mode +/-2g. Donc les valeurs de notre registre de données seront dans la plage [-512 ,512]. Mais puisque nous ne mesurons que la force gravitationnelle, nous aurons des valeurs comprises entre [-256,256] qui est la plage correspondant à -/1g. 1g correspond à la valeur de 9.80m/s2.&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: des entiers de -512 à 512 qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre selon l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
L'établissement des activités nécessairement et documentation sur le choix des sockets à utiliser pour l'envoi des données a également été entamé.&lt;br /&gt;
&lt;br /&gt;
Coté Smartphone: &lt;br /&gt;
&lt;br /&gt;
*Créations de la page d'accueil et de la page de visualisation des angles d'inclinaisons&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé l'étude de l'accéléromètre digital, nous devrons nous servir des ports digitaux du MEGA et choisir l’accéléromètre à partir duquel nous récupérons les données grâce à un chip select. Pour cela nous devrons utiliser la bibliothèque SPI.h et brancher le pin CS de l'accéléromètre à des pin digitaux du mega.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mais les pin de l'accéleromètre n'acceptent que des tensions de 3.3V alors que ceux du Mega fournissent des tensions de 5v. Nous aurons donc besoin d'un mécanisme de régulation des tensions en sortie de Mega.&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
Nous avons réalisé une carte électronique grâce au logiciel fritzing pour réaliser l’adaptation de tensions entre l’accéléromètre adxl345 et la carte MEGA. En effet l'accéléromètre supporte des tensions maximales de 3.3V alors que le MEGA donne en sortie 5V.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:carte_elec1.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Coté Smartphone:&lt;br /&gt;
&lt;br /&gt;
* création de la page d'accueil avec implémentation du code pour la communication UDP entre le smartphone et l'ESP8266.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_daccueil.jpg]]&lt;br /&gt;
* Nous rencontrons des problèmes en ce qui concerne la l'implémentation du programme coté ESP.&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la carte électronique faite la semaine précédente. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:carte_elec2.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Afin de tester la carte, nous avons alimenter les pins d’entrée par des 5v et avons observé la sortie du circuit. Malheureusement, seulement un pin en sortie &lt;br /&gt;
fournissait une tension de 3.3V.&lt;br /&gt;
Elle ne fonctionne pas et nous n'avons pas pu comprendre pourquoi. &lt;br /&gt;
&lt;br /&gt;
Par conséquent, nous avons changé de microcontrôleur. Nous avons reçu un arduino pro mini 3.3V compatible avec nos capteurs ( mais qui ne l'est pas avec le 10DOF ). &lt;br /&gt;
Nous commençons par conséquent à recueillir les données du capteurs. Pour cela, nous avons utilisé une librairie pour les ADXL345.&lt;br /&gt;
La première étape est de sélectionner le chip Select en définissant un ADXL grâce à la fonction suivante:&lt;br /&gt;
[[Fichier:def_adxl.PNG| 200px ]]&lt;br /&gt;
Cette fonction prend en paramètre le pin lié au chip Select de accéléromètre.&lt;br /&gt;
&lt;br /&gt;
Ensuite on récupère les données grâce à la fonction readaccel comme suit:&lt;br /&gt;
[[Fichier:readaccel.PNG| 200px ]]&lt;br /&gt;
La fonction stocke alors les valeurs lues par l'accéléromètre dans x,y et z.&lt;br /&gt;
&lt;br /&gt;
 code :&lt;br /&gt;
 [[Fichier:codemini1.PNG| 400px ]]&lt;br /&gt;
 &lt;br /&gt;
 [[Fichier:codemini2.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
Nous réalisons ensuite le montage suivant de manière à pouvoir lire sur le port série les valeurs .&lt;br /&gt;
&lt;br /&gt;
[[Fichier:montageaccel.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Partie smartphone:&lt;br /&gt;
succès de la connexion au wi-fi partagé d'un smartphone. Coté ESP comme coté smartphone.[[Fichier:affichage_valeur.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
'''Etude de la partie communication entre l'arduino pro mini et l'ESP8266 pour l'envoie des données du capteur'''&lt;br /&gt;
&lt;br /&gt;
Nous avons implémenté le module Wifi de manière à ce que l’on puisse recevoir les données des accélérations reçus par l’arduino mini.7&lt;br /&gt;
&lt;br /&gt;
Pour cela, nous avons utilisée la bibliothèque SoftwareSerial d’arduino et avons défini deux liaisons série (l'une du côté du mini et l’autre du coté esp).Le mini envois un “a” indiquant à l'esp qu'il commence à envoyer une serie de données.Ensuite on ramène les valeurs de l'accéléromètre sur l'échelle de g (gravitation terrestre ) gracz à un produit en croix . Pour finir, nous envoyons les données grâce à un serial write qui écrit sur les pins de l’esp ( pin 14 RX et 12 TX).&lt;br /&gt;
&lt;br /&gt;
Du côté de l’esp, on définit une liaison du nom de swSer au même baudrate que la précédente (9600). On attend la réception de 72 ( l'équivalent de ‘a’ en integer) indiquant que l’on commence à transmettre des données de l'accéléromètre. Une fois ce nombre reçu on incrémente un compteur à chaque réception d’un chiffre et à partir de la valeur de ce compteur nous plaçons la donnée dans la variable qui la définit ( la première donnée est celle de x1 donc si compteur est à 1 on place la valeur lue par swSer.read dans la variable x1 )&lt;br /&gt;
&lt;br /&gt;
===Fichiers rendus===&lt;br /&gt;
&lt;br /&gt;
rapport de projet : [[Fichier:Rapport_Fahem_Diop.pdf]]&lt;br /&gt;
Code de la partie smartphone: [[Fichier:]]&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Affichage_valeur.jpg&amp;diff=42839</id>
		<title>Fichier:Affichage valeur.jpg</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Affichage_valeur.jpg&amp;diff=42839"/>
				<updated>2017-05-20T15:21:57Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : Valeurs des angles idéaux et des angles actuels qui traduisent la position du patient&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Valeurs des angles idéaux et des angles actuels qui traduisent la position du patient&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Page_daccueil.jpg&amp;diff=42836</id>
		<title>Fichier:Page daccueil.jpg</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Page_daccueil.jpg&amp;diff=42836"/>
				<updated>2017-05-20T15:17:23Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : a téléversé une nouvelle version de « Fichier:Page daccueil.jpg »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Page d'accueil de l'app pour l'affichage des angles d'inclinaison.&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Page_daccueil.jpg&amp;diff=42831</id>
		<title>Fichier:Page daccueil.jpg</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Page_daccueil.jpg&amp;diff=42831"/>
				<updated>2017-05-20T15:14:42Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : a téléversé une nouvelle version de « Fichier:Page daccueil.jpg »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Page d'accueil de l'app pour l'affichage des angles d'inclinaison.&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=42828</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=42828"/>
				<updated>2017-05-20T15:12:41Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Semaine 8 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Les accéléromètres nous permettent de calculer l'angle d'inclinaison à partir de la force gravitationnelle qu'ils peuvent mesurer selon les trois axes. Lorsque la position idéale du patient sera choisie par le médecin, nous pourrons enregistrer cette position en mémorisant l'inclinaison de chaque accéléromètre pour cette position. Ainsi un changement de position sera identifié par une variation des angles d'inclinaison précédemment pris. Nous allons utilisé les accéléromètres analogiques de type adxl335. Une fois que nous aurons à disposition les valeurs de l'accéléromètre et, par conséquent les angles d'inclinaison, nous aurons besoin d'un moyen d'affichage des ces données. Pour ce faire, nous avons opté dans un premier temps pour une affichage sur smartphone. Les données vont être envoyées au smartphone à travers un module WIFI connectés au même réseau que le smartphone.  En récapitulant, nous aurons finalement besoin de:&lt;br /&gt;
* 5 accéléromètres adxl335.&lt;br /&gt;
* un arduino Mega&lt;br /&gt;
* un module WIFI &lt;br /&gt;
* des fils pour la liaison.&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement : accéléromètres à sortie analogique. Nous aurons donc besoin de 3 sorties analogiques par capteur (donc 3*5 sorties analogiques)&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: force gravitationnelle selon les trois axes qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre par rapport à l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
&lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification et acquisition de la position idéale à l'aide des accéléromètres placées le long de la colonne vertébrale;&lt;br /&gt;
*notification au patient (à travers le smartphone) lorsqu'une position différente de celle idéale a été détectée.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
==tâches à réaliser==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Avancement !! Commentaires&lt;br /&gt;
|-&lt;br /&gt;
| acquisition des données 10DOF&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| connexion au WIFI (esp9266)&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| connexion à un wifi standard prédéfinit lors de la programmation&lt;br /&gt;
|-&lt;br /&gt;
| pages application smartphone&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
| envois et réception de données sur smartphone&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| terminé et testé &lt;br /&gt;
|-&lt;br /&gt;
| acquisition des données de l'accéléromètre avec l'arduino mini&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| donnée récupérer à partir de 2 accéléromètre mais on peut en ajouter plus&lt;br /&gt;
|-&lt;br /&gt;
| liaison série arduino mini et esp8266&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;testé&amp;lt;/font&amp;gt;&lt;br /&gt;
| Communication réalisé mais quelque amélioration à faire, il faut optimiser le code&lt;br /&gt;
|-&lt;br /&gt;
| mise en commun de la partie wifi et acquisition de données&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Inachevé&amp;lt;/font&amp;gt;&lt;br /&gt;
| la mise en commun pose quelque problème notamment la réception de donnée non cohérente par le smartphone&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 + Heures supplémentairements !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 2H&lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| documentation&lt;br /&gt;
| 2h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liste du matériel &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
| 6h&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude du module Wi-fi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
| 2H&lt;br /&gt;
| 4H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude, programmation, câblage du 10 DOF &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4H&lt;br /&gt;
| 8H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accéléromètre &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2H&lt;br /&gt;
| étude 3H &lt;br /&gt;
| &lt;br /&gt;
| schématique 2H &lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liaison arduino esp&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 16H&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| étude et programmation arduino mini&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 16H&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| application mobile&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2H&lt;br /&gt;
|4H&lt;br /&gt;
|4H&lt;br /&gt;
|&lt;br /&gt;
|10h&lt;br /&gt;
|10H&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différents choix matériel notamment dans la référence des accéléromètres ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL335. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données vers un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est plus rapide que le module bluetooth. Cependant, ce dernier ne consomme pas beaucoup de charge de la batterie du smartphone mais il fonctionne  essentiellement sur de petites distances et avec des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grandes ainsi que des tailles de données beaucoup plus importantes.&lt;br /&gt;
&lt;br /&gt;
Finalement, nous avons opté pour le module WIFI pour limiter le moins possible l'utilisateur en ce qui concerne la distance entre les appareils et le volume de données transmis.&lt;br /&gt;
&lt;br /&gt;
*Confirmation de la liste de matériel: &lt;br /&gt;
  *accéléromètre ADXL335&lt;br /&gt;
  *Smartphone sous Android&lt;br /&gt;
  *15 longs fils mâle-femelle, mâle-mâle&lt;br /&gt;
  *Arduino pro -mini&lt;br /&gt;
  *Module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnelles avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:cad1_1.PNG| 900px ]]&lt;br /&gt;
[[Fichier:cad1.PNG| 900px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, l’accéléromètre 10 DOF, ainsi que l'arduino MEGA qui sera utilisé pour l’acquisition des données. L'accéléromètre 10DOF incorpore un gyroscope et un magnétomètre. Ceux-ci nous permettront d'avoir une meilleure précision des mesures notamment avec la mesure des orientations (vitesses angulaires).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérées en direct sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes également intéressé au calcule de l'angle à partir de l’accélération. &lt;br /&gt;
Prenons l'exemple de l’accéléromètre penché de la manière suivante.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:exemple5.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Le triangle G,Gx Gz forme un triangle rectangle, dans notre cas nous avons Gx,Gy et Gz qui sont les valeurs du vecteur gravitationnel G sur les trois axes et nous devons déduire 𝝰 (l’angle que fait Gx avec l’axe x), 𝝋 (l’angle que fait Gy avec l’axe y) et ᴪ (l’angle que fait Gz avec l’axe z). La norme de G est&lt;br /&gt;
[[Fichier:Norme2.PNG| 200px ]]&lt;br /&gt;
On récupére ensuite chaque angle de la manière suivante: &lt;br /&gt;
[[Fichier:Calcule_angle.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10DOF que nous testerons la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération de l'angle réalisé par l'accéléromètre.( Dans le code suivant nous avons uniquement l'acquisition des données)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof_code.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendus compte que les calculs ne sont pas réalisés correctement par le MEGA. En effet la mesure de l'angle n'était pas précis car le MEGA n'a pas assez de puissance de calcul pour faire les différentes divisions.  &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 100px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé que le MEGA servira uniquement à récupérer les données et à les envoyer via module WIFI. Ce sera donc à l'application Android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le module WIFI ESP8266 que nous utiliserons, afin de nous faire une idée de son utilisation.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installé les logiciels nécessaires ( Android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes intéressées  au module wifi, en commençant par lire la fiche technique de l'esp 8266, nous avons également cherché les différents types d'exemples . &lt;br /&gt;
&lt;br /&gt;
Des recherches sur le mode de connexion entre le smartphone et le Mega à travers le module WIFI ont également été effectuer dans le but de se faire une idée, nous hésitons sur l'utilisation de Sockets UDP , ou de réaliser une transmission en TCP .&lt;br /&gt;
&lt;br /&gt;
Le programme réalisée lors de la séance précédente a été testé, notamment les tests de récupération des données de l'accéléromètre 10-DOF sur le Mega.&lt;br /&gt;
&lt;br /&gt;
Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 a également été entamé.&lt;br /&gt;
&lt;br /&gt;
Nous avons également rencontré un certain nombre de problème :&lt;br /&gt;
&lt;br /&gt;
Afin se connecter en WIFI à partir de n’importe où, nous avons décidé de se connecter premièrement à un réseau standard (point d'accès fourni par le smartphone dans un premier temps) puis de modifier le réseau sur lequel nous sommes connecté à partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière.&lt;br /&gt;
[[Fichier:connection.PNG| 500px ]]&lt;br /&gt;
&lt;br /&gt;
La possibilité et l'utilité de l'ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête ( gérer les rotations).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle, nous avons également avancé avec la création d'une application android pour la réception et l'affichage de données.&lt;br /&gt;
Nous avons décidé de:&lt;br /&gt;
* faire une page d'accueil dans laquelle le kinésithérapeute devra appuyer sur un bouton lorsqu'il aura bien positionné le patient pour enregistrer la bonne position.&lt;br /&gt;
* à l'appui du bouton, le smartphone va contacter le module WIFI à travers un message broadcast (en utilisant une communication UDP) dans le réseau. &lt;br /&gt;
* Le MODULE WIFI, qui est déjà en attente d'une trame venant du smartphone, reçoit le message broadcast, extrait l'adresse IP du smartphone, puis, lui envoie des données du capteur.&lt;br /&gt;
* le smartphone, à son tour va utiliser ces données pour calculer les angles d'inclinaison sur les différents axes et les afficher. Notons que les premiers angles calculés sont ceux correspondant à la bonne position. &lt;br /&gt;
* A intervalle régulier, le module ESP va envoyer de nouvelles données que le smartphone va traiter et comparer avec les angles de la bonne position et prévenir le patient si la position a changer.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:transmition.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
* Réception du matériel&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ADXL345.PNG| 100px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par étudier l'accéléromètre reçu, en effet la référence de ce dernier est ADXL345 et est digital à l’inverse de celui choisi qui était analogique. De ce fait, nous avons modifié une partie du cahier des charges.&lt;br /&gt;
&lt;br /&gt;
Les accéléromètres adxl345 sont alimentés en 3.3V et sont digitaux. Par conséquent, nous n'aurons plus besoin de sortie analogique.  &lt;br /&gt;
&lt;br /&gt;
*fonctionnement : accéléromètres digitaux pouvant fonctionner en SPI comme en I2C et supportant 3.3V. Résolution: 10 bits, régler en mode +/-2g. Donc les valeurs de notre registre de données seront dans la plage [-512 ,512]. Mais puisque nous ne mesurons que la force gravitationnelle, nous aurons des valeurs comprises entre [-256,256] qui est la plage correspondant à -/1g. 1g correspond à la valeur de 9.80m/s2.&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: des entiers de -512 à 512 qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre selon l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
L'établissement des activités nécessairement et documentation sur le choix des sockets à utiliser pour l'envoi des données a également été entamé.&lt;br /&gt;
&lt;br /&gt;
Coté Smartphone: &lt;br /&gt;
&lt;br /&gt;
*Créations de la page d'accueil et de la page de visualisation des angles d'inclinaisons&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé l'étude de l'accéléromètre digital, nous devrons nous servir des ports digitaux du MEGA et choisir l’accéléromètre à partir duquel nous récupérons les données grâce à un chip select. Pour cela nous devrons utiliser la bibliothèque SPI.h et brancher le pin CS de l'accéléromètre à des pin digitaux du mega.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mais les pin de l'accéleromètre n'acceptent que des tensions de 3.3V alors que ceux du Mega fournissent des tensions de 5v. Nous aurons donc besoin d'un mécanisme de régulation des tensions en sortie de Mega.&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
Nous avons réalisé une carte électronique grâce au logiciel fritzing pour réaliser l’adaptation de tensions entre l’accéléromètre adxl345 et la carte MEGA. En effet l'accéléromètre supporte des tensions maximales de 3.3V alors que le MEGA donne en sortie 5V.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:carte_elec1.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Coté Smartphone:&lt;br /&gt;
&lt;br /&gt;
* création de la page d'accueil avec implémentation du code pour la communication UDP entre le smartphone et l'ESP8266.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:page_daccueil.jpg]]&lt;br /&gt;
* Nous rencontrons des problèmes en ce qui concerne la l'implémentation du programme coté ESP.&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la carte électronique faite la semaine précédente. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:carte_elec2.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Afin de tester la carte, nous avons alimenter les pins d’entrée par des 5v et avons observé la sortie du circuit. Malheureusement, seulement un pin en sortie &lt;br /&gt;
fournissait une tension de 3.3V.&lt;br /&gt;
Elle ne fonctionne pas et nous n'avons pas pu comprendre pourquoi. &lt;br /&gt;
&lt;br /&gt;
Par conséquent, nous avons changé de microcontrôleur. Nous avons reçu un arduino pro mini 3.3V compatible avec nos capteurs ( mais qui ne l'est pas avec le 10DOF ). &lt;br /&gt;
Nous commençons par conséquent à recueillir les données du capteurs. Pour cela, nous avons utilisé une librairie pour les ADXL345.&lt;br /&gt;
La première étape est de sélectionner le chip Select en définissant un ADXL grâce à la fonction suivante:&lt;br /&gt;
[[Fichier:def_adxl.PNG| 200px ]]&lt;br /&gt;
Cette fonction prend en paramètre le pin lié au chip Select de accéléromètre.&lt;br /&gt;
&lt;br /&gt;
Ensuite on récupère les données grâce à la fonction readaccel comme suit:&lt;br /&gt;
[[Fichier:readaccel.PNG| 200px ]]&lt;br /&gt;
La fonction stocke alors les valeurs lues par l'accéléromètre dans x,y et z.&lt;br /&gt;
&lt;br /&gt;
 code :&lt;br /&gt;
 [[Fichier:codemini1.PNG| 400px ]]&lt;br /&gt;
 &lt;br /&gt;
 [[Fichier:codemini2.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
Nous réalisons ensuite le montage suivant de manière à pouvoir lire sur le port série les valeurs .&lt;br /&gt;
&lt;br /&gt;
[[Fichier:montageaccel.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Partie smartphone:&lt;br /&gt;
succès de la connexion au wi-fi partagé d'un smartphone. Coté ESP comme coté smartphone.&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
'''Etude de la partie communication entre l'arduino pro mini et l'ESP8266 pour l'envoie des données du capteur'''&lt;br /&gt;
&lt;br /&gt;
Nous avons implémenté le module Wifi de manière à ce que l’on puisse recevoir les données des accélérations reçus par l’arduino mini.7&lt;br /&gt;
&lt;br /&gt;
Pour cela, nous avons utilisée la bibliothèque SoftwareSerial d’arduino et avons défini deux liaisons série (l'une du côté du mini et l’autre du coté esp).Le mini envois un “a” indiquant à l'esp qu'il commence à envoyer une serie de données.Ensuite on ramène les valeurs de l'accéléromètre sur l'échelle de g (gravitation terrestre ) gracz à un produit en croix . Pour finir, nous envoyons les données grâce à un serial write qui écrit sur les pins de l’esp ( pin 14 RX et 12 TX).&lt;br /&gt;
&lt;br /&gt;
Du côté de l’esp, on définit une liaison du nom de swSer au même baudrate que la précédente (9600). On attend la réception de 72 ( l'équivalent de ‘a’ en integer) indiquant que l’on commence à transmettre des données de l'accéléromètre. Une fois ce nombre reçu on incrémente un compteur à chaque réception d’un chiffre et à partir de la valeur de ce compteur nous plaçons la donnée dans la variable qui la définit ( la première donnée est celle de x1 donc si compteur est à 1 on place la valeur lue par swSer.read dans la variable x1 )&lt;br /&gt;
&lt;br /&gt;
===Fichiers rendus===&lt;br /&gt;
&lt;br /&gt;
rapport de projet : [[Fichier:Rapport_Fahem_Diop.pdf]]&lt;br /&gt;
Code de la partie smartphone: [[Fichier:]]&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Page_daccueil.jpg&amp;diff=42827</id>
		<title>Fichier:Page daccueil.jpg</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Page_daccueil.jpg&amp;diff=42827"/>
				<updated>2017-05-20T15:10:56Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : Page d'accueil de l'app pour l'affichage des angles d'inclinaison.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Page d'accueil de l'app pour l'affichage des angles d'inclinaison.&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=42822</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=42822"/>
				<updated>2017-05-20T15:05:30Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Fichiers rendus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Les accéléromètres nous permettent de calculer l'angle d'inclinaison à partir de la force gravitationnelle qu'ils peuvent mesurer selon les trois axes. Lorsque la position idéale du patient sera choisie par le médecin, nous pourrons enregistrer cette position en mémorisant l'inclinaison de chaque accéléromètre pour cette position. Ainsi un changement de position sera identifié par une variation des angles d'inclinaison précédemment pris. Nous allons utilisé les accéléromètres analogiques de type adxl335. Une fois que nous aurons à disposition les valeurs de l'accéléromètre et, par conséquent les angles d'inclinaison, nous aurons besoin d'un moyen d'affichage des ces données. Pour ce faire, nous avons opté dans un premier temps pour une affichage sur smartphone. Les données vont être envoyées au smartphone à travers un module WIFI connectés au même réseau que le smartphone.  En récapitulant, nous aurons finalement besoin de:&lt;br /&gt;
* 5 accéléromètres adxl335.&lt;br /&gt;
* un arduino Mega&lt;br /&gt;
* un module WIFI &lt;br /&gt;
* des fils pour la liaison.&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement : accéléromètres à sortie analogique. Nous aurons donc besoin de 3 sorties analogiques par capteur (donc 3*5 sorties analogiques)&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: force gravitationnelle selon les trois axes qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre par rapport à l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
&lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification et acquisition de la position idéale à l'aide des accéléromètres placées le long de la colonne vertébrale;&lt;br /&gt;
*notification au patient (à travers le smartphone) lorsqu'une position différente de celle idéale a été détectée.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
==tâches à réaliser==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Avancement !! Commentaires&lt;br /&gt;
|-&lt;br /&gt;
| acquisition des données 10DOF&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| connexion au WIFI (esp9266)&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| connexion à un wifi standard prédéfinit lors de la programmation&lt;br /&gt;
|-&lt;br /&gt;
| pages application smartphone&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
| envois et réception de données sur smartphone&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| terminé et testé &lt;br /&gt;
|-&lt;br /&gt;
| acquisition des données de l'accéléromètre avec l'arduino mini&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| donnée récupérer à partir de 2 accéléromètre mais on peut en ajouter plus&lt;br /&gt;
|-&lt;br /&gt;
| liaison série arduino mini et esp8266&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;testé&amp;lt;/font&amp;gt;&lt;br /&gt;
| Communication réalisé mais quelque amélioration à faire, il faut optimiser le code&lt;br /&gt;
|-&lt;br /&gt;
| mise en commun de la partie wifi et acquisition de données&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Inachevé&amp;lt;/font&amp;gt;&lt;br /&gt;
| la mise en commun pose quelque problème notamment la réception de donnée non cohérente par le smartphone&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 + Heures supplémentairements !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 2H&lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| documentation&lt;br /&gt;
| 2h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liste du matériel &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
| 6h&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude du module Wi-fi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
| 2H&lt;br /&gt;
| 4H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude, programmation, câblage du 10 DOF &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4H&lt;br /&gt;
| 8H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accéléromètre &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2H&lt;br /&gt;
| étude 3H &lt;br /&gt;
| &lt;br /&gt;
| schématique 2H &lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liaison arduino esp&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 16H&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| étude et programmation arduino mini&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 16H&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| application mobile&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2H&lt;br /&gt;
|4H&lt;br /&gt;
|4H&lt;br /&gt;
|&lt;br /&gt;
|10h&lt;br /&gt;
|10H&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différents choix matériel notamment dans la référence des accéléromètres ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL335. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données vers un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est plus rapide que le module bluetooth. Cependant, ce dernier ne consomme pas beaucoup de charge de la batterie du smartphone mais il fonctionne  essentiellement sur de petites distances et avec des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grandes ainsi que des tailles de données beaucoup plus importantes.&lt;br /&gt;
&lt;br /&gt;
Finalement, nous avons opté pour le module WIFI pour limiter le moins possible l'utilisateur en ce qui concerne la distance entre les appareils et le volume de données transmis.&lt;br /&gt;
&lt;br /&gt;
*Confirmation de la liste de matériel: &lt;br /&gt;
  *accéléromètre ADXL335&lt;br /&gt;
  *Smartphone sous Android&lt;br /&gt;
  *15 longs fils mâle-femelle, mâle-mâle&lt;br /&gt;
  *Arduino pro -mini&lt;br /&gt;
  *Module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnelles avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:cad1_1.PNG| 900px ]]&lt;br /&gt;
[[Fichier:cad1.PNG| 900px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, l’accéléromètre 10 DOF, ainsi que l'arduino MEGA qui sera utilisé pour l’acquisition des données. L'accéléromètre 10DOF incorpore un gyroscope et un magnétomètre. Ceux-ci nous permettront d'avoir une meilleure précision des mesures notamment avec la mesure des orientations (vitesses angulaires).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérées en direct sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes également intéressé au calcule de l'angle à partir de l’accélération. &lt;br /&gt;
Prenons l'exemple de l’accéléromètre penché de la manière suivante.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:exemple5.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Le triangle G,Gx Gz forme un triangle rectangle, dans notre cas nous avons Gx,Gy et Gz qui sont les valeurs du vecteur gravitationnel G sur les trois axes et nous devons déduire 𝝰 (l’angle que fait Gx avec l’axe x), 𝝋 (l’angle que fait Gy avec l’axe y) et ᴪ (l’angle que fait Gz avec l’axe z). La norme de G est&lt;br /&gt;
[[Fichier:Norme2.PNG| 200px ]]&lt;br /&gt;
On récupére ensuite chaque angle de la manière suivante: &lt;br /&gt;
[[Fichier:Calcule_angle.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10DOF que nous testerons la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération de l'angle réalisé par l'accéléromètre.( Dans le code suivant nous avons uniquement l'acquisition des données)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof_code.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendus compte que les calculs ne sont pas réalisés correctement par le MEGA. En effet la mesure de l'angle n'était pas précis car le MEGA n'a pas assez de puissance de calcul pour faire les différentes divisions.  &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 100px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé que le MEGA servira uniquement à récupérer les données et à les envoyer via module WIFI. Ce sera donc à l'application Android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le module WIFI ESP8266 que nous utiliserons, afin de nous faire une idée de son utilisation.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installé les logiciels nécessaires ( Android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes intéressées  au module wifi, en commençant par lire la fiche technique de l'esp 8266, nous avons également cherché les différents types d'exemples . &lt;br /&gt;
&lt;br /&gt;
Des recherches sur le mode de connexion entre le smartphone et le Mega à travers le module WIFI ont également été effectuer dans le but de se faire une idée, nous hésitons sur l'utilisation de Sockets UDP , ou de réaliser une transmission en TCP .&lt;br /&gt;
&lt;br /&gt;
Le programme réalisée lors de la séance précédente a été testé, notamment les tests de récupération des données de l'accéléromètre 10-DOF sur le Mega.&lt;br /&gt;
&lt;br /&gt;
Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 a également été entamé.&lt;br /&gt;
&lt;br /&gt;
Nous avons également rencontré un certain nombre de problème :&lt;br /&gt;
&lt;br /&gt;
Afin se connecter en WIFI à partir de n’importe où, nous avons décidé de se connecter premièrement à un réseau standard (point d'accès fourni par le smartphone dans un premier temps) puis de modifier le réseau sur lequel nous sommes connecté à partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière.&lt;br /&gt;
[[Fichier:connection.PNG| 500px ]]&lt;br /&gt;
&lt;br /&gt;
La possibilité et l'utilité de l'ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête ( gérer les rotations).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle, nous avons également avancé avec la création d'une application android pour la réception et l'affichage de données.&lt;br /&gt;
Nous avons décidé de:&lt;br /&gt;
* faire une page d'accueil dans laquelle le kinésithérapeute devra appuyer sur un bouton lorsqu'il aura bien positionné le patient pour enregistrer la bonne position.&lt;br /&gt;
* à l'appui du bouton, le smartphone va contacter le module WIFI à travers un message broadcast (en utilisant une communication UDP) dans le réseau. &lt;br /&gt;
* Le MODULE WIFI, qui est déjà en attente d'une trame venant du smartphone, reçoit le message broadcast, extrait l'adresse IP du smartphone, puis, lui envoie des données du capteur.&lt;br /&gt;
* le smartphone, à son tour va utiliser ces données pour calculer les angles d'inclinaison sur les différents axes et les afficher. Notons que les premiers angles calculés sont ceux correspondant à la bonne position. &lt;br /&gt;
* A intervalle régulier, le module ESP va envoyer de nouvelles données que le smartphone va traiter et comparer avec les angles de la bonne position et prévenir le patient si la position a changer.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:transmition.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
* Réception du matériel&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ADXL345.PNG| 100px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par étudier l'accéléromètre reçu, en effet la référence de ce dernier est ADXL345 et est digital à l’inverse de celui choisi qui était analogique. De ce fait, nous avons modifié une partie du cahier des charges.&lt;br /&gt;
&lt;br /&gt;
Les accéléromètres adxl345 sont alimentés en 3.3V et sont digitaux. Par conséquent, nous n'aurons plus besoin de sortie analogique.  &lt;br /&gt;
&lt;br /&gt;
*fonctionnement : accéléromètres digitaux pouvant fonctionner en SPI comme en I2C et supportant 3.3V. Résolution: 10 bits, régler en mode +/-2g. Donc les valeurs de notre registre de données seront dans la plage [-512 ,512]. Mais puisque nous ne mesurons que la force gravitationnelle, nous aurons des valeurs comprises entre [-256,256] qui est la plage correspondant à -/1g. 1g correspond à la valeur de 9.80m/s2.&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: des entiers de -512 à 512 qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre selon l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
L'établissement des activités nécessairement et documentation sur le choix des sockets à utiliser pour l'envoi des données a également été entamé.&lt;br /&gt;
&lt;br /&gt;
Coté Smartphone: &lt;br /&gt;
&lt;br /&gt;
*Créations de la page d'accueil et de la page de visualisation des angles d'inclinaisons&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé l'étude de l'accéléromètre digital, nous devrons nous servir des ports digitaux du MEGA et choisir l’accéléromètre à partir duquel nous récupérons les données grâce à un chip select. Pour cela nous devrons utiliser la bibliothèque SPI.h et brancher le pin CS de l'accéléromètre à des pin digitaux du mega.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mais les pin de l'accéleromètre n'acceptent que des tensions de 3.3V alors que ceux du Mega fournissent des tensions de 5v. Nous aurons donc besoin d'un mécanisme de régulation des tensions en sortie de Mega.&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
Nous avons réalisé une carte électronique grâce au logiciel fritzing pour réaliser l’adaptation de tensions entre l’accéléromètre adxl345 et la carte MEGA. En effet l'accéléromètre supporte des tensions maximales de 3.3V alors que le MEGA donne en sortie 5V.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:carte_elec1.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Coté Smartphone:&lt;br /&gt;
&lt;br /&gt;
* création de la page d'accueil avec implémentation du code pour la communication UDP entre le smartphone et l'ESP8266.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Nous rencontrons des problèmes en ce qui concerne la l'implémentation du programme coté ESP.&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la carte électronique faite la semaine précédente. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:carte_elec2.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Afin de tester la carte, nous avons alimenter les pins d’entrée par des 5v et avons observé la sortie du circuit. Malheureusement, seulement un pin en sortie &lt;br /&gt;
fournissait une tension de 3.3V.&lt;br /&gt;
Elle ne fonctionne pas et nous n'avons pas pu comprendre pourquoi. &lt;br /&gt;
&lt;br /&gt;
Par conséquent, nous avons changé de microcontrôleur. Nous avons reçu un arduino pro mini 3.3V compatible avec nos capteurs ( mais qui ne l'est pas avec le 10DOF ). &lt;br /&gt;
Nous commençons par conséquent à recueillir les données du capteurs. Pour cela, nous avons utilisé une librairie pour les ADXL345.&lt;br /&gt;
La première étape est de sélectionner le chip Select en définissant un ADXL grâce à la fonction suivante:&lt;br /&gt;
[[Fichier:def_adxl.PNG| 200px ]]&lt;br /&gt;
Cette fonction prend en paramètre le pin lié au chip Select de accéléromètre.&lt;br /&gt;
&lt;br /&gt;
Ensuite on récupère les données grâce à la fonction readaccel comme suit:&lt;br /&gt;
[[Fichier:readaccel.PNG| 200px ]]&lt;br /&gt;
La fonction stocke alors les valeurs lues par l'accéléromètre dans x,y et z.&lt;br /&gt;
&lt;br /&gt;
 code :&lt;br /&gt;
 [[Fichier:codemini1.PNG| 400px ]]&lt;br /&gt;
 &lt;br /&gt;
 [[Fichier:codemini2.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
Nous réalisons ensuite le montage suivant de manière à pouvoir lire sur le port série les valeurs .&lt;br /&gt;
&lt;br /&gt;
[[Fichier:montageaccel.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Partie smartphone:&lt;br /&gt;
succès de la connexion au wi-fi partagé d'un smartphone. Coté ESP comme coté smartphone.&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
'''Etude de la partie communication entre l'arduino pro mini et l'ESP8266 pour l'envoie des données du capteur'''&lt;br /&gt;
&lt;br /&gt;
Nous avons implémenté le module Wifi de manière à ce que l’on puisse recevoir les données des accélérations reçus par l’arduino mini.7&lt;br /&gt;
&lt;br /&gt;
Pour cela, nous avons utilisée la bibliothèque SoftwareSerial d’arduino et avons défini deux liaisons série (l'une du côté du mini et l’autre du coté esp).Le mini envois un “a” indiquant à l'esp qu'il commence à envoyer une serie de données.Ensuite on ramène les valeurs de l'accéléromètre sur l'échelle de g (gravitation terrestre ) gracz à un produit en croix . Pour finir, nous envoyons les données grâce à un serial write qui écrit sur les pins de l’esp ( pin 14 RX et 12 TX).&lt;br /&gt;
&lt;br /&gt;
Du côté de l’esp, on définit une liaison du nom de swSer au même baudrate que la précédente (9600). On attend la réception de 72 ( l'équivalent de ‘a’ en integer) indiquant que l’on commence à transmettre des données de l'accéléromètre. Une fois ce nombre reçu on incrémente un compteur à chaque réception d’un chiffre et à partir de la valeur de ce compteur nous plaçons la donnée dans la variable qui la définit ( la première donnée est celle de x1 donc si compteur est à 1 on place la valeur lue par swSer.read dans la variable x1 )&lt;br /&gt;
&lt;br /&gt;
===Fichiers rendus===&lt;br /&gt;
&lt;br /&gt;
rapport de projet : [[Fichier:Rapport_Fahem_Diop.pdf]]&lt;br /&gt;
Code de la partie smartphone: [[Fichier:]]&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=42821</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=42821"/>
				<updated>2017-05-20T15:05:07Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Fichiers rendus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Les accéléromètres nous permettent de calculer l'angle d'inclinaison à partir de la force gravitationnelle qu'ils peuvent mesurer selon les trois axes. Lorsque la position idéale du patient sera choisie par le médecin, nous pourrons enregistrer cette position en mémorisant l'inclinaison de chaque accéléromètre pour cette position. Ainsi un changement de position sera identifié par une variation des angles d'inclinaison précédemment pris. Nous allons utilisé les accéléromètres analogiques de type adxl335. Une fois que nous aurons à disposition les valeurs de l'accéléromètre et, par conséquent les angles d'inclinaison, nous aurons besoin d'un moyen d'affichage des ces données. Pour ce faire, nous avons opté dans un premier temps pour une affichage sur smartphone. Les données vont être envoyées au smartphone à travers un module WIFI connectés au même réseau que le smartphone.  En récapitulant, nous aurons finalement besoin de:&lt;br /&gt;
* 5 accéléromètres adxl335.&lt;br /&gt;
* un arduino Mega&lt;br /&gt;
* un module WIFI &lt;br /&gt;
* des fils pour la liaison.&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement : accéléromètres à sortie analogique. Nous aurons donc besoin de 3 sorties analogiques par capteur (donc 3*5 sorties analogiques)&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: force gravitationnelle selon les trois axes qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre par rapport à l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
&lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification et acquisition de la position idéale à l'aide des accéléromètres placées le long de la colonne vertébrale;&lt;br /&gt;
*notification au patient (à travers le smartphone) lorsqu'une position différente de celle idéale a été détectée.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
==tâches à réaliser==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Avancement !! Commentaires&lt;br /&gt;
|-&lt;br /&gt;
| acquisition des données 10DOF&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| connexion au WIFI (esp9266)&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| connexion à un wifi standard prédéfinit lors de la programmation&lt;br /&gt;
|-&lt;br /&gt;
| pages application smartphone&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
| envois et réception de données sur smartphone&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| terminé et testé &lt;br /&gt;
|-&lt;br /&gt;
| acquisition des données de l'accéléromètre avec l'arduino mini&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| donnée récupérer à partir de 2 accéléromètre mais on peut en ajouter plus&lt;br /&gt;
|-&lt;br /&gt;
| liaison série arduino mini et esp8266&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;testé&amp;lt;/font&amp;gt;&lt;br /&gt;
| Communication réalisé mais quelque amélioration à faire, il faut optimiser le code&lt;br /&gt;
|-&lt;br /&gt;
| mise en commun de la partie wifi et acquisition de données&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Inachevé&amp;lt;/font&amp;gt;&lt;br /&gt;
| la mise en commun pose quelque problème notamment la réception de donnée non cohérente par le smartphone&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 + Heures supplémentairements !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 2H&lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| documentation&lt;br /&gt;
| 2h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liste du matériel &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
| 6h&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude du module Wi-fi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
| 2H&lt;br /&gt;
| 4H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude, programmation, câblage du 10 DOF &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4H&lt;br /&gt;
| 8H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accéléromètre &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2H&lt;br /&gt;
| étude 3H &lt;br /&gt;
| &lt;br /&gt;
| schématique 2H &lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liaison arduino esp&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 16H&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| étude et programmation arduino mini&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 16H&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| application mobile&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2H&lt;br /&gt;
|4H&lt;br /&gt;
|4H&lt;br /&gt;
|&lt;br /&gt;
|10h&lt;br /&gt;
|10H&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différents choix matériel notamment dans la référence des accéléromètres ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL335. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données vers un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est plus rapide que le module bluetooth. Cependant, ce dernier ne consomme pas beaucoup de charge de la batterie du smartphone mais il fonctionne  essentiellement sur de petites distances et avec des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grandes ainsi que des tailles de données beaucoup plus importantes.&lt;br /&gt;
&lt;br /&gt;
Finalement, nous avons opté pour le module WIFI pour limiter le moins possible l'utilisateur en ce qui concerne la distance entre les appareils et le volume de données transmis.&lt;br /&gt;
&lt;br /&gt;
*Confirmation de la liste de matériel: &lt;br /&gt;
  *accéléromètre ADXL335&lt;br /&gt;
  *Smartphone sous Android&lt;br /&gt;
  *15 longs fils mâle-femelle, mâle-mâle&lt;br /&gt;
  *Arduino pro -mini&lt;br /&gt;
  *Module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnelles avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:cad1_1.PNG| 900px ]]&lt;br /&gt;
[[Fichier:cad1.PNG| 900px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, l’accéléromètre 10 DOF, ainsi que l'arduino MEGA qui sera utilisé pour l’acquisition des données. L'accéléromètre 10DOF incorpore un gyroscope et un magnétomètre. Ceux-ci nous permettront d'avoir une meilleure précision des mesures notamment avec la mesure des orientations (vitesses angulaires).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérées en direct sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes également intéressé au calcule de l'angle à partir de l’accélération. &lt;br /&gt;
Prenons l'exemple de l’accéléromètre penché de la manière suivante.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:exemple5.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Le triangle G,Gx Gz forme un triangle rectangle, dans notre cas nous avons Gx,Gy et Gz qui sont les valeurs du vecteur gravitationnel G sur les trois axes et nous devons déduire 𝝰 (l’angle que fait Gx avec l’axe x), 𝝋 (l’angle que fait Gy avec l’axe y) et ᴪ (l’angle que fait Gz avec l’axe z). La norme de G est&lt;br /&gt;
[[Fichier:Norme2.PNG| 200px ]]&lt;br /&gt;
On récupére ensuite chaque angle de la manière suivante: &lt;br /&gt;
[[Fichier:Calcule_angle.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10DOF que nous testerons la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération de l'angle réalisé par l'accéléromètre.( Dans le code suivant nous avons uniquement l'acquisition des données)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof_code.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendus compte que les calculs ne sont pas réalisés correctement par le MEGA. En effet la mesure de l'angle n'était pas précis car le MEGA n'a pas assez de puissance de calcul pour faire les différentes divisions.  &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 100px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé que le MEGA servira uniquement à récupérer les données et à les envoyer via module WIFI. Ce sera donc à l'application Android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le module WIFI ESP8266 que nous utiliserons, afin de nous faire une idée de son utilisation.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installé les logiciels nécessaires ( Android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes intéressées  au module wifi, en commençant par lire la fiche technique de l'esp 8266, nous avons également cherché les différents types d'exemples . &lt;br /&gt;
&lt;br /&gt;
Des recherches sur le mode de connexion entre le smartphone et le Mega à travers le module WIFI ont également été effectuer dans le but de se faire une idée, nous hésitons sur l'utilisation de Sockets UDP , ou de réaliser une transmission en TCP .&lt;br /&gt;
&lt;br /&gt;
Le programme réalisée lors de la séance précédente a été testé, notamment les tests de récupération des données de l'accéléromètre 10-DOF sur le Mega.&lt;br /&gt;
&lt;br /&gt;
Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 a également été entamé.&lt;br /&gt;
&lt;br /&gt;
Nous avons également rencontré un certain nombre de problème :&lt;br /&gt;
&lt;br /&gt;
Afin se connecter en WIFI à partir de n’importe où, nous avons décidé de se connecter premièrement à un réseau standard (point d'accès fourni par le smartphone dans un premier temps) puis de modifier le réseau sur lequel nous sommes connecté à partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière.&lt;br /&gt;
[[Fichier:connection.PNG| 500px ]]&lt;br /&gt;
&lt;br /&gt;
La possibilité et l'utilité de l'ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête ( gérer les rotations).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle, nous avons également avancé avec la création d'une application android pour la réception et l'affichage de données.&lt;br /&gt;
Nous avons décidé de:&lt;br /&gt;
* faire une page d'accueil dans laquelle le kinésithérapeute devra appuyer sur un bouton lorsqu'il aura bien positionné le patient pour enregistrer la bonne position.&lt;br /&gt;
* à l'appui du bouton, le smartphone va contacter le module WIFI à travers un message broadcast (en utilisant une communication UDP) dans le réseau. &lt;br /&gt;
* Le MODULE WIFI, qui est déjà en attente d'une trame venant du smartphone, reçoit le message broadcast, extrait l'adresse IP du smartphone, puis, lui envoie des données du capteur.&lt;br /&gt;
* le smartphone, à son tour va utiliser ces données pour calculer les angles d'inclinaison sur les différents axes et les afficher. Notons que les premiers angles calculés sont ceux correspondant à la bonne position. &lt;br /&gt;
* A intervalle régulier, le module ESP va envoyer de nouvelles données que le smartphone va traiter et comparer avec les angles de la bonne position et prévenir le patient si la position a changer.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:transmition.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
* Réception du matériel&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ADXL345.PNG| 100px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par étudier l'accéléromètre reçu, en effet la référence de ce dernier est ADXL345 et est digital à l’inverse de celui choisi qui était analogique. De ce fait, nous avons modifié une partie du cahier des charges.&lt;br /&gt;
&lt;br /&gt;
Les accéléromètres adxl345 sont alimentés en 3.3V et sont digitaux. Par conséquent, nous n'aurons plus besoin de sortie analogique.  &lt;br /&gt;
&lt;br /&gt;
*fonctionnement : accéléromètres digitaux pouvant fonctionner en SPI comme en I2C et supportant 3.3V. Résolution: 10 bits, régler en mode +/-2g. Donc les valeurs de notre registre de données seront dans la plage [-512 ,512]. Mais puisque nous ne mesurons que la force gravitationnelle, nous aurons des valeurs comprises entre [-256,256] qui est la plage correspondant à -/1g. 1g correspond à la valeur de 9.80m/s2.&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: des entiers de -512 à 512 qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre selon l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
L'établissement des activités nécessairement et documentation sur le choix des sockets à utiliser pour l'envoi des données a également été entamé.&lt;br /&gt;
&lt;br /&gt;
Coté Smartphone: &lt;br /&gt;
&lt;br /&gt;
*Créations de la page d'accueil et de la page de visualisation des angles d'inclinaisons&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé l'étude de l'accéléromètre digital, nous devrons nous servir des ports digitaux du MEGA et choisir l’accéléromètre à partir duquel nous récupérons les données grâce à un chip select. Pour cela nous devrons utiliser la bibliothèque SPI.h et brancher le pin CS de l'accéléromètre à des pin digitaux du mega.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mais les pin de l'accéleromètre n'acceptent que des tensions de 3.3V alors que ceux du Mega fournissent des tensions de 5v. Nous aurons donc besoin d'un mécanisme de régulation des tensions en sortie de Mega.&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
Nous avons réalisé une carte électronique grâce au logiciel fritzing pour réaliser l’adaptation de tensions entre l’accéléromètre adxl345 et la carte MEGA. En effet l'accéléromètre supporte des tensions maximales de 3.3V alors que le MEGA donne en sortie 5V.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:carte_elec1.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Coté Smartphone:&lt;br /&gt;
&lt;br /&gt;
* création de la page d'accueil avec implémentation du code pour la communication UDP entre le smartphone et l'ESP8266.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Nous rencontrons des problèmes en ce qui concerne la l'implémentation du programme coté ESP.&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la carte électronique faite la semaine précédente. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:carte_elec2.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Afin de tester la carte, nous avons alimenter les pins d’entrée par des 5v et avons observé la sortie du circuit. Malheureusement, seulement un pin en sortie &lt;br /&gt;
fournissait une tension de 3.3V.&lt;br /&gt;
Elle ne fonctionne pas et nous n'avons pas pu comprendre pourquoi. &lt;br /&gt;
&lt;br /&gt;
Par conséquent, nous avons changé de microcontrôleur. Nous avons reçu un arduino pro mini 3.3V compatible avec nos capteurs ( mais qui ne l'est pas avec le 10DOF ). &lt;br /&gt;
Nous commençons par conséquent à recueillir les données du capteurs. Pour cela, nous avons utilisé une librairie pour les ADXL345.&lt;br /&gt;
La première étape est de sélectionner le chip Select en définissant un ADXL grâce à la fonction suivante:&lt;br /&gt;
[[Fichier:def_adxl.PNG| 200px ]]&lt;br /&gt;
Cette fonction prend en paramètre le pin lié au chip Select de accéléromètre.&lt;br /&gt;
&lt;br /&gt;
Ensuite on récupère les données grâce à la fonction readaccel comme suit:&lt;br /&gt;
[[Fichier:readaccel.PNG| 200px ]]&lt;br /&gt;
La fonction stocke alors les valeurs lues par l'accéléromètre dans x,y et z.&lt;br /&gt;
&lt;br /&gt;
 code :&lt;br /&gt;
 [[Fichier:codemini1.PNG| 400px ]]&lt;br /&gt;
 &lt;br /&gt;
 [[Fichier:codemini2.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
Nous réalisons ensuite le montage suivant de manière à pouvoir lire sur le port série les valeurs .&lt;br /&gt;
&lt;br /&gt;
[[Fichier:montageaccel.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Partie smartphone:&lt;br /&gt;
succès de la connexion au wi-fi partagé d'un smartphone. Coté ESP comme coté smartphone.&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
'''Etude de la partie communication entre l'arduino pro mini et l'ESP8266 pour l'envoie des données du capteur'''&lt;br /&gt;
&lt;br /&gt;
Nous avons implémenté le module Wifi de manière à ce que l’on puisse recevoir les données des accélérations reçus par l’arduino mini.7&lt;br /&gt;
&lt;br /&gt;
Pour cela, nous avons utilisée la bibliothèque SoftwareSerial d’arduino et avons défini deux liaisons série (l'une du côté du mini et l’autre du coté esp).Le mini envois un “a” indiquant à l'esp qu'il commence à envoyer une serie de données.Ensuite on ramène les valeurs de l'accéléromètre sur l'échelle de g (gravitation terrestre ) gracz à un produit en croix . Pour finir, nous envoyons les données grâce à un serial write qui écrit sur les pins de l’esp ( pin 14 RX et 12 TX).&lt;br /&gt;
&lt;br /&gt;
Du côté de l’esp, on définit une liaison du nom de swSer au même baudrate que la précédente (9600). On attend la réception de 72 ( l'équivalent de ‘a’ en integer) indiquant que l’on commence à transmettre des données de l'accéléromètre. Une fois ce nombre reçu on incrémente un compteur à chaque réception d’un chiffre et à partir de la valeur de ce compteur nous plaçons la donnée dans la variable qui la définit ( la première donnée est celle de x1 donc si compteur est à 1 on place la valeur lue par swSer.read dans la variable x1 )&lt;br /&gt;
&lt;br /&gt;
===Fichiers rendus===&lt;br /&gt;
&lt;br /&gt;
rapport de projet : [[Fichier:Rapport_Fahem_Diop.pdf]]&lt;br /&gt;
Code de la partie smartphone: [[Fichier:Exemple.jpg]]&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=42815</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=42815"/>
				<updated>2017-05-20T14:57:22Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Semaine 8 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Les accéléromètres nous permettent de calculer l'angle d'inclinaison à partir de la force gravitationnelle qu'ils peuvent mesurer selon les trois axes. Lorsque la position idéale du patient sera choisie par le médecin, nous pourrons enregistrer cette position en mémorisant l'inclinaison de chaque accéléromètre pour cette position. Ainsi un changement de position sera identifié par une variation des angles d'inclinaison précédemment pris. Nous allons utilisé les accéléromètres analogiques de type adxl335. Une fois que nous aurons à disposition les valeurs de l'accéléromètre et, par conséquent les angles d'inclinaison, nous aurons besoin d'un moyen d'affichage des ces données. Pour ce faire, nous avons opté dans un premier temps pour une affichage sur smartphone. Les données vont être envoyées au smartphone à travers un module WIFI connectés au même réseau que le smartphone.  En récapitulant, nous aurons finalement besoin de:&lt;br /&gt;
* 5 accéléromètres adxl335.&lt;br /&gt;
* un arduino Mega&lt;br /&gt;
* un module WIFI &lt;br /&gt;
* des fils pour la liaison.&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement : accéléromètres à sortie analogique. Nous aurons donc besoin de 3 sorties analogiques par capteur (donc 3*5 sorties analogiques)&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: force gravitationnelle selon les trois axes qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre par rapport à l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
&lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification et acquisition de la position idéale à l'aide des accéléromètres placées le long de la colonne vertébrale;&lt;br /&gt;
*notification au patient (à travers le smartphone) lorsqu'une position différente de celle idéale a été détectée.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
==tâches à réaliser==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Avancement !! Commentaires&lt;br /&gt;
|-&lt;br /&gt;
| acquisition des données 10DOF&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| connexion au WIFI (esp9266)&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| connexion à un wifi standard prédéfinit lors de la programmation&lt;br /&gt;
|-&lt;br /&gt;
| pages application smartphone&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
| envois et réception de données sur smartphone&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| terminé et testé &lt;br /&gt;
|-&lt;br /&gt;
| acquisition des données de l'accéléromètre avec l'arduino mini&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| donnée récupérer à partir de 2 accéléromètre mais on peut en ajouter plus&lt;br /&gt;
|-&lt;br /&gt;
| liaison série arduino mini et esp8266&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;testé&amp;lt;/font&amp;gt;&lt;br /&gt;
| Communication réalisé mais quelque amélioration à faire, il faut optimiser le code&lt;br /&gt;
|-&lt;br /&gt;
| mise en commun de la partie wifi et acquisition de données&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Inachevé&amp;lt;/font&amp;gt;&lt;br /&gt;
| la mise en commun pose quelque problème notamment la réception de donnée non cohérente par le smartphone&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 + Heures supplémentairements !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 2H&lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| documentation&lt;br /&gt;
| 2h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liste du matériel &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
| 6h&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude du module Wi-fi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
| 2H&lt;br /&gt;
| 4H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude, programmation, câblage du 10 DOF &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4H&lt;br /&gt;
| 8H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accéléromètre &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2H&lt;br /&gt;
| étude 3H &lt;br /&gt;
| &lt;br /&gt;
| schématique 2H &lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liaison arduino esp&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 16H&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| étude et programmation arduino mini&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 16H&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| application mobile&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2H&lt;br /&gt;
|4H&lt;br /&gt;
|4H&lt;br /&gt;
|&lt;br /&gt;
|10h&lt;br /&gt;
|10H&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différents choix matériel notamment dans la référence des accéléromètres ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL335. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données vers un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est plus rapide que le module bluetooth. Cependant, ce dernier ne consomme pas beaucoup de charge de la batterie du smartphone mais il fonctionne  essentiellement sur de petites distances et avec des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grandes ainsi que des tailles de données beaucoup plus importantes.&lt;br /&gt;
&lt;br /&gt;
Finalement, nous avons opté pour le module WIFI pour limiter le moins possible l'utilisateur en ce qui concerne la distance entre les appareils et le volume de données transmis.&lt;br /&gt;
&lt;br /&gt;
*Confirmation de la liste de matériel: &lt;br /&gt;
  *accéléromètre ADXL335&lt;br /&gt;
  *Smartphone sous Android&lt;br /&gt;
  *15 longs fils mâle-femelle, mâle-mâle&lt;br /&gt;
  *Arduino pro -mini&lt;br /&gt;
  *Module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnelles avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:cad1_1.PNG| 900px ]]&lt;br /&gt;
[[Fichier:cad1.PNG| 900px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, l’accéléromètre 10 DOF, ainsi que l'arduino MEGA qui sera utilisé pour l’acquisition des données. L'accéléromètre 10DOF incorpore un gyroscope et un magnétomètre. Ceux-ci nous permettront d'avoir une meilleure précision des mesures notamment avec la mesure des orientations (vitesses angulaires).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérées en direct sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes également intéressé au calcule de l'angle à partir de l’accélération. &lt;br /&gt;
Prenons l'exemple de l’accéléromètre penché de la manière suivante.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:exemple5.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Le triangle G,Gx Gz forme un triangle rectangle, dans notre cas nous avons Gx,Gy et Gz qui sont les valeurs du vecteur gravitationnel G sur les trois axes et nous devons déduire 𝝰 (l’angle que fait Gx avec l’axe x), 𝝋 (l’angle que fait Gy avec l’axe y) et ᴪ (l’angle que fait Gz avec l’axe z). La norme de G est&lt;br /&gt;
[[Fichier:Norme2.PNG| 200px ]]&lt;br /&gt;
On récupére ensuite chaque angle de la manière suivante: &lt;br /&gt;
[[Fichier:Calcule_angle.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10DOF que nous testerons la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération de l'angle réalisé par l'accéléromètre.( Dans le code suivant nous avons uniquement l'acquisition des données)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof_code.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendus compte que les calculs ne sont pas réalisés correctement par le MEGA. En effet la mesure de l'angle n'était pas précis car le MEGA n'a pas assez de puissance de calcul pour faire les différentes divisions.  &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 100px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé que le MEGA servira uniquement à récupérer les données et à les envoyer via module WIFI. Ce sera donc à l'application Android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le module WIFI ESP8266 que nous utiliserons, afin de nous faire une idée de son utilisation.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installé les logiciels nécessaires ( Android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes intéressées  au module wifi, en commençant par lire la fiche technique de l'esp 8266, nous avons également cherché les différents types d'exemples . &lt;br /&gt;
&lt;br /&gt;
Des recherches sur le mode de connexion entre le smartphone et le Mega à travers le module WIFI ont également été effectuer dans le but de se faire une idée, nous hésitons sur l'utilisation de Sockets UDP , ou de réaliser une transmission en TCP .&lt;br /&gt;
&lt;br /&gt;
Le programme réalisée lors de la séance précédente a été testé, notamment les tests de récupération des données de l'accéléromètre 10-DOF sur le Mega.&lt;br /&gt;
&lt;br /&gt;
Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 a également été entamé.&lt;br /&gt;
&lt;br /&gt;
Nous avons également rencontré un certain nombre de problème :&lt;br /&gt;
&lt;br /&gt;
Afin se connecter en WIFI à partir de n’importe où, nous avons décidé de se connecter premièrement à un réseau standard (point d'accès fourni par le smartphone dans un premier temps) puis de modifier le réseau sur lequel nous sommes connecté à partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière.&lt;br /&gt;
[[Fichier:connection.PNG| 500px ]]&lt;br /&gt;
&lt;br /&gt;
La possibilité et l'utilité de l'ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête ( gérer les rotations).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle, nous avons également avancé avec la création d'une application android pour la réception et l'affichage de données.&lt;br /&gt;
Nous avons décidé de:&lt;br /&gt;
* faire une page d'accueil dans laquelle le kinésithérapeute devra appuyer sur un bouton lorsqu'il aura bien positionné le patient pour enregistrer la bonne position.&lt;br /&gt;
* à l'appui du bouton, le smartphone va contacter le module WIFI à travers un message broadcast (en utilisant une communication UDP) dans le réseau. &lt;br /&gt;
* Le MODULE WIFI, qui est déjà en attente d'une trame venant du smartphone, reçoit le message broadcast, extrait l'adresse IP du smartphone, puis, lui envoie des données du capteur.&lt;br /&gt;
* le smartphone, à son tour va utiliser ces données pour calculer les angles d'inclinaison sur les différents axes et les afficher. Notons que les premiers angles calculés sont ceux correspondant à la bonne position. &lt;br /&gt;
* A intervalle régulier, le module ESP va envoyer de nouvelles données que le smartphone va traiter et comparer avec les angles de la bonne position et prévenir le patient si la position a changer.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:transmition.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
* Réception du matériel&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ADXL345.PNG| 100px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par étudier l'accéléromètre reçu, en effet la référence de ce dernier est ADXL345 et est digital à l’inverse de celui choisi qui était analogique. De ce fait, nous avons modifié une partie du cahier des charges.&lt;br /&gt;
&lt;br /&gt;
Les accéléromètres adxl345 sont alimentés en 3.3V et sont digitaux. Par conséquent, nous n'aurons plus besoin de sortie analogique.  &lt;br /&gt;
&lt;br /&gt;
*fonctionnement : accéléromètres digitaux pouvant fonctionner en SPI comme en I2C et supportant 3.3V. Résolution: 10 bits, régler en mode +/-2g. Donc les valeurs de notre registre de données seront dans la plage [-512 ,512]. Mais puisque nous ne mesurons que la force gravitationnelle, nous aurons des valeurs comprises entre [-256,256] qui est la plage correspondant à -/1g. 1g correspond à la valeur de 9.80m/s2.&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: des entiers de -512 à 512 qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre selon l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
L'établissement des activités nécessairement et documentation sur le choix des sockets à utiliser pour l'envoi des données a également été entamé.&lt;br /&gt;
&lt;br /&gt;
Coté Smartphone: &lt;br /&gt;
&lt;br /&gt;
*Créations de la page d'accueil et de la page de visualisation des angles d'inclinaisons&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé l'étude de l'accéléromètre digital, nous devrons nous servir des ports digitaux du MEGA et choisir l’accéléromètre à partir duquel nous récupérons les données grâce à un chip select. Pour cela nous devrons utiliser la bibliothèque SPI.h et brancher le pin CS de l'accéléromètre à des pin digitaux du mega.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mais les pin de l'accéleromètre n'acceptent que des tensions de 3.3V alors que ceux du Mega fournissent des tensions de 5v. Nous aurons donc besoin d'un mécanisme de régulation des tensions en sortie de Mega.&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
Nous avons réalisé une carte électronique grâce au logiciel fritzing pour réaliser l’adaptation de tensions entre l’accéléromètre adxl345 et la carte MEGA. En effet l'accéléromètre supporte des tensions maximales de 3.3V alors que le MEGA donne en sortie 5V.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:carte_elec1.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Coté Smartphone:&lt;br /&gt;
&lt;br /&gt;
* création de la page d'accueil avec implémentation du code pour la communication UDP entre le smartphone et l'ESP8266.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Nous rencontrons des problèmes en ce qui concerne la l'implémentation du programme coté ESP.&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la carte électronique faite la semaine précédente. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:carte_elec2.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Afin de tester la carte, nous avons alimenter les pins d’entrée par des 5v et avons observé la sortie du circuit. Malheureusement, seulement un pin en sortie &lt;br /&gt;
fournissait une tension de 3.3V.&lt;br /&gt;
Elle ne fonctionne pas et nous n'avons pas pu comprendre pourquoi. &lt;br /&gt;
&lt;br /&gt;
Par conséquent, nous avons changé de microcontrôleur. Nous avons reçu un arduino pro mini 3.3V compatible avec nos capteurs ( mais qui ne l'est pas avec le 10DOF ). &lt;br /&gt;
Nous commençons par conséquent à recueillir les données du capteurs. Pour cela, nous avons utilisé une librairie pour les ADXL345.&lt;br /&gt;
La première étape est de sélectionner le chip Select en définissant un ADXL grâce à la fonction suivante:&lt;br /&gt;
[[Fichier:def_adxl.PNG| 200px ]]&lt;br /&gt;
Cette fonction prend en paramètre le pin lié au chip Select de accéléromètre.&lt;br /&gt;
&lt;br /&gt;
Ensuite on récupère les données grâce à la fonction readaccel comme suit:&lt;br /&gt;
[[Fichier:readaccel.PNG| 200px ]]&lt;br /&gt;
La fonction stocke alors les valeurs lues par l'accéléromètre dans x,y et z.&lt;br /&gt;
&lt;br /&gt;
 code :&lt;br /&gt;
 [[Fichier:codemini1.PNG| 400px ]]&lt;br /&gt;
 &lt;br /&gt;
 [[Fichier:codemini2.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
Nous réalisons ensuite le montage suivant de manière à pouvoir lire sur le port série les valeurs .&lt;br /&gt;
&lt;br /&gt;
[[Fichier:montageaccel.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Partie smartphone:&lt;br /&gt;
succès de la connexion au wi-fi partagé d'un smartphone. Coté ESP comme coté smartphone.&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
'''Etude de la partie communication entre l'arduino pro mini et l'ESP8266 pour l'envoie des données du capteur'''&lt;br /&gt;
&lt;br /&gt;
Nous avons implémenté le module Wifi de manière à ce que l’on puisse recevoir les données des accélérations reçus par l’arduino mini.7&lt;br /&gt;
&lt;br /&gt;
Pour cela, nous avons utilisée la bibliothèque SoftwareSerial d’arduino et avons défini deux liaisons série (l'une du côté du mini et l’autre du coté esp).Le mini envois un “a” indiquant à l'esp qu'il commence à envoyer une serie de données.Ensuite on ramène les valeurs de l'accéléromètre sur l'échelle de g (gravitation terrestre ) gracz à un produit en croix . Pour finir, nous envoyons les données grâce à un serial write qui écrit sur les pins de l’esp ( pin 14 RX et 12 TX).&lt;br /&gt;
&lt;br /&gt;
Du côté de l’esp, on définit une liaison du nom de swSer au même baudrate que la précédente (9600). On attend la réception de 72 ( l'équivalent de ‘a’ en integer) indiquant que l’on commence à transmettre des données de l'accéléromètre. Une fois ce nombre reçu on incrémente un compteur à chaque réception d’un chiffre et à partir de la valeur de ce compteur nous plaçons la donnée dans la variable qui la définit ( la première donnée est celle de x1 donc si compteur est à 1 on place la valeur lue par swSer.read dans la variable x1 )&lt;br /&gt;
&lt;br /&gt;
===Fichiers rendus===&lt;br /&gt;
&lt;br /&gt;
rapport de projet : [[Fichier:Rapport_Fahem_Diop.pdf]]&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=42812</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=42812"/>
				<updated>2017-05-20T14:42:38Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Semaine 8 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Les accéléromètres nous permettent de calculer l'angle d'inclinaison à partir de la force gravitationnelle qu'ils peuvent mesurer selon les trois axes. Lorsque la position idéale du patient sera choisie par le médecin, nous pourrons enregistrer cette position en mémorisant l'inclinaison de chaque accéléromètre pour cette position. Ainsi un changement de position sera identifié par une variation des angles d'inclinaison précédemment pris. Nous allons utilisé les accéléromètres analogiques de type adxl335. Une fois que nous aurons à disposition les valeurs de l'accéléromètre et, par conséquent les angles d'inclinaison, nous aurons besoin d'un moyen d'affichage des ces données. Pour ce faire, nous avons opté dans un premier temps pour une affichage sur smartphone. Les données vont être envoyées au smartphone à travers un module WIFI connectés au même réseau que le smartphone.  En récapitulant, nous aurons finalement besoin de:&lt;br /&gt;
* 5 accéléromètres adxl335.&lt;br /&gt;
* un arduino Mega&lt;br /&gt;
* un module WIFI &lt;br /&gt;
* des fils pour la liaison.&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement : accéléromètres à sortie analogique. Nous aurons donc besoin de 3 sorties analogiques par capteur (donc 3*5 sorties analogiques)&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: force gravitationnelle selon les trois axes qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre par rapport à l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
&lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification et acquisition de la position idéale à l'aide des accéléromètres placées le long de la colonne vertébrale;&lt;br /&gt;
*notification au patient (à travers le smartphone) lorsqu'une position différente de celle idéale a été détectée.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
==tâches à réaliser==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Avancement !! Commentaires&lt;br /&gt;
|-&lt;br /&gt;
| acquisition des données 10DOF&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| connexion au WIFI (esp9266)&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| connexion à un wifi standard prédéfinit lors de la programmation&lt;br /&gt;
|-&lt;br /&gt;
| pages application smartphone&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
| envois et réception de données sur smartphone&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| terminé et testé &lt;br /&gt;
|-&lt;br /&gt;
| acquisition des données de l'accéléromètre avec l'arduino mini&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| donnée récupérer à partir de 2 accéléromètre mais on peut en ajouter plus&lt;br /&gt;
|-&lt;br /&gt;
| liaison série arduino mini et esp8266&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;testé&amp;lt;/font&amp;gt;&lt;br /&gt;
| Communication réalisé mais quelque amélioration à faire, il faut optimiser le code&lt;br /&gt;
|-&lt;br /&gt;
| mise en commun de la partie wifi et acquisition de données&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Inachevé&amp;lt;/font&amp;gt;&lt;br /&gt;
| la mise en commun pose quelque problème notamment la réception de donnée non cohérente par le smartphone&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 + Heures supplémentairements !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 2H&lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| documentation&lt;br /&gt;
| 2h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liste du matériel &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
| 6h&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude du module Wi-fi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
| 2H&lt;br /&gt;
| 4H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude, programmation, câblage du 10 DOF &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4H&lt;br /&gt;
| 8H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accéléromètre &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2H&lt;br /&gt;
| étude 3H &lt;br /&gt;
| &lt;br /&gt;
| schématique 2H &lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liaison arduino esp&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 16H&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| étude et programmation arduino mini&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 16H&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| application mobile&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2H&lt;br /&gt;
|4H&lt;br /&gt;
|4H&lt;br /&gt;
|&lt;br /&gt;
|10h&lt;br /&gt;
|10H&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différents choix matériel notamment dans la référence des accéléromètres ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL335. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données vers un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est plus rapide que le module bluetooth. Cependant, ce dernier ne consomme pas beaucoup de charge de la batterie du smartphone mais il fonctionne  essentiellement sur de petites distances et avec des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grandes ainsi que des tailles de données beaucoup plus importantes.&lt;br /&gt;
&lt;br /&gt;
Finalement, nous avons opté pour le module WIFI pour limiter le moins possible l'utilisateur en ce qui concerne la distance entre les appareils et le volume de données transmis.&lt;br /&gt;
&lt;br /&gt;
*Confirmation de la liste de matériel: &lt;br /&gt;
  *accéléromètre ADXL335&lt;br /&gt;
  *Smartphone sous Android&lt;br /&gt;
  *15 longs fils mâle-femelle, mâle-mâle&lt;br /&gt;
  *Arduino pro -mini&lt;br /&gt;
  *Module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnelles avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:cad1_1.PNG| 900px ]]&lt;br /&gt;
[[Fichier:cad1.PNG| 900px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, l’accéléromètre 10 DOF, ainsi que l'arduino MEGA qui sera utilisé pour l’acquisition des données. L'accéléromètre 10DOF incorpore un gyroscope et un magnétomètre. Ceux-ci nous permettront d'avoir une meilleure précision des mesures notamment avec la mesure des orientations (vitesses angulaires).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérées en direct sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes également intéressé au calcule de l'angle à partir de l’accélération. &lt;br /&gt;
Prenons l'exemple de l’accéléromètre penché de la manière suivante.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:exemple5.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Le triangle G,Gx Gz forme un triangle rectangle, dans notre cas nous avons Gx,Gy et Gz qui sont les valeurs du vecteur gravitationnel G sur les trois axes et nous devons déduire 𝝰 (l’angle que fait Gx avec l’axe x), 𝝋 (l’angle que fait Gy avec l’axe y) et ᴪ (l’angle que fait Gz avec l’axe z). La norme de G est&lt;br /&gt;
[[Fichier:Norme2.PNG| 200px ]]&lt;br /&gt;
On récupére ensuite chaque angle de la manière suivante: &lt;br /&gt;
[[Fichier:Calcule_angle.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10DOF que nous testerons la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération de l'angle réalisé par l'accéléromètre.( Dans le code suivant nous avons uniquement l'acquisition des données)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof_code.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendus compte que les calculs ne sont pas réalisés correctement par le MEGA. En effet la mesure de l'angle n'était pas précis car le MEGA n'a pas assez de puissance de calcul pour faire les différentes divisions.  &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 100px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé que le MEGA servira uniquement à récupérer les données et à les envoyer via module WIFI. Ce sera donc à l'application Android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le module WIFI ESP8266 que nous utiliserons, afin de nous faire une idée de son utilisation.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installé les logiciels nécessaires ( Android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes intéressées  au module wifi, en commençant par lire la fiche technique de l'esp 8266, nous avons également cherché les différents types d'exemples . &lt;br /&gt;
&lt;br /&gt;
Des recherches sur le mode de connexion entre le smartphone et le Mega à travers le module WIFI ont également été effectuer dans le but de se faire une idée, nous hésitons sur l'utilisation de Sockets UDP , ou de réaliser une transmission en TCP .&lt;br /&gt;
&lt;br /&gt;
Le programme réalisée lors de la séance précédente a été testé, notamment les tests de récupération des données de l'accéléromètre 10-DOF sur le Mega.&lt;br /&gt;
&lt;br /&gt;
Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 a également été entamé.&lt;br /&gt;
&lt;br /&gt;
Nous avons également rencontré un certain nombre de problème :&lt;br /&gt;
&lt;br /&gt;
Afin se connecter en WIFI à partir de n’importe où, nous avons décidé de se connecter premièrement à un réseau standard (point d'accès fourni par le smartphone dans un premier temps) puis de modifier le réseau sur lequel nous sommes connecté à partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière.&lt;br /&gt;
[[Fichier:connection.PNG| 500px ]]&lt;br /&gt;
&lt;br /&gt;
La possibilité et l'utilité de l'ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête ( gérer les rotations).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle, nous avons également avancé avec la création d'une application android pour la réception et l'affichage de données.&lt;br /&gt;
Nous avons décidé de:&lt;br /&gt;
* faire une page d'accueil dans laquelle le kinésithérapeute devra appuyer sur un bouton lorsqu'il aura bien positionné le patient pour enregistrer la bonne position.&lt;br /&gt;
* à l'appui du bouton, le smartphone va contacter le module WIFI à travers un message broadcast (en utilisant une communication UDP) dans le réseau. &lt;br /&gt;
* Le MODULE WIFI, qui est déjà en attente d'une trame venant du smartphone, reçoit le message broadcast, extrait l'adresse IP du smartphone, puis, lui envoie des données du capteur.&lt;br /&gt;
* le smartphone, à son tour va utiliser ces données pour calculer les angles d'inclinaison sur les différents axes et les afficher. Notons que les premiers angles calculés sont ceux correspondant à la bonne position. &lt;br /&gt;
* A intervalle régulier, le module ESP va envoyer de nouvelles données que le smartphone va traiter et comparer avec les angles de la bonne position et prévenir le patient si la position a changer.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:transmition.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
* Réception du matériel&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ADXL345.PNG| 100px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par étudier l'accéléromètre reçu, en effet la référence de ce dernier est ADXL345 et est digital à l’inverse de celui choisi qui était analogique. De ce fait, nous avons modifié une partie du cahier des charges.&lt;br /&gt;
&lt;br /&gt;
Les accéléromètres adxl345 sont alimentés en 3.3V et sont digitaux. Par conséquent, nous n'aurons plus besoin de sortie analogique.  &lt;br /&gt;
&lt;br /&gt;
*fonctionnement : accéléromètres digitaux pouvant fonctionner en SPI comme en I2C et supportant 3.3V. Résolution: 10 bits, régler en mode +/-2g. Donc les valeurs de notre registre de données seront dans la plage [-512 ,512]. Mais puisque nous ne mesurons que la force gravitationnelle, nous aurons des valeurs comprises entre [-256,256] qui est la plage correspondant à -/1g. 1g correspond à la valeur de 9.80m/s2.&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: des entiers de -512 à 512 qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre selon l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
L'établissement des activités nécessairement et documentation sur le choix des sockets à utiliser pour l'envoi des données a également été entamé.&lt;br /&gt;
&lt;br /&gt;
Coté Smartphone: &lt;br /&gt;
&lt;br /&gt;
*Créations de la page d'accueil et de la page de visualisation des angles d'inclinaisons&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé l'étude de l'accéléromètre digital, nous devrons nous servir des ports digitaux du MEGA et choisir l’accéléromètre à partir duquel nous récupérons les données grâce à un chip select. Pour cela nous devrons utiliser la bibliothèque SPI.h et brancher le pin CS de l'accéléromètre à des pin digitaux du mega.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mais les pin de l'accéleromètre n'acceptent que des tensions de 3.3V alors que ceux du Mega fournissent des tensions de 5v. Nous aurons donc besoin d'un mécanisme de régulation des tensions en sortie de Mega.&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
Nous avons réalisé une carte électronique grâce au logiciel fritzing pour réaliser l’adaptation de tensions entre l’accéléromètre adxl345 et la carte MEGA. En effet l'accéléromètre supporte des tensions maximales de 3.3V alors que le MEGA donne en sortie 5V.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:carte_elec1.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Coté Smartphone:&lt;br /&gt;
&lt;br /&gt;
* création de la page d'accueil avec implémentation du code pour la communication UDP entre le smartphone et l'ESP8266.&lt;br /&gt;
[[Fichier:Exemple.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Nous rencontrons des problèmes en ce qui concerne la l'implémentation du programme coté ESP.&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la carte électronique faite la semaine précédente. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:carte_elec2.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Afin de tester la carte, nous avons alimenter les pins d’entrée par des 5v et avons observé la sortie du circuit. Malheureusement, seulement un pin en sortie &lt;br /&gt;
fournissait une tension de 3.3V.&lt;br /&gt;
Elle ne fonctionne pas et nous n'avons pas pu comprendre pourquoi. &lt;br /&gt;
&lt;br /&gt;
Par conséquent, nous avons changé de microcontrôleur. Nous avons reçu un arduino pro mini 3.3V compatible avec nos capteurs ( mais qui ne l'est pas avec le 10DOF ). &lt;br /&gt;
Nous commençons par conséquent à recueillir les données du capteurs. Pour cela, nous avons utilisé une librairie pour les ADXL345.&lt;br /&gt;
La première étape est de sélectionner le chip Select en définissant un ADXL grâce à la fonction suivante:&lt;br /&gt;
[[Fichier:def_adxl.PNG| 200px ]]&lt;br /&gt;
Cette fonction prend en paramètre le pin lié au chip Select de accéléromètre.&lt;br /&gt;
&lt;br /&gt;
Ensuite on récupère les données grâce à la fonction readaccel comme suit:&lt;br /&gt;
[[Fichier:readaccel.PNG| 200px ]]&lt;br /&gt;
La fonction stocke alors les valeurs lues par l'accéléromètre dans x,y et z.&lt;br /&gt;
&lt;br /&gt;
 code :&lt;br /&gt;
 [[Fichier:codemini1.PNG| 400px ]]&lt;br /&gt;
 &lt;br /&gt;
 [[Fichier:codemini2.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
Nous réalisons ensuite le montage suivant de manière à pouvoir lire sur le port série les valeurs .&lt;br /&gt;
&lt;br /&gt;
[[Fichier:montageaccel.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Partie smartphone:&lt;br /&gt;
succès de la connexion au wi-fi partagé d'un smartphone. Coté ESP comme coté smartphone.&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
'''Etude de la partie communication entre l'arduino pro mini et l'ESP8266 pour l'envoie des données du capteur'''&lt;br /&gt;
&lt;br /&gt;
Nous avons implémenté le module Wifi de manière à ce que l’on puisse recevoir les données des accélérations reçus par l’arduino mini.7&lt;br /&gt;
&lt;br /&gt;
Pour cela, nous avons utilisée la bibliothèque SoftwareSerial d’arduino et avons défini deux liaisons série (l'une du côté du mini et l’autre du coté esp).Le mini envois un “a” indiquant à l'esp qu'il commence à envoyer une serie de données.Ensuite on ramène les valeurs de l'accéléromètre sur l'échelle de g (gravitation terrestre ) gracz à un produit en croix . Pour finir, nous envoyons les données grâce à un serial write qui écrit sur les pins de l’esp ( pin 14 RX et 12 TX).&lt;br /&gt;
&lt;br /&gt;
Du côté de l’esp, on définit une liaison du nom de swSer au même baudrate que la précédente (9600). On attend la réception de 72 ( l'équivalent de ‘a’ en integer) indiquant que l’on commence à transmettre des données de l'accéléromètre. Une fois ce nombre reçu on incrémente un compteur à chaque réception d’un chiffre et à partir de la valeur de ce compteur nous plaçons la donnée dans la variable qui la définit ( la première donnée est celle de x1 donc si compteur est à 1 on place la valeur lue par swSer.read dans la variable x1 )&lt;br /&gt;
&lt;br /&gt;
===Fichiers rendus===&lt;br /&gt;
&lt;br /&gt;
rapport de projet : [[Fichier:Rapport_Fahem_Diop.pdf]]&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=42810</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=42810"/>
				<updated>2017-05-20T14:39:44Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Semaine 7 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Les accéléromètres nous permettent de calculer l'angle d'inclinaison à partir de la force gravitationnelle qu'ils peuvent mesurer selon les trois axes. Lorsque la position idéale du patient sera choisie par le médecin, nous pourrons enregistrer cette position en mémorisant l'inclinaison de chaque accéléromètre pour cette position. Ainsi un changement de position sera identifié par une variation des angles d'inclinaison précédemment pris. Nous allons utilisé les accéléromètres analogiques de type adxl335. Une fois que nous aurons à disposition les valeurs de l'accéléromètre et, par conséquent les angles d'inclinaison, nous aurons besoin d'un moyen d'affichage des ces données. Pour ce faire, nous avons opté dans un premier temps pour une affichage sur smartphone. Les données vont être envoyées au smartphone à travers un module WIFI connectés au même réseau que le smartphone.  En récapitulant, nous aurons finalement besoin de:&lt;br /&gt;
* 5 accéléromètres adxl335.&lt;br /&gt;
* un arduino Mega&lt;br /&gt;
* un module WIFI &lt;br /&gt;
* des fils pour la liaison.&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement : accéléromètres à sortie analogique. Nous aurons donc besoin de 3 sorties analogiques par capteur (donc 3*5 sorties analogiques)&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: force gravitationnelle selon les trois axes qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre par rapport à l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
&lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification et acquisition de la position idéale à l'aide des accéléromètres placées le long de la colonne vertébrale;&lt;br /&gt;
*notification au patient (à travers le smartphone) lorsqu'une position différente de celle idéale a été détectée.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
==tâches à réaliser==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Avancement !! Commentaires&lt;br /&gt;
|-&lt;br /&gt;
| acquisition des données 10DOF&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| connexion au WIFI (esp9266)&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| connexion à un wifi standard prédéfinit lors de la programmation&lt;br /&gt;
|-&lt;br /&gt;
| pages application smartphone&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
| envois et réception de données sur smartphone&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| terminé et testé &lt;br /&gt;
|-&lt;br /&gt;
| acquisition des données de l'accéléromètre avec l'arduino mini&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: green;&amp;quot;&amp;gt;Terminé&amp;lt;/font&amp;gt;&lt;br /&gt;
| donnée récupérer à partir de 2 accéléromètre mais on peut en ajouter plus&lt;br /&gt;
|-&lt;br /&gt;
| liaison série arduino mini et esp8266&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;testé&amp;lt;/font&amp;gt;&lt;br /&gt;
| Communication réalisé mais quelque amélioration à faire, il faut optimiser le code&lt;br /&gt;
|-&lt;br /&gt;
| mise en commun de la partie wifi et acquisition de données&lt;br /&gt;
| &amp;lt;font style=&amp;quot;color: orange;&amp;quot;&amp;gt;Inachevé&amp;lt;/font&amp;gt;&lt;br /&gt;
| la mise en commun pose quelque problème notamment la réception de donnée non cohérente par le smartphone&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 + Heures supplémentairements !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 2H&lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| documentation&lt;br /&gt;
| 2h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liste du matériel &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
| 6h&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude du module Wi-fi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
| 2H&lt;br /&gt;
| 4H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude, programmation, câblage du 10 DOF &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4H&lt;br /&gt;
| 8H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accéléromètre &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2H&lt;br /&gt;
| étude 3H &lt;br /&gt;
| &lt;br /&gt;
| schématique 2H &lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liaison arduino esp&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 16H&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| étude et programmation arduino mini&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 16H&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| application mobile&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2H&lt;br /&gt;
|4H&lt;br /&gt;
|4H&lt;br /&gt;
|&lt;br /&gt;
|10h&lt;br /&gt;
|10H&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différents choix matériel notamment dans la référence des accéléromètres ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL335. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données vers un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est plus rapide que le module bluetooth. Cependant, ce dernier ne consomme pas beaucoup de charge de la batterie du smartphone mais il fonctionne  essentiellement sur de petites distances et avec des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grandes ainsi que des tailles de données beaucoup plus importantes.&lt;br /&gt;
&lt;br /&gt;
Finalement, nous avons opté pour le module WIFI pour limiter le moins possible l'utilisateur en ce qui concerne la distance entre les appareils et le volume de données transmis.&lt;br /&gt;
&lt;br /&gt;
*Confirmation de la liste de matériel: &lt;br /&gt;
  *accéléromètre ADXL335&lt;br /&gt;
  *Smartphone sous Android&lt;br /&gt;
  *15 longs fils mâle-femelle, mâle-mâle&lt;br /&gt;
  *Arduino pro -mini&lt;br /&gt;
  *Module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnelles avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:cad1_1.PNG| 900px ]]&lt;br /&gt;
[[Fichier:cad1.PNG| 900px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, l’accéléromètre 10 DOF, ainsi que l'arduino MEGA qui sera utilisé pour l’acquisition des données. L'accéléromètre 10DOF incorpore un gyroscope et un magnétomètre. Ceux-ci nous permettront d'avoir une meilleure précision des mesures notamment avec la mesure des orientations (vitesses angulaires).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérées en direct sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes également intéressé au calcule de l'angle à partir de l’accélération. &lt;br /&gt;
Prenons l'exemple de l’accéléromètre penché de la manière suivante.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:exemple5.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Le triangle G,Gx Gz forme un triangle rectangle, dans notre cas nous avons Gx,Gy et Gz qui sont les valeurs du vecteur gravitationnel G sur les trois axes et nous devons déduire 𝝰 (l’angle que fait Gx avec l’axe x), 𝝋 (l’angle que fait Gy avec l’axe y) et ᴪ (l’angle que fait Gz avec l’axe z). La norme de G est&lt;br /&gt;
[[Fichier:Norme2.PNG| 200px ]]&lt;br /&gt;
On récupére ensuite chaque angle de la manière suivante: &lt;br /&gt;
[[Fichier:Calcule_angle.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10DOF que nous testerons la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération de l'angle réalisé par l'accéléromètre.( Dans le code suivant nous avons uniquement l'acquisition des données)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof_code.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendus compte que les calculs ne sont pas réalisés correctement par le MEGA. En effet la mesure de l'angle n'était pas précis car le MEGA n'a pas assez de puissance de calcul pour faire les différentes divisions.  &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 100px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé que le MEGA servira uniquement à récupérer les données et à les envoyer via module WIFI. Ce sera donc à l'application Android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le module WIFI ESP8266 que nous utiliserons, afin de nous faire une idée de son utilisation.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installé les logiciels nécessaires ( Android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes intéressées  au module wifi, en commençant par lire la fiche technique de l'esp 8266, nous avons également cherché les différents types d'exemples . &lt;br /&gt;
&lt;br /&gt;
Des recherches sur le mode de connexion entre le smartphone et le Mega à travers le module WIFI ont également été effectuer dans le but de se faire une idée, nous hésitons sur l'utilisation de Sockets UDP , ou de réaliser une transmission en TCP .&lt;br /&gt;
&lt;br /&gt;
Le programme réalisée lors de la séance précédente a été testé, notamment les tests de récupération des données de l'accéléromètre 10-DOF sur le Mega.&lt;br /&gt;
&lt;br /&gt;
Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 a également été entamé.&lt;br /&gt;
&lt;br /&gt;
Nous avons également rencontré un certain nombre de problème :&lt;br /&gt;
&lt;br /&gt;
Afin se connecter en WIFI à partir de n’importe où, nous avons décidé de se connecter premièrement à un réseau standard (point d'accès fourni par le smartphone dans un premier temps) puis de modifier le réseau sur lequel nous sommes connecté à partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière.&lt;br /&gt;
[[Fichier:connection.PNG| 500px ]]&lt;br /&gt;
&lt;br /&gt;
La possibilité et l'utilité de l'ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête ( gérer les rotations).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En parallèle, nous avons également avancé avec la création d'une application android pour la réception et l'affichage de données.&lt;br /&gt;
Nous avons décidé de:&lt;br /&gt;
* faire une page d'accueil dans laquelle le kinésithérapeute devra appuyer sur un bouton lorsqu'il aura bien positionné le patient pour enregistrer la bonne position.&lt;br /&gt;
* à l'appui du bouton, le smartphone va contacter le module WIFI à travers un message broadcast (en utilisant une communication UDP) dans le réseau. &lt;br /&gt;
* Le MODULE WIFI, qui est déjà en attente d'une trame venant du smartphone, reçoit le message broadcast, extrait l'adresse IP du smartphone, puis, lui envoie des données du capteur.&lt;br /&gt;
* le smartphone, à son tour va utiliser ces données pour calculer les angles d'inclinaison sur les différents axes et les afficher. Notons que les premiers angles calculés sont ceux correspondant à la bonne position. &lt;br /&gt;
* A intervalle régulier, le module ESP va envoyer de nouvelles données que le smartphone va traiter et comparer avec les angles de la bonne position et prévenir le patient si la position a changer.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:transmition.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
* Réception du matériel&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ADXL345.PNG| 100px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par étudier l'accéléromètre reçu, en effet la référence de ce dernier est ADXL345 et est digital à l’inverse de celui choisi qui était analogique. De ce fait, nous avons modifié une partie du cahier des charges.&lt;br /&gt;
&lt;br /&gt;
Les accéléromètres adxl345 sont alimentés en 3.3V et sont digitaux. Par conséquent, nous n'aurons plus besoin de sortie analogique.  &lt;br /&gt;
&lt;br /&gt;
*fonctionnement : accéléromètres digitaux pouvant fonctionner en SPI comme en I2C et supportant 3.3V. Résolution: 10 bits, régler en mode +/-2g. Donc les valeurs de notre registre de données seront dans la plage [-512 ,512]. Mais puisque nous ne mesurons que la force gravitationnelle, nous aurons des valeurs comprises entre [-256,256] qui est la plage correspondant à -/1g. 1g correspond à la valeur de 9.80m/s2.&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: des entiers de -512 à 512 qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre selon l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
L'établissement des activités nécessairement et documentation sur le choix des sockets à utiliser pour l'envoi des données a également été entamé.&lt;br /&gt;
&lt;br /&gt;
Coté Smartphone: &lt;br /&gt;
&lt;br /&gt;
*Créations de la page d'accueil et de la page de visualisation des angles d'inclinaisons&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé l'étude de l'accéléromètre digital, nous devrons nous servir des ports digitaux du MEGA et choisir l’accéléromètre à partir duquel nous récupérons les données grâce à un chip select. Pour cela nous devrons utiliser la bibliothèque SPI.h et brancher le pin CS de l'accéléromètre à des pin digitaux du mega.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mais les pin de l'accéleromètre n'acceptent que des tensions de 3.3V alors que ceux du Mega fournissent des tensions de 5v. Nous aurons donc besoin d'un mécanisme de régulation des tensions en sortie de Mega.&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
Nous avons réalisé une carte électronique grâce au logiciel fritzing pour réaliser l’adaptation de tensions entre l’accéléromètre adxl345 et la carte MEGA. En effet l'accéléromètre supporte des tensions maximales de 3.3V alors que le MEGA donne en sortie 5V.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:carte_elec1.PNG| 400px ]]&lt;br /&gt;
&lt;br /&gt;
Coté Smartphone:&lt;br /&gt;
&lt;br /&gt;
* création de la page d'accueil avec implémentation du code pour la communication UDP entre le smartphone et l'ESP8266.&lt;br /&gt;
* Nous rencontrons des problèmes en ce qui concerne la l'implémentation du programme coté ESP.&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la carte électronique faite la semaine précédente. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:carte_elec2.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Afin de tester la carte, nous avons alimenter les pins d’entrée par des 5v et avons observé la sortie du circuit. Malheureusement, seulement un pin en sortie &lt;br /&gt;
fournissait une tension de 3.3V.&lt;br /&gt;
Elle ne fonctionne pas et nous n'avons pas pu comprendre pourquoi. &lt;br /&gt;
&lt;br /&gt;
Par conséquent, nous avons changé de microcontrôleur. Nous avons reçu un arduino pro mini 3.3V compatible avec nos capteurs ( mais qui ne l'est pas avec le 10DOF ). &lt;br /&gt;
Nous commençons par conséquent à recueillir les données du capteurs. Pour cela, nous avons utilisé une librairie pour les ADXL345.&lt;br /&gt;
La première étape est de sélectionner le chip Select en définissant un ADXL grâce à la fonction suivante:&lt;br /&gt;
[[Fichier:def_adxl.PNG| 200px ]]&lt;br /&gt;
Cette fonction prend en paramètre le pin lié au chip Select de accéléromètre.&lt;br /&gt;
&lt;br /&gt;
Ensuite on récupère les données grâce à la fonction readaccel comme suit:&lt;br /&gt;
[[Fichier:readaccel.PNG| 200px ]]&lt;br /&gt;
La fonction stocke alors les valeurs lues par l'accéléromètre dans x,y et z.&lt;br /&gt;
&lt;br /&gt;
 code :&lt;br /&gt;
 [[Fichier:codemini1.PNG| 400px ]]&lt;br /&gt;
 &lt;br /&gt;
 [[Fichier:codemini2.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
Nous réalisons ensuite le montage suivant de manière à pouvoir lire sur le port série les valeurs .&lt;br /&gt;
&lt;br /&gt;
[[Fichier:montageaccel.PNG| 600px ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Partie smartphone:&lt;br /&gt;
succès de la connexion au wi-fi partagé d'un smartphone. Coté ESP comme coté smartphone.&lt;br /&gt;
&lt;br /&gt;
===Semaine 10===&lt;br /&gt;
&lt;br /&gt;
'''Etude de la partie communication entre l'arduino pro mini et l'ESP8266 pour l'envoie des données du capteur'''&lt;br /&gt;
&lt;br /&gt;
Nous avons implémenté le module Wifi de manière à ce que l’on puisse recevoir les données des accélérations reçus par l’arduino mini.7&lt;br /&gt;
&lt;br /&gt;
Pour cela, nous avons utilisée la bibliothèque SoftwareSerial d’arduino et avons défini deux liaisons série (l'une du côté du mini et l’autre du coté esp).Le mini envois un “a” indiquant à l'esp qu'il commence à envoyer une serie de données.Ensuite on ramène les valeurs de l'accéléromètre sur l'échelle de g (gravitation terrestre ) gracz à un produit en croix . Pour finir, nous envoyons les données grâce à un serial write qui écrit sur les pins de l’esp ( pin 14 RX et 12 TX).&lt;br /&gt;
&lt;br /&gt;
Du côté de l’esp, on définit une liaison du nom de swSer au même baudrate que la précédente (9600). On attend la réception de 72 ( l'équivalent de ‘a’ en integer) indiquant que l’on commence à transmettre des données de l'accéléromètre. Une fois ce nombre reçu on incrémente un compteur à chaque réception d’un chiffre et à partir de la valeur de ce compteur nous plaçons la donnée dans la variable qui la définit ( la première donnée est celle de x1 donc si compteur est à 1 on place la valeur lue par swSer.read dans la variable x1 )&lt;br /&gt;
&lt;br /&gt;
===Fichiers rendus===&lt;br /&gt;
&lt;br /&gt;
rapport de projet : [[Fichier:Rapport_Fahem_Diop.pdf]]&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41913</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41913"/>
				<updated>2017-05-10T01:07:30Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Semaine 9 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Les accéléromètres nous permettent de calculer l'angle d'inclinaison à partir de la force gravitationnelle qu'ils peuvent mesurer selon les trois axes. Lorsque la position idéale du patient sera choisie par le médecin, nous pourrons enregistrer cette position en mémorisant l'inclinaison de chaque accéléromètre pour cette position. Ainsi un changement de position sera identifié par une variation des angles d'inclinaison précédemment pris. Nous allons utilisé les accéléromètres analogiques de type adxl335. Une fois que nous aurons à disposition les valeurs de l'accéléromètre et, par conséquent les angles d'inclinaison, nous aurons besoin d'un moyen d'affichage des ces données. Pour ce faire, nous avons opté dans un premier temps pour une affichage sur smartphone. Les données vont être envoyées au smartphone à travers un module WIFI connectés au même réseau que le smartphone.  En récapitulant, nous aurons finalement besoin de:&lt;br /&gt;
* 5 accéléromètres adxl335.&lt;br /&gt;
* un arduino Mega&lt;br /&gt;
* un module WIFI &lt;br /&gt;
* des fils pour la liaison.&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement : accéléromètres à sortie analogique. Nous aurons donc besoin de 3 sorties analogiques par capteur (donc 3*5 sorties analogiques)&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: force gravitationnelle selon les trois axes qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre par rapport à l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
&lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification et acquisition de la position idéale à l'aide des accéléromètres placées le long de la colonne vertébrale;&lt;br /&gt;
*notification au patient (à travers le smartphone) lorsqu'une position différente de celle idéale a été détectée.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 2H&lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| documentation&lt;br /&gt;
| 2h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liste du matériel &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
| 6h&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude du module Wi-fi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
| 2H&lt;br /&gt;
| 4H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude, programmation, câblage du 10 DOF &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4H&lt;br /&gt;
| 8H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accéléromètre &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2H&lt;br /&gt;
| étude 3H &lt;br /&gt;
| &lt;br /&gt;
| schématique 2H &lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| application mobile&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2H&lt;br /&gt;
|4H&lt;br /&gt;
|4H&lt;br /&gt;
|&lt;br /&gt;
|10h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différents choix matériel notamment dans la référence des accéléromètres ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL335. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données vers un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est plus rapide que le module bluetooth. Cependant, ce dernier ne consomme pas beaucoup de charge de la batterie du smartphone mais il fonctionne  essentiellement sur de petites distances et avec des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grandes ainsi que des tailles de données beaucoup plus importantes.&lt;br /&gt;
&lt;br /&gt;
Finalement, nous avons opté pour le module WIFI pour limiter le moins possible l'utilisateur en ce qui concerne la distance entre les appareils et le volume de données transmis.&lt;br /&gt;
&lt;br /&gt;
*Confirmation de la liste de matériel: &lt;br /&gt;
  *accéléromètre ADXL335&lt;br /&gt;
  *Smartphone sous Android&lt;br /&gt;
  *15 longs fils mâle-femelle, mâle-mâle&lt;br /&gt;
  *Arduino pro -mini&lt;br /&gt;
  *Module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnelles avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:cad1_1.PNG| 900px ]]&lt;br /&gt;
[[Fichier:cad1.PNG| 900px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, l'accéLéromètre 10 DOF, ainsi que l'arduino MEGA qui sera utilisé pour l’acquisition des données. L'accéléromètre 10DOF incorpore un gyroscope et un magnétomètre. Ceux-ci nous permettront d'avoir une meilleure précision des mesures notamment avec la mesure des orientations (vitesses angulaires).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérées en direct sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof.PNG| 500px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10DOF que nous testerons la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération de l'angle réalisé par l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendus compte que les calculs ne sont pas réalisés correctement par le MEGA. En effet la mesure de l'angle n'était pas précis car le MEGA n'a pas assez de puissance de calcul pour faire les différentes divisions.  &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé que le MEGA servira uniquement à récupérer les données et à les envoyer via module WIFI. Ce sera donc à l'application Android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le module WIFI ESP8266 que nous utiliserons, afin de nous faire une idée de son utilisation.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installé les logiciels nécessaires ( Android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes intéressées  au module wifi, en commençant par lire la fiche technique de l'esp 8266, nous avons également cherché les différents types d'exemples . &lt;br /&gt;
&lt;br /&gt;
Des recherches sur le mode de connexion entre le smartphone et le Mega à travers le module WIFI ont également été effectuer dans le but de se faire une idée, nous hésitons sur l'utilisation de Sockets UDP , ou de réaliser une transmission en TCP .&lt;br /&gt;
&lt;br /&gt;
Le programme réalisée lors de la séance précédente a été testé, notamment les tests de récupération des données de l'accéléromètre 10-DOF sur le Mega.&lt;br /&gt;
&lt;br /&gt;
Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 également été entamé.&lt;br /&gt;
&lt;br /&gt;
Nous avons également rencontré un certain nombre de problème :&lt;br /&gt;
&lt;br /&gt;
*Afin se connecter en WIFI à partir de n’importe où, nous avons décidé de se connecter premièrement à un réseau standard (point d'accès fourni par le smartphone dans un premier temps) puis de modifier le réseau sur lequel nous sommes connecté à partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière.&lt;br /&gt;
&lt;br /&gt;
*La possibilité et l'utilité de l'ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête.&lt;br /&gt;
&lt;br /&gt;
En parallèle, nous avons également avancé avec la création d'une application android pour la réception et l'affichage de données.&lt;br /&gt;
Nous avons décidé de:&lt;br /&gt;
* faire une page d'accueil dans laquelle le kinésithérapeute devra appuyer sur un bouton lorsqu'il aura bien positionné le patient pour enregistrer la bonne position.&lt;br /&gt;
* à l'appui du bouton, le smartphone va contacter le module WIFI à travers un message broadcast (en utilisant une communication UDP) dans le réseau. &lt;br /&gt;
* Le MODULE WIFI, qui est déjà en attente d'une trame venant du smartphone, reçoit le message broadcast, extrait l'adresse IP du smartphone, puis, lui envoie des données du capteur.&lt;br /&gt;
* le smartphone, à son tour va utiliser ces données pour calculer les angles d'inclinaison sur les différents axes et les afficher. Notons que les premiers angles calculés sont ceux correspondant à la bonne position. &lt;br /&gt;
* A intervalle régulier, le module ESP va envoyer de nouvelles données que le smartphone va traiter et comparer avec les angles de la bonne position et prévenir le patient si la position a changer.&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
* Réception du matériel&lt;br /&gt;
Nous avons commencé par étudier l'accéléromètre reçu, en effet la référence de ce dernier est ADXL345 et est digital à l’inverse de celui choisi qui était analogique. De ce fait, nous avons modifié une partie du cahier des charges.&lt;br /&gt;
&lt;br /&gt;
Les accéléromètres adxl345 sont alimentés en 3.3V et sont digitaux. Par conséquent, nous n'aurons plus besoin de sortie analogique. No  &lt;br /&gt;
&lt;br /&gt;
L'établissement des activités nécessairement et documentation sur le choix des sockets à utiliser pour l'envoi des données a également été entamé.&lt;br /&gt;
&lt;br /&gt;
*fonctionnement : accéléromètres digitaux pouvant fonctionner en SPI comme en I2C et supportant 3.3V. Résolution: 10 bits, régler en mode +/-2g. Donc les valeurs de notre registre de données seront dans la plage [-512 ,512]. Mais puisque nous ne mesurons que la force gravitationnelle, nous aurons des valeurs comprises entre [-256,256] qui est la plage correspondant à -/1g. 1g correspond à la valeur de 9.80m/s2.&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: des entiers de -512 à 512 qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre selon l'axe x, y et z&lt;br /&gt;
 &lt;br /&gt;
Coté Smartphone: &lt;br /&gt;
&lt;br /&gt;
*Créations de la page d'accueil et de la page de visualisation des angles d'inclinaisons&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé l'étude de l'accéléromètre digital, nous devrons nous servir des ports digitales du MEGA et choisir l’accéléromètre à partir duquel nous récupérons les données grâce à un chip select. Pour cela nous devrons utiliser la bibliothèque SPI.h et brancher le CS de l'accéléromètre à des digital pin du mega.&lt;br /&gt;
&lt;br /&gt;
Le deuxième problème survenue est dans la tension limite de l'accéléromètre, en effet ce dernier ne peut supporter que du 3.3V, hors la carte MEGA, elle, délivre du 5V.&lt;br /&gt;
&lt;br /&gt;
De plus le signal sortant de l'accéléromètre est de l'ordre du 3.3V ce qui pourrais être problématique au niveau de la sensibilité du MEGA qui pourrais alors détecter des données biaisées. Nous serons donc amené à réaliser une carte pour faire l'adaptation d'impédance entre  la carte MEGA et l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
Nous avons réalisé une carte électronique grâce au logiciel fritzing pour réaliser l’adaptation de tensions entre l’accéléromètre adxl345 et la carte MEGA. En effet l'accéléromètre supporte des tensions maximales de 3.3V alors que le MEGA donne en sortie 5V.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Coté Smartphone:&lt;br /&gt;
&lt;br /&gt;
* création de la page d'accueil avec implémentation du code pour la communication UDP entre le smartphone et l'ESP8266.&lt;br /&gt;
* Nous rencontrons des problèmes en ce qui concerne la l'implémentation du programme coté ESP.&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la carte électronique faite la semaine précédente. Elle ne fonctionne pas et nous n'avons pas pu comprendre pourquoi. Par conséquent, nous avons changé de microcontrolleur. Nous avons reçu un arduino pro mini 3.3V compatible avec nos capteurs. Nous commençons par conséquent à recueillir les données du capteurs. &lt;br /&gt;
&lt;br /&gt;
Etude de la partie communication entre l'arduino pro mini et l'ESP8266 pour l'envoie des données du capteur.&lt;br /&gt;
&lt;br /&gt;
Partie smartphone:&lt;br /&gt;
succès de la connexion au wi-fi partagé d'un smartphone. Coté ESP comme coté smartphone.&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41912</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41912"/>
				<updated>2017-05-10T01:05:13Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Semaine 6 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Les accéléromètres nous permettent de calculer l'angle d'inclinaison à partir de la force gravitationnelle qu'ils peuvent mesurer selon les trois axes. Lorsque la position idéale du patient sera choisie par le médecin, nous pourrons enregistrer cette position en mémorisant l'inclinaison de chaque accéléromètre pour cette position. Ainsi un changement de position sera identifié par une variation des angles d'inclinaison précédemment pris. Nous allons utilisé les accéléromètres analogiques de type adxl335. Une fois que nous aurons à disposition les valeurs de l'accéléromètre et, par conséquent les angles d'inclinaison, nous aurons besoin d'un moyen d'affichage des ces données. Pour ce faire, nous avons opté dans un premier temps pour une affichage sur smartphone. Les données vont être envoyées au smartphone à travers un module WIFI connectés au même réseau que le smartphone.  En récapitulant, nous aurons finalement besoin de:&lt;br /&gt;
* 5 accéléromètres adxl335.&lt;br /&gt;
* un arduino Mega&lt;br /&gt;
* un module WIFI &lt;br /&gt;
* des fils pour la liaison.&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement : accéléromètres à sortie analogique. Nous aurons donc besoin de 3 sorties analogiques par capteur (donc 3*5 sorties analogiques)&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: force gravitationnelle selon les trois axes qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre par rapport à l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
&lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification et acquisition de la position idéale à l'aide des accéléromètres placées le long de la colonne vertébrale;&lt;br /&gt;
*notification au patient (à travers le smartphone) lorsqu'une position différente de celle idéale a été détectée.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 2H&lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| documentation&lt;br /&gt;
| 2h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liste du matériel &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
| 6h&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude du module Wi-fi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
| 2H&lt;br /&gt;
| 4H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude, programmation, câblage du 10 DOF &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4H&lt;br /&gt;
| 8H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accéléromètre &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2H&lt;br /&gt;
| étude 3H &lt;br /&gt;
| &lt;br /&gt;
| schématique 2H &lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| application mobile&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2H&lt;br /&gt;
|4H&lt;br /&gt;
|4H&lt;br /&gt;
|&lt;br /&gt;
|10h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différents choix matériel notamment dans la référence des accéléromètres ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL335. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données vers un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est plus rapide que le module bluetooth. Cependant, ce dernier ne consomme pas beaucoup de charge de la batterie du smartphone mais il fonctionne  essentiellement sur de petites distances et avec des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grandes ainsi que des tailles de données beaucoup plus importantes.&lt;br /&gt;
&lt;br /&gt;
Finalement, nous avons opté pour le module WIFI pour limiter le moins possible l'utilisateur en ce qui concerne la distance entre les appareils et le volume de données transmis.&lt;br /&gt;
&lt;br /&gt;
*Confirmation de la liste de matériel: &lt;br /&gt;
  *accéléromètre ADXL335&lt;br /&gt;
  *Smartphone sous Android&lt;br /&gt;
  *15 longs fils mâle-femelle, mâle-mâle&lt;br /&gt;
  *Arduino pro -mini&lt;br /&gt;
  *Module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnelles avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:cad1_1.PNG| 900px ]]&lt;br /&gt;
[[Fichier:cad1.PNG| 900px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, l'accéLéromètre 10 DOF, ainsi que l'arduino MEGA qui sera utilisé pour l’acquisition des données. L'accéléromètre 10DOF incorpore un gyroscope et un magnétomètre. Ceux-ci nous permettront d'avoir une meilleure précision des mesures notamment avec la mesure des orientations (vitesses angulaires).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérées en direct sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof.PNG| 500px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10DOF que nous testerons la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération de l'angle réalisé par l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendus compte que les calculs ne sont pas réalisés correctement par le MEGA. En effet la mesure de l'angle n'était pas précis car le MEGA n'a pas assez de puissance de calcul pour faire les différentes divisions.  &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé que le MEGA servira uniquement à récupérer les données et à les envoyer via module WIFI. Ce sera donc à l'application Android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le module WIFI ESP8266 que nous utiliserons, afin de nous faire une idée de son utilisation.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installé les logiciels nécessaires ( Android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes intéressées  au module wifi, en commençant par lire la fiche technique de l'esp 8266, nous avons également cherché les différents types d'exemples . &lt;br /&gt;
&lt;br /&gt;
Des recherches sur le mode de connexion entre le smartphone et le Mega à travers le module WIFI ont également été effectuer dans le but de se faire une idée, nous hésitons sur l'utilisation de Sockets UDP , ou de réaliser une transmission en TCP .&lt;br /&gt;
&lt;br /&gt;
Le programme réalisée lors de la séance précédente a été testé, notamment les tests de récupération des données de l'accéléromètre 10-DOF sur le Mega.&lt;br /&gt;
&lt;br /&gt;
Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 également été entamé.&lt;br /&gt;
&lt;br /&gt;
Nous avons également rencontré un certain nombre de problème :&lt;br /&gt;
&lt;br /&gt;
*Afin se connecter en WIFI à partir de n’importe où, nous avons décidé de se connecter premièrement à un réseau standard (point d'accès fourni par le smartphone dans un premier temps) puis de modifier le réseau sur lequel nous sommes connecté à partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière.&lt;br /&gt;
&lt;br /&gt;
*La possibilité et l'utilité de l'ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête.&lt;br /&gt;
&lt;br /&gt;
En parallèle, nous avons également avancé avec la création d'une application android pour la réception et l'affichage de données.&lt;br /&gt;
Nous avons décidé de:&lt;br /&gt;
* faire une page d'accueil dans laquelle le kinésithérapeute devra appuyer sur un bouton lorsqu'il aura bien positionné le patient pour enregistrer la bonne position.&lt;br /&gt;
* à l'appui du bouton, le smartphone va contacter le module WIFI à travers un message broadcast (en utilisant une communication UDP) dans le réseau. &lt;br /&gt;
* Le MODULE WIFI, qui est déjà en attente d'une trame venant du smartphone, reçoit le message broadcast, extrait l'adresse IP du smartphone, puis, lui envoie des données du capteur.&lt;br /&gt;
* le smartphone, à son tour va utiliser ces données pour calculer les angles d'inclinaison sur les différents axes et les afficher. Notons que les premiers angles calculés sont ceux correspondant à la bonne position. &lt;br /&gt;
* A intervalle régulier, le module ESP va envoyer de nouvelles données que le smartphone va traiter et comparer avec les angles de la bonne position et prévenir le patient si la position a changer.&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
* Réception du matériel&lt;br /&gt;
Nous avons commencé par étudier l'accéléromètre reçu, en effet la référence de ce dernier est ADXL345 et est digital à l’inverse de celui choisi qui était analogique. De ce fait, nous avons modifié une partie du cahier des charges.&lt;br /&gt;
&lt;br /&gt;
Les accéléromètres adxl345 sont alimentés en 3.3V et sont digitaux. Par conséquent, nous n'aurons plus besoin de sortie analogique. No  &lt;br /&gt;
&lt;br /&gt;
L'établissement des activités nécessairement et documentation sur le choix des sockets à utiliser pour l'envoi des données a également été entamé.&lt;br /&gt;
&lt;br /&gt;
*fonctionnement : accéléromètres digitaux pouvant fonctionner en SPI comme en I2C et supportant 3.3V. Résolution: 10 bits, régler en mode +/-2g. Donc les valeurs de notre registre de données seront dans la plage [-512 ,512]. Mais puisque nous ne mesurons que la force gravitationnelle, nous aurons des valeurs comprises entre [-256,256] qui est la plage correspondant à -/1g. 1g correspond à la valeur de 9.80m/s2.&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: des entiers de -512 à 512 qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre selon l'axe x, y et z&lt;br /&gt;
 &lt;br /&gt;
Coté Smartphone: &lt;br /&gt;
&lt;br /&gt;
*Créations de la page d'accueil et de la page de visualisation des angles d'inclinaisons&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé l'étude de l'accéléromètre digital, nous devrons nous servir des ports digitales du MEGA et choisir l’accéléromètre à partir duquel nous récupérons les données grâce à un chip select. Pour cela nous devrons utiliser la bibliothèque SPI.h et brancher le CS de l'accéléromètre à des digital pin du mega.&lt;br /&gt;
&lt;br /&gt;
Le deuxième problème survenue est dans la tension limite de l'accéléromètre, en effet ce dernier ne peut supporter que du 3.3V, hors la carte MEGA, elle, délivre du 5V.&lt;br /&gt;
&lt;br /&gt;
De plus le signal sortant de l'accéléromètre est de l'ordre du 3.3V ce qui pourrais être problématique au niveau de la sensibilité du MEGA qui pourrais alors détecter des données biaisées. Nous serons donc amené à réaliser une carte pour faire l'adaptation d'impédance entre  la carte MEGA et l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
Nous avons réalisé une carte électronique grâce au logiciel fritzing pour réaliser l’adaptation de tensions entre l’accéléromètre adxl345 et la carte MEGA. En effet l'accéléromètre supporte des tensions maximales de 3.3V alors que le MEGA donne en sortie 5V.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Coté Smartphone:&lt;br /&gt;
&lt;br /&gt;
* création de la page d'accueil avec implémentation du code pour la communication UDP entre le smartphone et l'ESP8266.&lt;br /&gt;
* Nous rencontrons des problèmes en ce qui concerne la l'implémentation du programme coté ESP.&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la carte électronique faite la semaine précédente. Elle ne fonctionne pas et nous n'avons pas pu comprendre pourquoi. Par conséquent, nous avons changé de microcontrolleur. Nous avons reçu un arduino pro mini 3.3V compatible avec nos capteurs. Nous commençons par conséquent à recueillir les données du capteurs. &lt;br /&gt;
&lt;br /&gt;
Partie smartphone:&lt;br /&gt;
succès de la connexion au wi-fi partagé d'un smartphone. Coté ESP comme coté smartphone.&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41911</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41911"/>
				<updated>2017-05-10T01:01:09Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Semaine 9 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Les accéléromètres nous permettent de calculer l'angle d'inclinaison à partir de la force gravitationnelle qu'ils peuvent mesurer selon les trois axes. Lorsque la position idéale du patient sera choisie par le médecin, nous pourrons enregistrer cette position en mémorisant l'inclinaison de chaque accéléromètre pour cette position. Ainsi un changement de position sera identifié par une variation des angles d'inclinaison précédemment pris. Nous allons utilisé les accéléromètres analogiques de type adxl335. Une fois que nous aurons à disposition les valeurs de l'accéléromètre et, par conséquent les angles d'inclinaison, nous aurons besoin d'un moyen d'affichage des ces données. Pour ce faire, nous avons opté dans un premier temps pour une affichage sur smartphone. Les données vont être envoyées au smartphone à travers un module WIFI connectés au même réseau que le smartphone.  En récapitulant, nous aurons finalement besoin de:&lt;br /&gt;
* 5 accéléromètres adxl335.&lt;br /&gt;
* un arduino Mega&lt;br /&gt;
* un module WIFI &lt;br /&gt;
* des fils pour la liaison.&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement : accéléromètres à sortie analogique. Nous aurons donc besoin de 3 sorties analogiques par capteur (donc 3*5 sorties analogiques)&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: force gravitationnelle selon les trois axes qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre par rapport à l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
&lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification et acquisition de la position idéale à l'aide des accéléromètres placées le long de la colonne vertébrale;&lt;br /&gt;
*notification au patient (à travers le smartphone) lorsqu'une position différente de celle idéale a été détectée.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 2H&lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| documentation&lt;br /&gt;
| 2h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liste du matériel &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
| 6h&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude du module Wi-fi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
| 2H&lt;br /&gt;
| 4H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude, programmation, câblage du 10 DOF &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4H&lt;br /&gt;
| 8H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accéléromètre &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2H&lt;br /&gt;
| étude 3H &lt;br /&gt;
| &lt;br /&gt;
| schématique 2H &lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| application mobile&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2H&lt;br /&gt;
|4H&lt;br /&gt;
|4H&lt;br /&gt;
|&lt;br /&gt;
|10h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différents choix matériel notamment dans la référence des accéléromètres ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL335. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données vers un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est plus rapide que le module bluetooth. Cependant, ce dernier ne consomme pas beaucoup de charge de la batterie du smartphone mais il fonctionne  essentiellement sur de petites distances et avec des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grandes ainsi que des tailles de données beaucoup plus importantes.&lt;br /&gt;
&lt;br /&gt;
Finalement, nous avons opté pour le module WIFI pour limiter le moins possible l'utilisateur en ce qui concerne la distance entre les appareils et le volume de données transmis.&lt;br /&gt;
&lt;br /&gt;
*Confirmation de la liste de matériel: &lt;br /&gt;
  *accéléromètre ADXL335&lt;br /&gt;
  *Smartphone sous Android&lt;br /&gt;
  *15 longs fils mâle-femelle, mâle-mâle&lt;br /&gt;
  *Arduino pro -mini&lt;br /&gt;
  *Module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnelles avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:cad1_1.PNG| 900px ]]&lt;br /&gt;
[[Fichier:cad1.PNG| 900px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, l'accéLéromètre 10 DOF, ainsi que l'arduino MEGA qui sera utilisé pour l’acquisition des données. L'accéléromètre 10DOF incorpore un gyroscope et un magnétomètre. Ceux-ci nous permettront d'avoir une meilleure précision des mesures notamment avec la mesure des orientations (vitesses angulaires).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérées en direct sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof.PNG| 500px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10DOF que nous testerons la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération de l'angle réalisé par l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendus compte que les calculs ne sont pas réalisés correctement par le MEGA. En effet la mesure de l'angle n'était pas précis car le MEGA n'a pas assez de puissance de calcul pour faire les différentes divisions.  &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé que le MEGA servira uniquement à récupérer les données et à les envoyer via module WIFI. Ce sera donc à l'application Android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le module WIFI ESP8266 que nous utiliserons, afin de nous faire une idée de son utilisation.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installé les logiciels nécessaires ( Android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes intéressées  au module wifi, en commençant par lire la fiche technique de l'esp 8266, nous avons également cherché les différents types d'exemples . &lt;br /&gt;
&lt;br /&gt;
Des recherches sur le mode de connexion entre le smartphone et le Mega à travers le module WIFI ont également été effectuer dans le but de se faire une idée, nous hésitons sur l'utilisation de Sockets UDP , ou de réaliser une transmission en TCP .&lt;br /&gt;
&lt;br /&gt;
Le programme réalisée lors de la séance précédente a été testé, notamment les tests de récupération des données de l'accéléromètre 10-DOF sur le Mega.&lt;br /&gt;
&lt;br /&gt;
Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 également été entamé.&lt;br /&gt;
&lt;br /&gt;
Nous avons également rencontré un certain nombre de problème :&lt;br /&gt;
&lt;br /&gt;
*Afin se connecter en WIFI à partir de n’importe où, nous avons décidé de se connecter premièrement à un réseau standard (point d'accès fourni par le smartphone dans un premier temps) puis de modifier le réseau sur lequel nous sommes connecté à partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière.&lt;br /&gt;
&lt;br /&gt;
*La possibilité et l'utilité de l'ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête.&lt;br /&gt;
&lt;br /&gt;
En parallèle, nous avons également avancé avec la création d'une application android pour la réception et l'affichage de données.&lt;br /&gt;
Nous avons décidé de:&lt;br /&gt;
* faire une page d'accueil dans laquelle le kinésithérapeute devra appuyer sur un bouton lorsqu'il aura bien positionné le patient pour enregistrer la bonne position.&lt;br /&gt;
* à l'appui du bouton, le smartphone va contacter le module WIFI à travers un message broadcast (en utilisant une communication UDP) dans le réseau. &lt;br /&gt;
* Le MODULE WIFI, qui est déjà en attente d'une trame venant du smartphone, reçoit le message broadcast, extrait l'adresse IP du smartphone, puis, lui envoie des données du capteur.&lt;br /&gt;
* le smartphone, à son tour va utiliser ces données pour calculer les angles d'inclinaison sur les différents axes et les afficher. Notons que les premiers angles calculés sont ceux correspondant à la bonne position. &lt;br /&gt;
* A intervalle régulier, le module ESP va envoyer de nouvelles données que le smartphone va traiter et comparer avec les angles de la bonne position et prévenir le patient si la position a changer.&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
* Réception du matériel&lt;br /&gt;
Nous avons commencé par étudier l'accéléromètre reçu, en effet la référence de ce dernier est ADXL345 et est digital à l’inverse de celui choisi qui était analogique. De ce fait, nous avons modifié une partie du cahier des charges.&lt;br /&gt;
&lt;br /&gt;
Les accéléromètres adxl345 sont alimentés en 3.3V et sont digitaux. Par conséquent, nous n'aurons plus besoin de sortie analogique. No  &lt;br /&gt;
&lt;br /&gt;
L'établissement des activités nécessairement et documentation sur le choix des sockets à utiliser pour l'envoi des données a également été entamé.&lt;br /&gt;
&lt;br /&gt;
*fonctionnement : accéléromètres digitaux pouvant fonctionner en SPI comme en I2C et supportant 3.3V. Résolution: 10 bits, régler en mode +/-2g. Donc les valeurs de notre registre de données seront dans la plage [-512 ,512]. Mais puisque nous ne mesurons que la force gravitationnelle, nous aurons des valeurs comprises entre [-256,256] qui est la plage correspondant à -/1g. 1g correspond à la valeur de 9.80m/s2.&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: des entiers de -512 à 512 qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre selon l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé l'étude de l'accéléromètre digital, nous devrons nous servir des ports digitales du MEGA et choisir l’accéléromètre à partir duquel nous récupérons les données grâce à un chip select. Pour cela nous devrons utiliser la bibliothèque SPI.h et brancher le CS de l'accéléromètre à des digital pin du mega.&lt;br /&gt;
&lt;br /&gt;
Le deuxième problème survenue est dans la tension limite de l'accéléromètre, en effet ce dernier ne peut supporter que du 3.3V, hors la carte MEGA, elle, délivre du 5V.&lt;br /&gt;
&lt;br /&gt;
De plus le signal sortant de l'accéléromètre est de l'ordre du 3.3V ce qui pourrais être problématique au niveau de la sensibilité du MEGA qui pourrais alors détecter des données biaisées. Nous serons donc amené à réaliser une carte pour faire l'adaptation d'impédance entre  la carte MEGA et l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
Nous avons réalisé une carte électronique grâce au logiciel fritzing pour réaliser l’adaptation de tensions entre l’accéléromètre adxl345 et la carte MEGA. En effet l'accéléromètre supporte des tensions maximales de 3.3V alors que le MEGA donne en sortie 5V.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Coté Smartphone:&lt;br /&gt;
&lt;br /&gt;
* création de la page d'accueil avec implémentation du code pour la communication UDP entre le smartphone et l'ESP8266.&lt;br /&gt;
* Nous rencontrons des problèmes en ce qui concerne la l'implémentation du programme coté ESP.&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la carte électronique faite la semaine précédente. Elle ne fonctionne pas et nous n'avons pas pu comprendre pourquoi. Par conséquent, nous avons changé de microcontrolleur. Nous avons reçu un arduino pro mini 3.3V compatible avec nos capteurs. Nous commençons par conséquent à recueillir les données du capteurs. &lt;br /&gt;
&lt;br /&gt;
Partie smartphone:&lt;br /&gt;
succès de la connexion au wi-fi partagé d'un smartphone. Coté ESP comme coté smartphone.&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41910</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41910"/>
				<updated>2017-05-10T00:56:00Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Semaine 8 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Les accéléromètres nous permettent de calculer l'angle d'inclinaison à partir de la force gravitationnelle qu'ils peuvent mesurer selon les trois axes. Lorsque la position idéale du patient sera choisie par le médecin, nous pourrons enregistrer cette position en mémorisant l'inclinaison de chaque accéléromètre pour cette position. Ainsi un changement de position sera identifié par une variation des angles d'inclinaison précédemment pris. Nous allons utilisé les accéléromètres analogiques de type adxl335. Une fois que nous aurons à disposition les valeurs de l'accéléromètre et, par conséquent les angles d'inclinaison, nous aurons besoin d'un moyen d'affichage des ces données. Pour ce faire, nous avons opté dans un premier temps pour une affichage sur smartphone. Les données vont être envoyées au smartphone à travers un module WIFI connectés au même réseau que le smartphone.  En récapitulant, nous aurons finalement besoin de:&lt;br /&gt;
* 5 accéléromètres adxl335.&lt;br /&gt;
* un arduino Mega&lt;br /&gt;
* un module WIFI &lt;br /&gt;
* des fils pour la liaison.&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement : accéléromètres à sortie analogique. Nous aurons donc besoin de 3 sorties analogiques par capteur (donc 3*5 sorties analogiques)&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: force gravitationnelle selon les trois axes qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre par rapport à l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
&lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification et acquisition de la position idéale à l'aide des accéléromètres placées le long de la colonne vertébrale;&lt;br /&gt;
*notification au patient (à travers le smartphone) lorsqu'une position différente de celle idéale a été détectée.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 2H&lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| documentation&lt;br /&gt;
| 2h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liste du matériel &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
| 6h&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude du module Wi-fi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
| 2H&lt;br /&gt;
| 4H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude, programmation, câblage du 10 DOF &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4H&lt;br /&gt;
| 8H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accéléromètre &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2H&lt;br /&gt;
| étude 3H &lt;br /&gt;
| &lt;br /&gt;
| schématique 2H &lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| application mobile&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2H&lt;br /&gt;
|4H&lt;br /&gt;
|4H&lt;br /&gt;
|&lt;br /&gt;
|10h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différents choix matériel notamment dans la référence des accéléromètres ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL335. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données vers un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est plus rapide que le module bluetooth. Cependant, ce dernier ne consomme pas beaucoup de charge de la batterie du smartphone mais il fonctionne  essentiellement sur de petites distances et avec des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grandes ainsi que des tailles de données beaucoup plus importantes.&lt;br /&gt;
&lt;br /&gt;
Finalement, nous avons opté pour le module WIFI pour limiter le moins possible l'utilisateur en ce qui concerne la distance entre les appareils et le volume de données transmis.&lt;br /&gt;
&lt;br /&gt;
*Confirmation de la liste de matériel: &lt;br /&gt;
  *accéléromètre ADXL335&lt;br /&gt;
  *Smartphone sous Android&lt;br /&gt;
  *15 longs fils mâle-femelle, mâle-mâle&lt;br /&gt;
  *Arduino pro -mini&lt;br /&gt;
  *Module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnelles avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:cad1_1.PNG| 900px ]]&lt;br /&gt;
[[Fichier:cad1.PNG| 900px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, l'accéLéromètre 10 DOF, ainsi que l'arduino MEGA qui sera utilisé pour l’acquisition des données. L'accéléromètre 10DOF incorpore un gyroscope et un magnétomètre. Ceux-ci nous permettront d'avoir une meilleure précision des mesures notamment avec la mesure des orientations (vitesses angulaires).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérées en direct sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof.PNG| 500px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10DOF que nous testerons la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération de l'angle réalisé par l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendus compte que les calculs ne sont pas réalisés correctement par le MEGA. En effet la mesure de l'angle n'était pas précis car le MEGA n'a pas assez de puissance de calcul pour faire les différentes divisions.  &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé que le MEGA servira uniquement à récupérer les données et à les envoyer via module WIFI. Ce sera donc à l'application Android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le module WIFI ESP8266 que nous utiliserons, afin de nous faire une idée de son utilisation.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installé les logiciels nécessaires ( Android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes intéressées  au module wifi, en commençant par lire la fiche technique de l'esp 8266, nous avons également cherché les différents types d'exemples . &lt;br /&gt;
&lt;br /&gt;
Des recherches sur le mode de connexion entre le smartphone et le Mega à travers le module WIFI ont également été effectuer dans le but de se faire une idée, nous hésitons sur l'utilisation de Sockets UDP , ou de réaliser une transmission en TCP .&lt;br /&gt;
&lt;br /&gt;
Le programme réalisée lors de la séance précédente a été testé, notamment les tests de récupération des données de l'accéléromètre 10-DOF sur le Mega.&lt;br /&gt;
&lt;br /&gt;
Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 également été entamé.&lt;br /&gt;
&lt;br /&gt;
Nous avons également rencontré un certain nombre de problème :&lt;br /&gt;
&lt;br /&gt;
*Afin se connecter en WIFI à partir de n’importe où, nous avons décidé de se connecter premièrement à un réseau standard (point d'accès fourni par le smartphone dans un premier temps) puis de modifier le réseau sur lequel nous sommes connecté à partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière.&lt;br /&gt;
&lt;br /&gt;
*La possibilité et l'utilité de l'ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête.&lt;br /&gt;
&lt;br /&gt;
En parallèle, nous avons également avancé avec la création d'une application android pour la réception et l'affichage de données.&lt;br /&gt;
Nous avons décidé de:&lt;br /&gt;
* faire une page d'accueil dans laquelle le kinésithérapeute devra appuyer sur un bouton lorsqu'il aura bien positionné le patient pour enregistrer la bonne position.&lt;br /&gt;
* à l'appui du bouton, le smartphone va contacter le module WIFI à travers un message broadcast (en utilisant une communication UDP) dans le réseau. &lt;br /&gt;
* Le MODULE WIFI, qui est déjà en attente d'une trame venant du smartphone, reçoit le message broadcast, extrait l'adresse IP du smartphone, puis, lui envoie des données du capteur.&lt;br /&gt;
* le smartphone, à son tour va utiliser ces données pour calculer les angles d'inclinaison sur les différents axes et les afficher. Notons que les premiers angles calculés sont ceux correspondant à la bonne position. &lt;br /&gt;
* A intervalle régulier, le module ESP va envoyer de nouvelles données que le smartphone va traiter et comparer avec les angles de la bonne position et prévenir le patient si la position a changer.&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
* Réception du matériel&lt;br /&gt;
Nous avons commencé par étudier l'accéléromètre reçu, en effet la référence de ce dernier est ADXL345 et est digital à l’inverse de celui choisi qui était analogique. De ce fait, nous avons modifié une partie du cahier des charges.&lt;br /&gt;
&lt;br /&gt;
Les accéléromètres adxl345 sont alimentés en 3.3V et sont digitaux. Par conséquent, nous n'aurons plus besoin de sortie analogique. No  &lt;br /&gt;
&lt;br /&gt;
L'établissement des activités nécessairement et documentation sur le choix des sockets à utiliser pour l'envoi des données a également été entamé.&lt;br /&gt;
&lt;br /&gt;
*fonctionnement : accéléromètres digitaux pouvant fonctionner en SPI comme en I2C et supportant 3.3V. Résolution: 10 bits, régler en mode +/-2g. Donc les valeurs de notre registre de données seront dans la plage [-512 ,512]. Mais puisque nous ne mesurons que la force gravitationnelle, nous aurons des valeurs comprises entre [-256,256] qui est la plage correspondant à -/1g. 1g correspond à la valeur de 9.80m/s2.&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: des entiers de -512 à 512 qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre selon l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé l'étude de l'accéléromètre digital, nous devrons nous servir des ports digitales du MEGA et choisir l’accéléromètre à partir duquel nous récupérons les données grâce à un chip select. Pour cela nous devrons utiliser la bibliothèque SPI.h et brancher le CS de l'accéléromètre à des digital pin du mega.&lt;br /&gt;
&lt;br /&gt;
Le deuxième problème survenue est dans la tension limite de l'accéléromètre, en effet ce dernier ne peut supporter que du 3.3V, hors la carte MEGA, elle, délivre du 5V.&lt;br /&gt;
&lt;br /&gt;
De plus le signal sortant de l'accéléromètre est de l'ordre du 3.3V ce qui pourrais être problématique au niveau de la sensibilité du MEGA qui pourrais alors détecter des données biaisées. Nous serons donc amené à réaliser une carte pour faire l'adaptation d'impédance entre  la carte MEGA et l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
Nous avons réalisé une carte électronique grâce au logiciel fritzing pour réaliser l’adaptation de tensions entre l’accéléromètre adxl345 et la carte MEGA. En effet l'accéléromètre supporte des tensions maximales de 3.3V alors que le MEGA donne en sortie 5V.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Coté Smartphone:&lt;br /&gt;
&lt;br /&gt;
* création de la page d'accueil avec implémentation du code pour la communication UDP entre le smartphone et l'ESP8266.&lt;br /&gt;
* Nous rencontrons des problèmes en ce qui concerne la l'implémentation du programme coté ESP.&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
succès de la connexion au wi-fi partagé d'un smartphone.&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41909</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41909"/>
				<updated>2017-05-10T00:53:18Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Semaine 8 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Les accéléromètres nous permettent de calculer l'angle d'inclinaison à partir de la force gravitationnelle qu'ils peuvent mesurer selon les trois axes. Lorsque la position idéale du patient sera choisie par le médecin, nous pourrons enregistrer cette position en mémorisant l'inclinaison de chaque accéléromètre pour cette position. Ainsi un changement de position sera identifié par une variation des angles d'inclinaison précédemment pris. Nous allons utilisé les accéléromètres analogiques de type adxl335. Une fois que nous aurons à disposition les valeurs de l'accéléromètre et, par conséquent les angles d'inclinaison, nous aurons besoin d'un moyen d'affichage des ces données. Pour ce faire, nous avons opté dans un premier temps pour une affichage sur smartphone. Les données vont être envoyées au smartphone à travers un module WIFI connectés au même réseau que le smartphone.  En récapitulant, nous aurons finalement besoin de:&lt;br /&gt;
* 5 accéléromètres adxl335.&lt;br /&gt;
* un arduino Mega&lt;br /&gt;
* un module WIFI &lt;br /&gt;
* des fils pour la liaison.&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement : accéléromètres à sortie analogique. Nous aurons donc besoin de 3 sorties analogiques par capteur (donc 3*5 sorties analogiques)&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: force gravitationnelle selon les trois axes qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre par rapport à l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
&lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification et acquisition de la position idéale à l'aide des accéléromètres placées le long de la colonne vertébrale;&lt;br /&gt;
*notification au patient (à travers le smartphone) lorsqu'une position différente de celle idéale a été détectée.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 2H&lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| documentation&lt;br /&gt;
| 2h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liste du matériel &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
| 6h&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude du module Wi-fi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
| 2H&lt;br /&gt;
| 4H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude, programmation, câblage du 10 DOF &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4H&lt;br /&gt;
| 8H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accéléromètre &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2H&lt;br /&gt;
| étude 3H &lt;br /&gt;
| &lt;br /&gt;
| schématique 2H &lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| application mobile&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2H&lt;br /&gt;
|4H&lt;br /&gt;
|4H&lt;br /&gt;
|&lt;br /&gt;
|10h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différents choix matériel notamment dans la référence des accéléromètres ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL335. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données vers un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est plus rapide que le module bluetooth. Cependant, ce dernier ne consomme pas beaucoup de charge de la batterie du smartphone mais il fonctionne  essentiellement sur de petites distances et avec des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grandes ainsi que des tailles de données beaucoup plus importantes.&lt;br /&gt;
&lt;br /&gt;
Finalement, nous avons opté pour le module WIFI pour limiter le moins possible l'utilisateur en ce qui concerne la distance entre les appareils et le volume de données transmis.&lt;br /&gt;
&lt;br /&gt;
*Confirmation de la liste de matériel: &lt;br /&gt;
  *accéléromètre ADXL335&lt;br /&gt;
  *Smartphone sous Android&lt;br /&gt;
  *15 longs fils mâle-femelle, mâle-mâle&lt;br /&gt;
  *Arduino pro -mini&lt;br /&gt;
  *Module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnelles avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:cad1_1.PNG| 900px ]]&lt;br /&gt;
[[Fichier:cad1.PNG| 900px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, l'accéLéromètre 10 DOF, ainsi que l'arduino MEGA qui sera utilisé pour l’acquisition des données. L'accéléromètre 10DOF incorpore un gyroscope et un magnétomètre. Ceux-ci nous permettront d'avoir une meilleure précision des mesures notamment avec la mesure des orientations (vitesses angulaires).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérées en direct sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof.PNG| 500px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10DOF que nous testerons la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération de l'angle réalisé par l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendus compte que les calculs ne sont pas réalisés correctement par le MEGA. En effet la mesure de l'angle n'était pas précis car le MEGA n'a pas assez de puissance de calcul pour faire les différentes divisions.  &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé que le MEGA servira uniquement à récupérer les données et à les envoyer via module WIFI. Ce sera donc à l'application Android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le module WIFI ESP8266 que nous utiliserons, afin de nous faire une idée de son utilisation.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installé les logiciels nécessaires ( Android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes intéressées  au module wifi, en commençant par lire la fiche technique de l'esp 8266, nous avons également cherché les différents types d'exemples . &lt;br /&gt;
&lt;br /&gt;
Des recherches sur le mode de connexion entre le smartphone et le Mega à travers le module WIFI ont également été effectuer dans le but de se faire une idée, nous hésitons sur l'utilisation de Sockets UDP , ou de réaliser une transmission en TCP .&lt;br /&gt;
&lt;br /&gt;
Le programme réalisée lors de la séance précédente a été testé, notamment les tests de récupération des données de l'accéléromètre 10-DOF sur le Mega.&lt;br /&gt;
&lt;br /&gt;
Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 également été entamé.&lt;br /&gt;
&lt;br /&gt;
Nous avons également rencontré un certain nombre de problème :&lt;br /&gt;
&lt;br /&gt;
*Afin se connecter en WIFI à partir de n’importe où, nous avons décidé de se connecter premièrement à un réseau standard (point d'accès fourni par le smartphone dans un premier temps) puis de modifier le réseau sur lequel nous sommes connecté à partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière.&lt;br /&gt;
&lt;br /&gt;
*La possibilité et l'utilité de l'ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête.&lt;br /&gt;
&lt;br /&gt;
En parallèle, nous avons également avancé avec la création d'une application android pour la réception et l'affichage de données.&lt;br /&gt;
Nous avons décidé de:&lt;br /&gt;
* faire une page d'accueil dans laquelle le kinésithérapeute devra appuyer sur un bouton lorsqu'il aura bien positionné le patient pour enregistrer la bonne position.&lt;br /&gt;
* à l'appui du bouton, le smartphone va contacter le module WIFI à travers un message broadcast (en utilisant une communication UDP) dans le réseau. &lt;br /&gt;
* Le MODULE WIFI, qui est déjà en attente d'une trame venant du smartphone, reçoit le message broadcast, extrait l'adresse IP du smartphone, puis, lui envoie des données du capteur.&lt;br /&gt;
* le smartphone, à son tour va utiliser ces données pour calculer les angles d'inclinaison sur les différents axes et les afficher. Notons que les premiers angles calculés sont ceux correspondant à la bonne position. &lt;br /&gt;
* A intervalle régulier, le module ESP va envoyer de nouvelles données que le smartphone va traiter et comparer avec les angles de la bonne position et prévenir le patient si la position a changer.&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
* Réception du matériel&lt;br /&gt;
Nous avons commencé par étudier l'accéléromètre reçu, en effet la référence de ce dernier est ADXL345 et est digital à l’inverse de celui choisi qui était analogique. De ce fait, nous avons modifié une partie du cahier des charges.&lt;br /&gt;
&lt;br /&gt;
Les accéléromètres adxl345 sont alimentés en 3.3V et sont digitaux. Par conséquent, nous n'aurons plus besoin de sortie analogique. No  &lt;br /&gt;
&lt;br /&gt;
L'établissement des activités nécessairement et documentation sur le choix des sockets à utiliser pour l'envoi des données a également été entamé.&lt;br /&gt;
&lt;br /&gt;
*fonctionnement : accéléromètres digitaux pouvant fonctionner en SPI comme en I2C et supportant 3.3V. Résolution: 10 bits, régler en mode +/-2g. Donc les valeurs de notre registre de données seront dans la plage [-512 ,512]. Mais puisque nous ne mesurons que la force gravitationnelle, nous aurons des valeurs comprises entre [-256,256] qui est la plage correspondant à -/1g. 1g correspond à la valeur de 9.80m/s2.&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: des entiers de -512 à 512 qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre selon l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé l'étude de l'accéléromètre digital, nous devrons nous servir des ports digitales du MEGA et choisir l’accéléromètre à partir duquel nous récupérons les données grâce à un chip select. Pour cela nous devrons utiliser la bibliothèque SPI.h et brancher le CS de l'accéléromètre à des digital pin du mega.&lt;br /&gt;
&lt;br /&gt;
Le deuxième problème survenue est dans la tension limite de l'accéléromètre, en effet ce dernier ne peut supporter que du 3.3V, hors la carte MEGA, elle, délivre du 5V.&lt;br /&gt;
&lt;br /&gt;
De plus le signal sortant de l'accéléromètre est de l'ordre du 3.3V ce qui pourrais être problématique au niveau de la sensibilité du MEGA qui pourrais alors détecter des données biaisées. Nous serons donc amené à réaliser une carte pour faire l'adaptation d'impédance entre  la carte MEGA et l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
Nous avons réalisé une carte électronique grâce au logiciel fritzing pour réaliser l’adaptation de tensions entre l’accéléromètre adxl345 et la carte MEGA. En effet l'accéléromètre supporte des tensions maximales de 3.3V alors que le MEGA donne en sortie 5V.&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
succès de la connexion au wi-fi partagé d'un smartphone.&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41908</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41908"/>
				<updated>2017-05-10T00:50:30Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Semaine 6 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Les accéléromètres nous permettent de calculer l'angle d'inclinaison à partir de la force gravitationnelle qu'ils peuvent mesurer selon les trois axes. Lorsque la position idéale du patient sera choisie par le médecin, nous pourrons enregistrer cette position en mémorisant l'inclinaison de chaque accéléromètre pour cette position. Ainsi un changement de position sera identifié par une variation des angles d'inclinaison précédemment pris. Nous allons utilisé les accéléromètres analogiques de type adxl335. Une fois que nous aurons à disposition les valeurs de l'accéléromètre et, par conséquent les angles d'inclinaison, nous aurons besoin d'un moyen d'affichage des ces données. Pour ce faire, nous avons opté dans un premier temps pour une affichage sur smartphone. Les données vont être envoyées au smartphone à travers un module WIFI connectés au même réseau que le smartphone.  En récapitulant, nous aurons finalement besoin de:&lt;br /&gt;
* 5 accéléromètres adxl335.&lt;br /&gt;
* un arduino Mega&lt;br /&gt;
* un module WIFI &lt;br /&gt;
* des fils pour la liaison.&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement : accéléromètres à sortie analogique. Nous aurons donc besoin de 3 sorties analogiques par capteur (donc 3*5 sorties analogiques)&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: force gravitationnelle selon les trois axes qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre par rapport à l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
&lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification et acquisition de la position idéale à l'aide des accéléromètres placées le long de la colonne vertébrale;&lt;br /&gt;
*notification au patient (à travers le smartphone) lorsqu'une position différente de celle idéale a été détectée.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 2H&lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| documentation&lt;br /&gt;
| 2h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liste du matériel &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
| 6h&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude du module Wi-fi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
| 2H&lt;br /&gt;
| 4H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude, programmation, câblage du 10 DOF &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4H&lt;br /&gt;
| 8H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accéléromètre &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2H&lt;br /&gt;
| étude 3H &lt;br /&gt;
| &lt;br /&gt;
| schématique 2H &lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| application mobile&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2H&lt;br /&gt;
|4H&lt;br /&gt;
|4H&lt;br /&gt;
|&lt;br /&gt;
|10h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différents choix matériel notamment dans la référence des accéléromètres ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL335. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données vers un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est plus rapide que le module bluetooth. Cependant, ce dernier ne consomme pas beaucoup de charge de la batterie du smartphone mais il fonctionne  essentiellement sur de petites distances et avec des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grandes ainsi que des tailles de données beaucoup plus importantes.&lt;br /&gt;
&lt;br /&gt;
Finalement, nous avons opté pour le module WIFI pour limiter le moins possible l'utilisateur en ce qui concerne la distance entre les appareils et le volume de données transmis.&lt;br /&gt;
&lt;br /&gt;
*Confirmation de la liste de matériel: &lt;br /&gt;
  *accéléromètre ADXL335&lt;br /&gt;
  *Smartphone sous Android&lt;br /&gt;
  *15 longs fils mâle-femelle, mâle-mâle&lt;br /&gt;
  *Arduino pro -mini&lt;br /&gt;
  *Module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnelles avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:cad1_1.PNG| 900px ]]&lt;br /&gt;
[[Fichier:cad1.PNG| 900px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, l'accéLéromètre 10 DOF, ainsi que l'arduino MEGA qui sera utilisé pour l’acquisition des données. L'accéléromètre 10DOF incorpore un gyroscope et un magnétomètre. Ceux-ci nous permettront d'avoir une meilleure précision des mesures notamment avec la mesure des orientations (vitesses angulaires).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérées en direct sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof.PNG| 500px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10DOF que nous testerons la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération de l'angle réalisé par l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendus compte que les calculs ne sont pas réalisés correctement par le MEGA. En effet la mesure de l'angle n'était pas précis car le MEGA n'a pas assez de puissance de calcul pour faire les différentes divisions.  &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé que le MEGA servira uniquement à récupérer les données et à les envoyer via module WIFI. Ce sera donc à l'application Android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le module WIFI ESP8266 que nous utiliserons, afin de nous faire une idée de son utilisation.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installé les logiciels nécessaires ( Android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes intéressées  au module wifi, en commençant par lire la fiche technique de l'esp 8266, nous avons également cherché les différents types d'exemples . &lt;br /&gt;
&lt;br /&gt;
Des recherches sur le mode de connexion entre le smartphone et le Mega à travers le module WIFI ont également été effectuer dans le but de se faire une idée, nous hésitons sur l'utilisation de Sockets UDP , ou de réaliser une transmission en TCP .&lt;br /&gt;
&lt;br /&gt;
Le programme réalisée lors de la séance précédente a été testé, notamment les tests de récupération des données de l'accéléromètre 10-DOF sur le Mega.&lt;br /&gt;
&lt;br /&gt;
Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 également été entamé.&lt;br /&gt;
&lt;br /&gt;
Nous avons également rencontré un certain nombre de problème :&lt;br /&gt;
&lt;br /&gt;
*Afin se connecter en WIFI à partir de n’importe où, nous avons décidé de se connecter premièrement à un réseau standard (point d'accès fourni par le smartphone dans un premier temps) puis de modifier le réseau sur lequel nous sommes connecté à partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière.&lt;br /&gt;
&lt;br /&gt;
*La possibilité et l'utilité de l'ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête.&lt;br /&gt;
&lt;br /&gt;
En parallèle, nous avons également avancé avec la création d'une application android pour la réception et l'affichage de données.&lt;br /&gt;
Nous avons décidé de:&lt;br /&gt;
* faire une page d'accueil dans laquelle le kinésithérapeute devra appuyer sur un bouton lorsqu'il aura bien positionné le patient pour enregistrer la bonne position.&lt;br /&gt;
* à l'appui du bouton, le smartphone va contacter le module WIFI à travers un message broadcast (en utilisant une communication UDP) dans le réseau. &lt;br /&gt;
* Le MODULE WIFI, qui est déjà en attente d'une trame venant du smartphone, reçoit le message broadcast, extrait l'adresse IP du smartphone, puis, lui envoie des données du capteur.&lt;br /&gt;
* le smartphone, à son tour va utiliser ces données pour calculer les angles d'inclinaison sur les différents axes et les afficher. Notons que les premiers angles calculés sont ceux correspondant à la bonne position. &lt;br /&gt;
* A intervalle régulier, le module ESP va envoyer de nouvelles données que le smartphone va traiter et comparer avec les angles de la bonne position et prévenir le patient si la position a changer.&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
* Réception du matériel&lt;br /&gt;
Nous avons commencé par étudier l'accéléromètre reçu, en effet la référence de ce dernier est ADXL345 et est digital à l’inverse de celui choisi qui était analogique. De ce fait, nous avons modifié une partie du cahier des charges.&lt;br /&gt;
&lt;br /&gt;
Les accéléromètres adxl345 sont alimentés en 3.3V et sont digitaux. Par conséquent, nous n'aurons plus besoin de sortie analogique. No  &lt;br /&gt;
&lt;br /&gt;
L'établissement des activités nécessairement et documentation sur le choix des sockets à utiliser pour l'envoi des données a également été entamé.&lt;br /&gt;
&lt;br /&gt;
*fonctionnement : accéléromètres digitaux pouvant fonctionner en SPI comme en I2C et supportant 3.3V. Résolution: 10 bits, régler en mode +/-2g. Donc les valeurs de notre registre de données seront dans la plage [-512 ,512]. Mais puisque nous ne mesurons que la force gravitationnelle, nous aurons des valeurs comprises entre [-256,256] qui est la plage correspondant à -/1g. 1g correspond à la valeur de 9.80m/s2.&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: des entiers de -512 à 512 qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre selon l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé l'étude de l'accéléromètre digital, nous devrons nous servir des ports digitales du MEGA et choisir l’accéléromètre à partir duquel nous récupérons les données grâce à un chip select. Pour cela nous devrons utiliser la bibliothèque SPI.h et brancher le CS de l'accéléromètre à des digital pin du mega.&lt;br /&gt;
&lt;br /&gt;
Le deuxième problème survenue est dans la tension limite de l'accéléromètre, en effet ce dernier ne peut supporter que du 3.3V, hors la carte MEGA, elle, délivre du 5V.&lt;br /&gt;
&lt;br /&gt;
De plus le signal sortant de l'accéléromètre est de l'ordre du 3.3V ce qui pourrais être problématique au niveau de la sensibilité du MEGA qui pourrais alors détecter des données biaisées. Nous serons donc amené à réaliser une carte pour faire l'adaptation d'impédance entre  la carte MEGA et l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
Nous avons réalisé une carte électronique grâce au logiciel fritzing pour réaliser l’adaptation de tension entre l’accéléromètre et la carte MEGA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également avancé au niveau de l'application pour smartphone&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
succès de la connexion au wi-fi partagé d'un smartphone.&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41907</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41907"/>
				<updated>2017-05-10T00:42:37Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Semaine 3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Les accéléromètres nous permettent de calculer l'angle d'inclinaison à partir de la force gravitationnelle qu'ils peuvent mesurer selon les trois axes. Lorsque la position idéale du patient sera choisie par le médecin, nous pourrons enregistrer cette position en mémorisant l'inclinaison de chaque accéléromètre pour cette position. Ainsi un changement de position sera identifié par une variation des angles d'inclinaison précédemment pris. Nous allons utilisé les accéléromètres analogiques de type adxl335. Une fois que nous aurons à disposition les valeurs de l'accéléromètre et, par conséquent les angles d'inclinaison, nous aurons besoin d'un moyen d'affichage des ces données. Pour ce faire, nous avons opté dans un premier temps pour une affichage sur smartphone. Les données vont être envoyées au smartphone à travers un module WIFI connectés au même réseau que le smartphone.  En récapitulant, nous aurons finalement besoin de:&lt;br /&gt;
* 5 accéléromètres adxl335.&lt;br /&gt;
* un arduino Mega&lt;br /&gt;
* un module WIFI &lt;br /&gt;
* des fils pour la liaison.&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement : accéléromètres à sortie analogique. Nous aurons donc besoin de 3 sorties analogiques par capteur (donc 3*5 sorties analogiques)&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: force gravitationnelle selon les trois axes qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre par rapport à l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
&lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification et acquisition de la position idéale à l'aide des accéléromètres placées le long de la colonne vertébrale;&lt;br /&gt;
*notification au patient (à travers le smartphone) lorsqu'une position différente de celle idéale a été détectée.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 2H&lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| documentation&lt;br /&gt;
| 2h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liste du matériel &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
| 6h&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude du module Wi-fi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
| 2H&lt;br /&gt;
| 4H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude, programmation, câblage du 10 DOF &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4H&lt;br /&gt;
| 8H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accéléromètre &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2H&lt;br /&gt;
| étude 3H &lt;br /&gt;
| &lt;br /&gt;
| schématique 2H &lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| application mobile&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2H&lt;br /&gt;
|4H&lt;br /&gt;
|4H&lt;br /&gt;
|&lt;br /&gt;
|10h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différents choix matériel notamment dans la référence des accéléromètres ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL335. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données vers un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est plus rapide que le module bluetooth. Cependant, ce dernier ne consomme pas beaucoup de charge de la batterie du smartphone mais il fonctionne  essentiellement sur de petites distances et avec des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grandes ainsi que des tailles de données beaucoup plus importantes.&lt;br /&gt;
&lt;br /&gt;
Finalement, nous avons opté pour le module WIFI pour limiter le moins possible l'utilisateur en ce qui concerne la distance entre les appareils et le volume de données transmis.&lt;br /&gt;
&lt;br /&gt;
*Confirmation de la liste de matériel: &lt;br /&gt;
  *accéléromètre ADXL335&lt;br /&gt;
  *Smartphone sous Android&lt;br /&gt;
  *15 longs fils mâle-femelle, mâle-mâle&lt;br /&gt;
  *Arduino pro -mini&lt;br /&gt;
  *Module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnelles avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:cad1_1.PNG| 900px ]]&lt;br /&gt;
[[Fichier:cad1.PNG| 900px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, l'accéLéromètre 10 DOF, ainsi que l'arduino MEGA qui sera utilisé pour l’acquisition des données. L'accéléromètre 10DOF incorpore un gyroscope et un magnétomètre. Ceux-ci nous permettront d'avoir une meilleure précision des mesures notamment avec la mesure des orientations (vitesses angulaires).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérées en direct sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof.PNG| 500px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10DOF que nous testerons la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération de l'angle réalisé par l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendus compte que les calculs ne sont pas réalisés correctement par le MEGA. En effet la mesure de l'angle n'était pas précis car le MEGA n'a pas assez de puissance de calcul pour faire les différentes divisions.  &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé que le MEGA servira uniquement à récupérer les données et à les envoyer via module WIFI. Ce sera donc à l'application Android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le module WIFI ESP8266 que nous utiliserons, afin de nous faire une idée de son utilisation.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installé les logiciels nécessaires ( Android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes intéressées  au module wifi, en commençant par lire la fiche technique de l'esp 8266, nous avons également cherché les différents types d'exemples . &lt;br /&gt;
&lt;br /&gt;
Des recherches sur le mode de connexion entre le smartphone et le Mega à travers le module WIFI ont également été effectuer dans le but de se faire une idée, nous hésitons sur l'utilisation de Sockets UDP , ou de réaliser une transmission en TCP .&lt;br /&gt;
&lt;br /&gt;
Le programme réalisée lors de la séance précédente a été testé, notamment les tests de récupération des données de l'accéléromètre 10-DOF sur le Mega.&lt;br /&gt;
&lt;br /&gt;
Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 également été entamé.&lt;br /&gt;
&lt;br /&gt;
Nous avons également rencontré un certain nombre de problème :&lt;br /&gt;
&lt;br /&gt;
*Afin se connecter en WIFI à partir de n’importe où, nous avons décidé de se connecter premièrement à un réseau standard (point d'accès fourni par le smartphone dans un premier temps) puis de modifier le réseau sur lequel nous sommes connecté à partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière.&lt;br /&gt;
&lt;br /&gt;
*La possibilité et l'utilité de l'ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête.&lt;br /&gt;
&lt;br /&gt;
En parallèle, nous avons également avancé avec la création d'une application android pour la réception et l'affichage de données.&lt;br /&gt;
Nous avons décidé de:&lt;br /&gt;
* faire une page d'accueil dans laquelle le kinésithérapeute devra appuyer sur un bouton lorsqu'il aura bien positionné le patient pour enregistrer la bonne position.&lt;br /&gt;
* à l'appui du bouton, le smartphone va contacter le module WIFI à travers un message broadcast (en utilisant une communication UDP) dans le réseau. &lt;br /&gt;
* Le MODULE WIFI, qui est déjà en attente d'une trame venant du smartphone, reçoit le message broadcast, extrait l'adresse IP du smartphone, puis, lui envoie des données du capteur.&lt;br /&gt;
* le smartphone, à son tour va utiliser ces données pour calculer les angles d'inclinaison sur les différents axes et les afficher. Notons que les premiers angles calculés sont ceux correspondant à la bonne position. &lt;br /&gt;
* A intervalle régulier, le module ESP va envoyer de nouvelles données que le smartphone va traiter et comparer avec les angles de la bonne position et prévenir le patient si la position a changer.&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
* Réception du matériel&lt;br /&gt;
Nous avons commencé par étudié l'accéléromètre reçu, en effet la référence de ce derniers est ADXL 345 ce qui signifie que cette accéléromètre est digital à l’inverse de celui choisit qui était analogique. De ce fait, il faut que nous modifions le code déjà programmé et ré-étudions ce nouvelle accéléromètre .&lt;br /&gt;
&lt;br /&gt;
La partie transmission sur Smartphone avec Android Studio a été amorcé . &lt;br /&gt;
&lt;br /&gt;
L'établissement des activités nécessairement et documentation sur le choix des sockets à utiliser pour l'envoi des données a également été entamé.&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé l'étude de l'accéléromètre digital, nous devrons nous servir des ports digitales du MEGA et choisir l’accéléromètre à partir duquel nous récupérons les données grâce à un chip select. Pour cela nous devrons utiliser la bibliothèque SPI.h et brancher le CS de l'accéléromètre à des digital pin du mega.&lt;br /&gt;
&lt;br /&gt;
Le deuxième problème survenue est dans la tension limite de l'accéléromètre, en effet ce dernier ne peut supporter que du 3.3V, hors la carte MEGA, elle, délivre du 5V.&lt;br /&gt;
&lt;br /&gt;
De plus le signal sortant de l'accéléromètre est de l'ordre du 3.3V ce qui pourrais être problématique au niveau de la sensibilité du MEGA qui pourrais alors détecter des données biaisées. Nous serons donc amené à réaliser une carte pour faire l'adaptation d'impédance entre  la carte MEGA et l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
Nous avons réalisé une carte électronique grâce au logiciel fritzing pour réaliser l’adaptation de tension entre l’accéléromètre et la carte MEGA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également avancé au niveau de l'application pour smartphone&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
succès de la connexion au wi-fi partagé d'un smartphone.&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41906</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41906"/>
				<updated>2017-05-10T00:41:59Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Semaine 4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Les accéléromètres nous permettent de calculer l'angle d'inclinaison à partir de la force gravitationnelle qu'ils peuvent mesurer selon les trois axes. Lorsque la position idéale du patient sera choisie par le médecin, nous pourrons enregistrer cette position en mémorisant l'inclinaison de chaque accéléromètre pour cette position. Ainsi un changement de position sera identifié par une variation des angles d'inclinaison précédemment pris. Nous allons utilisé les accéléromètres analogiques de type adxl335. Une fois que nous aurons à disposition les valeurs de l'accéléromètre et, par conséquent les angles d'inclinaison, nous aurons besoin d'un moyen d'affichage des ces données. Pour ce faire, nous avons opté dans un premier temps pour une affichage sur smartphone. Les données vont être envoyées au smartphone à travers un module WIFI connectés au même réseau que le smartphone.  En récapitulant, nous aurons finalement besoin de:&lt;br /&gt;
* 5 accéléromètres adxl335.&lt;br /&gt;
* un arduino Mega&lt;br /&gt;
* un module WIFI &lt;br /&gt;
* des fils pour la liaison.&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement : accéléromètres à sortie analogique. Nous aurons donc besoin de 3 sorties analogiques par capteur (donc 3*5 sorties analogiques)&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: force gravitationnelle selon les trois axes qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre par rapport à l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
&lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification et acquisition de la position idéale à l'aide des accéléromètres placées le long de la colonne vertébrale;&lt;br /&gt;
*notification au patient (à travers le smartphone) lorsqu'une position différente de celle idéale a été détectée.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 2H&lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| documentation&lt;br /&gt;
| 2h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liste du matériel &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
| 6h&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude du module Wi-fi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
| 2H&lt;br /&gt;
| 4H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude, programmation, câblage du 10 DOF &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4H&lt;br /&gt;
| 8H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accéléromètre &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2H&lt;br /&gt;
| étude 3H &lt;br /&gt;
| &lt;br /&gt;
| schématique 2H &lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| application mobile&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2H&lt;br /&gt;
|4H&lt;br /&gt;
|4H&lt;br /&gt;
|&lt;br /&gt;
|10h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différents choix matériel notamment dans la référence des accéléromètres ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL335. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données vers un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est plus rapide que le module bluetooth. Cependant, ce dernier ne consomme pas beaucoup de charge de la batterie du smartphone mais il fonctionne  essentiellement sur de petites distances et avec des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grandes ainsi que des tailles de données beaucoup plus importantes.&lt;br /&gt;
&lt;br /&gt;
Finalement, nous avons opté pour le module WIFI pour limiter le moins possible l'utilisateur en ce qui concerne la distance entre les appareils et le volume de données transmis.&lt;br /&gt;
&lt;br /&gt;
*Confirmation de la liste de matériel: &lt;br /&gt;
  *accéléromètre ADXL335&lt;br /&gt;
  *Smartphone sous Android&lt;br /&gt;
  *15 longs fils mâle-femelle, mâle-mâle&lt;br /&gt;
  *Arduino pro -mini&lt;br /&gt;
  *Module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnelles avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:cad1_1.PNG| 900px ]]&lt;br /&gt;
[[Fichier:cad1.PNG| 900px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, l'accéLéromètre 10 DOF, ainsi que l'arduino MEGA qui sera utilisé pour l’acquisition des données. L'accéléromètre 10DOF incorpore un gyroscope et un magnétomètre. Ceux-ci nous permettront d'avoir une meilleure précision des mesures notamment avec la mesure des orientations (vitesses angulaires).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérées en direct sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof.PNG| 500px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10DOF que nous testerons la semaine suivante. &lt;br /&gt;
&lt;br /&gt;
 //les bibliotheque concernee&lt;br /&gt;
 #include &amp;lt;Wire.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;Adafruit_Sensor.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;Adafruit_LSM303.h&amp;gt;&lt;br /&gt;
 Adafruit_LSM303 lsm;&lt;br /&gt;
 void setup()&lt;br /&gt;
 {&lt;br /&gt;
   #ifndef ESP8266&lt;br /&gt;
    while (!Serial);     // will pause Zero, Leonardo, etc until serial console opens&lt;br /&gt;
    #endif&lt;br /&gt;
    Serial.begin(9600);&lt;br /&gt;
  // Try to initialise and warn if we couldn't detect the chip&lt;br /&gt;
  if (!lsm.begin())&lt;br /&gt;
  {&lt;br /&gt;
    Serial.println(&amp;quot;Oops ... unable to initialize the LSM303. Check your wiring!&amp;quot;);&lt;br /&gt;
    while (1);&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
 void loop()&lt;br /&gt;
 {&lt;br /&gt;
  lsm.read();&lt;br /&gt;
  Serial.print(&amp;quot;AX: &amp;quot;); Serial.print((int)lsm.accelData.x); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AY: &amp;quot;); Serial.print((int)lsm.accelData.y); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AZ: &amp;quot;); Serial.println((int)lsm.accelData.z); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  delay(100);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération de l'angle réalisé par l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendus compte que les calculs ne sont pas réalisés correctement par le MEGA. En effet la mesure de l'angle n'était pas précis car le MEGA n'a pas assez de puissance de calcul pour faire les différentes divisions.  &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé que le MEGA servira uniquement à récupérer les données et à les envoyer via module WIFI. Ce sera donc à l'application Android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le module WIFI ESP8266 que nous utiliserons, afin de nous faire une idée de son utilisation.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installé les logiciels nécessaires ( Android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes intéressées  au module wifi, en commençant par lire la fiche technique de l'esp 8266, nous avons également cherché les différents types d'exemples . &lt;br /&gt;
&lt;br /&gt;
Des recherches sur le mode de connexion entre le smartphone et le Mega à travers le module WIFI ont également été effectuer dans le but de se faire une idée, nous hésitons sur l'utilisation de Sockets UDP , ou de réaliser une transmission en TCP .&lt;br /&gt;
&lt;br /&gt;
Le programme réalisée lors de la séance précédente a été testé, notamment les tests de récupération des données de l'accéléromètre 10-DOF sur le Mega.&lt;br /&gt;
&lt;br /&gt;
Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 également été entamé.&lt;br /&gt;
&lt;br /&gt;
Nous avons également rencontré un certain nombre de problème :&lt;br /&gt;
&lt;br /&gt;
*Afin se connecter en WIFI à partir de n’importe où, nous avons décidé de se connecter premièrement à un réseau standard (point d'accès fourni par le smartphone dans un premier temps) puis de modifier le réseau sur lequel nous sommes connecté à partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière.&lt;br /&gt;
&lt;br /&gt;
*La possibilité et l'utilité de l'ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête.&lt;br /&gt;
&lt;br /&gt;
En parallèle, nous avons également avancé avec la création d'une application android pour la réception et l'affichage de données.&lt;br /&gt;
Nous avons décidé de:&lt;br /&gt;
* faire une page d'accueil dans laquelle le kinésithérapeute devra appuyer sur un bouton lorsqu'il aura bien positionné le patient pour enregistrer la bonne position.&lt;br /&gt;
* à l'appui du bouton, le smartphone va contacter le module WIFI à travers un message broadcast (en utilisant une communication UDP) dans le réseau. &lt;br /&gt;
* Le MODULE WIFI, qui est déjà en attente d'une trame venant du smartphone, reçoit le message broadcast, extrait l'adresse IP du smartphone, puis, lui envoie des données du capteur.&lt;br /&gt;
* le smartphone, à son tour va utiliser ces données pour calculer les angles d'inclinaison sur les différents axes et les afficher. Notons que les premiers angles calculés sont ceux correspondant à la bonne position. &lt;br /&gt;
* A intervalle régulier, le module ESP va envoyer de nouvelles données que le smartphone va traiter et comparer avec les angles de la bonne position et prévenir le patient si la position a changer.&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
* Réception du matériel&lt;br /&gt;
Nous avons commencé par étudié l'accéléromètre reçu, en effet la référence de ce derniers est ADXL 345 ce qui signifie que cette accéléromètre est digital à l’inverse de celui choisit qui était analogique. De ce fait, il faut que nous modifions le code déjà programmé et ré-étudions ce nouvelle accéléromètre .&lt;br /&gt;
&lt;br /&gt;
La partie transmission sur Smartphone avec Android Studio a été amorcé . &lt;br /&gt;
&lt;br /&gt;
L'établissement des activités nécessairement et documentation sur le choix des sockets à utiliser pour l'envoi des données a également été entamé.&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé l'étude de l'accéléromètre digital, nous devrons nous servir des ports digitales du MEGA et choisir l’accéléromètre à partir duquel nous récupérons les données grâce à un chip select. Pour cela nous devrons utiliser la bibliothèque SPI.h et brancher le CS de l'accéléromètre à des digital pin du mega.&lt;br /&gt;
&lt;br /&gt;
Le deuxième problème survenue est dans la tension limite de l'accéléromètre, en effet ce dernier ne peut supporter que du 3.3V, hors la carte MEGA, elle, délivre du 5V.&lt;br /&gt;
&lt;br /&gt;
De plus le signal sortant de l'accéléromètre est de l'ordre du 3.3V ce qui pourrais être problématique au niveau de la sensibilité du MEGA qui pourrais alors détecter des données biaisées. Nous serons donc amené à réaliser une carte pour faire l'adaptation d'impédance entre  la carte MEGA et l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
Nous avons réalisé une carte électronique grâce au logiciel fritzing pour réaliser l’adaptation de tension entre l’accéléromètre et la carte MEGA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également avancé au niveau de l'application pour smartphone&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
succès de la connexion au wi-fi partagé d'un smartphone.&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41905</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41905"/>
				<updated>2017-05-10T00:38:06Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Semaine 5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Les accéléromètres nous permettent de calculer l'angle d'inclinaison à partir de la force gravitationnelle qu'ils peuvent mesurer selon les trois axes. Lorsque la position idéale du patient sera choisie par le médecin, nous pourrons enregistrer cette position en mémorisant l'inclinaison de chaque accéléromètre pour cette position. Ainsi un changement de position sera identifié par une variation des angles d'inclinaison précédemment pris. Nous allons utilisé les accéléromètres analogiques de type adxl335. Une fois que nous aurons à disposition les valeurs de l'accéléromètre et, par conséquent les angles d'inclinaison, nous aurons besoin d'un moyen d'affichage des ces données. Pour ce faire, nous avons opté dans un premier temps pour une affichage sur smartphone. Les données vont être envoyées au smartphone à travers un module WIFI connectés au même réseau que le smartphone.  En récapitulant, nous aurons finalement besoin de:&lt;br /&gt;
* 5 accéléromètres adxl335.&lt;br /&gt;
* un arduino Mega&lt;br /&gt;
* un module WIFI &lt;br /&gt;
* des fils pour la liaison.&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement : accéléromètres à sortie analogique. Nous aurons donc besoin de 3 sorties analogiques par capteur (donc 3*5 sorties analogiques)&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: force gravitationnelle selon les trois axes qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre par rapport à l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
&lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification et acquisition de la position idéale à l'aide des accéléromètres placées le long de la colonne vertébrale;&lt;br /&gt;
*notification au patient (à travers le smartphone) lorsqu'une position différente de celle idéale a été détectée.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 2H&lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| documentation&lt;br /&gt;
| 2h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liste du matériel &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
| 6h&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude du module Wi-fi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
| 2H&lt;br /&gt;
| 4H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude, programmation, câblage du 10 DOF &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4H&lt;br /&gt;
| 8H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accéléromètre &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2H&lt;br /&gt;
| étude 3H &lt;br /&gt;
| &lt;br /&gt;
| schématique 2H &lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| application mobile&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2H&lt;br /&gt;
|4H&lt;br /&gt;
|4H&lt;br /&gt;
|&lt;br /&gt;
|10h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différents choix matériel notamment dans la référence des accéléromètres ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL335. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données vers un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est plus rapide que le module bluetooth. Cependant, ce dernier ne consomme pas beaucoup de charge de la batterie du smartphone mais il fonctionne  essentiellement sur de petites distances et avec des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grandes ainsi que des tailles de données beaucoup plus importantes.&lt;br /&gt;
&lt;br /&gt;
Finalement, nous avons opté pour le module WIFI pour limiter le moins possible l'utilisateur en ce qui concerne la distance entre les appareils et le volume de données transmis.&lt;br /&gt;
&lt;br /&gt;
*Confirmation de la liste de matériel: &lt;br /&gt;
  *accéléromètre ADXL335&lt;br /&gt;
  *Smartphone sous Android&lt;br /&gt;
  *15 longs fils mâle-femelle, mâle-mâle&lt;br /&gt;
  *Arduino pro -mini&lt;br /&gt;
  *Module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnelles avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:cad1_1.PNG| 900px ]]&lt;br /&gt;
[[Fichier:cad1.PNG| 900px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, l'accéLéromètre 10 DOF, ainsi que l'arduino MEGA qui sera utilisé pour l’acquisition des données. L'accéléromètre 10DOF incorpore un gyroscope et un magnétomètre. Ceux-ci nous permettront d'avoir une meilleure précision des mesures notamment avec la mesure des orientations (vitesses angulaires).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérées en direct sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof.PNG| 500px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10DOF que nous testerons la semaine suivante. &lt;br /&gt;
&lt;br /&gt;
 //les bibliotheque concernee&lt;br /&gt;
 #include &amp;lt;Wire.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;Adafruit_Sensor.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;Adafruit_LSM303.h&amp;gt;&lt;br /&gt;
 Adafruit_LSM303 lsm;&lt;br /&gt;
 void setup()&lt;br /&gt;
 {&lt;br /&gt;
   #ifndef ESP8266&lt;br /&gt;
    while (!Serial);     // will pause Zero, Leonardo, etc until serial console opens&lt;br /&gt;
    #endif&lt;br /&gt;
    Serial.begin(9600);&lt;br /&gt;
  // Try to initialise and warn if we couldn't detect the chip&lt;br /&gt;
  if (!lsm.begin())&lt;br /&gt;
  {&lt;br /&gt;
    Serial.println(&amp;quot;Oops ... unable to initialize the LSM303. Check your wiring!&amp;quot;);&lt;br /&gt;
    while (1);&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
 void loop()&lt;br /&gt;
 {&lt;br /&gt;
  lsm.read();&lt;br /&gt;
  Serial.print(&amp;quot;AX: &amp;quot;); Serial.print((int)lsm.accelData.x); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AY: &amp;quot;); Serial.print((int)lsm.accelData.y); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AZ: &amp;quot;); Serial.println((int)lsm.accelData.z); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  delay(100);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération de l'angle réalisé par l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
 void loop() {&lt;br /&gt;
  lsm.read();&lt;br /&gt;
  Serial.print(&amp;quot;AX: &amp;quot;); Serial.print((int)lsm.accelData.x); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AY: &amp;quot;); Serial.print((int)lsm.accelData.y); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AZ: &amp;quot;); Serial.println((int)lsm.accelData.z); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  total = sqrt((lsm.accelData.x*lsm.accelData.x)+(lsm.accelData.y*lsm.accelData.y)+(lsm.accelData.z*lsm.accelData.z));&lt;br /&gt;
  angleX = round(asin(lsm.accelData.x/ total )*180.0/3.1416);&lt;br /&gt;
  angleX = round(asin(lsm.accelData.y/ total )*180.0/3.1416);&lt;br /&gt;
  angleX = round(asin(lsm.accelData.z/ total )*180.0/3.1416);&lt;br /&gt;
  Serial.print(&amp;quot;total:  &amp;quot;);&lt;br /&gt;
  Serial.print(total,0);&lt;br /&gt;
  Serial.print(&amp;quot; Angle x:  &amp;quot;);&lt;br /&gt;
  Serial.print(angleX,0);&lt;br /&gt;
  Serial.print(&amp;quot;  Angle y:  &amp;quot;);&lt;br /&gt;
  Serial.print(angleY,0);&lt;br /&gt;
  Serial.print(&amp;quot;  Angle z:  &amp;quot;);&lt;br /&gt;
  Serial.println(angleZ,0);&lt;br /&gt;
  delay(100);}&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendus compte que les calculs ne sont pas réalisés correctement par le MEGA. En effet la mesure de l'angle n'était pas précis car le MEGA n'a pas assez de puissance de calcul pour faire les différentes divisions.  &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé que le MEGA servira uniquement à récupérer les données et à les envoyer via module WIFI. Ce sera donc à l'application Android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le module WIFI ESP8266 que nous utiliserons, afin de nous faire une idée de son utilisation.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installé les logiciels nécessaires ( Android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes intéressées  au module wifi, en commençant par lire la fiche technique de l'esp 8266, nous avons également cherché les différents types d'exemples . &lt;br /&gt;
&lt;br /&gt;
Des recherches sur le mode de connexion entre le smartphone et le Mega à travers le module WIFI ont également été effectuer dans le but de se faire une idée, nous hésitons sur l'utilisation de Sockets UDP , ou de réaliser une transmission en TCP .&lt;br /&gt;
&lt;br /&gt;
Le programme réalisée lors de la séance précédente a été testé, notamment les tests de récupération des données de l'accéléromètre 10-DOF sur le Mega.&lt;br /&gt;
&lt;br /&gt;
Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 également été entamé.&lt;br /&gt;
&lt;br /&gt;
Nous avons également rencontré un certain nombre de problème :&lt;br /&gt;
&lt;br /&gt;
*Afin se connecter en WIFI à partir de n’importe où, nous avons décidé de se connecter premièrement à un réseau standard (point d'accès fourni par le smartphone dans un premier temps) puis de modifier le réseau sur lequel nous sommes connecté à partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière.&lt;br /&gt;
&lt;br /&gt;
*La possibilité et l'utilité de l'ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête.&lt;br /&gt;
&lt;br /&gt;
En parallèle, nous avons également avancé avec la création d'une application android pour la réception et l'affichage de données.&lt;br /&gt;
Nous avons décidé de:&lt;br /&gt;
* faire une page d'accueil dans laquelle le kinésithérapeute devra appuyer sur un bouton lorsqu'il aura bien positionné le patient pour enregistrer la bonne position.&lt;br /&gt;
* à l'appui du bouton, le smartphone va contacter le module WIFI à travers un message broadcast (en utilisant une communication UDP) dans le réseau. &lt;br /&gt;
* Le MODULE WIFI, qui est déjà en attente d'une trame venant du smartphone, reçoit le message broadcast, extrait l'adresse IP du smartphone, puis, lui envoie des données du capteur.&lt;br /&gt;
* le smartphone, à son tour va utiliser ces données pour calculer les angles d'inclinaison sur les différents axes et les afficher. Notons que les premiers angles calculés sont ceux correspondant à la bonne position. &lt;br /&gt;
* A intervalle régulier, le module ESP va envoyer de nouvelles données que le smartphone va traiter et comparer avec les angles de la bonne position et prévenir le patient si la position a changer.&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
* Réception du matériel&lt;br /&gt;
Nous avons commencé par étudié l'accéléromètre reçu, en effet la référence de ce derniers est ADXL 345 ce qui signifie que cette accéléromètre est digital à l’inverse de celui choisit qui était analogique. De ce fait, il faut que nous modifions le code déjà programmé et ré-étudions ce nouvelle accéléromètre .&lt;br /&gt;
&lt;br /&gt;
La partie transmission sur Smartphone avec Android Studio a été amorcé . &lt;br /&gt;
&lt;br /&gt;
L'établissement des activités nécessairement et documentation sur le choix des sockets à utiliser pour l'envoi des données a également été entamé.&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé l'étude de l'accéléromètre digital, nous devrons nous servir des ports digitales du MEGA et choisir l’accéléromètre à partir duquel nous récupérons les données grâce à un chip select. Pour cela nous devrons utiliser la bibliothèque SPI.h et brancher le CS de l'accéléromètre à des digital pin du mega.&lt;br /&gt;
&lt;br /&gt;
Le deuxième problème survenue est dans la tension limite de l'accéléromètre, en effet ce dernier ne peut supporter que du 3.3V, hors la carte MEGA, elle, délivre du 5V.&lt;br /&gt;
&lt;br /&gt;
De plus le signal sortant de l'accéléromètre est de l'ordre du 3.3V ce qui pourrais être problématique au niveau de la sensibilité du MEGA qui pourrais alors détecter des données biaisées. Nous serons donc amené à réaliser une carte pour faire l'adaptation d'impédance entre  la carte MEGA et l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
Nous avons réalisé une carte électronique grâce au logiciel fritzing pour réaliser l’adaptation de tension entre l’accéléromètre et la carte MEGA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également avancé au niveau de l'application pour smartphone&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
succès de la connexion au wi-fi partagé d'un smartphone.&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41904</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41904"/>
				<updated>2017-05-10T00:20:54Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Semaine 4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Les accéléromètres nous permettent de calculer l'angle d'inclinaison à partir de la force gravitationnelle qu'ils peuvent mesurer selon les trois axes. Lorsque la position idéale du patient sera choisie par le médecin, nous pourrons enregistrer cette position en mémorisant l'inclinaison de chaque accéléromètre pour cette position. Ainsi un changement de position sera identifié par une variation des angles d'inclinaison précédemment pris. Nous allons utilisé les accéléromètres analogiques de type adxl335. Une fois que nous aurons à disposition les valeurs de l'accéléromètre et, par conséquent les angles d'inclinaison, nous aurons besoin d'un moyen d'affichage des ces données. Pour ce faire, nous avons opté dans un premier temps pour une affichage sur smartphone. Les données vont être envoyées au smartphone à travers un module WIFI connectés au même réseau que le smartphone.  En récapitulant, nous aurons finalement besoin de:&lt;br /&gt;
* 5 accéléromètres adxl335.&lt;br /&gt;
* un arduino Mega&lt;br /&gt;
* un module WIFI &lt;br /&gt;
* des fils pour la liaison.&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement : accéléromètres à sortie analogique. Nous aurons donc besoin de 3 sorties analogiques par capteur (donc 3*5 sorties analogiques)&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: force gravitationnelle selon les trois axes qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre par rapport à l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
&lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification et acquisition de la position idéale à l'aide des accéléromètres placées le long de la colonne vertébrale;&lt;br /&gt;
*notification au patient (à travers le smartphone) lorsqu'une position différente de celle idéale a été détectée.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 2H&lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| documentation&lt;br /&gt;
| 2h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liste du matériel &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
| 6h&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude du module Wi-fi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
| 2H&lt;br /&gt;
| 4H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude, programmation, câblage du 10 DOF &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4H&lt;br /&gt;
| 8H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accéléromètre &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2H&lt;br /&gt;
| étude 3H &lt;br /&gt;
| &lt;br /&gt;
| schématique 2H &lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| application mobile&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2H&lt;br /&gt;
|4H&lt;br /&gt;
|4H&lt;br /&gt;
|&lt;br /&gt;
|10h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différents choix matériel notamment dans la référence des accéléromètres ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL335. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données vers un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est plus rapide que le module bluetooth. Cependant, ce dernier ne consomme pas beaucoup de charge de la batterie du smartphone mais il fonctionne  essentiellement sur de petites distances et avec des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grandes ainsi que des tailles de données beaucoup plus importantes.&lt;br /&gt;
&lt;br /&gt;
Finalement, nous avons opté pour le module WIFI pour limiter le moins possible l'utilisateur en ce qui concerne la distance entre les appareils et le volume de données transmis.&lt;br /&gt;
&lt;br /&gt;
*Confirmation de la liste de matériel: &lt;br /&gt;
  *accéléromètre ADXL335&lt;br /&gt;
  *Smartphone sous Android&lt;br /&gt;
  *15 longs fils mâle-femelle, mâle-mâle&lt;br /&gt;
  *Arduino pro -mini&lt;br /&gt;
  *Module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnelles avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:cad1_1.PNG| 900px ]]&lt;br /&gt;
[[Fichier:cad1.PNG| 900px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, l'accéLéromètre 10 DOF, ainsi que l'arduino MEGA qui sera utilisé pour l’acquisition des données. L'accéléromètre 10DOF incorpore un gyroscope et un magnétomètre. Ceux-ci nous permettront d'avoir une meilleure précision des mesures notamment avec la mesure des orientations (vitesses angulaires).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérées en direct sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof.PNG| 500px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10DOF que nous testerons la semaine suivante. &lt;br /&gt;
&lt;br /&gt;
 //les bibliotheque concernee&lt;br /&gt;
 #include &amp;lt;Wire.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;Adafruit_Sensor.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;Adafruit_LSM303.h&amp;gt;&lt;br /&gt;
 Adafruit_LSM303 lsm;&lt;br /&gt;
 void setup()&lt;br /&gt;
 {&lt;br /&gt;
   #ifndef ESP8266&lt;br /&gt;
    while (!Serial);     // will pause Zero, Leonardo, etc until serial console opens&lt;br /&gt;
    #endif&lt;br /&gt;
    Serial.begin(9600);&lt;br /&gt;
  // Try to initialise and warn if we couldn't detect the chip&lt;br /&gt;
  if (!lsm.begin())&lt;br /&gt;
  {&lt;br /&gt;
    Serial.println(&amp;quot;Oops ... unable to initialize the LSM303. Check your wiring!&amp;quot;);&lt;br /&gt;
    while (1);&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
 void loop()&lt;br /&gt;
 {&lt;br /&gt;
  lsm.read();&lt;br /&gt;
  Serial.print(&amp;quot;AX: &amp;quot;); Serial.print((int)lsm.accelData.x); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AY: &amp;quot;); Serial.print((int)lsm.accelData.y); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AZ: &amp;quot;); Serial.println((int)lsm.accelData.z); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  delay(100);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération de l'angle réalisé par l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
 void loop() {&lt;br /&gt;
  lsm.read();&lt;br /&gt;
  Serial.print(&amp;quot;AX: &amp;quot;); Serial.print((int)lsm.accelData.x); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AY: &amp;quot;); Serial.print((int)lsm.accelData.y); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AZ: &amp;quot;); Serial.println((int)lsm.accelData.z); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  total = sqrt((lsm.accelData.x*lsm.accelData.x)+(lsm.accelData.y*lsm.accelData.y)+(lsm.accelData.z*lsm.accelData.z));&lt;br /&gt;
  angleX = round(asin(lsm.accelData.x/ total )*180.0/3.1416);&lt;br /&gt;
  angleX = round(asin(lsm.accelData.y/ total )*180.0/3.1416);&lt;br /&gt;
  angleX = round(asin(lsm.accelData.z/ total )*180.0/3.1416);&lt;br /&gt;
  Serial.print(&amp;quot;total:  &amp;quot;);&lt;br /&gt;
  Serial.print(total,0);&lt;br /&gt;
  Serial.print(&amp;quot; Angle x:  &amp;quot;);&lt;br /&gt;
  Serial.print(angleX,0);&lt;br /&gt;
  Serial.print(&amp;quot;  Angle y:  &amp;quot;);&lt;br /&gt;
  Serial.print(angleY,0);&lt;br /&gt;
  Serial.print(&amp;quot;  Angle z:  &amp;quot;);&lt;br /&gt;
  Serial.println(angleZ,0);&lt;br /&gt;
  delay(100);}&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendus compte que les calculs ne sont pas réalisés correctement par le MEGA. En effet la mesure de l'angle n'était pas précis car le MEGA n'a pas assez de puissance de calcul pour faire les différentes divisions.  &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décidé que le MEGA servira uniquement à récupérer les données et à les envoyer via module WIFI. Ce sera donc à l'application Android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le module WIFI ESP8266 que nous utiliserons, afin de nous faire une idée de son utilisation.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installé les logiciels nécessaires ( Android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes intéressées  au module wifi, en commençant par lire la fiche technique de l'esp 8266, nous avons également cherché les différents types d'exemples . &lt;br /&gt;
&lt;br /&gt;
Des recherches sur le mode de connexion entre le smartphone et le Mega à travers le module WIFI ont également été effectuer dans le but de se faire une idée, nous hésitons sur l'utilisation de Sockets UDP , ou de réaliser une transmission en TCP .&lt;br /&gt;
&lt;br /&gt;
Le programme réalisée lors de la séance précédente a été testé, notamment les tests de récupération des données de l'accéléromètre 10-DOF sur le Mega.&lt;br /&gt;
&lt;br /&gt;
Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 également été entamé.&lt;br /&gt;
&lt;br /&gt;
Nous avons également rencontré un certain nombre de problème :&lt;br /&gt;
&lt;br /&gt;
*Afin se connecter en WIFI à partir de n’importe où, nous avons décidé de se connecter premièrement à un réseau standard (point d'accès fourni par le smartphone dans un premier temps) puis de modifier le réseau sur lequel nous sommes connecté à partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière.&lt;br /&gt;
&lt;br /&gt;
*La possibilité et l'utilité de l'ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête.&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
* Réception du matériel&lt;br /&gt;
Nous avons commencé par étudié l'accéléromètre reçu, en effet la référence de ce derniers est ADXL 345 ce qui signifie que cette accéléromètre est digital à l’inverse de celui choisit qui était analogique. De ce fait, il faut que nous modifions le code déjà programmé et ré-étudions ce nouvelle accéléromètre .&lt;br /&gt;
&lt;br /&gt;
La partie transmission sur Smartphone avec Android Studio a été amorcé . &lt;br /&gt;
&lt;br /&gt;
L'établissement des activités nécessairement et documentation sur le choix des sockets à utiliser pour l'envoi des données a également été entamé.&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé l'étude de l'accéléromètre digital, nous devrons nous servir des ports digitales du MEGA et choisir l’accéléromètre à partir duquel nous récupérons les données grâce à un chip select. Pour cela nous devrons utiliser la bibliothèque SPI.h et brancher le CS de l'accéléromètre à des digital pin du mega.&lt;br /&gt;
&lt;br /&gt;
Le deuxième problème survenue est dans la tension limite de l'accéléromètre, en effet ce dernier ne peut supporter que du 3.3V, hors la carte MEGA, elle, délivre du 5V.&lt;br /&gt;
&lt;br /&gt;
De plus le signal sortant de l'accéléromètre est de l'ordre du 3.3V ce qui pourrais être problématique au niveau de la sensibilité du MEGA qui pourrais alors détecter des données biaisées. Nous serons donc amené à réaliser une carte pour faire l'adaptation d'impédance entre  la carte MEGA et l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
Nous avons réalisé une carte électronique grâce au logiciel fritzing pour réaliser l’adaptation de tension entre l’accéléromètre et la carte MEGA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également avancé au niveau de l'application pour smartphone&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
succès de la connexion au wi-fi partagé d'un smartphone.&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41903</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41903"/>
				<updated>2017-05-09T23:55:49Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Semaine 4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Les accéléromètres nous permettent de calculer l'angle d'inclinaison à partir de la force gravitationnelle qu'ils peuvent mesurer selon les trois axes. Lorsque la position idéale du patient sera choisie par le médecin, nous pourrons enregistrer cette position en mémorisant l'inclinaison de chaque accéléromètre pour cette position. Ainsi un changement de position sera identifié par une variation des angles d'inclinaison précédemment pris. Nous allons utilisé les accéléromètres analogiques de type adxl335. Une fois que nous aurons à disposition les valeurs de l'accéléromètre et, par conséquent les angles d'inclinaison, nous aurons besoin d'un moyen d'affichage des ces données. Pour ce faire, nous avons opté dans un premier temps pour une affichage sur smartphone. Les données vont être envoyées au smartphone à travers un module WIFI connectés au même réseau que le smartphone.  En récapitulant, nous aurons finalement besoin de:&lt;br /&gt;
* 5 accéléromètres adxl335.&lt;br /&gt;
* un arduino Mega&lt;br /&gt;
* un module WIFI &lt;br /&gt;
* des fils pour la liaison.&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement : accéléromètres à sortie analogique. Nous aurons donc besoin de 3 sorties analogiques par capteur (donc 3*5 sorties analogiques)&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: force gravitationnelle selon les trois axes qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre par rapport à l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
&lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification et acquisition de la position idéale à l'aide des accéléromètres placées le long de la colonne vertébrale;&lt;br /&gt;
*notification au patient (à travers le smartphone) lorsqu'une position différente de celle idéale a été détectée.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 2H&lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| documentation&lt;br /&gt;
| 2h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liste du matériel &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
| 6h&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude du module Wi-fi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
| 2H&lt;br /&gt;
| 4H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude, programmation, câblage du 10 DOF &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4H&lt;br /&gt;
| 8H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accéléromètre &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2H&lt;br /&gt;
| étude 3H &lt;br /&gt;
| &lt;br /&gt;
| schématique 2H &lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| application mobile&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2H&lt;br /&gt;
|4H&lt;br /&gt;
|4H&lt;br /&gt;
|&lt;br /&gt;
|10h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différents choix matériel notamment dans la référence des accéléromètres ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL335. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données vers un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est plus rapide que le module bluetooth. Cependant, ce dernier ne consomme pas beaucoup de charge de la batterie du smartphone mais il fonctionne  essentiellement sur de petites distances et avec des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grandes ainsi que des tailles de données beaucoup plus importantes.&lt;br /&gt;
&lt;br /&gt;
Finalement, nous avons opté pour le module WIFI pour limiter le moins possible l'utilisateur en ce qui concerne la distance entre les appareils et le volume de données transmis.&lt;br /&gt;
&lt;br /&gt;
*Confirmation de la liste de matériel: &lt;br /&gt;
  *accéléromètre ADXL335&lt;br /&gt;
  *Smartphone sous Android&lt;br /&gt;
  *15 longs fils mâle-femelle, mâle-mâle&lt;br /&gt;
  *Arduino pro -mini&lt;br /&gt;
  *Module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnelles avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:cad1_1.PNG| 900px ]]&lt;br /&gt;
[[Fichier:cad1.PNG| 900px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, l'accéLéromètre 10 DOF, ainsi que l'arduino MEGA qui sera utilisé pour l’acquisition des données. L'accéléromètre 10DOF incorpore un gyroscope et un magnétomètre. Ceux-ci nous permettront d'avoir une meilleure précision des mesures notamment avec la mesure des orientations (vitesses angulaires).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérées en direct sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof.PNG| 500px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10DOF que nous testerons la semaine suivante. &lt;br /&gt;
&lt;br /&gt;
 //les bibliotheque concernee&lt;br /&gt;
 #include &amp;lt;Wire.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;Adafruit_Sensor.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;Adafruit_LSM303.h&amp;gt;&lt;br /&gt;
 Adafruit_LSM303 lsm;&lt;br /&gt;
 void setup()&lt;br /&gt;
 {&lt;br /&gt;
   #ifndef ESP8266&lt;br /&gt;
    while (!Serial);     // will pause Zero, Leonardo, etc until serial console opens&lt;br /&gt;
    #endif&lt;br /&gt;
    Serial.begin(9600);&lt;br /&gt;
  // Try to initialise and warn if we couldn't detect the chip&lt;br /&gt;
  if (!lsm.begin())&lt;br /&gt;
  {&lt;br /&gt;
    Serial.println(&amp;quot;Oops ... unable to initialize the LSM303. Check your wiring!&amp;quot;);&lt;br /&gt;
    while (1);&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
 void loop()&lt;br /&gt;
 {&lt;br /&gt;
  lsm.read();&lt;br /&gt;
  Serial.print(&amp;quot;AX: &amp;quot;); Serial.print((int)lsm.accelData.x); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AY: &amp;quot;); Serial.print((int)lsm.accelData.y); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AZ: &amp;quot;); Serial.println((int)lsm.accelData.z); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  delay(100);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération de l'angle réalisé par l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
 void loop() {&lt;br /&gt;
  lsm.read();&lt;br /&gt;
  Serial.print(&amp;quot;AX: &amp;quot;); Serial.print((int)lsm.accelData.x); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AY: &amp;quot;); Serial.print((int)lsm.accelData.y); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AZ: &amp;quot;); Serial.println((int)lsm.accelData.z); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  total = sqrt((lsm.accelData.x*lsm.accelData.x)+(lsm.accelData.y*lsm.accelData.y)+(lsm.accelData.z*lsm.accelData.z));&lt;br /&gt;
  angleX = round(asin(lsm.accelData.x/ total )*180.0/3.1416);&lt;br /&gt;
  angleX = round(asin(lsm.accelData.y/ total )*180.0/3.1416);&lt;br /&gt;
  angleX = round(asin(lsm.accelData.z/ total )*180.0/3.1416);&lt;br /&gt;
  Serial.print(&amp;quot;total:  &amp;quot;);&lt;br /&gt;
  Serial.print(total,0);&lt;br /&gt;
  Serial.print(&amp;quot; Angle x:  &amp;quot;);&lt;br /&gt;
  Serial.print(angleX,0);&lt;br /&gt;
  Serial.print(&amp;quot;  Angle y:  &amp;quot;);&lt;br /&gt;
  Serial.print(angleY,0);&lt;br /&gt;
  Serial.print(&amp;quot;  Angle z:  &amp;quot;);&lt;br /&gt;
  Serial.println(angleZ,0);&lt;br /&gt;
  delay(100);}&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendus compte que les calculs ne sont pas réalisés correctement par le MEGA.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Cela est due au manque de puissance de la carte qui n'est pas faite pour réaliser ces calcules. Nous avons donc décidé que le MEGA servira uniquement à récupéré les données et à les envoyés via module WIFI. Ce sera donc à l'application android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le module WIFI que nous utiliserons, le module ESP8266, afin de se faire une idée de son utilisation.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installé les logiciels nécessaires ( Android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes intéressées  au module wifi, en commençant par lire la fiche technique de l'esp 8266, nous avons également cherché les différents types d'exemples . &lt;br /&gt;
&lt;br /&gt;
Des recherches sur le mode de connexion entre le smartphone et le Mega à travers le module WIFI ont également été effectuer dans le but de se faire une idée, nous hésitons sur l'utilisation de Sockets UDP , ou de réaliser une transmission en TCP .&lt;br /&gt;
&lt;br /&gt;
Le programme réalisée lors de la séance précédente a été testé, notamment les tests de récupération des données de l'accéléromètre 10-DOF sur le Mega.&lt;br /&gt;
&lt;br /&gt;
Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 également été entamé.&lt;br /&gt;
&lt;br /&gt;
Nous avons également rencontré un certain nombre de problème :&lt;br /&gt;
&lt;br /&gt;
*Afin se connecter en WIFI à partir de n’importe où, nous avons décidé de se connecter premièrement à un réseau standard (point d'accès fourni par le smartphone dans un premier temps) puis de modifier le réseau sur lequel nous sommes connecté à partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière.&lt;br /&gt;
&lt;br /&gt;
*La possibilité et l'utilité de l'ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête.&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
* Réception du matériel&lt;br /&gt;
Nous avons commencé par étudié l'accéléromètre reçu, en effet la référence de ce derniers est ADXL 345 ce qui signifie que cette accéléromètre est digital à l’inverse de celui choisit qui était analogique. De ce fait, il faut que nous modifions le code déjà programmé et ré-étudions ce nouvelle accéléromètre .&lt;br /&gt;
&lt;br /&gt;
La partie transmission sur Smartphone avec Android Studio a été amorcé . &lt;br /&gt;
&lt;br /&gt;
L'établissement des activités nécessairement et documentation sur le choix des sockets à utiliser pour l'envoi des données a également été entamé.&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé l'étude de l'accéléromètre digital, nous devrons nous servir des ports digitales du MEGA et choisir l’accéléromètre à partir duquel nous récupérons les données grâce à un chip select. Pour cela nous devrons utiliser la bibliothèque SPI.h et brancher le CS de l'accéléromètre à des digital pin du mega.&lt;br /&gt;
&lt;br /&gt;
Le deuxième problème survenue est dans la tension limite de l'accéléromètre, en effet ce dernier ne peut supporter que du 3.3V, hors la carte MEGA, elle, délivre du 5V.&lt;br /&gt;
&lt;br /&gt;
De plus le signal sortant de l'accéléromètre est de l'ordre du 3.3V ce qui pourrais être problématique au niveau de la sensibilité du MEGA qui pourrais alors détecter des données biaisées. Nous serons donc amené à réaliser une carte pour faire l'adaptation d'impédance entre  la carte MEGA et l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
Nous avons réalisé une carte électronique grâce au logiciel fritzing pour réaliser l’adaptation de tension entre l’accéléromètre et la carte MEGA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également avancé au niveau de l'application pour smartphone&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
succès de la connexion au wi-fi partagé d'un smartphone.&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41902</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41902"/>
				<updated>2017-05-09T23:54:58Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Semaine 3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Les accéléromètres nous permettent de calculer l'angle d'inclinaison à partir de la force gravitationnelle qu'ils peuvent mesurer selon les trois axes. Lorsque la position idéale du patient sera choisie par le médecin, nous pourrons enregistrer cette position en mémorisant l'inclinaison de chaque accéléromètre pour cette position. Ainsi un changement de position sera identifié par une variation des angles d'inclinaison précédemment pris. Nous allons utilisé les accéléromètres analogiques de type adxl335. Une fois que nous aurons à disposition les valeurs de l'accéléromètre et, par conséquent les angles d'inclinaison, nous aurons besoin d'un moyen d'affichage des ces données. Pour ce faire, nous avons opté dans un premier temps pour une affichage sur smartphone. Les données vont être envoyées au smartphone à travers un module WIFI connectés au même réseau que le smartphone.  En récapitulant, nous aurons finalement besoin de:&lt;br /&gt;
* 5 accéléromètres adxl335.&lt;br /&gt;
* un arduino Mega&lt;br /&gt;
* un module WIFI &lt;br /&gt;
* des fils pour la liaison.&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement : accéléromètres à sortie analogique. Nous aurons donc besoin de 3 sorties analogiques par capteur (donc 3*5 sorties analogiques)&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: force gravitationnelle selon les trois axes qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre par rapport à l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
&lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification et acquisition de la position idéale à l'aide des accéléromètres placées le long de la colonne vertébrale;&lt;br /&gt;
*notification au patient (à travers le smartphone) lorsqu'une position différente de celle idéale a été détectée.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 2H&lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| documentation&lt;br /&gt;
| 2h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liste du matériel &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
| 6h&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude du module Wi-fi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
| 2H&lt;br /&gt;
| 4H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude, programmation, câblage du 10 DOF &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4H&lt;br /&gt;
| 8H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accéléromètre &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2H&lt;br /&gt;
| étude 3H &lt;br /&gt;
| &lt;br /&gt;
| schématique 2H &lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| application mobile&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2H&lt;br /&gt;
|4H&lt;br /&gt;
|4H&lt;br /&gt;
|&lt;br /&gt;
|10h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différents choix matériel notamment dans la référence des accéléromètres ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL335. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données vers un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est plus rapide que le module bluetooth. Cependant, ce dernier ne consomme pas beaucoup de charge de la batterie du smartphone mais il fonctionne  essentiellement sur de petites distances et avec des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grandes ainsi que des tailles de données beaucoup plus importantes.&lt;br /&gt;
&lt;br /&gt;
Finalement, nous avons opté pour le module WIFI pour limiter le moins possible l'utilisateur en ce qui concerne la distance entre les appareils et le volume de données transmis.&lt;br /&gt;
&lt;br /&gt;
*Confirmation de la liste de matériel: &lt;br /&gt;
  *accéléromètre ADXL335&lt;br /&gt;
  *Smartphone sous Android&lt;br /&gt;
  *15 longs fils mâle-femelle, mâle-mâle&lt;br /&gt;
  *Arduino pro -mini&lt;br /&gt;
  *Module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnelles avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:cad1_1.PNG| 900px ]]&lt;br /&gt;
[[Fichier:cad1.PNG| 900px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, l'accéLéromètre 10 DOF, ainsi que l'arduino MEGA qui sera utilisé pour l’acquisition des données. L'accéléromètre 10DOF incorpore un gyroscope et un magnétomètre. Ceux-ci nous permettront d'avoir une meilleure précision des mesures notamment avec la mesure des orientations (vitesses angulaires).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérées en direct sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof.PNG| 500px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10DOF que nous testerons la semaine suivante. &lt;br /&gt;
&lt;br /&gt;
 //les bibliotheque concernee&lt;br /&gt;
 #include &amp;lt;Wire.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;Adafruit_Sensor.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;Adafruit_LSM303.h&amp;gt;&lt;br /&gt;
 Adafruit_LSM303 lsm;&lt;br /&gt;
 void setup()&lt;br /&gt;
 {&lt;br /&gt;
   #ifndef ESP8266&lt;br /&gt;
    while (!Serial);     // will pause Zero, Leonardo, etc until serial console opens&lt;br /&gt;
    #endif&lt;br /&gt;
    Serial.begin(9600);&lt;br /&gt;
  // Try to initialise and warn if we couldn't detect the chip&lt;br /&gt;
  if (!lsm.begin())&lt;br /&gt;
  {&lt;br /&gt;
    Serial.println(&amp;quot;Oops ... unable to initialize the LSM303. Check your wiring!&amp;quot;);&lt;br /&gt;
    while (1);&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
 void loop()&lt;br /&gt;
 {&lt;br /&gt;
  lsm.read();&lt;br /&gt;
  Serial.print(&amp;quot;AX: &amp;quot;); Serial.print((int)lsm.accelData.x); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AY: &amp;quot;); Serial.print((int)lsm.accelData.y); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AZ: &amp;quot;); Serial.println((int)lsm.accelData.z); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  delay(100);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération de l'angle réalisé par l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
 void loop() {&lt;br /&gt;
  lsm.read();&lt;br /&gt;
  Serial.print(&amp;quot;AX: &amp;quot;); Serial.print((int)lsm.accelData.x); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AY: &amp;quot;); Serial.print((int)lsm.accelData.y); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AZ: &amp;quot;); Serial.println((int)lsm.accelData.z); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  total = sqrt((lsm.accelData.x*lsm.accelData.x)+(lsm.accelData.y*lsm.accelData.y)+(lsm.accelData.z*lsm.accelData.z));&lt;br /&gt;
  angleX = round(asin(lsm.accelData.x/ total )*180.0/3.1416);&lt;br /&gt;
  angleX = round(asin(lsm.accelData.y/ total )*180.0/3.1416);&lt;br /&gt;
  angleX = round(asin(lsm.accelData.z/ total )*180.0/3.1416);&lt;br /&gt;
  Serial.print(&amp;quot;total:  &amp;quot;);&lt;br /&gt;
  Serial.print(total,0);&lt;br /&gt;
  Serial.print(&amp;quot; Angle x:  &amp;quot;);&lt;br /&gt;
  Serial.print(angleX,0);&lt;br /&gt;
  Serial.print(&amp;quot;  Angle y:  &amp;quot;);&lt;br /&gt;
  Serial.print(angleY,0);&lt;br /&gt;
  Serial.print(&amp;quot;  Angle z:  &amp;quot;);&lt;br /&gt;
  Serial.println(angleZ,0);&lt;br /&gt;
  delay(100);}&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendu compte que les calculs ne sont pas réalisés correctement par le MEGA.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Cela est due au manque de puissance de la carte qui n'est pas faite pour réaliser ces calcules. Nous avons donc décidé que le MEGA servira uniquement à récupéré les données et à les envoyés via module WIFI. Ce sera donc à l'application android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le module WIFI que nous utiliserons, le module ESP8266, afin de se faire une idée de son utilisation.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installé les logiciels nécessaires ( Android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes intéressées  au module wifi, en commençant par lire la fiche technique de l'esp 8266, nous avons également cherché les différents types d'exemples . &lt;br /&gt;
&lt;br /&gt;
Des recherches sur le mode de connexion entre le smartphone et le Mega à travers le module WIFI ont également été effectuer dans le but de se faire une idée, nous hésitons sur l'utilisation de Sockets UDP , ou de réaliser une transmission en TCP .&lt;br /&gt;
&lt;br /&gt;
Le programme réalisée lors de la séance précédente a été testé, notamment les tests de récupération des données de l'accéléromètre 10-DOF sur le Mega.&lt;br /&gt;
&lt;br /&gt;
Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 également été entamé.&lt;br /&gt;
&lt;br /&gt;
Nous avons également rencontré un certain nombre de problème :&lt;br /&gt;
&lt;br /&gt;
*Afin se connecter en WIFI à partir de n’importe où, nous avons décidé de se connecter premièrement à un réseau standard (point d'accès fourni par le smartphone dans un premier temps) puis de modifier le réseau sur lequel nous sommes connecté à partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière.&lt;br /&gt;
&lt;br /&gt;
*La possibilité et l'utilité de l'ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête.&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
* Réception du matériel&lt;br /&gt;
Nous avons commencé par étudié l'accéléromètre reçu, en effet la référence de ce derniers est ADXL 345 ce qui signifie que cette accéléromètre est digital à l’inverse de celui choisit qui était analogique. De ce fait, il faut que nous modifions le code déjà programmé et ré-étudions ce nouvelle accéléromètre .&lt;br /&gt;
&lt;br /&gt;
La partie transmission sur Smartphone avec Android Studio a été amorcé . &lt;br /&gt;
&lt;br /&gt;
L'établissement des activités nécessairement et documentation sur le choix des sockets à utiliser pour l'envoi des données a également été entamé.&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé l'étude de l'accéléromètre digital, nous devrons nous servir des ports digitales du MEGA et choisir l’accéléromètre à partir duquel nous récupérons les données grâce à un chip select. Pour cela nous devrons utiliser la bibliothèque SPI.h et brancher le CS de l'accéléromètre à des digital pin du mega.&lt;br /&gt;
&lt;br /&gt;
Le deuxième problème survenue est dans la tension limite de l'accéléromètre, en effet ce dernier ne peut supporter que du 3.3V, hors la carte MEGA, elle, délivre du 5V.&lt;br /&gt;
&lt;br /&gt;
De plus le signal sortant de l'accéléromètre est de l'ordre du 3.3V ce qui pourrais être problématique au niveau de la sensibilité du MEGA qui pourrais alors détecter des données biaisées. Nous serons donc amené à réaliser une carte pour faire l'adaptation d'impédance entre  la carte MEGA et l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
Nous avons réalisé une carte électronique grâce au logiciel fritzing pour réaliser l’adaptation de tension entre l’accéléromètre et la carte MEGA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également avancé au niveau de l'application pour smartphone&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
succès de la connexion au wi-fi partagé d'un smartphone.&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41901</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41901"/>
				<updated>2017-05-09T23:39:00Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Semaine 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Les accéléromètres nous permettent de calculer l'angle d'inclinaison à partir de la force gravitationnelle qu'ils peuvent mesurer selon les trois axes. Lorsque la position idéale du patient sera choisie par le médecin, nous pourrons enregistrer cette position en mémorisant l'inclinaison de chaque accéléromètre pour cette position. Ainsi un changement de position sera identifié par une variation des angles d'inclinaison précédemment pris. Nous allons utilisé les accéléromètres analogiques de type adxl335. Une fois que nous aurons à disposition les valeurs de l'accéléromètre et, par conséquent les angles d'inclinaison, nous aurons besoin d'un moyen d'affichage des ces données. Pour ce faire, nous avons opté dans un premier temps pour une affichage sur smartphone. Les données vont être envoyées au smartphone à travers un module WIFI connectés au même réseau que le smartphone.  En récapitulant, nous aurons finalement besoin de:&lt;br /&gt;
* 5 accéléromètres adxl335.&lt;br /&gt;
* un arduino Mega&lt;br /&gt;
* un module WIFI &lt;br /&gt;
* des fils pour la liaison.&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement : accéléromètres à sortie analogique. Nous aurons donc besoin de 3 sorties analogiques par capteur (donc 3*5 sorties analogiques)&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: force gravitationnelle selon les trois axes qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre par rapport à l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
&lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification et acquisition de la position idéale à l'aide des accéléromètres placées le long de la colonne vertébrale;&lt;br /&gt;
*notification au patient (à travers le smartphone) lorsqu'une position différente de celle idéale a été détectée.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 2H&lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| documentation&lt;br /&gt;
| 2h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liste du matériel &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
| 6h&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude du module Wi-fi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
| 2H&lt;br /&gt;
| 4H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude, programmation, câblage du 10 DOF &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4H&lt;br /&gt;
| 8H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accéléromètre &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2H&lt;br /&gt;
| étude 3H &lt;br /&gt;
| &lt;br /&gt;
| schématique 2H &lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| application mobile&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2H&lt;br /&gt;
|4H&lt;br /&gt;
|4H&lt;br /&gt;
|&lt;br /&gt;
|10h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différents choix matériel notamment dans la référence des accéléromètres ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL335. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données vers un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est plus rapide que le module bluetooth. Cependant, ce dernier ne consomme pas beaucoup de charge de la batterie du smartphone mais il fonctionne  essentiellement sur de petites distances et avec des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grandes ainsi que des tailles de données beaucoup plus importantes.&lt;br /&gt;
&lt;br /&gt;
Finalement, nous avons opté pour le module WIFI pour limiter le moins possible l'utilisateur en ce qui concerne la distance entre les appareils et le volume de données transmis.&lt;br /&gt;
&lt;br /&gt;
*Confirmation de la liste de matériel: &lt;br /&gt;
  *accéléromètre ADXL335&lt;br /&gt;
  *Smartphone sous Android&lt;br /&gt;
  *15 longs fils mâle-femelle, mâle-mâle&lt;br /&gt;
  *Arduino pro -mini&lt;br /&gt;
  *Module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnelles avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:cad1_1.PNG| 900px ]]&lt;br /&gt;
[[Fichier:cad1.PNG| 900px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, le 10 DOF, ainsi que la carte ATMEGA qui sera utilisé pour l’acquisition des données. &lt;br /&gt;
&lt;br /&gt;
Nous avons de suite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérés en directe sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof.PNG| 500px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10 DOF que nous testerons la semaine suivante. &lt;br /&gt;
&lt;br /&gt;
 //les bibliotheque concernee&lt;br /&gt;
 #include &amp;lt;Wire.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;Adafruit_Sensor.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;Adafruit_LSM303.h&amp;gt;&lt;br /&gt;
 Adafruit_LSM303 lsm;&lt;br /&gt;
 void setup()&lt;br /&gt;
 {&lt;br /&gt;
   #ifndef ESP8266&lt;br /&gt;
    while (!Serial);     // will pause Zero, Leonardo, etc until serial console opens&lt;br /&gt;
    #endif&lt;br /&gt;
    Serial.begin(9600);&lt;br /&gt;
  // Try to initialise and warn if we couldn't detect the chip&lt;br /&gt;
  if (!lsm.begin())&lt;br /&gt;
  {&lt;br /&gt;
    Serial.println(&amp;quot;Oops ... unable to initialize the LSM303. Check your wiring!&amp;quot;);&lt;br /&gt;
    while (1);&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
 void loop()&lt;br /&gt;
 {&lt;br /&gt;
  lsm.read();&lt;br /&gt;
  Serial.print(&amp;quot;AX: &amp;quot;); Serial.print((int)lsm.accelData.x); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AY: &amp;quot;); Serial.print((int)lsm.accelData.y); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AZ: &amp;quot;); Serial.println((int)lsm.accelData.z); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  delay(100);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération de l'angle réalisé par l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
 void loop() {&lt;br /&gt;
  lsm.read();&lt;br /&gt;
  Serial.print(&amp;quot;AX: &amp;quot;); Serial.print((int)lsm.accelData.x); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AY: &amp;quot;); Serial.print((int)lsm.accelData.y); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AZ: &amp;quot;); Serial.println((int)lsm.accelData.z); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  total = sqrt((lsm.accelData.x*lsm.accelData.x)+(lsm.accelData.y*lsm.accelData.y)+(lsm.accelData.z*lsm.accelData.z));&lt;br /&gt;
  angleX = round(asin(lsm.accelData.x/ total )*180.0/3.1416);&lt;br /&gt;
  angleX = round(asin(lsm.accelData.y/ total )*180.0/3.1416);&lt;br /&gt;
  angleX = round(asin(lsm.accelData.z/ total )*180.0/3.1416);&lt;br /&gt;
  Serial.print(&amp;quot;total:  &amp;quot;);&lt;br /&gt;
  Serial.print(total,0);&lt;br /&gt;
  Serial.print(&amp;quot; Angle x:  &amp;quot;);&lt;br /&gt;
  Serial.print(angleX,0);&lt;br /&gt;
  Serial.print(&amp;quot;  Angle y:  &amp;quot;);&lt;br /&gt;
  Serial.print(angleY,0);&lt;br /&gt;
  Serial.print(&amp;quot;  Angle z:  &amp;quot;);&lt;br /&gt;
  Serial.println(angleZ,0);&lt;br /&gt;
  delay(100);}&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendu compte que les calculs ne sont pas réalisés correctement par le MEGA.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Cela est due au manque de puissance de la carte qui n'est pas faite pour réaliser ces calcules. Nous avons donc décidé que le MEGA servira uniquement à récupéré les données et à les envoyés via module WIFI. Ce sera donc à l'application android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le module WIFI que nous utiliserons, le module ESP8266, afin de se faire une idée de son utilisation.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installé les logiciels nécessaires ( Android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes intéressées  au module wifi, en commençant par lire la fiche technique de l'esp 8266, nous avons également cherché les différents types d'exemples . &lt;br /&gt;
&lt;br /&gt;
Des recherches sur le mode de connexion entre le smartphone et le Mega à travers le module WIFI ont également été effectuer dans le but de se faire une idée, nous hésitons sur l'utilisation de Sockets UDP , ou de réaliser une transmission en TCP .&lt;br /&gt;
&lt;br /&gt;
Le programme réalisée lors de la séance précédente a été testé, notamment les tests de récupération des données de l'accéléromètre 10-DOF sur le Mega.&lt;br /&gt;
&lt;br /&gt;
Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 également été entamé.&lt;br /&gt;
&lt;br /&gt;
Nous avons également rencontré un certain nombre de problème :&lt;br /&gt;
&lt;br /&gt;
*Afin se connecter en WIFI à partir de n’importe où, nous avons décidé de se connecter premièrement à un réseau standard (point d'accès fourni par le smartphone dans un premier temps) puis de modifier le réseau sur lequel nous sommes connecté à partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière.&lt;br /&gt;
&lt;br /&gt;
*La possibilité et l'utilité de l'ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête.&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
* Réception du matériel&lt;br /&gt;
Nous avons commencé par étudié l'accéléromètre reçu, en effet la référence de ce derniers est ADXL 345 ce qui signifie que cette accéléromètre est digital à l’inverse de celui choisit qui était analogique. De ce fait, il faut que nous modifions le code déjà programmé et ré-étudions ce nouvelle accéléromètre .&lt;br /&gt;
&lt;br /&gt;
La partie transmission sur Smartphone avec Android Studio a été amorcé . &lt;br /&gt;
&lt;br /&gt;
L'établissement des activités nécessairement et documentation sur le choix des sockets à utiliser pour l'envoi des données a également été entamé.&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé l'étude de l'accéléromètre digital, nous devrons nous servir des ports digitales du MEGA et choisir l’accéléromètre à partir duquel nous récupérons les données grâce à un chip select. Pour cela nous devrons utiliser la bibliothèque SPI.h et brancher le CS de l'accéléromètre à des digital pin du mega.&lt;br /&gt;
&lt;br /&gt;
Le deuxième problème survenue est dans la tension limite de l'accéléromètre, en effet ce dernier ne peut supporter que du 3.3V, hors la carte MEGA, elle, délivre du 5V.&lt;br /&gt;
&lt;br /&gt;
De plus le signal sortant de l'accéléromètre est de l'ordre du 3.3V ce qui pourrais être problématique au niveau de la sensibilité du MEGA qui pourrais alors détecter des données biaisées. Nous serons donc amené à réaliser une carte pour faire l'adaptation d'impédance entre  la carte MEGA et l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
Nous avons réalisé une carte électronique grâce au logiciel fritzing pour réaliser l’adaptation de tension entre l’accéléromètre et la carte MEGA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également avancé au niveau de l'application pour smartphone&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
succès de la connexion au wi-fi partagé d'un smartphone.&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41900</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41900"/>
				<updated>2017-05-09T23:36:45Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Semaine 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Les accéléromètres nous permettent de calculer l'angle d'inclinaison à partir de la force gravitationnelle qu'ils peuvent mesurer selon les trois axes. Lorsque la position idéale du patient sera choisie par le médecin, nous pourrons enregistrer cette position en mémorisant l'inclinaison de chaque accéléromètre pour cette position. Ainsi un changement de position sera identifié par une variation des angles d'inclinaison précédemment pris. Nous allons utilisé les accéléromètres analogiques de type adxl335. Une fois que nous aurons à disposition les valeurs de l'accéléromètre et, par conséquent les angles d'inclinaison, nous aurons besoin d'un moyen d'affichage des ces données. Pour ce faire, nous avons opté dans un premier temps pour une affichage sur smartphone. Les données vont être envoyées au smartphone à travers un module WIFI connectés au même réseau que le smartphone.  En récapitulant, nous aurons finalement besoin de:&lt;br /&gt;
* 5 accéléromètres adxl335.&lt;br /&gt;
* un arduino Mega&lt;br /&gt;
* un module WIFI &lt;br /&gt;
* des fils pour la liaison.&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement : accéléromètres à sortie analogique. Nous aurons donc besoin de 3 sorties analogiques par capteur (donc 3*5 sorties analogiques)&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: force gravitationnelle selon les trois axes qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre par rapport à l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
&lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification et acquisition de la position idéale à l'aide des accéléromètres placées le long de la colonne vertébrale;&lt;br /&gt;
*notification au patient (à travers le smartphone) lorsqu'une position différente de celle idéale a été détectée.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 2H&lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| documentation&lt;br /&gt;
| 2h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liste du matériel &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
| 6h&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude du module Wi-fi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
| 2H&lt;br /&gt;
| 4H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude, programmation, câblage du 10 DOF &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4H&lt;br /&gt;
| 8H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accéléromètre &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2H&lt;br /&gt;
| étude 3H &lt;br /&gt;
| &lt;br /&gt;
| schématique 2H &lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| application mobile&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2H&lt;br /&gt;
|4H&lt;br /&gt;
|4H&lt;br /&gt;
|&lt;br /&gt;
|10h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différents choix matériel notamment dans la référence des accéléromètres ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL335. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données vers un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est plus rapide que le module bluetooth. Cependant, ce dernier ne consomme pas beaucoup de charge de la batterie du smartphone mais il fonctionne  essentiellement sur de petites distances et avec des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grandes ainsi que des tailles de données beaucoup plus importantes.&lt;br /&gt;
&lt;br /&gt;
Finalement, nous avons opté pour le module WIFI pour limiter le moins possible l'utilisateur en ce qui concerne la distance entre les appareils et le volume de données transmis.&lt;br /&gt;
&lt;br /&gt;
*Confirmation de la liste de matériel: &lt;br /&gt;
  *accéléromètre ADXL335&lt;br /&gt;
  *Smartphone sous Android&lt;br /&gt;
  *15 longs fils mâle-femelle, mâle-mâle&lt;br /&gt;
  *Arduino pro -mini&lt;br /&gt;
  *Module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnels avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:cad1_1.PNG| 900px ]]&lt;br /&gt;
[[Fichier:cad1.PNG| 900px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, le 10 DOF, ainsi que la carte ATMEGA qui sera utilisé pour l’acquisition des données. &lt;br /&gt;
&lt;br /&gt;
Nous avons de suite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérés en directe sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof.PNG| 500px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10 DOF que nous testerons la semaine suivante. &lt;br /&gt;
&lt;br /&gt;
 //les bibliotheque concernee&lt;br /&gt;
 #include &amp;lt;Wire.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;Adafruit_Sensor.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;Adafruit_LSM303.h&amp;gt;&lt;br /&gt;
 Adafruit_LSM303 lsm;&lt;br /&gt;
 void setup()&lt;br /&gt;
 {&lt;br /&gt;
   #ifndef ESP8266&lt;br /&gt;
    while (!Serial);     // will pause Zero, Leonardo, etc until serial console opens&lt;br /&gt;
    #endif&lt;br /&gt;
    Serial.begin(9600);&lt;br /&gt;
  // Try to initialise and warn if we couldn't detect the chip&lt;br /&gt;
  if (!lsm.begin())&lt;br /&gt;
  {&lt;br /&gt;
    Serial.println(&amp;quot;Oops ... unable to initialize the LSM303. Check your wiring!&amp;quot;);&lt;br /&gt;
    while (1);&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
 void loop()&lt;br /&gt;
 {&lt;br /&gt;
  lsm.read();&lt;br /&gt;
  Serial.print(&amp;quot;AX: &amp;quot;); Serial.print((int)lsm.accelData.x); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AY: &amp;quot;); Serial.print((int)lsm.accelData.y); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AZ: &amp;quot;); Serial.println((int)lsm.accelData.z); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  delay(100);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération de l'angle réalisé par l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
 void loop() {&lt;br /&gt;
  lsm.read();&lt;br /&gt;
  Serial.print(&amp;quot;AX: &amp;quot;); Serial.print((int)lsm.accelData.x); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AY: &amp;quot;); Serial.print((int)lsm.accelData.y); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AZ: &amp;quot;); Serial.println((int)lsm.accelData.z); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  total = sqrt((lsm.accelData.x*lsm.accelData.x)+(lsm.accelData.y*lsm.accelData.y)+(lsm.accelData.z*lsm.accelData.z));&lt;br /&gt;
  angleX = round(asin(lsm.accelData.x/ total )*180.0/3.1416);&lt;br /&gt;
  angleX = round(asin(lsm.accelData.y/ total )*180.0/3.1416);&lt;br /&gt;
  angleX = round(asin(lsm.accelData.z/ total )*180.0/3.1416);&lt;br /&gt;
  Serial.print(&amp;quot;total:  &amp;quot;);&lt;br /&gt;
  Serial.print(total,0);&lt;br /&gt;
  Serial.print(&amp;quot; Angle x:  &amp;quot;);&lt;br /&gt;
  Serial.print(angleX,0);&lt;br /&gt;
  Serial.print(&amp;quot;  Angle y:  &amp;quot;);&lt;br /&gt;
  Serial.print(angleY,0);&lt;br /&gt;
  Serial.print(&amp;quot;  Angle z:  &amp;quot;);&lt;br /&gt;
  Serial.println(angleZ,0);&lt;br /&gt;
  delay(100);}&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendu compte que les calculs ne sont pas réalisés correctement par le MEGA.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Cela est due au manque de puissance de la carte qui n'est pas faite pour réaliser ces calcules. Nous avons donc décidé que le MEGA servira uniquement à récupéré les données et à les envoyés via module WIFI. Ce sera donc à l'application android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le module WIFI que nous utiliserons, le module ESP8266, afin de se faire une idée de son utilisation.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installé les logiciels nécessaires ( Android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes intéressées  au module wifi, en commençant par lire la fiche technique de l'esp 8266, nous avons également cherché les différents types d'exemples . &lt;br /&gt;
&lt;br /&gt;
Des recherches sur le mode de connexion entre le smartphone et le Mega à travers le module WIFI ont également été effectuer dans le but de se faire une idée, nous hésitons sur l'utilisation de Sockets UDP , ou de réaliser une transmission en TCP .&lt;br /&gt;
&lt;br /&gt;
Le programme réalisée lors de la séance précédente a été testé, notamment les tests de récupération des données de l'accéléromètre 10-DOF sur le Mega.&lt;br /&gt;
&lt;br /&gt;
Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 également été entamé.&lt;br /&gt;
&lt;br /&gt;
Nous avons également rencontré un certain nombre de problème :&lt;br /&gt;
&lt;br /&gt;
*Afin se connecter en WIFI à partir de n’importe où, nous avons décidé de se connecter premièrement à un réseau standard (point d'accès fourni par le smartphone dans un premier temps) puis de modifier le réseau sur lequel nous sommes connecté à partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière.&lt;br /&gt;
&lt;br /&gt;
*La possibilité et l'utilité de l'ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête.&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
* Réception du matériel&lt;br /&gt;
Nous avons commencé par étudié l'accéléromètre reçu, en effet la référence de ce derniers est ADXL 345 ce qui signifie que cette accéléromètre est digital à l’inverse de celui choisit qui était analogique. De ce fait, il faut que nous modifions le code déjà programmé et ré-étudions ce nouvelle accéléromètre .&lt;br /&gt;
&lt;br /&gt;
La partie transmission sur Smartphone avec Android Studio a été amorcé . &lt;br /&gt;
&lt;br /&gt;
L'établissement des activités nécessairement et documentation sur le choix des sockets à utiliser pour l'envoi des données a également été entamé.&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé l'étude de l'accéléromètre digital, nous devrons nous servir des ports digitales du MEGA et choisir l’accéléromètre à partir duquel nous récupérons les données grâce à un chip select. Pour cela nous devrons utiliser la bibliothèque SPI.h et brancher le CS de l'accéléromètre à des digital pin du mega.&lt;br /&gt;
&lt;br /&gt;
Le deuxième problème survenue est dans la tension limite de l'accéléromètre, en effet ce dernier ne peut supporter que du 3.3V, hors la carte MEGA, elle, délivre du 5V.&lt;br /&gt;
&lt;br /&gt;
De plus le signal sortant de l'accéléromètre est de l'ordre du 3.3V ce qui pourrais être problématique au niveau de la sensibilité du MEGA qui pourrais alors détecter des données biaisées. Nous serons donc amené à réaliser une carte pour faire l'adaptation d'impédance entre  la carte MEGA et l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
Nous avons réalisé une carte électronique grâce au logiciel fritzing pour réaliser l’adaptation de tension entre l’accéléromètre et la carte MEGA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également avancé au niveau de l'application pour smartphone&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
succès de la connexion au wi-fi partagé d'un smartphone.&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41899</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41899"/>
				<updated>2017-05-09T23:35:49Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Liste des tâches à effectuer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Les accéléromètres nous permettent de calculer l'angle d'inclinaison à partir de la force gravitationnelle qu'ils peuvent mesurer selon les trois axes. Lorsque la position idéale du patient sera choisie par le médecin, nous pourrons enregistrer cette position en mémorisant l'inclinaison de chaque accéléromètre pour cette position. Ainsi un changement de position sera identifié par une variation des angles d'inclinaison précédemment pris. Nous allons utilisé les accéléromètres analogiques de type adxl335. Une fois que nous aurons à disposition les valeurs de l'accéléromètre et, par conséquent les angles d'inclinaison, nous aurons besoin d'un moyen d'affichage des ces données. Pour ce faire, nous avons opté dans un premier temps pour une affichage sur smartphone. Les données vont être envoyées au smartphone à travers un module WIFI connectés au même réseau que le smartphone.  En récapitulant, nous aurons finalement besoin de:&lt;br /&gt;
* 5 accéléromètres adxl335.&lt;br /&gt;
* un arduino Mega&lt;br /&gt;
* un module WIFI &lt;br /&gt;
* des fils pour la liaison.&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement : accéléromètres à sortie analogique. Nous aurons donc besoin de 3 sorties analogiques par capteur (donc 3*5 sorties analogiques)&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: force gravitationnelle selon les trois axes qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre par rapport à l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
&lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification et acquisition de la position idéale à l'aide des accéléromètres placées le long de la colonne vertébrale;&lt;br /&gt;
*notification au patient (à travers le smartphone) lorsqu'une position différente de celle idéale a été détectée.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 2H&lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| documentation&lt;br /&gt;
| 2h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liste du matériel &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
| 6h&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude du module Wi-fi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
| 2H&lt;br /&gt;
| 4H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude, programmation, câblage du 10 DOF &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4H&lt;br /&gt;
| 8H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accéléromètre &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2H&lt;br /&gt;
| étude 3H &lt;br /&gt;
| &lt;br /&gt;
| schématique 2H &lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| application mobile&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2H&lt;br /&gt;
|4H&lt;br /&gt;
|4H&lt;br /&gt;
|&lt;br /&gt;
|10h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différents choix matériel notamment dans la référence des accéléromètres ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL345. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données vers un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est plus rapide que le module bluetooth. Cependant, ce dernier ne consomme pas beaucoup de charge de la batterie du smartphone mais il fonctionne  essentiellement sur de petites distances et avec des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grandes ainsi que des tailles de données beaucoup plus importantes.&lt;br /&gt;
&lt;br /&gt;
Finalement, nous avons opté pour le module WIFI pour limiter le moins possible l'utilisateur en ce qui concerne la distance entre les appareils et le volume de données transmis.&lt;br /&gt;
&lt;br /&gt;
*Confirmation de la liste de matériel: &lt;br /&gt;
  *accéléromètre ADXL345&lt;br /&gt;
  *Smartphone sous Android&lt;br /&gt;
  *15 longs fils mâle-femelle, mâle-mâle&lt;br /&gt;
  *Arduino pro -mini&lt;br /&gt;
  *Module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnels avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:cad1_1.PNG| 900px ]]&lt;br /&gt;
[[Fichier:cad1.PNG| 900px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, le 10 DOF, ainsi que la carte ATMEGA qui sera utilisé pour l’acquisition des données. &lt;br /&gt;
&lt;br /&gt;
Nous avons de suite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérés en directe sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof.PNG| 500px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10 DOF que nous testerons la semaine suivante. &lt;br /&gt;
&lt;br /&gt;
 //les bibliotheque concernee&lt;br /&gt;
 #include &amp;lt;Wire.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;Adafruit_Sensor.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;Adafruit_LSM303.h&amp;gt;&lt;br /&gt;
 Adafruit_LSM303 lsm;&lt;br /&gt;
 void setup()&lt;br /&gt;
 {&lt;br /&gt;
   #ifndef ESP8266&lt;br /&gt;
    while (!Serial);     // will pause Zero, Leonardo, etc until serial console opens&lt;br /&gt;
    #endif&lt;br /&gt;
    Serial.begin(9600);&lt;br /&gt;
  // Try to initialise and warn if we couldn't detect the chip&lt;br /&gt;
  if (!lsm.begin())&lt;br /&gt;
  {&lt;br /&gt;
    Serial.println(&amp;quot;Oops ... unable to initialize the LSM303. Check your wiring!&amp;quot;);&lt;br /&gt;
    while (1);&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
 void loop()&lt;br /&gt;
 {&lt;br /&gt;
  lsm.read();&lt;br /&gt;
  Serial.print(&amp;quot;AX: &amp;quot;); Serial.print((int)lsm.accelData.x); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AY: &amp;quot;); Serial.print((int)lsm.accelData.y); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AZ: &amp;quot;); Serial.println((int)lsm.accelData.z); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  delay(100);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération de l'angle réalisé par l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
 void loop() {&lt;br /&gt;
  lsm.read();&lt;br /&gt;
  Serial.print(&amp;quot;AX: &amp;quot;); Serial.print((int)lsm.accelData.x); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AY: &amp;quot;); Serial.print((int)lsm.accelData.y); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AZ: &amp;quot;); Serial.println((int)lsm.accelData.z); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  total = sqrt((lsm.accelData.x*lsm.accelData.x)+(lsm.accelData.y*lsm.accelData.y)+(lsm.accelData.z*lsm.accelData.z));&lt;br /&gt;
  angleX = round(asin(lsm.accelData.x/ total )*180.0/3.1416);&lt;br /&gt;
  angleX = round(asin(lsm.accelData.y/ total )*180.0/3.1416);&lt;br /&gt;
  angleX = round(asin(lsm.accelData.z/ total )*180.0/3.1416);&lt;br /&gt;
  Serial.print(&amp;quot;total:  &amp;quot;);&lt;br /&gt;
  Serial.print(total,0);&lt;br /&gt;
  Serial.print(&amp;quot; Angle x:  &amp;quot;);&lt;br /&gt;
  Serial.print(angleX,0);&lt;br /&gt;
  Serial.print(&amp;quot;  Angle y:  &amp;quot;);&lt;br /&gt;
  Serial.print(angleY,0);&lt;br /&gt;
  Serial.print(&amp;quot;  Angle z:  &amp;quot;);&lt;br /&gt;
  Serial.println(angleZ,0);&lt;br /&gt;
  delay(100);}&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendu compte que les calculs ne sont pas réalisés correctement par le MEGA.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Cela est due au manque de puissance de la carte qui n'est pas faite pour réaliser ces calcules. Nous avons donc décidé que le MEGA servira uniquement à récupéré les données et à les envoyés via module WIFI. Ce sera donc à l'application android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le module WIFI que nous utiliserons, le module ESP8266, afin de se faire une idée de son utilisation.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installé les logiciels nécessaires ( Android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes intéressées  au module wifi, en commençant par lire la fiche technique de l'esp 8266, nous avons également cherché les différents types d'exemples . &lt;br /&gt;
&lt;br /&gt;
Des recherches sur le mode de connexion entre le smartphone et le Mega à travers le module WIFI ont également été effectuer dans le but de se faire une idée, nous hésitons sur l'utilisation de Sockets UDP , ou de réaliser une transmission en TCP .&lt;br /&gt;
&lt;br /&gt;
Le programme réalisée lors de la séance précédente a été testé, notamment les tests de récupération des données de l'accéléromètre 10-DOF sur le Mega.&lt;br /&gt;
&lt;br /&gt;
Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 également été entamé.&lt;br /&gt;
&lt;br /&gt;
Nous avons également rencontré un certain nombre de problème :&lt;br /&gt;
&lt;br /&gt;
*Afin se connecter en WIFI à partir de n’importe où, nous avons décidé de se connecter premièrement à un réseau standard (point d'accès fourni par le smartphone dans un premier temps) puis de modifier le réseau sur lequel nous sommes connecté à partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière.&lt;br /&gt;
&lt;br /&gt;
*La possibilité et l'utilité de l'ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête.&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
* Réception du matériel&lt;br /&gt;
Nous avons commencé par étudié l'accéléromètre reçu, en effet la référence de ce derniers est ADXL 345 ce qui signifie que cette accéléromètre est digital à l’inverse de celui choisit qui était analogique. De ce fait, il faut que nous modifions le code déjà programmé et ré-étudions ce nouvelle accéléromètre .&lt;br /&gt;
&lt;br /&gt;
La partie transmission sur Smartphone avec Android Studio a été amorcé . &lt;br /&gt;
&lt;br /&gt;
L'établissement des activités nécessairement et documentation sur le choix des sockets à utiliser pour l'envoi des données a également été entamé.&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé l'étude de l'accéléromètre digital, nous devrons nous servir des ports digitales du MEGA et choisir l’accéléromètre à partir duquel nous récupérons les données grâce à un chip select. Pour cela nous devrons utiliser la bibliothèque SPI.h et brancher le CS de l'accéléromètre à des digital pin du mega.&lt;br /&gt;
&lt;br /&gt;
Le deuxième problème survenue est dans la tension limite de l'accéléromètre, en effet ce dernier ne peut supporter que du 3.3V, hors la carte MEGA, elle, délivre du 5V.&lt;br /&gt;
&lt;br /&gt;
De plus le signal sortant de l'accéléromètre est de l'ordre du 3.3V ce qui pourrais être problématique au niveau de la sensibilité du MEGA qui pourrais alors détecter des données biaisées. Nous serons donc amené à réaliser une carte pour faire l'adaptation d'impédance entre  la carte MEGA et l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
Nous avons réalisé une carte électronique grâce au logiciel fritzing pour réaliser l’adaptation de tension entre l’accéléromètre et la carte MEGA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également avancé au niveau de l'application pour smartphone&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
succès de la connexion au wi-fi partagé d'un smartphone.&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41898</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41898"/>
				<updated>2017-05-09T23:31:23Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Choix techniques : matériel et logiciels */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Les accéléromètres nous permettent de calculer l'angle d'inclinaison à partir de la force gravitationnelle qu'ils peuvent mesurer selon les trois axes. Lorsque la position idéale du patient sera choisie par le médecin, nous pourrons enregistrer cette position en mémorisant l'inclinaison de chaque accéléromètre pour cette position. Ainsi un changement de position sera identifié par une variation des angles d'inclinaison précédemment pris. Nous allons utilisé les accéléromètres analogiques de type adxl335. Une fois que nous aurons à disposition les valeurs de l'accéléromètre et, par conséquent les angles d'inclinaison, nous aurons besoin d'un moyen d'affichage des ces données. Pour ce faire, nous avons opté dans un premier temps pour une affichage sur smartphone. Les données vont être envoyées au smartphone à travers un module WIFI connectés au même réseau que le smartphone.  En récapitulant, nous aurons finalement besoin de:&lt;br /&gt;
* 5 accéléromètres adxl335.&lt;br /&gt;
* un arduino Mega&lt;br /&gt;
* un module WIFI &lt;br /&gt;
* des fils pour la liaison.&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement : accéléromètres digitaux pouvant fonctionner en SPI comme en I2C et supportant 3.3V. Résolution: 10 bits, régler en mode +/-2g. Donc les valeurs de notre registre de données seront dans la plage [-512 ,512]. Mais puisque nous ne mesurons que la force gravitationnelle, nous aurons des valeurs comprises entre [-256,256] qui est la plage correspondant à -/1g. 1g correspond à la valeur de 9.80m/s2.&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: des entiers de -512 à 512 qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre selon l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
&lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification et acquisition de la position idéale à l'aide des accéléromètres placées le long de la colonne vertébrale;&lt;br /&gt;
*notification au patient (à travers le smartphone) lorsqu'une position différente de celle idéale a été détectée.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 2H&lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| documentation&lt;br /&gt;
| 2h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liste du matériel &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
| 6h&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude du module Wi-fi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
| 2H&lt;br /&gt;
| 4H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude, programmation, câblage du 10 DOF &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4H&lt;br /&gt;
| 8H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accéléromètre &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2H&lt;br /&gt;
| étude 3H &lt;br /&gt;
| &lt;br /&gt;
| schématique 2H &lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| application mobile&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2H&lt;br /&gt;
|4H&lt;br /&gt;
|4H&lt;br /&gt;
|&lt;br /&gt;
|10h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différents choix matériel notamment dans la référence des accéléromètres ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL345. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données vers un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est plus rapide que le module bluetooth. Cependant, ce dernier ne consomme pas beaucoup de charge de la batterie du smartphone mais il fonctionne  essentiellement sur de petites distances et avec des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grandes ainsi que des tailles de données beaucoup plus importantes.&lt;br /&gt;
&lt;br /&gt;
Finalement, nous avons opté pour le module WIFI pour limiter le moins possible l'utilisateur en ce qui concerne la distance entre les appareils et le volume de données transmis.&lt;br /&gt;
&lt;br /&gt;
*Confirmation de la liste de matériel: &lt;br /&gt;
  *accéléromètre ADXL345&lt;br /&gt;
  *Smartphone sous Android&lt;br /&gt;
  *15 longs fils mâle-femelle, mâle-mâle&lt;br /&gt;
  *Arduino pro -mini&lt;br /&gt;
  *Module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnels avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:cad1_1.PNG| 900px ]]&lt;br /&gt;
[[Fichier:cad1.PNG| 900px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, le 10 DOF, ainsi que la carte ATMEGA qui sera utilisé pour l’acquisition des données. &lt;br /&gt;
&lt;br /&gt;
Nous avons de suite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérés en directe sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof.PNG| 500px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10 DOF que nous testerons la semaine suivante. &lt;br /&gt;
&lt;br /&gt;
 //les bibliotheque concernee&lt;br /&gt;
 #include &amp;lt;Wire.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;Adafruit_Sensor.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;Adafruit_LSM303.h&amp;gt;&lt;br /&gt;
 Adafruit_LSM303 lsm;&lt;br /&gt;
 void setup()&lt;br /&gt;
 {&lt;br /&gt;
   #ifndef ESP8266&lt;br /&gt;
    while (!Serial);     // will pause Zero, Leonardo, etc until serial console opens&lt;br /&gt;
    #endif&lt;br /&gt;
    Serial.begin(9600);&lt;br /&gt;
  // Try to initialise and warn if we couldn't detect the chip&lt;br /&gt;
  if (!lsm.begin())&lt;br /&gt;
  {&lt;br /&gt;
    Serial.println(&amp;quot;Oops ... unable to initialize the LSM303. Check your wiring!&amp;quot;);&lt;br /&gt;
    while (1);&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
 void loop()&lt;br /&gt;
 {&lt;br /&gt;
  lsm.read();&lt;br /&gt;
  Serial.print(&amp;quot;AX: &amp;quot;); Serial.print((int)lsm.accelData.x); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AY: &amp;quot;); Serial.print((int)lsm.accelData.y); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AZ: &amp;quot;); Serial.println((int)lsm.accelData.z); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  delay(100);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération de l'angle réalisé par l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
 void loop() {&lt;br /&gt;
  lsm.read();&lt;br /&gt;
  Serial.print(&amp;quot;AX: &amp;quot;); Serial.print((int)lsm.accelData.x); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AY: &amp;quot;); Serial.print((int)lsm.accelData.y); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AZ: &amp;quot;); Serial.println((int)lsm.accelData.z); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  total = sqrt((lsm.accelData.x*lsm.accelData.x)+(lsm.accelData.y*lsm.accelData.y)+(lsm.accelData.z*lsm.accelData.z));&lt;br /&gt;
  angleX = round(asin(lsm.accelData.x/ total )*180.0/3.1416);&lt;br /&gt;
  angleX = round(asin(lsm.accelData.y/ total )*180.0/3.1416);&lt;br /&gt;
  angleX = round(asin(lsm.accelData.z/ total )*180.0/3.1416);&lt;br /&gt;
  Serial.print(&amp;quot;total:  &amp;quot;);&lt;br /&gt;
  Serial.print(total,0);&lt;br /&gt;
  Serial.print(&amp;quot; Angle x:  &amp;quot;);&lt;br /&gt;
  Serial.print(angleX,0);&lt;br /&gt;
  Serial.print(&amp;quot;  Angle y:  &amp;quot;);&lt;br /&gt;
  Serial.print(angleY,0);&lt;br /&gt;
  Serial.print(&amp;quot;  Angle z:  &amp;quot;);&lt;br /&gt;
  Serial.println(angleZ,0);&lt;br /&gt;
  delay(100);}&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendu compte que les calculs ne sont pas réalisés correctement par le MEGA.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Cela est due au manque de puissance de la carte qui n'est pas faite pour réaliser ces calcules. Nous avons donc décidé que le MEGA servira uniquement à récupéré les données et à les envoyés via module WIFI. Ce sera donc à l'application android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le module WIFI que nous utiliserons, le module ESP8266, afin de se faire une idée de son utilisation.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installé les logiciels nécessaires ( Android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes intéressées  au module wifi, en commençant par lire la fiche technique de l'esp 8266, nous avons également cherché les différents types d'exemples . &lt;br /&gt;
&lt;br /&gt;
Des recherches sur le mode de connexion entre le smartphone et le Mega à travers le module WIFI ont également été effectuer dans le but de se faire une idée, nous hésitons sur l'utilisation de Sockets UDP , ou de réaliser une transmission en TCP .&lt;br /&gt;
&lt;br /&gt;
Le programme réalisée lors de la séance précédente a été testé, notamment les tests de récupération des données de l'accéléromètre 10-DOF sur le Mega.&lt;br /&gt;
&lt;br /&gt;
Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 également été entamé.&lt;br /&gt;
&lt;br /&gt;
Nous avons également rencontré un certain nombre de problème :&lt;br /&gt;
&lt;br /&gt;
*Afin se connecter en WIFI à partir de n’importe où, nous avons décidé de se connecter premièrement à un réseau standard (point d'accès fourni par le smartphone dans un premier temps) puis de modifier le réseau sur lequel nous sommes connecté à partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière.&lt;br /&gt;
&lt;br /&gt;
*La possibilité et l'utilité de l'ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête.&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
* Réception du matériel&lt;br /&gt;
Nous avons commencé par étudié l'accéléromètre reçu, en effet la référence de ce derniers est ADXL 345 ce qui signifie que cette accéléromètre est digital à l’inverse de celui choisit qui était analogique. De ce fait, il faut que nous modifions le code déjà programmé et ré-étudions ce nouvelle accéléromètre .&lt;br /&gt;
&lt;br /&gt;
La partie transmission sur Smartphone avec Android Studio a été amorcé . &lt;br /&gt;
&lt;br /&gt;
L'établissement des activités nécessairement et documentation sur le choix des sockets à utiliser pour l'envoi des données a également été entamé.&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé l'étude de l'accéléromètre digital, nous devrons nous servir des ports digitales du MEGA et choisir l’accéléromètre à partir duquel nous récupérons les données grâce à un chip select. Pour cela nous devrons utiliser la bibliothèque SPI.h et brancher le CS de l'accéléromètre à des digital pin du mega.&lt;br /&gt;
&lt;br /&gt;
Le deuxième problème survenue est dans la tension limite de l'accéléromètre, en effet ce dernier ne peut supporter que du 3.3V, hors la carte MEGA, elle, délivre du 5V.&lt;br /&gt;
&lt;br /&gt;
De plus le signal sortant de l'accéléromètre est de l'ordre du 3.3V ce qui pourrais être problématique au niveau de la sensibilité du MEGA qui pourrais alors détecter des données biaisées. Nous serons donc amené à réaliser une carte pour faire l'adaptation d'impédance entre  la carte MEGA et l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
Nous avons réalisé une carte électronique grâce au logiciel fritzing pour réaliser l’adaptation de tension entre l’accéléromètre et la carte MEGA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également avancé au niveau de l'application pour smartphone&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
succès de la connexion au wi-fi partagé d'un smartphone.&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41897</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41897"/>
				<updated>2017-05-09T23:24:46Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Semaine 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Les accéléromètres nous permettent de calculer l'angle d'inclinaison à partir de la force gravitationnelle qu'ils peuvent mesurer selon les trois axes. Lorsque la position idéale du patient sera choisie par le médecin, nous pourrons enregistrer cette position en mémorisant l'inclinaison de chaque accéléromètre pour cette position. Ainsi un changement de position sera identifié par une variation des angles d'inclinaison précédemment pris. Nous allons utilisé les accéléromètres digitaux de type adxl345. Ils sont alimentés en 3.3V, ce qui nous amènera à utiliser un arduino pro mini de 3.3V.  Une fois que nous aurons à disposition les valeurs de l'accéléromètre et, par conséquent les angles d'inclinaison, nous aurons besoin d'un moyen d'affichage des ces données. Pour ce faire, nous avons opté dans un premier temps pour un affichage sur smartphone. Les données vont être envoyées au smartphone à travers un module WIFI connectés au même réseau que le smartphone.  En récapitulant, nous aurons finalement besoin de:&lt;br /&gt;
* 5 accéléromètres adxl345.&lt;br /&gt;
* un arduino pro mini 3.3V&lt;br /&gt;
* un module WIFI &lt;br /&gt;
* des fils pour la liaison.&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement : accéléromètres digitaux pouvant fonctionner en SPI comme en I2C et supportant 3.3V. Résolution: 10 bits, régler en mode +/-2g. Donc les valeurs de notre registre de données seront dans la plage [-512 ,512]. Mais puisque nous ne mesurons que la force gravitationnelle, nous aurons des valeurs comprises entre [-256,256] qui est la plage correspondant à -/1g. 1g correspond à la valeur de 9.80m/s2.&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: des entiers de -512 à 512 qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre selon l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
&lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification et acquisition de la position idéale à l'aide des accéléromètres placées le long de la colonne vertébrale;&lt;br /&gt;
*notification au patient (à travers le smartphone) lorsqu'une position différente de celle idéale a été détectée.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 2H&lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| documentation&lt;br /&gt;
| 2h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liste du matériel &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
| 6h&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude du module Wi-fi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
| 2H&lt;br /&gt;
| 4H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude, programmation, câblage du 10 DOF &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4H&lt;br /&gt;
| 8H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accéléromètre &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2H&lt;br /&gt;
| étude 3H &lt;br /&gt;
| &lt;br /&gt;
| schématique 2H &lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| application mobile&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2H&lt;br /&gt;
|4H&lt;br /&gt;
|4H&lt;br /&gt;
|&lt;br /&gt;
|10h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différents choix matériel notamment dans la référence des accéléromètres ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL345. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données vers un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est plus rapide que le module bluetooth. Cependant, ce dernier ne consomme pas beaucoup de charge de la batterie du smartphone mais il fonctionne  essentiellement sur de petites distances et avec des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grandes ainsi que des tailles de données beaucoup plus importantes.&lt;br /&gt;
&lt;br /&gt;
Finalement, nous avons opté pour le module WIFI pour limiter le moins possible l'utilisateur en ce qui concerne la distance entre les appareils et le volume de données transmis.&lt;br /&gt;
&lt;br /&gt;
*Confirmation de la liste de matériel: &lt;br /&gt;
  *accéléromètre ADXL345&lt;br /&gt;
  *Smartphone sous Android&lt;br /&gt;
  *15 longs fils mâle-femelle, mâle-mâle&lt;br /&gt;
  *Arduino pro -mini&lt;br /&gt;
  *Module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnels avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:cad1_1.PNG| 900px ]]&lt;br /&gt;
[[Fichier:cad1.PNG| 900px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, le 10 DOF, ainsi que la carte ATMEGA qui sera utilisé pour l’acquisition des données. &lt;br /&gt;
&lt;br /&gt;
Nous avons de suite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérés en directe sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof.PNG| 500px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10 DOF que nous testerons la semaine suivante. &lt;br /&gt;
&lt;br /&gt;
 //les bibliotheque concernee&lt;br /&gt;
 #include &amp;lt;Wire.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;Adafruit_Sensor.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;Adafruit_LSM303.h&amp;gt;&lt;br /&gt;
 Adafruit_LSM303 lsm;&lt;br /&gt;
 void setup()&lt;br /&gt;
 {&lt;br /&gt;
   #ifndef ESP8266&lt;br /&gt;
    while (!Serial);     // will pause Zero, Leonardo, etc until serial console opens&lt;br /&gt;
    #endif&lt;br /&gt;
    Serial.begin(9600);&lt;br /&gt;
  // Try to initialise and warn if we couldn't detect the chip&lt;br /&gt;
  if (!lsm.begin())&lt;br /&gt;
  {&lt;br /&gt;
    Serial.println(&amp;quot;Oops ... unable to initialize the LSM303. Check your wiring!&amp;quot;);&lt;br /&gt;
    while (1);&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
 void loop()&lt;br /&gt;
 {&lt;br /&gt;
  lsm.read();&lt;br /&gt;
  Serial.print(&amp;quot;AX: &amp;quot;); Serial.print((int)lsm.accelData.x); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AY: &amp;quot;); Serial.print((int)lsm.accelData.y); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AZ: &amp;quot;); Serial.println((int)lsm.accelData.z); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  delay(100);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération de l'angle réalisé par l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
 void loop() {&lt;br /&gt;
  lsm.read();&lt;br /&gt;
  Serial.print(&amp;quot;AX: &amp;quot;); Serial.print((int)lsm.accelData.x); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AY: &amp;quot;); Serial.print((int)lsm.accelData.y); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AZ: &amp;quot;); Serial.println((int)lsm.accelData.z); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  total = sqrt((lsm.accelData.x*lsm.accelData.x)+(lsm.accelData.y*lsm.accelData.y)+(lsm.accelData.z*lsm.accelData.z));&lt;br /&gt;
  angleX = round(asin(lsm.accelData.x/ total )*180.0/3.1416);&lt;br /&gt;
  angleX = round(asin(lsm.accelData.y/ total )*180.0/3.1416);&lt;br /&gt;
  angleX = round(asin(lsm.accelData.z/ total )*180.0/3.1416);&lt;br /&gt;
  Serial.print(&amp;quot;total:  &amp;quot;);&lt;br /&gt;
  Serial.print(total,0);&lt;br /&gt;
  Serial.print(&amp;quot; Angle x:  &amp;quot;);&lt;br /&gt;
  Serial.print(angleX,0);&lt;br /&gt;
  Serial.print(&amp;quot;  Angle y:  &amp;quot;);&lt;br /&gt;
  Serial.print(angleY,0);&lt;br /&gt;
  Serial.print(&amp;quot;  Angle z:  &amp;quot;);&lt;br /&gt;
  Serial.println(angleZ,0);&lt;br /&gt;
  delay(100);}&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendu compte que les calculs ne sont pas réalisés correctement par le MEGA.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Cela est due au manque de puissance de la carte qui n'est pas faite pour réaliser ces calcules. Nous avons donc décidé que le MEGA servira uniquement à récupéré les données et à les envoyés via module WIFI. Ce sera donc à l'application android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le module WIFI que nous utiliserons, le module ESP8266, afin de se faire une idée de son utilisation.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installé les logiciels nécessaires ( Android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes intéressées  au module wifi, en commençant par lire la fiche technique de l'esp 8266, nous avons également cherché les différents types d'exemples . &lt;br /&gt;
&lt;br /&gt;
Des recherches sur le mode de connexion entre le smartphone et le Mega à travers le module WIFI ont également été effectuer dans le but de se faire une idée, nous hésitons sur l'utilisation de Sockets UDP , ou de réaliser une transmission en TCP .&lt;br /&gt;
&lt;br /&gt;
Le programme réalisée lors de la séance précédente a été testé, notamment les tests de récupération des données de l'accéléromètre 10-DOF sur le Mega.&lt;br /&gt;
&lt;br /&gt;
Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 également été entamé.&lt;br /&gt;
&lt;br /&gt;
Nous avons également rencontré un certain nombre de problème :&lt;br /&gt;
&lt;br /&gt;
*Afin se connecter en WIFI à partir de n’importe où, nous avons décidé de se connecter premièrement à un réseau standard (point d'accès fourni par le smartphone dans un premier temps) puis de modifier le réseau sur lequel nous sommes connecté à partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière.&lt;br /&gt;
&lt;br /&gt;
*La possibilité et l'utilité de l'ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête.&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
* Réception du matériel&lt;br /&gt;
Nous avons commencé par étudié l'accéléromètre reçu, en effet la référence de ce derniers est ADXL 345 ce qui signifie que cette accéléromètre est digital à l’inverse de celui choisit qui était analogique. De ce fait, il faut que nous modifions le code déjà programmé et ré-étudions ce nouvelle accéléromètre .&lt;br /&gt;
&lt;br /&gt;
La partie transmission sur Smartphone avec Android Studio a été amorcé . &lt;br /&gt;
&lt;br /&gt;
L'établissement des activités nécessairement et documentation sur le choix des sockets à utiliser pour l'envoi des données a également été entamé.&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé l'étude de l'accéléromètre digital, nous devrons nous servir des ports digitales du MEGA et choisir l’accéléromètre à partir duquel nous récupérons les données grâce à un chip select. Pour cela nous devrons utiliser la bibliothèque SPI.h et brancher le CS de l'accéléromètre à des digital pin du mega.&lt;br /&gt;
&lt;br /&gt;
Le deuxième problème survenue est dans la tension limite de l'accéléromètre, en effet ce dernier ne peut supporter que du 3.3V, hors la carte MEGA, elle, délivre du 5V.&lt;br /&gt;
&lt;br /&gt;
De plus le signal sortant de l'accéléromètre est de l'ordre du 3.3V ce qui pourrais être problématique au niveau de la sensibilité du MEGA qui pourrais alors détecter des données biaisées. Nous serons donc amené à réaliser une carte pour faire l'adaptation d'impédance entre  la carte MEGA et l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
Nous avons réalisé une carte électronique grâce au logiciel fritzing pour réaliser l’adaptation de tension entre l’accéléromètre et la carte MEGA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également avancé au niveau de l'application pour smartphone&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
succès de la connexion au wi-fi partagé d'un smartphone.&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41896</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41896"/>
				<updated>2017-05-09T23:11:10Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Liste des tâches à effectuer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Les accéléromètres nous permettent de calculer l'angle d'inclinaison à partir de la force gravitationnelle qu'ils peuvent mesurer selon les trois axes. Lorsque la position idéale du patient sera choisie par le médecin, nous pourrons enregistrer cette position en mémorisant l'inclinaison de chaque accéléromètre pour cette position. Ainsi un changement de position sera identifié par une variation des angles d'inclinaison précédemment pris. Nous allons utilisé les accéléromètres digitaux de type adxl345. Ils sont alimentés en 3.3V, ce qui nous amènera à utiliser un arduino pro mini de 3.3V.  Une fois que nous aurons à disposition les valeurs de l'accéléromètre et, par conséquent les angles d'inclinaison, nous aurons besoin d'un moyen d'affichage des ces données. Pour ce faire, nous avons opté dans un premier temps pour un affichage sur smartphone. Les données vont être envoyées au smartphone à travers un module WIFI connectés au même réseau que le smartphone.  En récapitulant, nous aurons finalement besoin de:&lt;br /&gt;
* 5 accéléromètres adxl345.&lt;br /&gt;
* un arduino pro mini 3.3V&lt;br /&gt;
* un module WIFI &lt;br /&gt;
* des fils pour la liaison.&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement : accéléromètres digitaux pouvant fonctionner en SPI comme en I2C et supportant 3.3V. Résolution: 10 bits, régler en mode +/-2g. Donc les valeurs de notre registre de données seront dans la plage [-512 ,512]. Mais puisque nous ne mesurons que la force gravitationnelle, nous aurons des valeurs comprises entre [-256,256] qui est la plage correspondant à -/1g. 1g correspond à la valeur de 9.80m/s2.&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: des entiers de -512 à 512 qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre selon l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
&lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification et acquisition de la position idéale à l'aide des accéléromètres placées le long de la colonne vertébrale;&lt;br /&gt;
*notification au patient (à travers le smartphone) lorsqu'une position différente de celle idéale a été détectée.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 2H&lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| documentation&lt;br /&gt;
| 2h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liste du matériel &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
| 6h&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude du module Wi-fi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
| 2H&lt;br /&gt;
| 4H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude, programmation, câblage du 10 DOF &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4H&lt;br /&gt;
| 8H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accéléromètre &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2H&lt;br /&gt;
| étude 3H &lt;br /&gt;
| &lt;br /&gt;
| schématique 2H &lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| application mobile&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2H&lt;br /&gt;
|4H&lt;br /&gt;
|4H&lt;br /&gt;
|&lt;br /&gt;
|10h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différent choix matériel notamment dans la référence de accéléromètre ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position tout en étant à un prix relativement bas. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL335. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données vers un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est peu coûteux, rapide de plus le bluetooth ne consomme pas beaucoup de la charge de la batterie du smartphone mais ce moyen de transmission concerne essentiellement des petites distances et des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grande ainsi que des taille de données beaucoup plus importante.&lt;br /&gt;
&lt;br /&gt;
C'est à travers cette problématique que nous avons étudier les besoins du client que nous avons décidé d'utiliser un module WIFI, d’autant que ce module est moins limite au possible besoin qui pourrais survenir dans l'application de notre dispositif.&lt;br /&gt;
&lt;br /&gt;
Liste de matériel: accéléromètre ADXL335, Smartphone sous Android, 15 longs fils mâle femelle, Arduino Mega, résistance, module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnels avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:cad1_1.PNG| 900px ]]&lt;br /&gt;
[[Fichier:cad1.PNG| 900px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, le 10 DOF, ainsi que la carte ATMEGA qui sera utilisé pour l’acquisition des données. &lt;br /&gt;
&lt;br /&gt;
Nous avons de suite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérés en directe sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof.PNG| 500px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10 DOF que nous testerons la semaine suivante. &lt;br /&gt;
&lt;br /&gt;
 //les bibliotheque concernee&lt;br /&gt;
 #include &amp;lt;Wire.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;Adafruit_Sensor.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;Adafruit_LSM303.h&amp;gt;&lt;br /&gt;
 Adafruit_LSM303 lsm;&lt;br /&gt;
 void setup()&lt;br /&gt;
 {&lt;br /&gt;
   #ifndef ESP8266&lt;br /&gt;
    while (!Serial);     // will pause Zero, Leonardo, etc until serial console opens&lt;br /&gt;
    #endif&lt;br /&gt;
    Serial.begin(9600);&lt;br /&gt;
  // Try to initialise and warn if we couldn't detect the chip&lt;br /&gt;
  if (!lsm.begin())&lt;br /&gt;
  {&lt;br /&gt;
    Serial.println(&amp;quot;Oops ... unable to initialize the LSM303. Check your wiring!&amp;quot;);&lt;br /&gt;
    while (1);&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
 void loop()&lt;br /&gt;
 {&lt;br /&gt;
  lsm.read();&lt;br /&gt;
  Serial.print(&amp;quot;AX: &amp;quot;); Serial.print((int)lsm.accelData.x); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AY: &amp;quot;); Serial.print((int)lsm.accelData.y); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AZ: &amp;quot;); Serial.println((int)lsm.accelData.z); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  delay(100);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération de l'angle réalisé par l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
 void loop() {&lt;br /&gt;
  lsm.read();&lt;br /&gt;
  Serial.print(&amp;quot;AX: &amp;quot;); Serial.print((int)lsm.accelData.x); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AY: &amp;quot;); Serial.print((int)lsm.accelData.y); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AZ: &amp;quot;); Serial.println((int)lsm.accelData.z); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  total = sqrt((lsm.accelData.x*lsm.accelData.x)+(lsm.accelData.y*lsm.accelData.y)+(lsm.accelData.z*lsm.accelData.z));&lt;br /&gt;
  angleX = round(asin(lsm.accelData.x/ total )*180.0/3.1416);&lt;br /&gt;
  angleX = round(asin(lsm.accelData.y/ total )*180.0/3.1416);&lt;br /&gt;
  angleX = round(asin(lsm.accelData.z/ total )*180.0/3.1416);&lt;br /&gt;
  Serial.print(&amp;quot;total:  &amp;quot;);&lt;br /&gt;
  Serial.print(total,0);&lt;br /&gt;
  Serial.print(&amp;quot; Angle x:  &amp;quot;);&lt;br /&gt;
  Serial.print(angleX,0);&lt;br /&gt;
  Serial.print(&amp;quot;  Angle y:  &amp;quot;);&lt;br /&gt;
  Serial.print(angleY,0);&lt;br /&gt;
  Serial.print(&amp;quot;  Angle z:  &amp;quot;);&lt;br /&gt;
  Serial.println(angleZ,0);&lt;br /&gt;
  delay(100);}&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendu compte que les calculs ne sont pas réalisés correctement par le MEGA.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Cela est due au manque de puissance de la carte qui n'est pas faite pour réaliser ces calcules. Nous avons donc décidé que le MEGA servira uniquement à récupéré les données et à les envoyés via module WIFI. Ce sera donc à l'application android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le module WIFI que nous utiliserons, le module ESP8266, afin de se faire une idée de son utilisation.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installé les logiciels nécessaires ( Android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes intéressées  au module wifi, en commençant par lire la fiche technique de l'esp 8266, nous avons également cherché les différents types d'exemples . &lt;br /&gt;
&lt;br /&gt;
Des recherches sur le mode de connexion entre le smartphone et le Mega à travers le module WIFI ont également été effectuer dans le but de se faire une idée, nous hésitons sur l'utilisation de Sockets UDP , ou de réaliser une transmission en TCP .&lt;br /&gt;
&lt;br /&gt;
Le programme réalisée lors de la séance précédente a été testé, notamment les tests de récupération des données de l'accéléromètre 10-DOF sur le Mega.&lt;br /&gt;
&lt;br /&gt;
Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 également été entamé.&lt;br /&gt;
&lt;br /&gt;
Nous avons également rencontré un certain nombre de problème :&lt;br /&gt;
&lt;br /&gt;
*Afin se connecter en WIFI à partir de n’importe où, nous avons décidé de se connecter premièrement à un réseau standard (point d'accès fourni par le smartphone dans un premier temps) puis de modifier le réseau sur lequel nous sommes connecté à partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière.&lt;br /&gt;
&lt;br /&gt;
*La possibilité et l'utilité de l'ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête.&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
* Réception du matériel&lt;br /&gt;
Nous avons commencé par étudié l'accéléromètre reçu, en effet la référence de ce derniers est ADXL 345 ce qui signifie que cette accéléromètre est digital à l’inverse de celui choisit qui était analogique. De ce fait, il faut que nous modifions le code déjà programmé et ré-étudions ce nouvelle accéléromètre .&lt;br /&gt;
&lt;br /&gt;
La partie transmission sur Smartphone avec Android Studio a été amorcé . &lt;br /&gt;
&lt;br /&gt;
L'établissement des activités nécessairement et documentation sur le choix des sockets à utiliser pour l'envoi des données a également été entamé.&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé l'étude de l'accéléromètre digital, nous devrons nous servir des ports digitales du MEGA et choisir l’accéléromètre à partir duquel nous récupérons les données grâce à un chip select. Pour cela nous devrons utiliser la bibliothèque SPI.h et brancher le CS de l'accéléromètre à des digital pin du mega.&lt;br /&gt;
&lt;br /&gt;
Le deuxième problème survenue est dans la tension limite de l'accéléromètre, en effet ce dernier ne peut supporter que du 3.3V, hors la carte MEGA, elle, délivre du 5V.&lt;br /&gt;
&lt;br /&gt;
De plus le signal sortant de l'accéléromètre est de l'ordre du 3.3V ce qui pourrais être problématique au niveau de la sensibilité du MEGA qui pourrais alors détecter des données biaisées. Nous serons donc amené à réaliser une carte pour faire l'adaptation d'impédance entre  la carte MEGA et l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
Nous avons réalisé une carte électronique grâce au logiciel fritzing pour réaliser l’adaptation de tension entre l’accéléromètre et la carte MEGA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également avancé au niveau de l'application pour smartphone&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
succès de la connexion au wi-fi partagé d'un smartphone.&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Accel.jpg&amp;diff=41895</id>
		<title>Fichier:Accel.jpg</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Accel.jpg&amp;diff=41895"/>
				<updated>2017-05-09T23:06:53Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : répartition de la force gravitationnelle selon les trois axes en fonction de la position de l'accéléromètre.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;répartition de la force gravitationnelle selon les trois axes en fonction de la position de l'accéléromètre.&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41894</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41894"/>
				<updated>2017-05-09T23:04:01Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Liste des tâches à effectuer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Les accéléromètres nous permettent de calculer l'angle d'inclinaison à partir de la force gravitationnelle qu'ils peuvent mesurer selon les trois axes. Lorsque la position idéale du patient sera choisie par le médecin, nous pourrons enregistrer cette position en mémorisant l'inclinaison de chaque accéléromètre pour cette position. Ainsi un changement de position sera identifié par une variation des angles d'inclinaison précédemment pris. Nous allons utilisé les accéléromètres digitaux de type adxl345. Ils sont alimentés en 3.3V, ce qui nous amènera à utiliser un arduino pro mini de 3.3V.  Une fois que nous aurons à disposition les valeurs de l'accéléromètre et, par conséquent les angles d'inclinaison, nous aurons besoin d'un moyen d'affichage des ces données. Pour ce faire, nous avons opté dans un premier temps pour un affichage sur smartphone. Les données vont être envoyées au smartphone à travers un module WIFI connectés au même réseau que le smartphone.  En récapitulant, nous aurons finalement besoin de:&lt;br /&gt;
* 5 accéléromètres adxl345.&lt;br /&gt;
* un arduino pro mini 3.3V&lt;br /&gt;
* un module WIFI &lt;br /&gt;
* des fils pour la liaison.&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement : accéléromètres digitaux pouvant fonctionner en SPI comme en I2C et supportant 3.3V. Résolution: 10 bits, régler en mode +/-2g. Donc les valeurs de notre registre de données seront dans la plage [-512 ,512]. Mais puisque nous ne mesurons que la force gravitationnelle, nous aurons des valeurs comprises entre [-256,256] qui est la plage correspondant à -/1g. 1g correspond à la valeur de 9.80m/s2.&lt;br /&gt;
&lt;br /&gt;
*type de données collectées: des entiers de -512 à 512 qu'il faudra transformer de telle sorte à avoir l'inclinaison de l'accéléromètre selon l'axe x, y et z&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
 &lt;br /&gt;
Moyen d'affichage des résultats [[Fichier:C:\Users\Shym\Documents\cours\IMA4\projet_S8\captures\accel.jpg]]&lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification et acquisition de la position idéale à l'aide des accéléromètres placées le long de la colonne vertébrale;&lt;br /&gt;
*notification au patient (à travers le smartphone) lorsqu'une position différente de celle idéale a été détectée.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 2H&lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| documentation&lt;br /&gt;
| 2h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liste du matériel &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
| 6h&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude du module Wi-fi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
| 2H&lt;br /&gt;
| 4H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude, programmation, câblage du 10 DOF &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4H&lt;br /&gt;
| 8H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accéléromètre &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2H&lt;br /&gt;
| étude 3H &lt;br /&gt;
| &lt;br /&gt;
| schématique 2H &lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| application mobile&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2H&lt;br /&gt;
|4H&lt;br /&gt;
|4H&lt;br /&gt;
|&lt;br /&gt;
|10h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différent choix matériel notamment dans la référence de accéléromètre ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position tout en étant à un prix relativement bas. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL335. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données vers un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est peu coûteux, rapide de plus le bluetooth ne consomme pas beaucoup de la charge de la batterie du smartphone mais ce moyen de transmission concerne essentiellement des petites distances et des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grande ainsi que des taille de données beaucoup plus importante.&lt;br /&gt;
&lt;br /&gt;
C'est à travers cette problématique que nous avons étudier les besoins du client que nous avons décidé d'utiliser un module WIFI, d’autant que ce module est moins limite au possible besoin qui pourrais survenir dans l'application de notre dispositif.&lt;br /&gt;
&lt;br /&gt;
Liste de matériel: accéléromètre ADXL335, Smartphone sous Android, 15 longs fils mâle femelle, Arduino Mega, résistance, module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnels avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:cad1_1.PNG| 900px ]]&lt;br /&gt;
[[Fichier:cad1.PNG| 900px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, le 10 DOF, ainsi que la carte ATMEGA qui sera utilisé pour l’acquisition des données. &lt;br /&gt;
&lt;br /&gt;
Nous avons de suite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérés en directe sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof.PNG| 500px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10 DOF que nous testerons la semaine suivante. &lt;br /&gt;
&lt;br /&gt;
 //les bibliotheque concernee&lt;br /&gt;
 #include &amp;lt;Wire.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;Adafruit_Sensor.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;Adafruit_LSM303.h&amp;gt;&lt;br /&gt;
 Adafruit_LSM303 lsm;&lt;br /&gt;
 void setup()&lt;br /&gt;
 {&lt;br /&gt;
   #ifndef ESP8266&lt;br /&gt;
    while (!Serial);     // will pause Zero, Leonardo, etc until serial console opens&lt;br /&gt;
    #endif&lt;br /&gt;
    Serial.begin(9600);&lt;br /&gt;
  // Try to initialise and warn if we couldn't detect the chip&lt;br /&gt;
  if (!lsm.begin())&lt;br /&gt;
  {&lt;br /&gt;
    Serial.println(&amp;quot;Oops ... unable to initialize the LSM303. Check your wiring!&amp;quot;);&lt;br /&gt;
    while (1);&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
 void loop()&lt;br /&gt;
 {&lt;br /&gt;
  lsm.read();&lt;br /&gt;
  Serial.print(&amp;quot;AX: &amp;quot;); Serial.print((int)lsm.accelData.x); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AY: &amp;quot;); Serial.print((int)lsm.accelData.y); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AZ: &amp;quot;); Serial.println((int)lsm.accelData.z); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  delay(100);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération de l'angle réalisé par l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
 void loop() {&lt;br /&gt;
  lsm.read();&lt;br /&gt;
  Serial.print(&amp;quot;AX: &amp;quot;); Serial.print((int)lsm.accelData.x); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AY: &amp;quot;); Serial.print((int)lsm.accelData.y); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AZ: &amp;quot;); Serial.println((int)lsm.accelData.z); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  total = sqrt((lsm.accelData.x*lsm.accelData.x)+(lsm.accelData.y*lsm.accelData.y)+(lsm.accelData.z*lsm.accelData.z));&lt;br /&gt;
  angleX = round(asin(lsm.accelData.x/ total )*180.0/3.1416);&lt;br /&gt;
  angleX = round(asin(lsm.accelData.y/ total )*180.0/3.1416);&lt;br /&gt;
  angleX = round(asin(lsm.accelData.z/ total )*180.0/3.1416);&lt;br /&gt;
  Serial.print(&amp;quot;total:  &amp;quot;);&lt;br /&gt;
  Serial.print(total,0);&lt;br /&gt;
  Serial.print(&amp;quot; Angle x:  &amp;quot;);&lt;br /&gt;
  Serial.print(angleX,0);&lt;br /&gt;
  Serial.print(&amp;quot;  Angle y:  &amp;quot;);&lt;br /&gt;
  Serial.print(angleY,0);&lt;br /&gt;
  Serial.print(&amp;quot;  Angle z:  &amp;quot;);&lt;br /&gt;
  Serial.println(angleZ,0);&lt;br /&gt;
  delay(100);}&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendu compte que les calculs ne sont pas réalisés correctement par le MEGA.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Cela est due au manque de puissance de la carte qui n'est pas faite pour réaliser ces calcules. Nous avons donc décidé que le MEGA servira uniquement à récupéré les données et à les envoyés via module WIFI. Ce sera donc à l'application android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le module WIFI que nous utiliserons, le module ESP8266, afin de se faire une idée de son utilisation.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installé les logiciels nécessaires ( Android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes intéressées  au module wifi, en commençant par lire la fiche technique de l'esp 8266, nous avons également cherché les différents types d'exemples . &lt;br /&gt;
&lt;br /&gt;
Des recherches sur le mode de connexion entre le smartphone et le Mega à travers le module WIFI ont également été effectuer dans le but de se faire une idée, nous hésitons sur l'utilisation de Sockets UDP , ou de réaliser une transmission en TCP .&lt;br /&gt;
&lt;br /&gt;
Le programme réalisée lors de la séance précédente a été testé, notamment les tests de récupération des données de l'accéléromètre 10-DOF sur le Mega.&lt;br /&gt;
&lt;br /&gt;
Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 également été entamé.&lt;br /&gt;
&lt;br /&gt;
Nous avons également rencontré un certain nombre de problème :&lt;br /&gt;
&lt;br /&gt;
*Afin se connecter en WIFI à partir de n’importe où, nous avons décidé de se connecter premièrement à un réseau standard (point d'accès fourni par le smartphone dans un premier temps) puis de modifier le réseau sur lequel nous sommes connecté à partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière.&lt;br /&gt;
&lt;br /&gt;
*La possibilité et l'utilité de l'ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête.&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
* Réception du matériel&lt;br /&gt;
Nous avons commencé par étudié l'accéléromètre reçu, en effet la référence de ce derniers est ADXL 345 ce qui signifie que cette accéléromètre est digital à l’inverse de celui choisit qui était analogique. De ce fait, il faut que nous modifions le code déjà programmé et ré-étudions ce nouvelle accéléromètre .&lt;br /&gt;
&lt;br /&gt;
La partie transmission sur Smartphone avec Android Studio a été amorcé . &lt;br /&gt;
&lt;br /&gt;
L'établissement des activités nécessairement et documentation sur le choix des sockets à utiliser pour l'envoi des données a également été entamé.&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé l'étude de l'accéléromètre digital, nous devrons nous servir des ports digitales du MEGA et choisir l’accéléromètre à partir duquel nous récupérons les données grâce à un chip select. Pour cela nous devrons utiliser la bibliothèque SPI.h et brancher le CS de l'accéléromètre à des digital pin du mega.&lt;br /&gt;
&lt;br /&gt;
Le deuxième problème survenue est dans la tension limite de l'accéléromètre, en effet ce dernier ne peut supporter que du 3.3V, hors la carte MEGA, elle, délivre du 5V.&lt;br /&gt;
&lt;br /&gt;
De plus le signal sortant de l'accéléromètre est de l'ordre du 3.3V ce qui pourrais être problématique au niveau de la sensibilité du MEGA qui pourrais alors détecter des données biaisées. Nous serons donc amené à réaliser une carte pour faire l'adaptation d'impédance entre  la carte MEGA et l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
Nous avons réalisé une carte électronique grâce au logiciel fritzing pour réaliser l’adaptation de tension entre l’accéléromètre et la carte MEGA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également avancé au niveau de l'application pour smartphone&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
succès de la connexion au wi-fi partagé d'un smartphone.&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41892</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41892"/>
				<updated>2017-05-09T22:44:32Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Choix techniques : matériel et logiciels */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Les accéléromètres nous permettent de calculer l'angle d'inclinaison à partir de la force gravitationnelle qu'ils peuvent mesurer selon les trois axes. Lorsque la position idéale du patient sera choisie par le médecin, nous pourrons enregistrer cette position en mémorisant l'inclinaison de chaque accéléromètre pour cette position. Ainsi un changement de position sera identifié par une variation des angles d'inclinaison précédemment pris. Nous allons utilisé les accéléromètres digitaux de type adxl345. Ils sont alimentés en 3.3V, ce qui nous amènera à utiliser un arduino pro mini de 3.3V.  Une fois que nous aurons à disposition les valeurs de l'accéléromètre et, par conséquent les angles d'inclinaison, nous aurons besoin d'un moyen d'affichage des ces données. Pour ce faire, nous avons opté dans un premier temps pour un affichage sur smartphone. Les données vont être envoyées au smartphone à travers un module WIFI connectés au même réseau que le smartphone.  En récapitulant, nous aurons finalement besoin de:&lt;br /&gt;
* 5 accéléromètres adxl345.&lt;br /&gt;
* un arduino pro mini 3.3V&lt;br /&gt;
* un module WIFI &lt;br /&gt;
* des fils pour la liaison.&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement ; &lt;br /&gt;
*type de données collectées.&lt;br /&gt;
&lt;br /&gt;
Prise en main de l'Arduino Mega et des accéléromètres&lt;br /&gt;
&lt;br /&gt;
*lien entre le Mega et les capteurs ;&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
 &lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification de la position idéale à partir de différentes mesures ;&lt;br /&gt;
*acquisition de la position au niveau des cervicales ;&lt;br /&gt;
*comparaison de celle-ci avec la position idéale ;&lt;br /&gt;
*notification au patient sur la bonne ou mauvaise position.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 2H&lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| documentation&lt;br /&gt;
| 2h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liste du matériel &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
| 6h&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude du module Wi-fi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
| 2H&lt;br /&gt;
| 4H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude, programmation, câblage du 10 DOF &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4H&lt;br /&gt;
| 8H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accéléromètre &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2H&lt;br /&gt;
| étude 3H &lt;br /&gt;
| &lt;br /&gt;
| schématique 2H &lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| application mobile&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2H&lt;br /&gt;
|4H&lt;br /&gt;
|4H&lt;br /&gt;
|&lt;br /&gt;
|10h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différent choix matériel notamment dans la référence de accéléromètre ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position tout en étant à un prix relativement bas. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL335. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données vers un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est peu coûteux, rapide de plus le bluetooth ne consomme pas beaucoup de la charge de la batterie du smartphone mais ce moyen de transmission concerne essentiellement des petites distances et des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grande ainsi que des taille de données beaucoup plus importante.&lt;br /&gt;
&lt;br /&gt;
C'est à travers cette problématique que nous avons étudier les besoins du client que nous avons décidé d'utiliser un module WIFI, d’autant que ce module est moins limite au possible besoin qui pourrais survenir dans l'application de notre dispositif.&lt;br /&gt;
&lt;br /&gt;
Liste de matériel: accéléromètre ADXL335, Smartphone sous Android, 15 longs fils mâle femelle, Arduino Mega, résistance, module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnels avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:cad1_1.PNG| 900px ]]&lt;br /&gt;
[[Fichier:cad1.PNG| 900px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, le 10 DOF, ainsi que la carte ATMEGA qui sera utilisé pour l’acquisition des données. &lt;br /&gt;
&lt;br /&gt;
Nous avons de suite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérés en directe sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof.PNG| 500px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10 DOF que nous testerons la semaine suivante. &lt;br /&gt;
&lt;br /&gt;
 //les bibliotheque concernee&lt;br /&gt;
 #include &amp;lt;Wire.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;Adafruit_Sensor.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;Adafruit_LSM303.h&amp;gt;&lt;br /&gt;
 Adafruit_LSM303 lsm;&lt;br /&gt;
 void setup()&lt;br /&gt;
 {&lt;br /&gt;
   #ifndef ESP8266&lt;br /&gt;
    while (!Serial);     // will pause Zero, Leonardo, etc until serial console opens&lt;br /&gt;
    #endif&lt;br /&gt;
    Serial.begin(9600);&lt;br /&gt;
  // Try to initialise and warn if we couldn't detect the chip&lt;br /&gt;
  if (!lsm.begin())&lt;br /&gt;
  {&lt;br /&gt;
    Serial.println(&amp;quot;Oops ... unable to initialize the LSM303. Check your wiring!&amp;quot;);&lt;br /&gt;
    while (1);&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
 void loop()&lt;br /&gt;
 {&lt;br /&gt;
  lsm.read();&lt;br /&gt;
  Serial.print(&amp;quot;AX: &amp;quot;); Serial.print((int)lsm.accelData.x); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AY: &amp;quot;); Serial.print((int)lsm.accelData.y); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AZ: &amp;quot;); Serial.println((int)lsm.accelData.z); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  delay(100);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération de l'angle réalisé par l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
 void loop() {&lt;br /&gt;
  lsm.read();&lt;br /&gt;
  Serial.print(&amp;quot;AX: &amp;quot;); Serial.print((int)lsm.accelData.x); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AY: &amp;quot;); Serial.print((int)lsm.accelData.y); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AZ: &amp;quot;); Serial.println((int)lsm.accelData.z); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  total = sqrt((lsm.accelData.x*lsm.accelData.x)+(lsm.accelData.y*lsm.accelData.y)+(lsm.accelData.z*lsm.accelData.z));&lt;br /&gt;
  angleX = round(asin(lsm.accelData.x/ total )*180.0/3.1416);&lt;br /&gt;
  angleX = round(asin(lsm.accelData.y/ total )*180.0/3.1416);&lt;br /&gt;
  angleX = round(asin(lsm.accelData.z/ total )*180.0/3.1416);&lt;br /&gt;
  Serial.print(&amp;quot;total:  &amp;quot;);&lt;br /&gt;
  Serial.print(total,0);&lt;br /&gt;
  Serial.print(&amp;quot; Angle x:  &amp;quot;);&lt;br /&gt;
  Serial.print(angleX,0);&lt;br /&gt;
  Serial.print(&amp;quot;  Angle y:  &amp;quot;);&lt;br /&gt;
  Serial.print(angleY,0);&lt;br /&gt;
  Serial.print(&amp;quot;  Angle z:  &amp;quot;);&lt;br /&gt;
  Serial.println(angleZ,0);&lt;br /&gt;
  delay(100);}&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendu compte que les calculs ne sont pas réalisés correctement par le MEGA.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Cela est due au manque de puissance de la carte qui n'est pas faite pour réaliser ces calcules. Nous avons donc décidé que le MEGA servira uniquement à récupéré les données et à les envoyés via module WIFI. Ce sera donc à l'application android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le module WIFI que nous utiliserons, le module ESP8266, afin de se faire une idée de son utilisation.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installé les logiciels nécessaires ( Android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes intéressées  au module wifi, en commençant par lire la fiche technique de l'esp 8266, nous avons également cherché les différents types d'exemples . &lt;br /&gt;
&lt;br /&gt;
Des recherches sur le mode de connexion entre le smartphone et le Mega à travers le module WIFI ont également été effectuer dans le but de se faire une idée, nous hésitons sur l'utilisation de Sockets UDP , ou de réaliser une transmission en TCP .&lt;br /&gt;
&lt;br /&gt;
Le programme réalisée lors de la séance précédente a été testé, notamment les tests de récupération des données de l'accéléromètre 10-DOF sur le Mega.&lt;br /&gt;
&lt;br /&gt;
Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 également été entamé.&lt;br /&gt;
&lt;br /&gt;
Nous avons également rencontré un certain nombre de problème :&lt;br /&gt;
&lt;br /&gt;
*Afin se connecter en WIFI à partir de n’importe où, nous avons décidé de se connecter premièrement à un réseau standard (point d'accès fourni par le smartphone dans un premier temps) puis de modifier le réseau sur lequel nous sommes connecté à partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière.&lt;br /&gt;
&lt;br /&gt;
*La possibilité et l'utilité de l'ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête.&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
* Réception du matériel&lt;br /&gt;
Nous avons commencé par étudié l'accéléromètre reçu, en effet la référence de ce derniers est ADXL 345 ce qui signifie que cette accéléromètre est digital à l’inverse de celui choisit qui était analogique. De ce fait, il faut que nous modifions le code déjà programmé et ré-étudions ce nouvelle accéléromètre .&lt;br /&gt;
&lt;br /&gt;
La partie transmission sur Smartphone avec Android Studio a été amorcé . &lt;br /&gt;
&lt;br /&gt;
L'établissement des activités nécessairement et documentation sur le choix des sockets à utiliser pour l'envoi des données a également été entamé.&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé l'étude de l'accéléromètre digital, nous devrons nous servir des ports digitales du MEGA et choisir l’accéléromètre à partir duquel nous récupérons les données grâce à un chip select. Pour cela nous devrons utiliser la bibliothèque SPI.h et brancher le CS de l'accéléromètre à des digital pin du mega.&lt;br /&gt;
&lt;br /&gt;
Le deuxième problème survenue est dans la tension limite de l'accéléromètre, en effet ce dernier ne peut supporter que du 3.3V, hors la carte MEGA, elle, délivre du 5V.&lt;br /&gt;
&lt;br /&gt;
De plus le signal sortant de l'accéléromètre est de l'ordre du 3.3V ce qui pourrais être problématique au niveau de la sensibilité du MEGA qui pourrais alors détecter des données biaisées. Nous serons donc amené à réaliser une carte pour faire l'adaptation d'impédance entre  la carte MEGA et l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
Nous avons réalisé une carte électronique grâce au logiciel fritzing pour réaliser l’adaptation de tension entre l’accéléromètre et la carte MEGA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également avancé au niveau de l'application pour smartphone&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
succès de la connexion au wi-fi partagé d'un smartphone.&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41891</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=41891"/>
				<updated>2017-05-09T22:33:14Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Choix techniques : matériel et logiciels */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Les accéléromètres nous permettent de calculer l'angle d'inclinaison à partir de la force gravitationnelle qu'ils peuvent mesurer selon les axes. Lorsque la position idéale du patient sera choisie par le médecin, nous pourrons enregistrer cette position en mémorisant l'inclinaison de chaque accéléromètre pour cette position. Ainsi un changement de position sera identifié par une variation des angles d'inclinaison précédemment modifiés. Nous aurons besoin de:&lt;br /&gt;
- 5 accéléromètres adxl345.&lt;br /&gt;
- des fils pour la liaison.&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement ; &lt;br /&gt;
*type de données collectées.&lt;br /&gt;
&lt;br /&gt;
Prise en main de l'Arduino Mega et des accéléromètres&lt;br /&gt;
&lt;br /&gt;
*lien entre le Mega et les capteurs ;&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
 &lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification de la position idéale à partir de différentes mesures ;&lt;br /&gt;
*acquisition de la position au niveau des cervicales ;&lt;br /&gt;
*comparaison de celle-ci avec la position idéale ;&lt;br /&gt;
*notification au patient sur la bonne ou mauvaise position.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 2H&lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| documentation&lt;br /&gt;
| 2h&lt;br /&gt;
| 4h&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| liste du matériel &lt;br /&gt;
| &lt;br /&gt;
| 2h&lt;br /&gt;
| 6h&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude du module Wi-fi&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 8H&lt;br /&gt;
| 2H&lt;br /&gt;
| 4H&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| étude, programmation, câblage du 10 DOF &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4H&lt;br /&gt;
| 8H&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Accéléromètre &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 2H&lt;br /&gt;
| étude 3H &lt;br /&gt;
| &lt;br /&gt;
| schématique 2H &lt;br /&gt;
| 12h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| application mobile&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2H&lt;br /&gt;
|4H&lt;br /&gt;
|4H&lt;br /&gt;
|&lt;br /&gt;
|10h&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différent choix matériel notamment dans la référence de accéléromètre ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position tout en étant à un prix relativement bas. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL335. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données vers un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est peu coûteux, rapide de plus le bluetooth ne consomme pas beaucoup de la charge de la batterie du smartphone mais ce moyen de transmission concerne essentiellement des petites distances et des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grande ainsi que des taille de données beaucoup plus importante.&lt;br /&gt;
&lt;br /&gt;
C'est à travers cette problématique que nous avons étudier les besoins du client que nous avons décidé d'utiliser un module WIFI, d’autant que ce module est moins limite au possible besoin qui pourrais survenir dans l'application de notre dispositif.&lt;br /&gt;
&lt;br /&gt;
Liste de matériel: accéléromètre ADXL335, Smartphone sous Android, 15 longs fils mâle femelle, Arduino Mega, résistance, module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnels avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:cad1_1.PNG| 900px ]]&lt;br /&gt;
[[Fichier:cad1.PNG| 900px ]]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, le 10 DOF, ainsi que la carte ATMEGA qui sera utilisé pour l’acquisition des données. &lt;br /&gt;
&lt;br /&gt;
Nous avons de suite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérés en directe sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:10dof.PNG| 500px ]]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10 DOF que nous testerons la semaine suivante. &lt;br /&gt;
&lt;br /&gt;
 //les bibliotheque concernee&lt;br /&gt;
 #include &amp;lt;Wire.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;Adafruit_Sensor.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;Adafruit_LSM303.h&amp;gt;&lt;br /&gt;
 Adafruit_LSM303 lsm;&lt;br /&gt;
 void setup()&lt;br /&gt;
 {&lt;br /&gt;
   #ifndef ESP8266&lt;br /&gt;
    while (!Serial);     // will pause Zero, Leonardo, etc until serial console opens&lt;br /&gt;
    #endif&lt;br /&gt;
    Serial.begin(9600);&lt;br /&gt;
  // Try to initialise and warn if we couldn't detect the chip&lt;br /&gt;
  if (!lsm.begin())&lt;br /&gt;
  {&lt;br /&gt;
    Serial.println(&amp;quot;Oops ... unable to initialize the LSM303. Check your wiring!&amp;quot;);&lt;br /&gt;
    while (1);&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
 void loop()&lt;br /&gt;
 {&lt;br /&gt;
  lsm.read();&lt;br /&gt;
  Serial.print(&amp;quot;AX: &amp;quot;); Serial.print((int)lsm.accelData.x); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AY: &amp;quot;); Serial.print((int)lsm.accelData.y); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AZ: &amp;quot;); Serial.println((int)lsm.accelData.z); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  delay(100);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération de l'angle réalisé par l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
 void loop() {&lt;br /&gt;
  lsm.read();&lt;br /&gt;
  Serial.print(&amp;quot;AX: &amp;quot;); Serial.print((int)lsm.accelData.x); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AY: &amp;quot;); Serial.print((int)lsm.accelData.y); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AZ: &amp;quot;); Serial.println((int)lsm.accelData.z); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  total = sqrt((lsm.accelData.x*lsm.accelData.x)+(lsm.accelData.y*lsm.accelData.y)+(lsm.accelData.z*lsm.accelData.z));&lt;br /&gt;
  angleX = round(asin(lsm.accelData.x/ total )*180.0/3.1416);&lt;br /&gt;
  angleX = round(asin(lsm.accelData.y/ total )*180.0/3.1416);&lt;br /&gt;
  angleX = round(asin(lsm.accelData.z/ total )*180.0/3.1416);&lt;br /&gt;
  Serial.print(&amp;quot;total:  &amp;quot;);&lt;br /&gt;
  Serial.print(total,0);&lt;br /&gt;
  Serial.print(&amp;quot; Angle x:  &amp;quot;);&lt;br /&gt;
  Serial.print(angleX,0);&lt;br /&gt;
  Serial.print(&amp;quot;  Angle y:  &amp;quot;);&lt;br /&gt;
  Serial.print(angleY,0);&lt;br /&gt;
  Serial.print(&amp;quot;  Angle z:  &amp;quot;);&lt;br /&gt;
  Serial.println(angleZ,0);&lt;br /&gt;
  delay(100);}&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendu compte que les calculs ne sont pas réalisés correctement par le MEGA.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Cela est due au manque de puissance de la carte qui n'est pas faite pour réaliser ces calcules. Nous avons donc décidé que le MEGA servira uniquement à récupéré les données et à les envoyés via module WIFI. Ce sera donc à l'application android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le module WIFI que nous utiliserons, le module ESP8266, afin de se faire une idée de son utilisation.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installé les logiciels nécessaires ( Android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes intéressées  au module wifi, en commençant par lire la fiche technique de l'esp 8266, nous avons également cherché les différents types d'exemples . &lt;br /&gt;
&lt;br /&gt;
Des recherches sur le mode de connexion entre le smartphone et le Mega à travers le module WIFI ont également été effectuer dans le but de se faire une idée, nous hésitons sur l'utilisation de Sockets UDP , ou de réaliser une transmission en TCP .&lt;br /&gt;
&lt;br /&gt;
Le programme réalisée lors de la séance précédente a été testé, notamment les tests de récupération des données de l'accéléromètre 10-DOF sur le Mega.&lt;br /&gt;
&lt;br /&gt;
Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 également été entamé.&lt;br /&gt;
&lt;br /&gt;
Nous avons également rencontré un certain nombre de problème :&lt;br /&gt;
&lt;br /&gt;
*Afin se connecter en WIFI à partir de n’importe où, nous avons décidé de se connecter premièrement à un réseau standard (point d'accès fourni par le smartphone dans un premier temps) puis de modifier le réseau sur lequel nous sommes connecté à partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière.&lt;br /&gt;
&lt;br /&gt;
*La possibilité et l'utilité de l'ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête.&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
* Réception du matériel&lt;br /&gt;
Nous avons commencé par étudié l'accéléromètre reçu, en effet la référence de ce derniers est ADXL 345 ce qui signifie que cette accéléromètre est digital à l’inverse de celui choisit qui était analogique. De ce fait, il faut que nous modifions le code déjà programmé et ré-étudions ce nouvelle accéléromètre .&lt;br /&gt;
&lt;br /&gt;
La partie transmission sur Smartphone avec Android Studio a été amorcé . &lt;br /&gt;
&lt;br /&gt;
L'établissement des activités nécessairement et documentation sur le choix des sockets à utiliser pour l'envoi des données a également été entamé.&lt;br /&gt;
&lt;br /&gt;
===Semaine 7===&lt;br /&gt;
&lt;br /&gt;
Nous avons réalisé l'étude de l'accéléromètre digital, nous devrons nous servir des ports digitales du MEGA et choisir l’accéléromètre à partir duquel nous récupérons les données grâce à un chip select. Pour cela nous devrons utiliser la bibliothèque SPI.h et brancher le CS de l'accéléromètre à des digital pin du mega.&lt;br /&gt;
&lt;br /&gt;
Le deuxième problème survenue est dans la tension limite de l'accéléromètre, en effet ce dernier ne peut supporter que du 3.3V, hors la carte MEGA, elle, délivre du 5V.&lt;br /&gt;
&lt;br /&gt;
De plus le signal sortant de l'accéléromètre est de l'ordre du 3.3V ce qui pourrais être problématique au niveau de la sensibilité du MEGA qui pourrais alors détecter des données biaisées. Nous serons donc amené à réaliser une carte pour faire l'adaptation d'impédance entre  la carte MEGA et l'accéléromètre.&lt;br /&gt;
&lt;br /&gt;
===Semaine 8===&lt;br /&gt;
Nous avons réalisé une carte électronique grâce au logiciel fritzing pour réaliser l’adaptation de tension entre l’accéléromètre et la carte MEGA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons également avancé au niveau de l'application pour smartphone&lt;br /&gt;
&lt;br /&gt;
===Semaine 9===&lt;br /&gt;
&lt;br /&gt;
succès de la connexion au wi-fi partagé d'un smartphone.&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=40552</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=40552"/>
				<updated>2017-03-20T15:35:47Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Semaine 5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Avec un  Mega nous pourrons utiliser dans un premier temps:&lt;br /&gt;
- 5 accéléromètres (5*3 entrées analogiques(positions x,y et z) = 15 entrées sur les 16 d'un Mega).&lt;br /&gt;
- des fils pour la liaison (sur le cou et le cervical du patient)&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement ; &lt;br /&gt;
*type de données collectées.&lt;br /&gt;
&lt;br /&gt;
Prise en main de l'Arduino Mega et des accéléromètres&lt;br /&gt;
&lt;br /&gt;
*lien entre le Mega et les capteurs ;&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
 &lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification de la position idéale à partir de différentes mesures ;&lt;br /&gt;
*acquisition de la position au niveau des cervicales ;&lt;br /&gt;
*comparaison de celle-ci avec la position idéale ;&lt;br /&gt;
*notification au patient sur la bonne ou mauvaise position.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 0&lt;br /&gt;
| 8&lt;br /&gt;
| 8&lt;br /&gt;
| 8&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différent choix matériel notamment dans la référence de accéléromètre ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position tout en étant à un prix relativement bas. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL335. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données avec un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est peu couteux, rapide et ne consomme pas beaucoup de la charge du smartphone mais ce moyen de transmission concerne essentiellement des petites distances et des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grande ainsi que des taille de données beaucoup plus importante.&lt;br /&gt;
&lt;br /&gt;
C'est à travers cette problématique que nous avons étudier les besoins du client que nous avons décidé d'utiliser un module WIFI, d’autant que ce module est moins limite au possible besoin qui pourrais survenir dans l'application de notre dispositif.&lt;br /&gt;
&lt;br /&gt;
Liste de matériel: accéléromètre ADXL335, Smartphone sous Android, 15 longs fils mâle femelle, Arduino Mega, résistance, module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnels avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, le 10 DOF, ainsi que la carte ATMEGA qui sera utilisé pour l’acquisition des données. &lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérés en directe sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10 DOF que nous testerons la semaine suivante. &lt;br /&gt;
&lt;br /&gt;
 //les bibliotheque concernee&lt;br /&gt;
 #include &amp;lt;Wire.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;Adafruit_Sensor.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;Adafruit_LSM303.h&amp;gt;&lt;br /&gt;
 Adafruit_LSM303 lsm;&lt;br /&gt;
 void setup()&lt;br /&gt;
 {&lt;br /&gt;
   #ifndef ESP8266&lt;br /&gt;
    while (!Serial);     // will pause Zero, Leonardo, etc until serial console opens&lt;br /&gt;
    #endif&lt;br /&gt;
    Serial.begin(9600);&lt;br /&gt;
  // Try to initialise and warn if we couldn't detect the chip&lt;br /&gt;
  if (!lsm.begin())&lt;br /&gt;
  {&lt;br /&gt;
    Serial.println(&amp;quot;Oops ... unable to initialize the LSM303. Check your wiring!&amp;quot;);&lt;br /&gt;
    while (1);&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
 void loop()&lt;br /&gt;
 {&lt;br /&gt;
  lsm.read();&lt;br /&gt;
  Serial.print(&amp;quot;AX: &amp;quot;); Serial.print((int)lsm.accelData.x); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AY: &amp;quot;); Serial.print((int)lsm.accelData.y); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AZ: &amp;quot;); Serial.println((int)lsm.accelData.z); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  delay(100);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération l'angle réalisé par l'accéléromètre.&lt;br /&gt;
 void loop() {&lt;br /&gt;
  lsm.read();&lt;br /&gt;
  Serial.print(&amp;quot;AX: &amp;quot;); Serial.print((int)lsm.accelData.x); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AY: &amp;quot;); Serial.print((int)lsm.accelData.y); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AZ: &amp;quot;); Serial.println((int)lsm.accelData.z); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  total = sqrt((lsm.accelData.x*lsm.accelData.x)+(lsm.accelData.y*lsm.accelData.y)+(lsm.accelData.z*lsm.accelData.z));&lt;br /&gt;
  angleX = round(asin(lsm.accelData.x/ total )*180.0/3.1416);&lt;br /&gt;
  angleX = round(asin(lsm.accelData.y/ total )*180.0/3.1416);&lt;br /&gt;
  angleX = round(asin(lsm.accelData.z/ total )*180.0/3.1416);&lt;br /&gt;
  Serial.print(&amp;quot;total:  &amp;quot;);&lt;br /&gt;
  Serial.print(total,0);&lt;br /&gt;
  Serial.print(&amp;quot; Angle x:  &amp;quot;);&lt;br /&gt;
  Serial.print(angleX,0);&lt;br /&gt;
  Serial.print(&amp;quot;  Angle y:  &amp;quot;);&lt;br /&gt;
  Serial.print(angleY,0);&lt;br /&gt;
  Serial.print(&amp;quot;  Angle z:  &amp;quot;);&lt;br /&gt;
  Serial.println(angleZ,0);&lt;br /&gt;
  delay(100);}&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendu compte que les calculs ne sont pas réalisés correctement par le MEGA.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Cela est due au manque de puissance de la carte qui n'est pas fait pour réaliser ces calcules. Nous avons donc décidé que le MEGA servira uniquement à récupéré les données et à les envoyés via module WIFI. Ce sera donc à l'application android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
 Étude du module WIFI&lt;br /&gt;
 Installation des logiciels nécessaires ( android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
 étude du module Wi-fi -&amp;gt;&lt;br /&gt;
* lecture de la fiche technique&lt;br /&gt;
* etude mode de fonctionnement en attendant la livraison&lt;br /&gt;
* recherche de mode de connexion entre le smartphone et le Mega à travers le module WI-fi (utilisation des Sockets Udp pourrait être utile)&lt;br /&gt;
* test de récupération des données de l'accéléro 10-DOF sur le Mega&lt;br /&gt;
* recherche de code pour les autres accéléromètres en attendant la livraison&lt;br /&gt;
*problème rencontré (comment se connecter en wi-fi n’importe où nous avons décidé de se connecter premièrement à un réseau standard (point d'accés fourni par le smartphone dans un        premier temps) &lt;br /&gt;
    -&amp;gt; puis de modifier le réseau sur lequel nous sommes connecté a partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière)&lt;br /&gt;
*ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Semaine 6===&lt;br /&gt;
réception du matériel&lt;br /&gt;
&lt;br /&gt;
* début de la partie transmission sur Smartphone avec Android Studio&lt;br /&gt;
* etablissement des activity nécéssairement et documentation sur le choix des sockets à utiliser pour l'envoi des données&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=40551</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=40551"/>
				<updated>2017-03-20T15:29:37Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Semaine 5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Avec un  Mega nous pourrons utiliser dans un premier temps:&lt;br /&gt;
- 5 accéléromètres (5*3 entrées analogiques(positions x,y et z) = 15 entrées sur les 16 d'un Mega).&lt;br /&gt;
- des fils pour la liaison (sur le cou et le cervical du patient)&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement ; &lt;br /&gt;
*type de données collectées.&lt;br /&gt;
&lt;br /&gt;
Prise en main de l'Arduino Mega et des accéléromètres&lt;br /&gt;
&lt;br /&gt;
*lien entre le Mega et les capteurs ;&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
 &lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification de la position idéale à partir de différentes mesures ;&lt;br /&gt;
*acquisition de la position au niveau des cervicales ;&lt;br /&gt;
*comparaison de celle-ci avec la position idéale ;&lt;br /&gt;
*notification au patient sur la bonne ou mauvaise position.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 0&lt;br /&gt;
| 8&lt;br /&gt;
| 8&lt;br /&gt;
| 8&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différent choix matériel notamment dans la référence de accéléromètre ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position tout en étant à un prix relativement bas. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL335. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données avec un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est peu couteux, rapide et ne consomme pas beaucoup de la charge du smartphone mais ce moyen de transmission concerne essentiellement des petites distances et des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grande ainsi que des taille de données beaucoup plus importante.&lt;br /&gt;
&lt;br /&gt;
C'est à travers cette problématique que nous avons étudier les besoins du client que nous avons décidé d'utiliser un module WIFI, d’autant que ce module est moins limite au possible besoin qui pourrais survenir dans l'application de notre dispositif.&lt;br /&gt;
&lt;br /&gt;
Liste de matériel: accéléromètre ADXL335, Smartphone sous Android, 15 longs fils mâle femelle, Arduino Mega, résistance, module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnels avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, le 10 DOF, ainsi que la carte ATMEGA qui sera utilisé pour l’acquisition des données. &lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérés en directe sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10 DOF que nous testerons la semaine suivante. &lt;br /&gt;
&lt;br /&gt;
 //les bibliotheque concernee&lt;br /&gt;
 #include &amp;lt;Wire.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;Adafruit_Sensor.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;Adafruit_LSM303.h&amp;gt;&lt;br /&gt;
 Adafruit_LSM303 lsm;&lt;br /&gt;
 void setup()&lt;br /&gt;
 {&lt;br /&gt;
   #ifndef ESP8266&lt;br /&gt;
    while (!Serial);     // will pause Zero, Leonardo, etc until serial console opens&lt;br /&gt;
    #endif&lt;br /&gt;
    Serial.begin(9600);&lt;br /&gt;
  // Try to initialise and warn if we couldn't detect the chip&lt;br /&gt;
  if (!lsm.begin())&lt;br /&gt;
  {&lt;br /&gt;
    Serial.println(&amp;quot;Oops ... unable to initialize the LSM303. Check your wiring!&amp;quot;);&lt;br /&gt;
    while (1);&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
 void loop()&lt;br /&gt;
 {&lt;br /&gt;
  lsm.read();&lt;br /&gt;
  Serial.print(&amp;quot;AX: &amp;quot;); Serial.print((int)lsm.accelData.x); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AY: &amp;quot;); Serial.print((int)lsm.accelData.y); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AZ: &amp;quot;); Serial.println((int)lsm.accelData.z); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  delay(100);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération l'angle réalisé par l'accéléromètre.&lt;br /&gt;
 void loop() {&lt;br /&gt;
  lsm.read();&lt;br /&gt;
  Serial.print(&amp;quot;AX: &amp;quot;); Serial.print((int)lsm.accelData.x); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AY: &amp;quot;); Serial.print((int)lsm.accelData.y); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AZ: &amp;quot;); Serial.println((int)lsm.accelData.z); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  total = sqrt((lsm.accelData.x*lsm.accelData.x)+(lsm.accelData.y*lsm.accelData.y)+(lsm.accelData.z*lsm.accelData.z));&lt;br /&gt;
  angleX = round(asin(lsm.accelData.x/ total )*180.0/3.1416);&lt;br /&gt;
  angleX = round(asin(lsm.accelData.y/ total )*180.0/3.1416);&lt;br /&gt;
  angleX = round(asin(lsm.accelData.z/ total )*180.0/3.1416);&lt;br /&gt;
  Serial.print(&amp;quot;total:  &amp;quot;);&lt;br /&gt;
  Serial.print(total,0);&lt;br /&gt;
  Serial.print(&amp;quot; Angle x:  &amp;quot;);&lt;br /&gt;
  Serial.print(angleX,0);&lt;br /&gt;
  Serial.print(&amp;quot;  Angle y:  &amp;quot;);&lt;br /&gt;
  Serial.print(angleY,0);&lt;br /&gt;
  Serial.print(&amp;quot;  Angle z:  &amp;quot;);&lt;br /&gt;
  Serial.println(angleZ,0);&lt;br /&gt;
  delay(100);}&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendu compte que les calculs ne sont pas réalisés correctement par le MEGA.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Cela est due au manque de puissance de la carte qui n'est pas fait pour réaliser ces calcules. Nous avons donc décidé que le MEGA servira uniquement à récupéré les données et à les envoyés via module WIFI. Ce sera donc à l'application android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
 Étude du module WIFI&lt;br /&gt;
 Installation des logiciels nécessaires ( android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
 étude du module Wi-fi -&amp;gt;&lt;br /&gt;
* lecture de la fiche technique&lt;br /&gt;
* etude mode de fonctionnement en attendant la livraison&lt;br /&gt;
* recherche de mode de connexion entre le smartphone et le Mega à travers le module WI-fi (utilisation des Sockets Udp pourrait être utile)&lt;br /&gt;
* test de récupération des données de l'accéléro 10-DOF sur le Mega&lt;br /&gt;
* recherche de code pour les autres accéléromètres en attendant la livraison&lt;br /&gt;
*problème rencontré (comment se connecter en wi-fi n’importe où nous avons décidé de se connecter premièrement à un réseau standard (point d'accés fourni par le smartphone dans un        premier temps) &lt;br /&gt;
    -&amp;gt; puis de modifier le réseau sur lequel nous sommes connecté a partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière)&lt;br /&gt;
*ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=40550</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=40550"/>
				<updated>2017-03-20T15:28:14Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Semaine 5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Avec un  Mega nous pourrons utiliser dans un premier temps:&lt;br /&gt;
- 5 accéléromètres (5*3 entrées analogiques(positions x,y et z) = 15 entrées sur les 16 d'un Mega).&lt;br /&gt;
- des fils pour la liaison (sur le cou et le cervical du patient)&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
*fonctionnement ; &lt;br /&gt;
*type de données collectées.&lt;br /&gt;
&lt;br /&gt;
Prise en main de l'Arduino Mega et des accéléromètres&lt;br /&gt;
&lt;br /&gt;
*lien entre le Mega et les capteurs ;&lt;br /&gt;
*mise en œuvre du programme d'acquisition.&lt;br /&gt;
 &lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
*si position correcte par rapport à celle idéale ;&lt;br /&gt;
*envoi des résultats sur un smartphone.&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
*identification de la position idéale à partir de différentes mesures ;&lt;br /&gt;
*acquisition de la position au niveau des cervicales ;&lt;br /&gt;
*comparaison de celle-ci avec la position idéale ;&lt;br /&gt;
*notification au patient sur la bonne ou mauvaise position.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &lt;br /&gt;
| 0&lt;br /&gt;
| 8&lt;br /&gt;
| 8&lt;br /&gt;
| 8&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;br /&gt;
&lt;br /&gt;
Nous avons été confronté à différent choix matériel notamment dans la référence de accéléromètre ou encore le moyen de transmission des données. &lt;br /&gt;
&lt;br /&gt;
L'accéléromètre doit être assez précis pour des petites variations de position tout en étant à un prix relativement bas. Après avoir parcouru les catalogues de fournisseurs nous avons trouvé le ADXL335. &lt;br /&gt;
&lt;br /&gt;
De plus, nous devions choisir le mode de transmission des données avec un smartphone. Nous avions le choix entre un module Bluetooth et un module wifi. Le module Bluetooth est peu couteux, rapide et ne consomme pas beaucoup de la charge du smartphone mais ce moyen de transmission concerne essentiellement des petites distances et des données de petite taille. En revanche le module WIFI lui consomme beaucoup plus de batterie mais couvre des distances beaucoup plus grande ainsi que des taille de données beaucoup plus importante.&lt;br /&gt;
&lt;br /&gt;
C'est à travers cette problématique que nous avons étudier les besoins du client que nous avons décidé d'utiliser un module WIFI, d’autant que ce module est moins limite au possible besoin qui pourrais survenir dans l'application de notre dispositif.&lt;br /&gt;
&lt;br /&gt;
Liste de matériel: accéléromètre ADXL335, Smartphone sous Android, 15 longs fils mâle femelle, Arduino Mega, résistance, module WIFI&lt;br /&gt;
&lt;br /&gt;
===Semaine 2===&lt;br /&gt;
Réalisation d'un cahier des charges fonctionnels avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT.&lt;br /&gt;
[https://docs.google.com/document/d/1e6291kst6O6Ic0IWnadg5l10HiiZeqsw72GxfXC7O7U/edit cahier des charges fonctionnels]&lt;br /&gt;
&lt;br /&gt;
===Semaine 3===&lt;br /&gt;
En début de semaine, nous avons reçus un premier capteur, le 10 DOF, ainsi que la carte ATMEGA qui sera utilisé pour l’acquisition des données. &lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite étudié le capteur et réalisé le premier montage en connectant ce capteur de manière à pouvoir lire les données récupérés en directe sur l'ordinateur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite réalisé un premier programme afin de lire les données du 10 DOF que nous testerons la semaine suivante. &lt;br /&gt;
&lt;br /&gt;
 //les bibliotheque concernee&lt;br /&gt;
 #include &amp;lt;Wire.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;Adafruit_Sensor.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;Adafruit_LSM303.h&amp;gt;&lt;br /&gt;
 Adafruit_LSM303 lsm;&lt;br /&gt;
 void setup()&lt;br /&gt;
 {&lt;br /&gt;
   #ifndef ESP8266&lt;br /&gt;
    while (!Serial);     // will pause Zero, Leonardo, etc until serial console opens&lt;br /&gt;
    #endif&lt;br /&gt;
    Serial.begin(9600);&lt;br /&gt;
  // Try to initialise and warn if we couldn't detect the chip&lt;br /&gt;
  if (!lsm.begin())&lt;br /&gt;
  {&lt;br /&gt;
    Serial.println(&amp;quot;Oops ... unable to initialize the LSM303. Check your wiring!&amp;quot;);&lt;br /&gt;
    while (1);&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
 void loop()&lt;br /&gt;
 {&lt;br /&gt;
  lsm.read();&lt;br /&gt;
  Serial.print(&amp;quot;AX: &amp;quot;); Serial.print((int)lsm.accelData.x); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AY: &amp;quot;); Serial.print((int)lsm.accelData.y); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AZ: &amp;quot;); Serial.println((int)lsm.accelData.z); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  delay(100);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
===Semaine 4===&lt;br /&gt;
&lt;br /&gt;
Nous avons débuté le traitement des données directement sur le MEGA en réalisant de code de récupération l'angle réalisé par l'accéléromètre.&lt;br /&gt;
 void loop() {&lt;br /&gt;
  lsm.read();&lt;br /&gt;
  Serial.print(&amp;quot;AX: &amp;quot;); Serial.print((int)lsm.accelData.x); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AY: &amp;quot;); Serial.print((int)lsm.accelData.y); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;AZ: &amp;quot;); Serial.println((int)lsm.accelData.z); Serial.print(&amp;quot; &amp;quot;);&lt;br /&gt;
  total = sqrt((lsm.accelData.x*lsm.accelData.x)+(lsm.accelData.y*lsm.accelData.y)+(lsm.accelData.z*lsm.accelData.z));&lt;br /&gt;
  angleX = round(asin(lsm.accelData.x/ total )*180.0/3.1416);&lt;br /&gt;
  angleX = round(asin(lsm.accelData.y/ total )*180.0/3.1416);&lt;br /&gt;
  angleX = round(asin(lsm.accelData.z/ total )*180.0/3.1416);&lt;br /&gt;
  Serial.print(&amp;quot;total:  &amp;quot;);&lt;br /&gt;
  Serial.print(total,0);&lt;br /&gt;
  Serial.print(&amp;quot; Angle x:  &amp;quot;);&lt;br /&gt;
  Serial.print(angleX,0);&lt;br /&gt;
  Serial.print(&amp;quot;  Angle y:  &amp;quot;);&lt;br /&gt;
  Serial.print(angleY,0);&lt;br /&gt;
  Serial.print(&amp;quot;  Angle z:  &amp;quot;);&lt;br /&gt;
  Serial.println(angleZ,0);&lt;br /&gt;
  delay(100);}&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes rendu compte que les calculs ne sont pas réalisés correctement par le MEGA.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exempleaccelero.PNG| 200px ]]&lt;br /&gt;
&lt;br /&gt;
Cela est due au manque de puissance de la carte qui n'est pas fait pour réaliser ces calcules. Nous avons donc décidé que le MEGA servira uniquement à récupéré les données et à les envoyés via module WIFI. Ce sera donc à l'application android d'effectuer le traitement des données.&lt;br /&gt;
&lt;br /&gt;
 Étude du module WIFI&lt;br /&gt;
 Installation des logiciels nécessaires ( android studio,... )&lt;br /&gt;
&lt;br /&gt;
===Semaine 5===&lt;br /&gt;
&lt;br /&gt;
 étude du module Wi-fi -&amp;gt;&lt;br /&gt;
- lecture de la fiche technique&lt;br /&gt;
- etude mode de fonctionnement en attendant la livraison&lt;br /&gt;
- recherche de mode de connexion entre le smartphone et le Mega à travers le module WI-fi (utilisation des Sockets Udp pourrait être utile)&lt;br /&gt;
- test de récupération des données de l'accéléro 10-DOF sur le Mega&lt;br /&gt;
- recherche de code pour les autres accéléromètres en attendant la livraison&lt;br /&gt;
 problème rencontré (comment se connecter en wi-fi n’importe où nous avons décidé de se connecter premièrement à un réseau standard (point d'accés fourni par le smartphone dans un        premier temps) &lt;br /&gt;
    -puis de modifier le réseau sur lequel nous sommes connecté a partir du smartphone. Ce dernier enverra le SSID et le mot de passe du nouveau réseau souhaité au module et on  modifiera le paramètre de  cette manière)&lt;br /&gt;
-ajout de l'acquisition des données du gyroscope pour avoir plus de précision sur l'accéléromètre 10-DOF qui sera sur la tête&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=37726</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=37726"/>
				<updated>2017-01-23T16:23:27Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Liste des tâches à effectuer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Avec un  Mega nous pourrons utiliser dans un premier temps:&lt;br /&gt;
- 5 accéléromètres (5*3 entrées analogiques(positions x,y et z) = 15 entrées sur les 16 d'un Mega).&lt;br /&gt;
- des fils pour la liaison (sur le cou et le cervical du patient)&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
 *fonctionnement ; &lt;br /&gt;
 *type de données collectées.&lt;br /&gt;
&lt;br /&gt;
Prise en main de l'Arduino Mega et des accéléromètres&lt;br /&gt;
&lt;br /&gt;
 *lien entre le Mega et les capteurs ;&lt;br /&gt;
 *mise en œuvre du programme d'acquisition.&lt;br /&gt;
 &lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
 *si position correcte par rapport à celle idéale &lt;br /&gt;
 *envoi des résultats sur un smartphone&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
 *identification de la position idéale à partir de différentes mesures;&lt;br /&gt;
 *acquisition de la position au niveau des cervicales;&lt;br /&gt;
 *comparaison de celle-ci avec la position idéale11;&lt;br /&gt;
 *notification au patient sur la bonne ou mauvaise position;&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &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;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=37716</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=37716"/>
				<updated>2017-01-23T16:06:32Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Choix techniques : matériel et logiciels */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Avec un  Mega nous pourrons utiliser dans un premier temps:&lt;br /&gt;
- 5 accéléromètres (5*3 entrées analogiques(positions x,y et z) = 15 entrées sur les 16 d'un Mega).&lt;br /&gt;
- des fils pour la liaison (sur le cou et le cervical du patient)&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
 *fonctionnement ; &lt;br /&gt;
 *type de données collectées.&lt;br /&gt;
&lt;br /&gt;
Prise en main de l'Arduino Mega et des accéléromètres&lt;br /&gt;
&lt;br /&gt;
 *lien entre le Mega et les capteurs ;&lt;br /&gt;
 *mise en œuvre du programme d'acquisition.&lt;br /&gt;
 &lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
 *si position correcte par rapport à celle idéale &lt;br /&gt;
 *envoi des résultats sur un smartphone&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
 *acquisition de la position au niveau des cervicales;&lt;br /&gt;
 *comparaison de celle-ci avec la position idéale grâce à une référence donnée;&lt;br /&gt;
 *notification au patient sur la bonne ou mauvaise position;&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &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;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=37713</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=37713"/>
				<updated>2017-01-23T16:01:58Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Liste des tâches à effectuer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Avec un Arduino Atmega nous pourrons utiliser dans un premier temps:&lt;br /&gt;
- 5 accéléromètres (5*3 entrées analogiques(positions x,y et z) = 15 entrées sur les 16 d'un Atmega).&lt;br /&gt;
- des fils pour la liaison (sur le cou et le cervical du patient)&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude et choix des accéléromètres&lt;br /&gt;
 *fonctionnement ; &lt;br /&gt;
 *type de données collectées.&lt;br /&gt;
&lt;br /&gt;
Prise en main de l'Arduino Mega et des accéléromètres&lt;br /&gt;
&lt;br /&gt;
 *lien entre le Mega et les capteurs ;&lt;br /&gt;
 *mise en œuvre du programme d'acquisition.&lt;br /&gt;
 &lt;br /&gt;
Moyen d'affichage des résultats &lt;br /&gt;
&lt;br /&gt;
 *si position correcte par rapport à celle idéale &lt;br /&gt;
 *envoi des résultats sur un smartphone&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
 &lt;br /&gt;
 *acquisition de la position au niveau des cervicales;&lt;br /&gt;
 *comparaison de celle-ci avec la position idéale grâce à une référence donnée;&lt;br /&gt;
 *notification au patient sur la bonne ou mauvaise position;&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &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;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=37703</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=37703"/>
				<updated>2017-01-23T15:36:26Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Choix techniques : matériel et logiciels */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Avec un Arduino Atmega nous pourrons utiliser dans un premier temps:&lt;br /&gt;
- 5 accéléromètres (5*3 entrées analogiques(positions x,y et z) = 15 entrées sur les 16 d'un Atmega).&lt;br /&gt;
- des fils pour la liaison (sur le cou et le cervical du patient)&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude des accéléromètres&lt;br /&gt;
*fonctionnement ; &lt;br /&gt;
*type de données collectées.&lt;br /&gt;
Prise en main de l'Arduino Atmega et des accéléromètres&lt;br /&gt;
*lien entre l'Atmega et les capteurs ;&lt;br /&gt;
*mise en oeuvre du programme d'acquisition. &lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
*réalisation du premier prototype avec l’étude de la position au niveau des cervicales, acquisition de la position idéale grâce à notre système ;&lt;br /&gt;
*réaliser une commande à partir des données récupérées de la position idéale ;&lt;br /&gt;
*réaliser le système d'alerte en cas de mauvaise position.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &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;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=37702</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=37702"/>
				<updated>2017-01-23T15:32:40Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Liste des tâches à effectuer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Avec un Arduino Atmega nous pourrons utiliser 5 capteurs (5*3 entrées analogiques(positions x,y et z) = 15 entrées sur les 16 d'un Atmega).&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude des accéléromètres&lt;br /&gt;
*fonctionnement ; &lt;br /&gt;
*type de données collectées.&lt;br /&gt;
Prise en main de l'Arduino Atmega et des accéléromètres&lt;br /&gt;
*lien entre l'Atmega et les capteurs ;&lt;br /&gt;
*mise en oeuvre du programme d'acquisition. &lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
*réalisation du premier prototype avec l’étude de la position au niveau des cervicales, acquisition de la position idéale grâce à notre système ;&lt;br /&gt;
*réaliser une commande à partir des données récupérées de la position idéale ;&lt;br /&gt;
*réaliser le système d'alerte en cas de mauvaise position.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &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;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=37701</id>
		<title>IMA4 2016/2017 P18</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2016/2017_P18&amp;diff=37701"/>
				<updated>2017-01-23T15:28:10Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : /* Choix techniques : matériel et logiciels */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Présentation générale du projet=== &lt;br /&gt;
&lt;br /&gt;
===Objectif du projet===&lt;br /&gt;
Rééducation de la position de la tête.&lt;br /&gt;
&lt;br /&gt;
===Contexte===&lt;br /&gt;
L’évolution de l'informatique a engendré une modification de la place du salarié dans l'entreprise. Ainsi, nombreux sont ceux qui travaillent dans un bureau face à un ordinateur. De ce fait, il a été remarqué par une association de la santé que les maux de dos sont en majorité dus à une mauvaise hygiène de vie notamment liée à une mauvaise posture au travail.&lt;br /&gt;
 &lt;br /&gt;
C'est après différentes études, notamment un bilan postural montrant où se situe la tête par rapport à une position idéale que l'on a remarqué que ces dernières années, 50% des personnes ayant des maux de dos sont en réalité dûs aux cervicales contre 20 % seulement il y a une dizaine d’années.&lt;br /&gt;
 &lt;br /&gt;
Du constat précédent découle ce projet ayant pour but de faciliter aux kinésithérapeutes la rééducation de la position de la tête des patients se plaignants de leur dos.&lt;br /&gt;
&lt;br /&gt;
=== Description du projet ===&lt;br /&gt;
 &lt;br /&gt;
La rééducation de la posture de la tête chez un kinésithérapeute pourrait être améliorée si le travail pouvait se faire en autonomie.&lt;br /&gt;
 &lt;br /&gt;
Ce projet propose de réaliser un système de suivi de la position de la tête d'un patient en rééducation grâce à un monitoring continu de la position de la tête, ainsi qu'un mécanisme pour aider le patient à reprendre une position correcte. En effet on lancera le système pendant environ 30 min durant lesquelles nous détecterons les variations de position et indiquerons au patient le moment ou sa position n’est plus bonne.&lt;br /&gt;
 &lt;br /&gt;
Ce projet devra ainsi comparer la position actuelle de la tête du patient à une position idéale (celle de la verticale) et lui signaler s’il doit ou non ajuster sa position.&lt;br /&gt;
&lt;br /&gt;
=== Choix techniques : matériel et logiciels ===&lt;br /&gt;
 &lt;br /&gt;
Nous avons choisi d’utiliser des accéléromètres afin de pouvoir récupérer des données décrivant la position de la tête. Avec un Arduino Atmega nous pourrons utiliser 5 capteurs (5*3 entrées analogiques(positions x,y et z) = 15 entrées sur les 16 d'un Atmega).&lt;br /&gt;
&lt;br /&gt;
===Calendrier prévisionnel===&lt;br /&gt;
&lt;br /&gt;
====Liste des tâches à effectuer====&lt;br /&gt;
Etude des accéléromètres&lt;br /&gt;
*fonctionnement ; &lt;br /&gt;
*type de données collectées.&lt;br /&gt;
Prise en main de l'Arduino Mega et des accéléromètres&lt;br /&gt;
*lien entre le Mega et les capteurs ;&lt;br /&gt;
*mise en oeuvre du programme d'acquisition. &lt;br /&gt;
Réalisation d'un prototype &lt;br /&gt;
*réalisation du premier prototype avec l’étude de la position au niveau des cervicales, acquisition de la position idéale grâce à notre système ;&lt;br /&gt;
*réaliser une commande à partir des données récupérées de la position idéale ;&lt;br /&gt;
*réaliser le système d'alerte en cas de mauvaise position.&lt;br /&gt;
&lt;br /&gt;
====Calendrier====&lt;br /&gt;
&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Définition cahier des charges &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;
==Avancement du Projet==&lt;br /&gt;
&lt;br /&gt;
===Semaine 1===&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Code_page.pdf&amp;diff=29628</id>
		<title>Fichier:Code page.pdf</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Code_page.pdf&amp;diff=29628"/>
				<updated>2016-04-06T15:32:36Z</updated>
		
		<summary type="html">&lt;p&gt;Mdiop : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mdiop</name></author>	</entry>

	</feed>