IMA4 2016/2017 P18

De Wiki de Projets IMA
Révision datée du 15 mars 2017 à 11:16 par Rex (discussion | contributions) (Semaine 1)

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. Avec un Mega nous pourrons utiliser dans un premier temps: - 5 accéléromètres (5*3 entrées analogiques(positions x,y et z) = 15 entrées sur les 16 d'un Mega). - des fils pour la liaison (sur le cou et le cervical du patient)

Calendrier prévisionnel

Liste des tâches à effectuer

Etude et choix des accéléromètres

  • fonctionnement ;
  • type de données collectées.

Prise en main de l'Arduino Mega et des accéléromètres

  • lien entre le Mega et les capteurs ;
  • 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 de la position idéale à partir de différentes mesures ;
  • acquisition de la position au niveau des cervicales ;
  • comparaison de celle-ci avec la position idéale ;
  • notification au patient sur la bonne ou mauvaise position.

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 0 8 8 8

Avancement du Projet

Semaine 1

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.

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.

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.

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.

Liste de matériel: accéléromètre ADXL335, Smartphone sous Android, 15 longs fils mâle femelle, Arduino Mega, résistance, module WIFI

Semaine 2

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

Semaine 3

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.

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.


Nous avons ensuite réalisé un premier programme afin de lire les données du 10 DOF 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 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 rendue compte que les calcules ne sont pas réalisés correctement par le MEGA.

Exempleaccelero.PNG

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.

Étude du module WIFI
Installation des logiciels nécessaires ( android studio,... )

Semaine 5

étude du module Wi-fi ->
problème rencontrer (comment se connecter en wi-fi n’importe où nous avons décidé de se connecter premièrement à un réseau standard puis de modifier 
le réseau sur lequel nous somme connecter a partir du smartphone. Ce dernier enverra le wi-fi souhaité au module et on modifiera le paramètre de 
cette manière)
ajout de l'acquisition des données du gyroscope 
code