IMA4 2017/2018 P15
Sommaire
- 1 Présentation générale
- 2 Analyse du projet
- 3 Préparation du projet
- 4 Réalisation du Projet
- 5 Documents Rendus
Présentation générale
Description
Notre objectif est le suivant :
L'institut CAMSP Montfort s'occupe d'enfants sourds ou malentendants. La plupart de ses enfants sont équipés de systèmes de prothèses auditives. Or, il y a reste certains enfants qui ne peuvent pas être appareillés. Ainsi, l'institut à eu l'idée d'équiper les enfants d'un objet vibratoire qui soit connecté au son que ferait le praticien : cela permettrait notamment à l'enfant de :
- prendre conscience du monde sonore, auquel ils n’ont pas accès du fait de leur handicap
- développer une fonction d’alerte
- renforcer les informations sonores apportées par leur appareillage
- compléter les informations visuelles
Or pour l'instant, il n'existe aucun dispositif de la sorte mis sur le marché (car trop peu d'enfants concernés). Nous allons donc créer ce dispositif qui sera mis en open source.
Objectifs
Notre travail consistera donc à créer un dispositif vibrant réagissant au son que produira le praticien. Ce dispositif devra :
- être facile à prendre en main ou a déplacer sur le corps de l'enfant (une balle)
- Pouvoir avoir différentes intensités de vibrations (proportionnel à l'intensité de la voix )
- Etre relié à un micro pour capter le son du praticien
- Etre équipé d'une application Android permettant de gérer :
- une base de données assurant le suivi médical des enfants
- régler la plage de vibration souhaitée (suivant la sensibilité de l'enfant)
- pouvoir faire vibrer la balle manuellement
Analyse du projet
Positionnement par rapport à l'existant
Un prototype permettant d'affiner le cahier des charges de l'institut à déjà été conçu durant un projet IMA5. Celui ci à déjà notamment réalisé un prototype à partir d'Atmega 328p, d'un bracelet vibrant relié et un micro avec un boitier en imprimerie 3D. tous deux étaient relié par un fil. Le bracelet vibrait effectivement suivant l'intensité sonore. mais n'avait pas plusieurs niveaux de vibrations possible, La liaison entre le bracelet et le micro n'était que filaire. Une application Android gérant le suivi des patients à également été développé, mais il était impossible de gérer l'intensité de la vibration via l'application ou de déclancher une vibration par l'appui sur un bouton.
Analyse du premier concurrent
Nous n'avons actuellement aucun concurrent direct (personne tentant de réalisé une dispositif similaire au notre) Néanmoins, nous avons certains concurrents indirect tel qu'une université au Colorado à créé une oreillette équipé d'un micro qui est capable de capter les sons et le retransmet via bluetooth à un petit dispositif placé sous la langue. celui ci transforme le son initial en motif et l'envoie sous forme de signaux électrique. En revanche, il faut un certain temps d'adaptation avant que ce dispositif puisse fonctionner et il n'est pas forcement adapter pour tout le monde.
Analyse du second concurrent
Notre second concurrent est une brosse à dents électrique. Le principe de faire vibrer un objet pour signifier aux enfants qu'une personne veut leur parler a déjà été expérimenté grâce à une brosse à dents électrique positionnée sur le corps de l'enfant. Or ce procédé est très limité :
- Un seul type de vibration
- Présence obligatoire du praticien juste à coté de l'enfant pour déclencher la vibration
- Pas de convivialité apportée par la forme de l'objet
- Impossibilité d'automatiser le déclenchement de vibration en fonction du son émis par le praticien.
Scénario d'usage du produit ou du concept envisagé
Tim est un jeune enfant de 2 ans. Malheureusement, il a très vite été diagnostiqué mal entendant, et son état médical ne lui permet pas de porter un implant pouvant lui redonner la possibilité d'entendre quelque sons.
Dans le but d'apprendre à vivre dans le monde qui l'entoure avec son handicap, et ce dans les meilleures conditions, ses parents le conduisent régulièrement au CAMSP MONTFORT, un service social classifié Centre d'action médico-sociale précoce (CAMSP). Dans cet institut, Tim utilise à raison d'une dizaine de minutes par jour une petite balle vibrante. Cette balle a pour intérêt d'aider Tim à comprendre qu'il y a un lien entre des lèvres qui bougent, et la volonté de transmettre un message. Pour ce faire, cette balle émet une vibration proportionnelle à l'intensité de la voix du praticien. De cette manière, la balle devient une sorte de signal mobilisant l'attention de Tim.
Tom est un ami de Tim. Alors que ce dernier sent très bien les vibrations en tenant la balle dans le creux de sa main, Tom a plus de mal à les percevoir. En effet, il est moins sensible que Tim, heureusement, Sophie, la praticienne s'occupant d'eux, peut modifier l'intensité des vibrations grâce à une application installée sur son smartphone Android, directement connecté à la balle. Avec cette application, elle gère également des fiches propres à chaque enfant dans lequel elle note leur évolution grâce à la balle. A la fin de la journée, grâce à la certification waterproof, Sophie peut plonger la balle sous l'eau pour la nettoyer et la reposer sur un socle qui rechargera la balle pour qu'elle puisse la réutiliser le lendemain durant toute la journée.
Réponse à la question difficile
Quelle sera le système de rechargement
Nous optons pour le moment pour un système de rechargement par induction. Ce mode de rechargement a les mêmes caractéristiques qu'un chargement classique par câble, et il en offre l’avantage de ne pas devoir placer un port USB sur la surface de la balle. Ainsi nous pourrons plus facilement assurer son étanchéité.
Quelle devra être l'autonomie de la batterie
Selon notre scénario d'usage, la balle vibrante sera utilisée toute la journée par le praticien, soit 10h sans interruption, et rechargée durant la nuit. Nous disposerons donc une batterie à l'intérieur de la balle. Celle-ci devra fournir de l'énergie à la fois à notre module de contrôle mais aussi au moteur qui actionnera un excentrique permettant à la balle de vibrer.
Préparation du projet
Cahier des charges
Choix techniques : matériel et logiciel
Liste des tâches à effectuer
Calendrier prévisionnel
Réalisation du Projet
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 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Analyse du projet | 8 | 8 | 8 | 8 | 8 |
Premier prototype
Voici à quoi ressemblera notre premier prototype :
Le diamètre extérieur de la balle sera de 14cm.
Le revêtement extérieur ne sera pas celui-ci. Nous avons également commencé à modéliser l'application qui ressemblera à cela :
Prologue
Semaine 1
Durant cette semaine, nous nous sommes fait un aperçu global du circuit que nous allions utiliser. Le schéma était le suivant :
- Une batterie fournit la tension d'alimentation nécessaire.
- Cette batterie est rechargée par un bloc de charge prenant sa source sur une bobine à induction.
- La tension de la batterie diminuant lors de la décharge, sera stabilisée à 5v par un boost converter.
- Un Atmega328PB, relié à deux contrôleurs moteur, trois leds et un module bluetooth gérera les commandes.
- Le module bluetooth assurera la connectivité avec le téléphone/tablette Android.
- Les contrôleurs moteur convertissent le signal PWM provenant de l'Atmega328p en variation de tension.
- Les contrôleurs moteurs entraînent des vibreurs disposés sur la surface de la balle.
Semaine 2
Nous nous sommes penchés plus sur le cahier des charges, et avons passé la semaine à définir comment serait notre balle vibrante. Il en est ressorti que :
- La balle sera réalisée via imprimante 3D. Nous devrons ensuite recouvrir cette balle de mousse puis, d'un matériau qui soit adapté au touché de l'enfant. Nous attendons une réponse du CAMSP pour pouvoir définir la texture finale; L’avantage de créer une base en imprimante 3D est que nous pouvons créer la balle de la façon dont nous le voulons, ainsi, Nous disposerons à l'intérieur de la balle d'un support pour tenir la batterie et la carte électronique.
- Concernant la carte électronique, il a fallu déterminer quels composants nous allions placer. En effet notre carte électronique sera donc composée :
- D'un Atmega 328p pour pouvoir stocker notre programme.
- D'un module Bluetooth LE pour pouvoir avoir une connexion sans fil entre la balle et la tablette, et ce avec une grande efficacité énergétique. Les flux de données transmis entre le terminal Android et la balle étant faible, nous pouvons nous contenter des débits offerts par le bluetooth 4 Low Energy.
- D'une batterie Li-on pour pouvoir alimenter l'Arduino et les vibreurs. Nous avons choisi une batterie de type Li-on car elle est a un bon rapport poids/énergie. De plus, pour des raisons de sécurité (balle manipulé par des enfants ) nous n'avons pas voulu utiliser de batterie Li-Po que nous considérions trop instables (risques d'explosion).
- Pour recharger la batterie, nous avons décidé de mettre une bobine à induction dans la balle. l’avantage de ce mode de recharge est qu'il se fait entièrement sans fil. Cela permettra un nettoyage facile de la balle, et aucun port USB apparent. De plus, après plusieurs recherches, nous avons décidé d'utiliser une bobine à la norme QI car la porté est très grande (environ 4cm) et vu que nous allons remettre des épaisseurs de mousse sur la balle pour la protéger en cas de choc, il faut que la distance de recharge puisse être assez grande.
- Des LEDs pour indiquer les différents états de la balle
Nous avons également modélisé le premier prototype de notre balle vibrante pour que le CAMSP nous confirme que ce que nous faisons est bien en adéquation avec leurs attentes
Semaine 3
Durant cette semaine, les derniers choix de matériel ont été faits.
Charge de la batterie
La batterie utilisée étant de type Lithium-Ion, cette dernière nécessite un chargeur affin d'assurer le cycle de charge et de décharge. La charge est assurée selon les étapes suivantes :
- Courant maximum constant et tension minimale (3.2v) au début de la charge
- Augmentation de la tension jusqu'à la tension maximale de charge (5v)
- Abaissement du courant de charge jusqu'à 0A
Le chargeur MCP73831T (U1) permet d'assurer ce cycle tout en pouvant être supervisé par des leds :
- Une led orange (D2) témoignant de la charge en cours
- Une led verte (D1) témoignant d'une charge complétée
La tension d'entrée est également découplée (C1).
Boost de la tension
Le module choisi pour maintenir la tension à 5v est le TPS61090. La tension de sortie de ce module dépend de la valeur des résistances R8, R9, R3, R7. Elles sont calculées selon les équations suivantes fournies dans la datasheet :
Équation 1:
Avec R7 = 200kΩ, Vfb = 500mV d'après la datasheet. Vo, la tension de sortie souhaitée est de 5V.
Après calcul, R3=1.8MΩ.
Équation 2:
Ici, R9 = 340kΩ, Vlb = 500mV toujours d'après la datasheet. Vbat est la tension minimale de la batterie à partie de laquelle l'indication de batterie faible se déclenche. Cette tension est selon la datasheet de la batterie de 2.75V, mais nous préférons éviter tout risque : en cas de non utilisation de la batterie pendant une longue periode, la batterie continue de se décharger à cause de courants de fuite. Si la tension de la batterie passe sous les 2.75V, elle deviendra inutilisable, c'est pourquoi nous minimalisons les risques en fixant le tension de batterie faible Vbat = 3.2V.
Après calcul, R8 = 1.8V.
Équation 3 & 4:
Le boost converter nécessite une "boost inductor" afin de stocker l'énergie durant la conversion. Afin de pouvoir déterminer la valeur de cette inductance (L1), il est nécessaire d'estimer le courant moyen Il traversant l'inductance :
On fixe ici Iout à 500mA, ceci donnera une charge plus lente, mais la balle ne chargeant que durant la nuit, le temps de charge n'est pas un problème, de plus ceci prolongera la durée de vie de la batterie. Concernant Vbat, on se place dans un cas très défavorable, avec une batterie extrêmement déchargée à Vbat = 1.8V. La tension de sortie désirée reste Vout=5V.
Après calcul, Il = 1.750A.
Avec ces données, nous pouvons maintenant dimensionner L1 :
Avec ΔIl = 0.2 * Il, f = 600kHz.
Après calcul, on trouve une inductance Il = 5.5uH au minimum.
Les capacités en entrée, C2 et C3, sont des capacités servant à améliorer le comportement transitoire du montage, et sont conseillées respectivement à 10uf et 0.1uf d'après la datasheet.
La capacité C5 en sortie sert à limiter le ripple (résidus de variation de tension), elle est conseillée à 100uF pour une sortie de 5V.
Enfin, la présence de leds informent des états du circuit :
- Une led bleue (D3) branchée sur la sortie 5V confirme la présence de 5V.
- Une led rouge (D4) alimentée par un transistor (Q1), commandé par la tension Lbo indique une batterie faible.
Gestion du bluetooth
Le module bluetooth choisi fonctionne en 3.3v, or la seule tension d'alimentation présente est 5V, il faut donc un convertisseur 5v vers 3.3v. Nous nous sommes orientés vers un montage avec le MIC5225-3.3 (U5). Des capacités de découplage (C7 et C8) sont également ajoutées ainsi qu'une diode Schottky afin de protéger le circuit.
Les choix étant faits, l'étape suivante était la conception du PCB ainsi que de ses composants. Initialement, pour une question pratique, les composants choisis étaient de taille 1206. Mais rapidement nous nous sommes rendus compte que les composants, de par leur nombre, prendraient trop de place sur le PCB et ne nous permettraient pas de le compacter comme souhaité. Nous nous sommes alors orienté vers des tailles 0603.
Schéma de fonctionnement
Avec les informations précédentes, on établit le schéma suivant :
Semaine 4
Nous nous sommes penché plus en détails sur la création de l'application Pour créer l'application mobile, Nous avons décidé d'utiliser le langage Java. En effet nous devons créer une application Android et après plusieurs recherches, il nous est apparu que le langage Java avec l'aide D'Android Studios était le plus adapté. Nous aurions pu utiliser d'autres IDE (appInventor; inDesign CS6) Celles-ci sont plus facile à prendre en main, mais offre beaucoup moins de possibilités. Seul petit problème, nous n'avons pour l'instant, que des bases assez faible en langage Java. une grande partie de la semaine à donc été consacré à l'apprentissage de ce langage.
Nous sommes ensuite passés à une phase de modélisation des composants sous altium. Certaines footprints étaient déjà disponibles, d'autres non telles que le moduble bluetooth MDBT40 :
Durant cette semaine s'est déroulée une longue session de rootage, un premier placement des composants a pu être proposé. Cependant, certains problèmes ont pu être relevés :
- La largeur des pistes par défaut à 0.6mm n'est pas adaptée, en effet, les pads les plus étroits sont ceux du booster de tension avec 0.35mm.
- La face inférieure du booster de tension n'est pas reliée à la masse alors qu'elle le devrait selon sa datasheet afin de dissiper la chaleur. Cela implique également que les pistes ne peuvent pas passer sous ce composants (sur la face supérieure).
- Le placement du module bluetooth n'est pas correct, il doit être idéalement placé en bordure du PCB afin que les interférences ne soient pas un problème. De plus, il est préconisé dans la datasheet de ne pas faire passer de pistes sous ce module (toujours sur la face supérieure). Afin de pouvoir faire passer des pistes sous le module (face inférieure), une masse doit être présente sous le composant en face supérieure. Enfin, le coté de l'antenne coté PCB (ici le coté gauche), doit être espacé de 1 centimètre du reste des composants/pistes.
- Les angles aigus doivent être supprimés afin d'éviter de générer du bruit.
- Le placement des composants doit être revu afin de réduire au maximum la taille du PCB.
- Le placement de composants doit être fidèle à celui préconisé dans les datasheet, surtout au niveau des composants fonctionnant à fautes fréquences (le booster de tension, qui fonctionne en PWM à 600kHz).
Semaine 5
Pour la partie application :
- Nous avons continué à nous former sur le langage Java. En fin de semaine, nous avons téléchargé l'application Andoid Studios et avons commencé à nous familiariser avec la programmation pour la création d'applications (notamment via le tutoriel d'Openclassroom).
Pour la partie PCB :
Les placements de composants ont été revus afin de corriger les erreurs de la semaine précédente.
Cette version de PCB sera celle gravée lors de la réception des composants.
Semaine 6
Maintenant que nous connaissons les dimensions de la carte électronique ainsi que des différents composants qui nous servirons à créer notre balle vibrante, nous pouvons commencer avons réfléchi sur comment nous allions créer la balle en elle même. En effet nous ne pouvons pas remettre à notre client ( le CAMSP ) simplement un logiciel et des circuits électrique mais il faut bien une balle. Ce premier prototype sera réalisé en imprimante 3D. Nous pensons ensuite envelopper de mousse le modèle 3D que nous aurons fabriqué pour lui donner une meilleur résistance au choc.
Nous devons donc créer une balle qui respectera les exigences suivantes :
- Avoir un diamètre de moins de 15cm pour que l'enfant ou le praticien puisse la manipuler avec aisance.
- Fixer la carte électronique et la batterie de manière à ce que ces dernières ne bouge pas lors des manipulations de la balle vibrante.
- Avoir des emplacements pour pouvoir poser des vibreurs ( 6 au total ).
- Avoir des trous pour pouvoir placer des LEDs et un interrupteur.
Nous avons réfléchi à comment nous pourrions fabriquer une balle répondant à tous ses critères et nous avons ensuite modéliser notre prototype sur le logiciel de CAO OnShape.
Après réflexion, nous avons décidé de faire deux parties pour la balle, nous assemblerons ensuite ces deux parties via un système de clips. La partie basse de la balle devra contenir le PCB, la bobine à induction ainsi que 3 vibreurs tandis que la partie haute aura la batterie et les trois dernier vibreurs.
Voici donc différentes vu du premier modèle de notre balle :
Comme on peut le voir sur les images ci-dessus, la balle ne sera pas totalement ronde mais aura une partie plate. Nous avons prit cette décision pour que la balle puisse être rechargée par induction. En effet, la bobine à induction doit obligatoirement être posé sur une surface plane pour pouvoir fonctionner de manière optimale. De plus le fait d'avoir cette surface plane nous permettra de poser la balle et de la manipuler plus facilement.
La bobine sera donc déposé au fond de la balle est sera fixé avec une pointe de colle et du ruban adhésif pour que la bobine puisse bien plaquer contre le PLA de la boule. Les données constructeur nous indiquait que la portée d'une recharge par induction QI était de 4cm. une fois le matériel reçu nous aovns fait nos propres tests pour vérifier la porté. Il nous est apparu que au delà de 1cm, l'échange de tension n'avait plus lieu. Il est donc très important que la bobine plaque bien contre la balle pour que celle ci soit au plus près du chargeur lorsqu'on pose la balle sur la base. Nous avons mis une épaisseur de balle de 5mm. Nous avons également prévu des renfoncement pour pourvoir placer les vibreurs, de cette façons, nous pourrons les placer exactement à égal distance et nous aurons également une meilleur vibration.
Comme on peut le voir sur la figure ci-dessous, nous avons deux plaques rebords qui serviront à maintenir la carte électronique.
La carte viendra se poser sur les rebord, et deux plaques viendront par dessus le PCB. ceci seront munies de tétons qui viendront s'enficher dans les trous prévu à cet effet. Ainsi la carte sera pris en tenaille et ne pourra plus bouger. Nous avons modéliser ce système de fixation sur le logiciel OnShape pour vérifier que toutes nos dimensions concordaient et que cela était viable :
Notre modèle étant terminé nous avons pu l'enregistrer au format STL et l'imprimer sur la Witbox du fabricarium.
/**************************SEMAINE 7**********************************/
coté prototype de la balle nous avons pu imprimer la partie basse au fabricarium. Cela a été très instructif car ça nous a permis de repérer ce qui fonctionnait mais également ce que ne fonctionnait pas avec notre premier modèle. La conception générale était bonne, mais nous avons eu deux gros problèmes :
* Entre le moment de la conception et de l'impression, les dimensions de la carte électronique avait changés et nous n'avions pas pensé à prendre cela en compte. Les rebords étaient donc placé trop bas et la carte électronique ne pouvait plus être fixée. * Les clips qui devait servir à assembler la partie basse et la partie haute n'était pas du tout assez flexible, de plus il était bien trop petit et fragile. En conséquence, ce qui devait arriver arriver arriva et un des clip s'est cassé lors d'une manipulation. Cela nous a donc fait comprendre que réaliser la fixation des deux partie de la balle garce à des clip était faisable mais nous devions changer notre type de PLA voir prendre une autre matière et réaliser de nombreux essais avant de trouver la bonne forme et les bonne dimension. Or nous avions encore beaucoup d'autres points sur lesquels nous devions travailler (réalisation de l'application, du PCB...) pour que nous nous attardions la dessus. Nous avons donc décidé de changer le système de fixation.
Semaine 7
Les premières commandes ont été livrées, nous avons alors pu commencer à travailler sur le module bluetooth de Adafruit (Bluefruit LE) que nous avions commandé afin de pouvoir commencer le développement de l'application android avant d'avoir une version finale du PCB.
Cette carte est basée sur le MDBT40, une carte de développement elle même basée sur la famillede puces nRF51 de Nordic Semiconductor. Cette carte de développement permet donc une connectivité bluetooth 4.2 BLE. Cette dernière fonctionnant avec des tensions de 3V, Adafruit n'a fait qu'abaisser la tension de 5V délivrée par un Arduino à 3V grâce à un convertisseur MIC5225-3.3 que nous réutiliserons dans notre PCB. De plus, afin de protéger les IO de la puce du 5V provenant de l'arduino, des diodes sont placées afin d'abaisser la tension à 3V.
Le but ici est d'initialiser une communication série entre l'arduino et le module bluetooth. Ce module possède un mode UART, lui permettant de se connecter à un téléphone Android et de recevoir et envoyer des trames série. Adafruit fournit des exemples de programmes arduino, avec une librairie spécialement faite pour le module, et même une application android permettant de tester la communication.
Le but ici étant de développer notre propre application, il nous a semblé indispensable de se séparer le plus possible des sources et lourdes appendices de Adafruit. La première étape a donc été de remplacer l'application conseillée par adafruit par une application plus générique : Serial Bluetooth Terminal, cette dernière permettant le strict minimum : la communication série en bluetooth. L'application est disponible à cette adresse sur le playstore : https://play.google.com/store/apps/details?id=de.kai_morich.serial_bluetooth_terminal&hl=fr
Nous avons ensuite entrepris de modifier le code de Adafruit afin de pouvoir contrôler indépendamment les 3 sorties analogiques. Pour cela, la convention adoptée pour la trame est la suivante :
-Un bit de start sera modélisé par la lettre a, b ou c afin de contrôler respectivement les sorties 1, 2 et 3. -Au plus 3 chiffres formant un nombre compris entre 0 et 255 (pas du PWM de l'atmega328p) -Un bit de stop (envoyé automatiquement par l'application)
Le code proposé est le suivant :