IMA4 2017/2018 P15 : Différence entre versions

De Wiki de Projets IMA
(Semaine 7)
(Semaine 7)
Ligne 478 : Ligne 478 :
  
  
Nous n'utiliserons plus de clips mais des attaches qui viendront se loger dans des renfoncement qui se trouveront dans la partie supérieur de la balle. le renfoncement se rétrécira afin que l'attache finissent pas se bloquer. Pour faire cela nous avons resté sur le design général du clips mais avons changer quelque peu son ergonomie afin qu'il puisse répondre aux nouvelles contrainte et surtout nous avons doublé son épaisseur pour le rendre bien plus résistant.
+
Nous n'utiliserons plus de clips mais des attaches qui viendront se loger dans des renfoncement qui se trouveront dans la partie supérieur de la balle. le renfoncement se rétrécira afin que l'attache finissent pas se bloquer. Pour faire cela nous sommes resté sur le design général du clips mais avons changer quelque peu son ergonomie afin qu'il puisse répondre aux nouvelles contrainte et surtout nous avons doublé son épaisseur pour le rendre bien plus résistant.
 +
Le croquis à gauche montre comment les attaches de la partie basse vienne s’emboîter dans les alcôves de la partie haute. Il y aura pour la balle 3 fois ce système d’accroche des deux parties de la balle.
 +
 
 +
Nous avons donc modélisé ces changements sur la partie basse ainsi que la partie haute qui n'avait pas encore été conçu. Il nous a fallu plus de temps que prévu pour faire la partie haute car celle-ci était beaucoup plus complexe que ce que nous devions faire initialement. En effet, il a fallu modéliser les creux pour les attaches ainsi que la fixation de la batterie.
 +
Voici donc ce que nous avons après modélisation :
  
 
==Semaine 8==
 
==Semaine 8==

Version du 10 mai 2018 à 21:30


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

Matériel Fournisseur Quantité Prix à l'unité (€) Prix total (€) URL
Vibreurs Mouser Electronics 8 1.66€ 13.28€ https://www.mouser.fr/productdetail/adafruit/1201?qs=sGAEpiMZZMsMyYRRhGMFNstIkcYqaSq8%2fLLE3lYp32I=
Module Bluetooth 4.0 Low Energy Mouser Electronics 1 16.96€ 16.96€ https://www.mouser.fr/ProductDetail/Adafruit/2479?qs=sGAEpiMZZMsMyYRRhGMFNjWi9ZmxEfRwbLHKJ6JemUg%3d
Bobine de recharge à induction (norme Qi) Mouser electronic 1 12.71€ 12.71€ https://www.mouser.fr/productdetail/adafruit/1901?qs=sGAEpiMZZMsMyYRRhGMFNkyDC95Rd%252blHW46I1pJekjA%3D
Batterie rechargeable LiPo 5.2Ah GoTronic 1 22,90€ 22,90€ https://www.gotronic.fr/art-accu-li-ion-mgl9033-26425.htm#complte_desc
Controleur pour moteur Mouser Electronics 2 3.26€ 6.52€ https://www.mouser.fr/ProductDetail/STMicroelectronics/L293DD?qs=sGAEpiMZZMukgiigmf73gOko5bw7EE67
add on board Mouser Electronics 1 12.71€ 12.71€ https://www.mouser.fr/productdetail/adafruit/1944?qs=sGAEpiMZZMsMyYRRhGMFNjrX4VXoJdtaYLT7dYXdb%2F4%3D
Résonateur 16MHz 12pf Mouser Electronics 1 0,57€ 0,57€ https://www.mouser.fr/ProductDetail/ECS/ECS-160-12-33Q-JES-TR?qs=sGAEpiMZZMuMAfj%252bWfX4nLed60zyr3PUv7Kre5ygQ%252bs%3d
Total

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.

Proto1.jpg

Le revêtement extérieur ne sera pas celui-ci. Nous avons également commencé à modéliser l'application qui ressemblera à cela :

Proto logiciel-page-001.jpg

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.


Schéma de fonctionnement

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

Chargeur de batterie Li-Ion

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

Boost-Converter

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:

