P33 Utilisation de Nao et/ou objets connectés avec des enfants autistes

De Wiki de Projets IMA

Présentation générale du projet

IME de Coppenaxfort

Contexte

Dans le cadre de ma dernière année de formation dans le département informatique, électronique et automatique de l'école d'ingénieur Polytech Lille, j'ai l'opportunité d'effectuer un projet de fin d'étude. Ce projet, porté par Mme Mahieu directrice de l'IME de Coppenaxfort, consiste à utiliser un robot NAO ou un objet connecté ou enfin tout support numérique, pour fournir aux jeunes et à l'équipe un nouveau moyen de communication et un nouveau support de travail.

Description et objectifs

En collaboration avec l'équipe médico-sociale de l'institut, je devrai dans un premier temps définir clairement le cahier des charges, pour cela il me faudra mener divers interviews sur le terrain afin d'identifier et analyser les besoins. Ensuite, je pourrai passer à la partie développement/conception du projet et enfin je pourrai déployer l'outil conçu afin d'observer son impact et de le réajuster ou de l'adapter.

Cahier des charges

L'objectif de ce projet est de permettre aux jeunes atteints de déficience intellectuelle de communiquer, de se sociabiliser, d'apprendre et de se développer grâce aux outils numériques. Je développerai alors une application pour tablette simple, ludique, ergonomique et adaptée à chaque jeune. Une telle application permettra au jeune d'apprendre le schéma corporel, l'usage de l'extérieur (se déplacer en toute sécurité et civilité à pied), l'hygiène, la dénomination et de travailler ses facultés cognitives (mémoire) et son expression artistique. Cette application pourra aussi être utilisé dans le cadre des ateliers de travail (menuiserie - horticulture - ménager) afin de fournir aux techniciens un support de présentation des procédures de travail (comment peindre un mur).

Planning

Titre
Phase Tâche Sem 1 Sem 2 Sem 3 Sem 4 Sem 5 Sem 6 Sem 7 Sem 8 Sem 9 Sem 10 Sem 11 Sem 12 Sem 13 Sem 14 Sem 15 Sem 16 Sem 17 Sem 18 Sem 19 Sem 20 Sem 21
Définition du cahier des charges Découverte de l'IME (lieu et équipe) x
Interviews / Réunions x x x x x x x
Ateliers x
Conception et développement Documentation NAO x
Documentation programmation sur tablette (iOs/Android) x x x x x x x x x
Développement du menu x x x
Développement du tutoriel x x x x x x x x
Développement activité Bravo x x x x x
Développement activité consigne x
Déploiement et observations Installation émulateur x
Présentation de l'application à l'IME x
Rédaction du wiki
Préparation présentations
Préparation réunions
x x x x x x x x x x

Tableau de bord

Semaine 1 (18/09/17 : 24/09/17)

Ayant très peu (voire pas du tout) pratiqué la programmation sur NAO, j'ai dans un premier cherché à voir ce qu'il était possible de faire faire à ce petit robot, et surtout comment s'y prendre.

Il existe plusieurs outils développés par SoftBank Robotics (ex Aldebaran Robotics) pour programmer le robot NAO :

  • Le store de SoftBank qui propose des applications définissant le comportement de base du robot
  • La suite Choregraphe qui offre des outils haut niveau pour piloter les mouvements du robot sans se soucier de quel moteur mouvoir
  • Un des SDK (C++, Python, Java ou Javascript) pour agir au plus bas niveau du robot en accédant à ses capteurs et actionneurs

La suite Choregraphe semble l'outil le plus adapté pour répondre au cahier des charges puisque l'objectif principal du projet est de définir un ensemble de mouvements et comportements afin de solliciter l'enfant handicapé. Par la suite, l'éducateur spécialisé devra apprendre à programmer le NAO pour en assurer la maintenance, apprentissage facilité pour un novice de la programmation du fait que cet outil est haut niveau. Choregraphe offre aussi un simulateur du robot, ce qui me permettra de vérifier les actions programmées durant la semaine afin de gagner du temps lors des tests en situation réelle à l'IME (peu voire pas de débogage sur place). On pourra éventuellement chercher dans le store de SoftBank des actions de base, comme la marche, ou bien des actions plus avancées, comme la danse.

Premier rendez-vous pris pour le 28/09/17 à 9h30h à l'IME de Coppenaxfort.

Objectifs de la semaine 2
Rencontre de l'équipe
Définition du cahier des charges

