IMA4 2016/2017 P18 : Différence entre versions

De Wiki d'activités IMA
(Semaine 4)
(Semaine 4)
Ligne 242 : Ligne 242 :
 
   delay(100);}
 
   delay(100);}
  
Nous nous sommes rendus compte que les calculs ne sont pas réalisés correctement par le MEGA.
+
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. 
  
 
[[Fichier:Exempleaccelero.PNG| 200px ]]
 
[[Fichier:Exempleaccelero.PNG| 200px ]]
  
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.
+
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.
  
Nous avons ensuite étudié le module WIFI que nous utiliserons, le module ESP8266, afin de se faire une idée de son utilisation.
+
Nous avons ensuite étudié le module WIFI ESP8266 que nous utiliserons, afin de nous faire une idée de son utilisation.
  
 
Nous avons également installé les logiciels nécessaires ( Android studio,... )
 
Nous avons également installé les logiciels nécessaires ( Android studio,... )

Version du 10 mai 2017 à 00:20

Présentation générale du projet

Objectif du projet

Rééducation de la position de la tête.

Contexte

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.

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.

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.

Description du projet

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.

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.

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.

Choix techniques : matériel et logiciels

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:

  • 5 accéléromètres adxl335.
  • un arduino Mega
  • un module WIFI
  • des fils pour la liaison.

Calendrier prévisionnel

Liste des tâches à effectuer

Etude et choix des accéléromètres

  • fonctionnement : accéléromètres à sortie analogique. Nous aurons donc besoin de 3 sorties analogiques par capteur (donc 3*5 sorties analogiques)
  • 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


  • mise en œuvre du programme d'acquisition.

Moyen d'affichage des résultats

  • si position correcte par rapport à celle idéale ;
  • envoi des résultats sur un smartphone.

Réalisation d'un prototype

  • identification et acquisition de la position idéale à l'aide des accéléromètres placées le long de la colonne vertébrale;
  • notification au patient (à travers le smartphone) lorsqu'une position différente de celle idéale a été détectée.

Calendrier

Feuille d'heures

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
Définition cahier des charges 2H 8H
documentation 2h 4h 4h
liste du matériel 2h 6h
étude du module Wi-fi 8H 2H 4H 12h
étude, programmation, câblage du 10 DOF 4H 8H
Accéléromètre 2H étude 3H schématique 2H 12h
application mobile 2H 4H 4H 10h

Avancement du Projet

Semaine 1

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.

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.

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.

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.

  • Confirmation de la liste de matériel:
 *accéléromètre ADXL335
 *Smartphone sous Android
 *15 longs fils mâle-femelle, mâle-mâle
 *Arduino pro -mini
 *Module WIFI

Semaine 2

Réalisation d'un cahier des charges fonctionnelles avec les outils de gestions de projet telle que le FAST, la bete à corne, SADT. cahier des charges fonctionnels

Cad1 1.PNG Cad1.PNG

Semaine 3

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).

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.

10dof.PNG

Nous avons ensuite réalisé un premier programme afin de lire les données du 10DOF que nous testerons la semaine suivante.

//les bibliotheque concernee
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_LSM303.h>
Adafruit_LSM303 lsm;
void setup()
{
  #ifndef ESP8266
   while (!Serial);     // will pause Zero, Leonardo, etc until serial console opens
   #endif
   Serial.begin(9600);
 // Try to initialise and warn if we couldn't detect the chip
 if (!lsm.begin())
 {
   Serial.println("Oops ... unable to initialize the LSM303. Check your wiring!");
   while (1);
 }
}
void loop()
{
 lsm.read();
 Serial.print("AX: "); Serial.print((int)lsm.accelData.x); Serial.print(" ");
 Serial.print("AY: "); Serial.print((int)lsm.accelData.y); Serial.print(" ");
 Serial.print("AZ: "); Serial.println((int)lsm.accelData.z); Serial.print(" ");
 delay(100);
}

Semaine 4

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.

void loop() {
 lsm.read();
 Serial.print("AX: "); Serial.print((int)lsm.accelData.x); Serial.print(" ");
 Serial.print("AY: "); Serial.print((int)lsm.accelData.y); Serial.print(" ");
 Serial.print("AZ: "); Serial.println((int)lsm.accelData.z); Serial.print(" ");
 total = sqrt((lsm.accelData.x*lsm.accelData.x)+(lsm.accelData.y*lsm.accelData.y)+(lsm.accelData.z*lsm.accelData.z));
 angleX = round(asin(lsm.accelData.x/ total )*180.0/3.1416);
 angleX = round(asin(lsm.accelData.y/ total )*180.0/3.1416);
 angleX = round(asin(lsm.accelData.z/ total )*180.0/3.1416);
 Serial.print("total:  ");
 Serial.print(total,0);
 Serial.print(" Angle x:  ");
 Serial.print(angleX,0);
 Serial.print("  Angle y:  ");
 Serial.print(angleY,0);
 Serial.print("  Angle z:  ");
 Serial.println(angleZ,0);
 delay(100);}

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.

Exempleaccelero.PNG

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.

Nous avons ensuite étudié le module WIFI ESP8266 que nous utiliserons, afin de nous faire une idée de son utilisation.

Nous avons également installé les logiciels nécessaires ( Android studio,... )

Semaine 5

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 .

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 .

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.

Le code pour les autres accéléromètres en attendant la livraison de l'ADXL335 également été entamé.

Nous avons également rencontré un certain nombre de problème :

  • 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.
  • 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.

Semaine 6

  • Réception du matériel

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 .

La partie transmission sur Smartphone avec Android Studio a été amorcé .

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é.

Semaine 7

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.

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.

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.

Semaine 8

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.


Nous avons également avancé au niveau de l'application pour smartphone

Semaine 9

succès de la connexion au wi-fi partagé d'un smartphone.