R3 = {R7}\times{(\frac{Vo}{Vfb}-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:

R8 = {R9}\times{(\frac{Vbat}{Vlb}-1)}

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 :

Il = {Iout}\times{\frac{Vout}{{Vbat}\times{0.8}}}

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 :


\frac{{Vbat}\times{(Vout - Vbat)}}{{\Delta Il}\times{f}\times{Vout}}


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

Convertisseur 3.3v

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 :

Schéma complet

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 :

Empreinte du module Bluetooth


Premier placement

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 très proche de 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 :

Vue de coté
Vue isométrique

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.

vue de dessus

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 :

modélisation du système de fixation du PCB

Notre modèle étant terminé nous avons pu l'enregistrer au format STL et l'imprimer sur la Witbox du fabricarium. Il devrait normalement être imprimé la semaine prochaine.

Semaine 7

Bluefruit LE

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 :

 while(1) {
   //acquisition de la data
   if ( ble.available() ) {
     c = ble.read();
     //bit de start
     if (c==97) {
       start1=1;
       data=0;
     }
     else if (c==98) {
       start2=1;
       data=0;
     }
     else if (c==99) {
       start3=1;
       data=0;
     }
     //bits de data
     else if (c<=57 && c>=48 && start1==1) {
       data=data*10+(c-48);
     }
     else if (c<=57 && c>=48 && start2==1) {
       data=data*10+(c-48);
     }
     else if (c<=57 && c>=48 && start3==1) {
       data=data*10+(c-48);
     }
     //bits de stop
     if ((c==13 && start1==1) || (c==10 && start1==1)) {
       data_available1=1;
       start1=0;
     }
     else if ((c==13 && start2==1) || (c==10 && start2==1)) {
       data_available2=1;
       start2=0;
     }
     else if ((c==13 && start3==1) || (c==10 && start3==1)) {
       data_available3=1;
       start3=0;
     }
   }
   //écriture de la data sur la sortie PWM
   if (data_available1==1) {
     analogWrite(motor1_2, data);
     data_available1=0;
   }
   if (data_available2==1) {
     analogWrite(motor3_4, data);
     data_available2=0;
   }
   if (data_available3==1) {
     analogWrite(motor5_6, data);
     data_available1=0;
   }
 }


photographie de notre premier prototype imprimé de balle On remrque bien le clips qui a cedé


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


photographie de notre premier prototype imprimé de balle On remrque bien le clips qui a cedé


Nous n'utiliserons plus de clips mais des attaches qui viendront se loger dans des renfoncement qui se trouveront dans la partie supérieur de la balle. le renfoncement se rétrécira afin que l'attache finissent pas se bloquer. Pour faire cela nous sommes resté sur le design général du clips mais avons changer quelque peu son ergonomie afin qu'il puisse répondre aux nouvelles contrainte et surtout nous avons doublé son épaisseur pour le rendre bien plus résistant. Le croquis à gauche montre comment les attaches de la partie basse vienne s’emboîter dans les alcôves de la partie haute. Il y aura pour la balle 3 fois ce système d’accroche des deux parties de la balle.

Nous avons donc modélisé ces changements sur la partie basse ainsi que la partie haute qui n'avait pas encore été conçu. Il nous a fallu plus de temps que prévu pour faire la partie haute car celle-ci était beaucoup plus complexe que ce que nous devions faire initialement. En effet, il a fallu modéliser les creux pour les attaches ainsi que la fixation de la batterie. Voici donc ce que nous avons après modélisation :

Semaine 8

Pour la partie PCB : Les dernières modification avant gravure ont été apportées :

  -L'épaisseur des pistes régulières (ne véhiculant pas de tension d'alimentation) a été grossie à 0.4mm.
  -L'épaisseur des pistes véhiculant des tensions d'alimentation a été grossie à 0.6mm
  -Dans un souci d'évolutivité, un maximum de pins de l'atmega328p ont été brochés à des connecteurs (pins analogiques et digitaux).
  -Afin d'éviter les soucis lors de la gravure du bootloader de l'atmega328p, deux résistances de 0ohms à souder après la gravure ont été rajoutées sur les broches MOSI et MISO, cette operation n'étant pas nécessaire pour SCK, cette dernière n'étant pas connectée.
  -Une led du module bluetooth a été remplacée par un connecteur, permettant de brancher une LED qui sera montée à la surface de la balle, ceci permettant de donner un feedback à l’utilisateur quand a l'état de la connexion entre la balle et l'appareil android.
  -Des vias ont été rajoutés surtout au niveau du boost converter (ce dernier fonctionnant à une haute fréquence) afin de garantir une bonne masse sur toute la surface du PCB.
  -Le routage a été optimisé au niveau du second contrôleur moteur afin de raccourcir au maximum la longueur des pistes.

Semaine 9

Lors de cette semaine, nous avons pu lancer la gravure de notre PCB après une dernière vérification par Mr BOE et Mr FLAMEN. La gravure s'est correctement déroulée, une inspection à la loupe du PCB n'a révélé aucun défaut. Le PCB est donc prêt pour la soudure. Nous avons donc récupéré les derniers composants (surtout les CMS). Malheureusement le peu d'expérience que j'ai ne me permettait pas de souder tous les composants en moins de 4 heures (affirmation confirmée par Mr FLAMEN et vérifiée lors de la phase de soudure). En effet, un passage au four était désiré, tous les composants se devaient d'être placés avant le passage. La soudure se fera donc la semaine suivante.

Semaine 10

Semaine 11

Semaine 12

Semaine 13

Semaine 14

Documents Rendus