Semaine 2 (25/09/17 : 01/10/17)

Jeudi
  • 9h30 - 10h30 : Réunion avec Mme MAHIEU durant laquelle elle m'a présenté l'établissement de Coppenaxfort, ses acteurs, son public, ses missions et ses actions
  • 10h30 - 11h30 : Visite du domaine par O, un des deux chefs de service
Vendredi
  • 9h30 - 11h15 : Discussion avec 4 membres de l'équipe médico-sociale (chef de service, infirmière, ergothérapeute et comportementaliste) dans le but de définir le périmètre du projet et trouver un axe d'approche

Brève présentation de l'Institut médico-éducatif de Coppenaxfort

Pour la bonne compréhension de la suite du projet par le lecteur, il me semble nécessaire de présenter brièvement l'IME :

  • Fait partie de l'association parentale des Papillons blancs de Dunkerque
  • Accueil d'adolescents et de jeunes adultes (garçons et filles) présentant une déficience intellectuelle moyenne ou profonde, âgés de 12 à 20 ans
  • 47 jeunes en semi-internat (uniquement du lundi au vendredi en journée) et 15 en internat
  • Parmi ces 62 jeunes, 17 autistes ou porteurs de Troubles Envahissants du Développement bénéficient du service TED déployé en 2007
  • 4 unités dans lesquelles sont dispersés les jeunes adultes selon leur âge : accueil, SI1 (Section Intermédiaire 1), SI2 et sortants
  • L’établissement a pour mission de permettre à l’adulte en devenir de trouver une place dans l’environnement économique et social, en fonction de ses capacités et de sa personnalité. Par conséquent la journée de chaque jeune est personnalisée et organisée selon ses envies et besoins

Dans l'optique de permettre à ses jeunes adultes une insertion sociale et économique, l'établissement propose diverses activités/formations :

  • Un pôle bois/menuiserie offrant les bases du travail du bois et permettant au jeune de développer ses compétences de sécurité et d'autonomie
  • Un pôle horticulture/espace-verts offrant les bases de la culture et de l'entretien des espaces verts, toujours en développant sécurité et autonomie
  • Un pôle EMG (Enseignement ménager général) où le jeune apprend l'entretien des sols, du linge, etc

Par la suite, les jeunes les plus doués peuvent intégrer un ESAT (Établissement et service d'aide par le travail)

  • Un atelier polyvalent-découverte permet aux nouveaux arrivants de découvrir chaque pôle en toute simplicité, avant de pouvoir rentrer dans les détails
  • Un atelier d'expression artistique est également à disposition des jeunes

La direction de l'établissement se compose de Mme MAHIEU et de deux chefs de service. Voici les différents postes occupés au sein de l'IME:

  • Psychologue 1,5 (1 temps plein et 1 temps partiel)
  • Psychiatre (Jeudi et vendredi après-midi)
  • Infirmière (Jeudi et vendredi matin)
  • Assistante sociale 1,5
  • Ergothérapeute 1,5
  • Psychomotricienne 1,5

Le service TED comprend :

  • 2 éducateurs spécialisés
  • AMP Aide médico-psychologique 1,5
  • Psychologue

Synthèse de la discussion

Suite à cette discussion deux axes d'étude se dégagent, un orienté médical et l'autre sur la communication :

  • Médical : utiliser NAO comme outil d'aide au diagnostique pour les enfants ayant des difficultés à communiquer. Pour dédramatiser certains actes médicaux comme une prise de tension ou de température, NAO étant alors un miroir/modèle dans lequel le jeune puisse s'identifier. Mais aussi pour les jeunes ne ressentant pas les douleurs
  • Communication : Aider les jeunes à s'exprimer, en faisant de NAO un outil ludique pour apprendre et communiquer. Je peux m'inspirer de l'application pour tablette LearnEnjoy utilisée à l'IME
Idées d'utilisation de NAO
Médical Communication
NAO mimant une chute, se blesse à la cheville (cas de non interprétation des signaux de douleur) Identification des parties du corps/schéma corporel
NAO devant un écran pendant un long moment, yeux devenant rouge Travail compréhension des consignes et dénomination
Faciliter les soins en faisant d'abord sur NAO Scénarii dans lesquels NAO paraisse sympathique. Utilisation d'un langage "jeune" (NAO qui "check" pour dire bonjour)

L'utilisation du robot en tant qu'outil d'aide au diagnostique médical semble moins pertinent que dans le cas d'aide à la communication. En effet, l'infirmière se sert déjà d'une peluche/poupée pour montrer les parties du corps, et n'aurait donc pas d'intérêt particulier à utiliser NAO. De plus, le mode de communication étant différent chez certains jeunes, par exemple chez ceux qui identifient les parties du corps uniquement si elles sont sous forme d'icône, le robot deviendrait alors inutile.

Une des problématiques importante ressortant de cette discussion est l'utilisation de NAO durant les "temps informels", moments de la journée durant lesquels le jeune est livré à lui-même et ne s'occupe pas. Mais le coût élevé du robot contraint fortement l'utilisation de ce dernier pendant ces périodes puisqu'il y a un fort risque de casse. Cela suppose utiliser NAO dans un endroit confiné (infirmerie) et avec des jeunes choisis, réduisant fortement l'intérêt d'un tel dispositif.

Une question récurrente lors de cette discussion était : "Mais, il ne peut pas avoir un écran NAO ?". L'intérêt d'utiliser NAO étant encore réduit, j'ai alors émis l'idée de changer radicalement de dispositif technologique, et de concevoir un "objet connecté" avec divers actionneurs, écran tactile, leds, etc afin de répondre au mieux au besoin d'occupation des temps informels.

Objectifs de la semaine 3
Poursuivre les interviews
Explorer l'idée d'un objet connecté plutôt que NAO

Semaine 3 (02/10/17 : 08/10/17)

Lundi
  • Brève discussion avec M Vantroys : les conclusions d'un PFE passé similaire ont montrées que l'utilisation d'un NAO était tout à fait pertinente avec des enfants autistes, mais que l'utilisation d'une tablette pour lancer les divers programmes et le prix du robot étaient un frein au déploiement d'un tel dispositif. M Vantroys émet aussi l'idée de concevoir un "objet connecté" ,dont les fonctions et la forme sont à définir, pour mieux répondre au besoin de l'IME et des jeunes, tout en s'affranchissant (en grande partie) de la contrainte de coût et de fragilité du NAO
Vendredi
  • 9h30 - 10h30 : suivi d'un groupe de jeunes mené par une psychomotricienne et un stagiaire, mise en place des tables pour le repas du midi
  • 10h30 - 11h30 : interviews de plusieurs membres de l'équipe sur tout le domaine, éducateurs spécialisés, stagiaires, enseignante, infirmière, responsable de la serre

Synthèse des interviews

Lors de mon suivi du premier groupe j'ai longuement pu échanger avec la psychomotricienne. Celle-ci m'a fait part d'un nouveau besoin, l'organisation personnelle de chaque jeune, celui-ci ayant un emploi du temps hebdomadaire, avec pictogrammes personnalisés pour correspondre au mieux à son mode de communication. Cet emploi du temps étant amené à varier et parfois changer, cela peut susciter chez certains du stress et de l'anxiété. L'idée serait donc de développer une "montre connectée" qui lui permettrait d'avoir facilement accès à son emploi du temps, mais aussi d'avoir un dictionnaire de pictogrammes permettant aux non-vocaux de cliquer sur un pictogramme et par synthèse vocale faire des phrases simples.

Objectifs de la semaine 4
Poursuivre les interviews
Discuter de la réorientation du projet avec l'équipe de direction

Semaine 4 (09/10/17 : 15/10/17)

Jeudi
  • 9h50 - 10h15 : Présentation de la synthèse des interviews des semaines passées au chef de service et à la comportementaliste. Réorientation du projet vers un objet connecté/tablette. RDV pris le 19/10 à 14h avec la comportementaliste et avec l'ergothérapeute le 10/11 à 10h
  • 10h15 - 12h : Participation à l'atelier de rédaction du journal annuel de l'IME (4 jeunes + 2 ES)
  • 12h - 13h15 : Repas avec tout le monde
  • 13h15 - 16h : Participation à l'atelier de "musicothérapie" (2 jeunes + 3 ES)
  • 16h30 - 17h30 : Réunion sur les temps informels


L'institut possédant déjà 8 tablettes, et ce qui semble le plus pertinent pour l'équipe étant que l'objet possède un écran tactile, le projet s'orientera à priori vers le développement d'une application pour tablette.


Durant l'atelier de rédaction du journal de l'IME, j'ai pu constater les difficultés qu'ont les jeunes à retenir les informations qu'on leur donne et à nommer les choses, notamment leur du tour de table de présentation de chacun (prénom+âge+lieu de travail+lieu de vie) puis leur du choix de photo d'évènements passés (pêche aux crevettes, pêche à la truite, visite d'un musée sur la piraterie). L'application pourrait leur permettre de travailler leur concentration, leur mémoire à court terme mais aussi la dénomination. J'ai pu observé comment l'éducatrice les amenait à réfléchir, quelles questions et la façon dont elle les formulait pour les aider à dénommer les lieux (car certains confondaient la mer et l'étang). Pour faciliter la compréhension du journal par tous, il est rédigé en FALC (Facile à lire et à comprendre).


L'atelier de musique m'a permis constater que certains jeunes sont très réceptifs à la musique et ont le rythme dans la peau! D'autres un peu moins... Cet atelier est divisé en deux parties, le matin ils créent et jouent une musique avec l'aide des ES (intro, pont, refrain, rythme, mélodie, ...) tandis que l'après-midi ils se servent des instruments de musique pour communiquer. Par exemple deux d'entre eux (ES et/ou jeune) prennent un djembé, puis un entame une "conversation" en tapant, frottant, caressant etc le djembé. La personne concernée doit donc lui répondre de la même façon. Là aussi certains sont très réceptifs (et d'autres moins), cela leur permet de libérer une parole non-verbale qui est peut être source de frustration et mal-être quand elle n'est pas extériorisée.


Lors de la réunion sur les temps informels, comprendre comme temps de repos/pause/récréation/recréation, il a été question d'optimiser l'utilisation de ces temps. Ils peuvent être utiles à certains jeunes pour se concentrer sur l'activité à venir, pour se défouler et diminuer les tensions accumulées mais chez d'autres ce temps à un effet néfaste sur leur état psychique, pouvant susciter de l'anxiété et du stress. Les ES ont jusqu'à début novembre pour rendre compte de la manière dont les jeunes aimeraient occuper ses temps. Déjà certains ont émis le souhait de jouer au foot/baby-foot/danse, de lire/écouter de la musique/regarder des clips dans la salle de repos et enfin d'avoir accès à des jeux-vidéos ou jeux de société.


Cette journée m'a tout d'abord permis de partager une tranche de vie de l'institut, et de réellement m'immerger dans ce milieu. J'ai ainsi pu analyser et observer certains besoins, et voir comment les professionnels réagissent et agissent pour faciliter la communication et la vie quotidienne des jeunes.

Objectifs de la semaine 5
Discuter de la création d'une application tablette (récupérer un tableau récapitulatif des applis existantes pour enfants autistes) lors de la réunion du jeudi après-midi
Se documenter sur la programmation Android
État de l'art sur l'éducation spécialisée (ressources partagées par M Vantroys)


Semaine 5 (16/10/17 : 22/10/17)

Jeudi
  • 14h - 15h30 : Réunion à propos d'une application tablette avec la psychologue-comportementaliste et d'une ES connaissant très bien les besoins du terrain et étant intéressée par l'utilisation de nouvelles technologies dans leur travail.


Lors de cette réunion plutôt que de partir explicitement d'un besoin précis, nous avons imaginé comment nous aimerions que l'application soit. Puis nous avons analysé cette appli pour voir auxquels de ces besoins elle pouvait répondre, et avons adapté notre idée de sorte à couvrir un spectre plus large. Notre idée finale, tout du moins le temps de fournir un prototype, est la suivante :

  • Mise en place de scénarios
  • Un scénario a plusieurs niveau de difficulté (a priori 5-6 niveaux), de sorte que l'application touche le plus de jeune possible
  • Un scénario se déroule dans un lieu bien défini (cuisine, salle de bain, quartier, l'atelier, ...)
  • Un scénario est une succession de photos ou de photos mêlées à des schémas formant une scène
  • Certains éléments d'une scène sont interactifs : drag'n'drop, émettant un son caractéristique de l'élément, affichant le mot correspondant à l'élément, ...
  • Chaque lieu permet d'aborder un ou plusieurs thèmes
  • Chaque scénario permet d'aborder un thème
  • Thèmes : hygiène, usage de l'extérieur, alimentation, sécurité, intégration des risques quotidiens, comportements adaptés en société

Les applications existantes étant majoritairement en langue anglaise, et pour les enfants, notre application présente l'avantage majeur d'être en français et la moins infantilisante possible (notamment grâce à l'usage de photos au lieu de dessins) afin de correspondre à un public de jeunes adultes. L'application devra aussi être simple, ludique, ergonomique, ne permettant pas l'échec, récompensant les bonnes réponses, permettant d'apprendre (c.f. thèmes) et en 2D. L'application permettra au jeune de travailler sa mémoire à court terme, sa concentration, son vocabulaire, l'association image-image, l'association son-image et la dénomination.


Pour expliciter ce que permettra l'application, je vais prendre ici un exemple de scénario :

  • Le jeune/ES choisit le niveau 2 de difficulté
  • Le jeune/ES choisit de travailler le thème de l'hygiène
  • Il peut alors choisir entre la cuisine, la salle de bain ou le bus (ces trois lieux permettant d'aborder ce thème). Le jeune/ES choisit la salle de bain.
  • La première scène s'affiche. 3 objets sont présentés et le jeune peut interagir avec : brosse à dent, gant de toilette, serviette de bain. Quand on clique sur un objet, il est nommé oralement et écrit, puis un son propre à cet objet est joué.
  • Il est alors demandé au jeune de cliquer sur la brosse à dent
  • Après réussite, il est félicité et récompensé
  • Une nouvelle scène s'affiche. Les trois mêmes objets sont affichés. Trois actions sont affichées : brossage de dents, se laver le corps, se sécher. Le jeune doit alors associer l'objet avec son action.
  • Après réussite, il est félicité et récompensé

Ce scénario permet d'apprendre l'hygiène quotidienne, de dénommer des objets, reconnaître le son qu'ils produisent et de travailler l'association image-image et objet-action.


Après quelques recherches sur les applications existantes, je trouve cette application permettant de faire sensiblement ce que nous avons imaginé. J'attends de pouvoir en discuter avec l'équipe afin de voir les forces qu'aurait notre application par rapport à celle-ci, voir ce que l'on pourrait changer et voir si nous devons poursuivre avec cette idée.


Objectifs des semaines 6 et 7
Démarrer le prototypage de l'application
Installer Android Studio + prise en main du développement Android
Rechercher des images/photos/sons libres de droit
Développer le menu difficulté > thèmes > lieux > scénarios
Définir un scénario (choisir un thème, un lieu et définir une progression dans la difficulté)

Semaine 6 et 7 (23/10/17 : 5/11/17)

Objectifs de la semaine 8
  • Réunion avec l'ergothérapeute de l'IME pour lui présenter le concept de l'application et approfondir certains points (organisation de l'application, taille des boutons, type d'interactions,...)
  • Poursuivre mon autoformation sur d'Android Studio

Semaine 8 (6/11/17 : 12/11/17)

Vendredi
  • réunion avec l'ergothérapeute

Durant cette réunion j'ai pu présenté à l'ergothérapeute l'application que nous avons conçu durant la semaine 5. Voici les précisions qu'elle a pu apporter au projet :

  • Dissocier la difficulté des actions demandées de la "difficulté" liée au mode de communication utilisé par chaque jeune. Dans l'ordre croissant de difficulté, association :
    • objet - objet (réels, N/A dans le cadre de l'application)
    • objet - photo (photo de l'objet)
    • photo - photo
    • photo - dessin (picto)
    • photo - photo (photos d'un même objet mais avec des caractéristiques différentes, couleur, forme,...)
    • dessin - dessin (d'un même objet mais avec des caractéristiques différentes, couleur, forme,...)
    • dessin - dessin
  • Développer un tutoriel pour familiariser le jeune aux interactions qui lui seront demandées :
    • Pointer un objet
    • Pointer un objet en mouvement
    • Drag'n'drop

Je devrai veiller à intégrer une aide progressivement décroissante ("main" virtuelle montrant l'action à effectuer, puis action sans cette main par exemple)

  • Gérer l'échec et la réussite. Désactiver les interactions fausses (par exemple, griser la mauvaise réponse et désactiver les interactions avec celle-ci). Féliciter chaque victoire/bonne réponse.
  • Possibilité d'intégrer des photos personnelles. Ce point est à discuter dans la mesure où l'application nécessitera d'avoir accès au réseau, ce qui est impossible actuellement (pas de WiFi dans l'IME).
  • Possibilité d'émuler l'application sur le tableau tactile de l'IME, voire sur PC.
Objectifs des semaines 9,10,11,12
  • Développer un prototype de l'application pour le présenter à l'équipe médico-sociale et aux jeunes afin de concevoir plus en détail les interactions et les scénarios
    • Développement du menu
    • Développement du tutoriel

Semaine 9 (13/11/17 : 19/11/17)

  • Menu de l'application : navigation thèmes > lieux

Utilisation de RelativeLayout, Button, TextView.

  • Recherches d'images (libres de droit) pour le tutoriel

Semaine 10 (20/11/17 : 26/11/17)

  • Première scène du tutoriel : cliquer sur un ballon de foot
  • Deuxième scène du tutoriel : cliquer sur un ballon de foot en mouvement
  • Troisième scène du tutoriel : drag'n'drop du ballon dans une case target

Utilisation de SurfaceView (SoundPool plus tard pour gérer le bruitage)

Semaine 11 (27/11/17 : 03/12/17)

Création de la vue récompense/félicitation après une bonne réponse. Cette vue doit être appelée après une bonne réponse puis renvoyer vers la scène suivante du scénario. Plusieurs possibilités s'offrent à moi quant à son implémentation :

  • utilisation Activity classique
  • utilisation Dialog (ni ergonomique ni esthétique)
  • utilisation Fragment (autant tuer une mouche avec une ogive nucléaire)

Semaine 12 (04/12/17 : 10/12/17)

Documentation sur les différentes solutions envisagées en semaine 11 pour développer l'activity Bravo

Semaine 13 (11/12/17 : 17/12/17)

Rédaction du rapport de mi-parcours et préparation de la soutenance.

Semaine 14 (18/12/17 : 24/12/17)

Fin de préparation de la soutenance et soutenance.

Plusieurs points sont à retenir de cette soutenance :

  • ne pas s'étendre sur des points de contexte inutiles
  • synthétiser au plus la démarche, même si celle-ci est très importante, pour uniquement se focaliser sur les résultats et la valeur ajoutée

Objectifs pour les semaines à venir :

  • Mi-janvier
    • recherche d'une personne pour designer Noa (le personnage de l'application)
    • finir le tutoriel pour le présenter à l'équipe de l'IME
  • Début février
    • définir des scénarios
    • développer ces scénarios
  • Mi-février
    • présenter les scénarios et les tester en conditions réelles
    • effectuer les ajustements nécessaires

Semaine 15 (08/01/18 : 14/01/18)

  • Architecture et implémentation de la gestion de passage d'une scène à une autre via l'activité bravo
  • Débogage partiel drag n drop
  • J'ai trouvé une personne pour me faire 2 dessins pour l'application : 1 dessin de félicitation et 1 du personnage Noa expliquant une consigne

Je vais détailler ci-dessous la façon que j'ai choisi d'utiliser pour passer d'une scène à une autre en utilisant l'activité bravo comme relai. Le défi était de rester "orienté Java" sans utiliser les outils complexes fournis par Android (Fragment).

Explication bravo.jpg

J'ai créé une classe abstraite MyPlayActivity.java dont toutes les scènes de jeu héritent. Les 3 principales méthodes de cette classe sont :

  • backHome() permettant un retour au menu
  • bravoPage() permettant de lancer l'activité BravoActivity.java une fois le challenge réussi dans la scène de jeu en question
  • next(), méthode abstraite, permettant de terminer l'activité courante et de lancer la suivante

Cette classe abstraite me permet de hardcoder le passage d'une activité à l'autre à chaque fois que cela est requis.


Le schéma ci-dessus explique comment l'application passe d'une activité à l'autre. La méthode bravoPage() utilise la méthode startActivityForResult(...) pour lancer BravoActivity.java et demander un renvoi de message lorsque cette dernière se termine. Ainsi la methode next() est appelée et une nouvelle scène est présentée à l'utilisateur.

Semaine 16 (15/01/18 : 21/01/18)

  • Résolution du bug drag n drop :

j'utilisais les méthodes fournissant les positions des vues sur l'écran pour savoir si elles étaient droppées au bon endroit, mais il s'avère que cela est plus simple sous Android. En effet, un listener drag'n'drop est enregistré sur les objets avec lesquels l'utilisateur doit pouvoir interagir, et si un objet est droppé sur un d'entre-eux l'évènement ACTION_DROP leur est envoyé : je n'ai plus qu'à faire le traitement pour déterminer quel objet a été droppé sur quel autre objet.

           //drag shadow has been released,the drag point is within the bounding box of the View
           case DragEvent.ACTION_DROP:
               //handle the dragged view being dropped over a target view
               View view = (View) event.getLocalState();
               if (v == findViewById(R.id.red_rectangle)) {
                   //stop displaying the view where it was before it was dragged
                   view.setVisibility(View.INVISIBLE);
                   //view dragged item is being dropped on
                   ImageView dropTarget = (ImageView) v;
                   //view being dragged and dropped
                   ImageView dropped = (ImageView) view;
                   dropTarget.setBackgroundColor(dropped.getSolidColor());
                   bravoPage(v);
               }
  • ajout d'une scène avec drag'n'drop multiple

J'ai aussi maintenant à ma disposition deux dessins du personnage Noa que je peux dorénavant intégrer à l'application pour présenter les consignes et féliciter l'utilisateur.

Objectifs de la semaine 17 dans (l'ordre de priorité) 
  • intégrer Noa dans le tutoriel
  • travailler l'esthétique et l'ergonomie de l'application (choix de couleurs pour les boutons, police de caractère, dimension des interfaces, ...)
  • préparer la présentation du prototype pour le 29/01 devant l'équipe de l'IME + préparer le brainstorming visant à définir 3 scénarios sur 3 thèmes
  • se documenter sur les animations/transitions entre vues sous Android pour d'une part dynamiser l'application et d'autre part gagner un niveau de complexité dans les scénarios

Semaine 17 (22/01/18 : 28/01/18)

  • intégration des dessins de Noa
  • choix de la typo employée pour les consignes et la récompense
  • développement d'une activité consigne : transition entre ActivityBravo et l'activité suivante
  • développement de 3 scènes supplémentaires pour le tutoriel : drag n drop association d'items, drag n drop de tri, touch de sélection d'items
  • résolution d'un bug de transition sur l'activité Bravo
  • préparation de la présentation devant l'équipe de l'IME ainsi que le responsable des projets des Papillons Blancs de Dunkerque


Ci-dessous quelques captures d'écran du tutoriel de l'application, présenté à l'équipe pour avoir la base de la création d'une scène.


Consigne de la scène 1 du tutoriel, suivie de l'action à effectuer pour gagner puis récompense après réussite de l'action : Consigne de la scène 1 du tutoriel Action demandée dans la scène 1 du tutoriel : touch Félicitation de l'utilisateur après réussite de l'action demandée


Action demandée dans la scène 2 du tutoriel : drag n drop. Action demandée dans la scène 2 du tutoriel : drag n drop


Action demandée dans la scène 3 du tutoriel : association. Les carrés de même couleur, associés entre eux, deviennent invisible. Action demandée dans la scène 3 du tutoriel : association Carrés associés rendus invisible


Action demandée dans la scène 4 du tutoriel : tri. Action demandée dans la scène 4 du tutoriel : tri


Action demandée dans la scène 5 du tutoriel : sélection. Ici, une mauvaise interaction grise le carré et rend impossible l'interaction avec ce dernier. Action demandée dans la scène 5 du tutoriel : sélection Bonne sélection = carrés invisibles, mauvaise sélection = carrés grisés

Semaine 18 (29/01/18 : 04/02/18)

  • présentation devant l'équipe de l'IME (29/01 matin)
  • animation d'un brainstorming pour élaborer des scènes autour de 4 thèmes choisis par l'équipe (29/01 matin)
retour sur l'actuelle application
  • mettre en place une synthèse vocale pour lire les consignes (très important!)
  • choix de certains mots dans les consignes : il faut que l'appli soit FALC (à voir a posterio avec des membres de l'établissement formés)
  • conforme à ce que l'équipe souhaite


Planning de la semaine 18 et 19
  • mardi 30 : lecture et synthèse du brainstorming. Recherche d'images sur 1 des 4 thèmes.
  • mercredi 31 : intégration du thème 1
  • jeudi 1 : intégration du thème 1
  • vendredi 2 : recherche d'images thème 2 et intégration du thème 2
  • samedi 3 /dimanche 4: intégration du thème 2
  • lundi 5 : recherche d'images thème 3 et intégration du thème 3
  • mardi 6 : intégration thème 3
  • mercredi 7 : recherche d'images thème 4 et intégration du thème 4
  • jeudi 8 : intégration thème 4
  • En parallèle : documentation synthèse vocale pour les consignes et implémentation. (TextToSpeech)


Discussion du 31/01 avec M Vantroys

Comme le quasi totalité du travail restant est rébarbative et se résume grossièrement à copier-coller et changer les images du code que j'ai déjà produit, j'ai décidé de faire part de cette problématique à M Vantroys. Ce dernier m'a suggéré de réorienté le projet sur la création d'un éditeur de scénario, ce qui aurait une vraie valeur ajoutée comparativement au travail que j'effectue, et ce qui permettrait au personnel de l'IME de ne plus avoir besoin de moi a posteriori pour la création de nouveaux scénarios.

Je dois rapidement décider sur quelle architecture m'orienter, plusieurs choix s'offrent à moi :

  • capitaliser sur les connaissances acquises en Android en intégrant l'éditeur à l'application
  • développer l'éditeur en dehors (appli PC) de l'application; finalement il servira juste à générer les fichiers de configuration de scénario qui seront ensuite synchroniser avec la tablette

Semaine 19 (05/02/18 : 11/01/18)

  • documentation pour développer l'application d'édition de scénarios, je me focalise pour l'instant sur la partie applicative et génération d'un fichier contenant les informations relatives à un scénario
  • implémentation de la synthèse vocale dans BravoActivity.java et ConsigneActivity.java
  • j'essaie d'implémenter la synthèse vocale dans ma classe abstraite MyPlayActivity.java mais comme je dois pouvoir accéder au TextView contenant la consigne à énoncer, il me faut l'ID du layout associé à la classe de la scène en particulier, cela semble impossible pour l'instant. Je vais peut être devoir implémenter dans chaque classe cette fonctionnalité.

EDIT : solved! j'ai réorganisé le code de sorte que je puisse lire et relire la consigne dans l'activité de jeu. Plus d'explications à venir... J'en ai profité pour optimiser certaines méthodes de MyPlayActivity en utilisant au mieux le principe d'héritage.

  • cette librairie (json2view) et celle-ci (proteus) pourraient me permettre de générer les layouts des activités créés à partir de l'appli d'édition de scénario, i.e. de créer le layout de l'activity à partir d'un fichier json. L'architecture serait alors la suivante (pour la partie interface graphique uniquement et non pour l'interaction):

Arch editeur scenarios.png

En poursuivant mes recherches pour implémenter ce dispositif, un problème non négligeable m'apparaît : il est impossible de créer dynamiquement une nouvelle Activity ! En effet, toute activité doit être écrite dans le fichier AndroidManifest.xml avant la compilation. Les deux librairies citées ci-dessus (proteus et json2view) permettent de mettre à jour le layout d'une activité existante et non pas d'en créer une nouvelle, or toute l'architecture de l'application que j'ai développé repose sur ce principe de création d'une nouvelle activité pour chaque scénario...

Une solution serait de revoir l'architecture de l'application pour seulement mettre à jour un layout entre deux scènes. Se pose alors la question de comment prendre en compte tous les types de layout dans l'Activity, i.e. prendre en charge toutes les interactions possibles en fonction de la configuration du layout.

Semaine 20 (12/02/18 : 18/01/18)

  • finitions de l'application, surtout au niveau de l'ergonomie et de l'interface
  • rédaction du rapport

Semaine 21 (19/02/18 : 25/01/18)

  • rédaction du rapport : fin
  • préparation de la soutenance
  • présentation de la dernière version de l'application à l'équipe de l'IME
  • installation d'un émulateur sur un des PCs de l'IME + installation de l'application : moteur de synthèse vocale à installer

Conclusion

Ce projet aura été une véritable réussite pour moi. En effet, j'aurais pu définir le projet en discutant et en observant au maximum, ce qui aura été l'occasion de transformer en compétences les outils que j'ai pu étudier en module de gestion de projet et de management. La dimension humaine et la portée de ce projet ont contribué à l'intêret que je lui ai porté tout au long de cette année scolaire. Une entière autonomie m'a été laissée, m'obligeant à me responsabiliser et à fournir des livrables afin de montrer l'avancée du projet. Apprendre le développement sous Android n'aura pas été aisé, même si j'ai eu l'occasion de pratiquer brièvement le Java, le développement purement logiciel n'est pas ce qui m'a le plus stimulé. Le manque de ressources graphiques ne m'aura pas permi d'aller aussi loin qu'escompté, mais j'ai la certitude que mon travail de pédagogie et de sensibilisation auprès de l'équipe de l'IME leur permettra de rapidement mettre en place d'autres outils du numérique. Avoir mené un projet de bout en bout, en autonomie et avec peu de moyen, me permettra d'avancer plus rapidement et sans embûches lors de futurs projets.

Bibliographie

Ressources Android 
Ressources graphique 
Git du projet