IMA4 2017/2018 P12 : Différence entre versions

De Wiki de Projets IMA
(Séance 8)
(Séance 8)
Ligne 212 : Ligne 212 :
 
Durant cette séance nous avons également fait quelques recherches sur l'architecture matériel que nous allons adopté. nous nous somme rendu compte que le module Bluetooth BM20 contient une mémoire EEPROM et un cristal 16MHz en plus de la carte Bluetooth IS2020 pour le transfert audio stéréo. Nous pouvons donc théoriquement utiliser que le IS2020 indépendamment du BM20, qui sera commandé en UART directement par le MCU et court-circuitant donc la commande du BM20.  
 
Durant cette séance nous avons également fait quelques recherches sur l'architecture matériel que nous allons adopté. nous nous somme rendu compte que le module Bluetooth BM20 contient une mémoire EEPROM et un cristal 16MHz en plus de la carte Bluetooth IS2020 pour le transfert audio stéréo. Nous pouvons donc théoriquement utiliser que le IS2020 indépendamment du BM20, qui sera commandé en UART directement par le MCU et court-circuitant donc la commande du BM20.  
  
[[Fichier:is2020.PNG]]
+
[[Fichier:is2020.PNG|400px]]
  
 
L'utilisation du BM20 reste aussi possible, en programmant l'EEPROM avec un utilitaire fourni par Microship, la programmation sera limitée au fonctionnalités fournis et donc diffusera automatiquement les données reçu.
 
L'utilisation du BM20 reste aussi possible, en programmant l'EEPROM avec un utilitaire fourni par Microship, la programmation sera limitée au fonctionnalités fournis et donc diffusera automatiquement les données reçu.
  
[[Fichier:BM20.PNG|300px]]
+
[[Fichier:BM20.PNG|400px]]
  
 
==Séance 9==
 
==Séance 9==

Version du 19 février 2018 à 20:03

Schema os.png


Présentation générale

Son oreil os.jpg

Description

La communication osseuse est un type d'écoute qui permet de ne pas passer par le système auditif externe. Le système auditif externe n'est donc pas encombré ce qui offre de nouvel possibilité d'écoute.Ainsi, ce système peut se rendre très utile utile pour les personnes sourdes ainsi que pour n'importe qui ayant besoin d’être attentif au bruit environnant tel que les militaires ou les ouvriers. Le système ostéophonique que nous allons utiliser va être utilisé avec une communication à distance qui lui enverra les informations à faire écouter à l'utilisateur.

Objectifs

L’objectif de notre projet est de réaliser un système de communication par ostéophonie (communication osseuse). Une montre connecté servira de passerelle entre le casque et une interface (ordinateur ou appareil embarqué type Raspberry). Il enverra à la montre des informations sonores : musiques, conversation vocale, etc. C’est ensuite la montre qui sera chargé de transmettre l’information au dispositif d’écoute ostéophonique.

Notre objectif sera de réaliser un casque fonctionnel qui pourra communiquer à distance. Ce casque devra respecter une certaine qualité d'écoute et de conforme. Enfin, nous devrons nous attacher à trouver le meilleur système de communication afin d'économiser l'énergie et d'optimiser le transfert des données.

Analyse du projet

Positionnement par rapport à l'existant

Notre objectif est de réaliser un appareil moins couteux que la concurrence. En effet, ce type de produit est vendu très chère par rapport à des dispositifs auditifs classiques. Tout comme les produits existants, il nous sera nécessaire de parvenir à transmettre du son par conduction osseuse. Pour cela nous devrons étudier les différents composants convertissant l'information sonore en vibration. Il sera également intéressant de tester l'emplacement idéal ou poser l'émetteur afin d'avoir le meilleur son possible : mâchoire, tempe, arrière du crâne. d’étudier les différents types de communication à distance: Bluetooth, wifi, radio.

Analyse du premier concurrent

Audilo.png

Le premier concurrent est l'entreprise audilo qui commercialise à la fois des casques audio à conduction osseuse et des appareils d'aide à l'audition. Contrairement à cette entreprise nous allons faire en sorte de créer un produit bien moins cher pour la clientèle. En effet, actuellement ces casques sont vendus à partir de 80 euros. Ils utilisent la technologie Bluetooth pour communiquer, nous essayerons d'avoir une vitesse et qualité optimale afin d'avoir quelque chose de comparable aux casque déjà existant à ces prix.

Il sera intéressant par exemple de s'intéresser à la dernière version du Bluetooth pour sa qualité. Au vue des modules piézoélectriques, ils ne vont pas, dans les conditions normal d'utilisation, dans les fréquences hautes entendu par les humains ce qui peut être un problème pour l'écoute de musique ou de son de haute qualité.

Analyse du second concurrent

Bose.jpg

Le deuxième concurrent est Bose, c'est un constructeur de casques de haute qualité. Notre casque utilisera la technologie osseuse pour fonctionner et comme on ne peut pas placer le capteur directeur sur un os la qualité est moins bonne que pour un casque normal. Cependant, notre casque aura l'avantage de laisser les oreilles libres pour les utilisateurs qui souhaitent entendre en même temps l'environnement ou d'autres personnes.

Notre casque sera destiné à une utilisation plus nomade que des casques Bose qui sont plus destiné à des professionnels ou alors à des utilisateurs voulant une grande qualité d'écoute. Enfin, notre casque sera réalisé pour être bien moins cher que cette marque.


Scénario d'usage du produit ou du concept envisagé

Lors d'un tour de mentalisme, un magicien devra deviner plusieurs cartes les yeux bandées. Son assistant devra donc lui communiquer à chaque fois la réponse via un système de communication par ostéophonie dissimulé dans le foulard du magiciens.

Réponse à la question difficile

  • Quel sont les os les plus sensibles à l'ostéophonie ?

=> Le crâne, et principalement les os en contact avec l'oreille interne, et notamment la mâchoire (Mandibule), et la tempe (L'os Temporale) sont des os qui sont très proche de la peau. Nous allons devoir tester une fois le casque fonctionnel avec quel os cela fonctionne le mieux.

Préparation du projet

Cahier des charges

Le cahier des charges imposé contient quelques impératifs :

  • Casque permettant d'émettre du son par ostéophonie
  • La montre Texas Instrument est imposé et sera relié filairement au casque / oreillette
  • Une communication à distance avec un ordinateur ou Raspberry est également imposé

Malgré tout, la majorité des éléments nous sont laissés libres :

  • Nous pouvons choisir la méthode de conversion de l'information sonore en vibration pour la conduction osseuse : transconducteur ostéophonique, moteur à rotation, etc.
  • Il nous est également nécessaire de choisir sur quel os se placer pour transmettre au mieux le son; des tests sont donc à réaliser.
  • La méthode de communication nous est également laissé libre : Wifi, Bluetooth, Radio.

Choix techniques : matériel et logiciel

Liste des tâches à effectuer

  • Etude des differentes solutions pour entendre par osteophonie : etude qualitative : volume, qualité du son
  • creation d'un PCB pour accueillir l'ensemble processeur,module bluetooth/audio et la memoire
  • realisation de la communication bluetooth
  • creation d'un interface utilisateur pour l'emission vers le casque
  • conception d'un casque : utilisation de la modélisation 3D

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

Prologue

Semaine 1

Séance 1

Nous nous sommes renseignés plus en détail sur les éléments de notre projet et notamment sur la montre. En effet, nous n'avions pas pensé à vérifier qu'elle possédait une prise quelconque pour y brancher un casque car cela paraissait évident pour rendre la montre nécessaire. Après l'étude de la data sheet de la montre TI EZ430, nous nous sommes rendu compte qu'il n'y a en fait aucune prise (jack, usb, etc.) sur laquelle brancher notre casque. Cela voudrait dire que l'ordinateur (ie l'interface) va envoyer une bande sonore à la montre et que celle-ci effectuera un simple relais en envoyant à son tour la bande sonore au casque. La montre ne semble donc pas être indispensable pour notre projet. Pour le savoir nous discuterons avec un enseignant pour en savoir plus.

Nous avons également pu avoir une piste sur les microcontrôleurs les plus adaptées à notre utilisation. En effet, notre dispositif doit être suffisamment petit et discret pour pouvoir être dissimuler. Les contraintes qui rentres donc en jeu sont :

  • Nombre de pins supérieur à 8 (pour le DAC et/ou le module Bluetooth)
  • Petit taille de batterie, donc MCU à faible consommation d'énergie
  • Fréquence d'horloge suffisante (à définir)

Après quelques recherches, nous nous sommes rendu compte que les microcontrôleurs Atmega ne sont pas adaptées à cet usage en vu de leurs consommations, mais la famille de microcontrôleurs STM32L (dit LOW POWER) sont un bon compromis entre performances et consommation.

Nous avons aussi listé les composants électriques pour l'ostéophonie, nous avons décidé de tester plusieurs technologies. D'après nos recherches, nous pouvons avoir des vibrations (transformation du signal électrique en vibration mécanique) soit en utilisant un moteur à courant continue, soit un transconducteur piézoélectrique. Nous avons donc commandé trois capteurs piézoélectriques avec différentes fréquences de résonance pour essayer de couvrir les fréquences audibles, et un moteur à courant continue.

Séance 2

Nous avons donc discuté avec M. Boé sur l'utilité de la montre. Il pensait qu'il y avait possibilité d'y ajouter un module pour stocker une bande sonore directement dessus par exemple. Cela aurait permis de se passer d'ordinateur et donc, de lancer une piste directement à partir de la montre mais cela n'est malheureusement pas possible. En effet, après vérification il n'y a pas de PIN libre. Notre projet doit donc être modifié : nous devrons envoyer des informations depuis l'ordinateur au casque directement.

Nous avons ensuite cherché les modules que nous devions utiliser pour le casque. En effet, nous avons besoin de choisir un composant de communication sans fil (Bluetooth, WiFi, Zigbee, etc.). Pour notre application, nous cherchons à transmettre de la voix ainsi que de la musique. Pour la musique, il faudra cependant vérifier que la conduction osseuse permet d'entendre de la musique, d'avoir une qualité d'écoute suffisante. Un fichier mp3 est souvent codé avec un débit de 128kbit/s (avec un MPEG-1 Layer III) car c'est un bon compromis : il permet d'avoir une bonne qualité par rapport au poids du fichier. Il y a différent types de protocoles réseaux qui peuvent être utilisés :

  • Le WiFi est un protocole qui consomme énormément d'énergie et qui est utile pour des débits très rapide sur des grandes distances, ce qui n'est pas notre cas.
  • Le Zigbee quant à lui peut théoriquement permettre du transfert à 250 kbits/s mais cette valeur ne représente pas le payload (les données utiles). En effet, il prendre en compte tous les bits de protocoles comme le CRC ou l'entête.
Ainsi avec Zigbee on atteint au maximum un throughput de 912 bits/s (throughput représente le payload diviser par le temps complet pour l'échange de donnée, ie transfert et réception)[1].
  • Le Bluetooth v4.0/4.1 permet un throughput de 305kbits/s et le v4.2 permet quand à lui d'atteindre 803 kbits/s[2].
(remarque : on parle ici du Bluetooth 4 Classic et non du Bluetooth 4 Low Energy qui n'est pas du tout conçu pour ça)

Étant donné le débit correspondant au mp3 nous nous tournons donc vers cette alternative car le débit est suffisant pour notre utilisation.

Nous avons également besoin d'un DAC (Digital to Analogic Converter) car une fois l'information numérique reçu par le module wireless, nous devons le convertir en analogique pour transmettre les vibrations correspondantes.

Semaine 2

Séance 3

Lors de cette séance nous avons terminé la liste de matériel pour être près pour la commande et savoir ce que nous allons utiliser. Nous avons perdu beaucoup de temps lors de cette séance à cause des notions autour du Bluetooth. En effet, comme précisé dans la séance précédente, les données intéressantes pour le Bluetooth sont le data throughput et le payload. Le problème est qu'il n'existe visiblement aucune norme sur quels informations sont données pour les datasheets. Sur la plupart des datasheets, Seul le débit est indiqué et ce débit ne corresponds en fait qu'au débit théorique de chaque version du Bluetooth. Pour le peu de modules que nous avons trouvés contenant des informations supplémentaires, les indications ne sont pas cohérentes puisque pour un modèle le data throughput n'est que de 32 kbps (ce qui n'est pas claire car il n'est pas précisé si l'on parle ici de bits ou de bytes) ce qui est très faible comparé au débit du Bluetooth. Cela signifierait que sur 1 Mb pour une seconde, seulement 32 kb sont "utiles", ce qui n'est pas cohérent. Sur un autre modèle enfin, le data throughput est indiqué en kilobyte (ce n'est donc pas un débit mais une valeur) et dépend du système d'exploitation utilisé. Ces valeurs restent très faible même si on suppose que l'on donne cette valeur pour une seconde.

Après concertation avec M.Redon puis avec M.Boé, qui nous ont confirmés que ces valeurs étaient effectivemment très faible et/ou pas précises, incohérentes, M.Boé nous a indiqué de trouver un modèle étant de dernière génération et de le commander quitte à faire des tests plus tard quant à son data throughput réel. Finalement, nous avons trouvé un composant qui contient à la fois un module Bluetooth de quatrième génération permettant le Bluetooth Classic et le BLE, et un module de conversion audio. Ce composant est en effet pensé pour être utilisé sans même de contrôleur si nécessaire et d'assurer laz réception Bluetooth et la conversion audio.

Comme précisé précédemment, le Bluetooth LE 4.2 étant conçu pour être utiliser pour de long moments de veilles et un faible volume de données, il ne permet pas d'avoir un débit net (troughput) supérieur à 128Kbits/s. Nous avons donc préféré utiliser un Bluetooth Classic 4.1 qui contient un DAC 12 bits intégré et un module IS2020 pour avoir de l'audio stéréo en sortie [3]. Le module Bluetooth que nous avons choisi est de classe 2, ce qui veut dire qu'il a une puissance de 2.5W et une porté d'une dizaine de mètres [4].

Nous avons aussi commandé une mémoire qui nous permettra de stoker le fichier audio dans le casque pour un deuxième mode d'utilisation ou cas où la transmission en Bluetooth streaming ne serai pas optimal.

Séance 4

Lors de cette séance nous avons utilisé le matériel de la salle C201 pour vérifier le fonctionnement d'une lamelle piézoélectrique et du moteur.

Lamelle piézoélectrique

Nous avons première fait des tests avec un générateur de signaux. Comme vu sur internet le signal qui émet le plus de son est le signal carré (puis le triangle et en fin le plus faible est le sinus). Cela s'explique par le fait que plus la variation de tension est importante et plus le matériaux va vibrer et donc produire du son. Nous avons ensuite testé de brancher directement la lamelle sur une sortie jack. Pour cela nous avons utiliser des simples écouteurs dont nous avons enlever les speakers (partie à mettre dans l'oreille) puis nous y avons souder la lamelle.

Dans chacun de nos tests nous avons pu entendre du son par ostéophonie, les tests sont donc concluant mais à nuancer :

  • Premièrement, le volume sonore est très faible comparer à des écouteurs classiques
  • Ensuite, le volume sonore dépend beaucoup de l'endroit placer : il est le plus fort lorsque la lamelle est mordu entre les dents, il est également assez élevé au dessus de la tempe
  • Contrairement à nos attentes, il est parfaitement possible d'entendre le son directement par l'oreille auditif, c'est un problème car l'objectif est de laissé le champ auditif libre pour d'autres sons.

Pour la prochaine séance, l'objectif est d'ajouter à notre montage un amplificateur pour pouvoir entendre le son à un volume bien moindre. Pour cela, nous devrons prendre des mesures lors de la prochaine séance pour voir la tension nécessaire pour que le son soit à un niveau agréable lors de l'écoute. Remarque : l'inconvénient d'augmenter le volume sonore des lamelles est que l'on entendra également bien mieux le son même sans le coller à un os ce qui n'est pas ce qui est voulu, il faudra donc trouver le bon équilibre.


Moteur

Nous n'avons pas réussi à faire fonctionner le moteur que nous avions mais nous avons trouvé d'autres moteurs que nous essaierons lors de la prochaine séance.

Semaine 3

Séance 5

Nous avons continué les tests avec plusieurs moteurs et le transducteur piézo déjà disponible. Le piézo que nous possédons déjà fonctionne à 30Vpp max et résonne à 4200±500Hz. Nous disposons également de plusieurs moteurs à courant continu de taille différentes et donc sans doute de puissances différentes. Malheureusement, les caractéristiques techniques ne sont cependant pas indiqués mais ces moteurs peuvent nous permettre d'avoir une bonne idée du fonctionnement d'un moteur en but auditif.

Pour commencer nous avons réussie à faire fonctionner les moteurs et ils s'avèrent produire un son moins élevé pour une même tension par rapport à une lamelle. Également, l'avantage d'un tel moteur est qu'il ne produit pas pas de son audible par les oreilles ce qui est un gros avantage. Pour le plus petit moteur testé, nous avons pour une même tension (0.3 V) un son légèrement moins audible que pour un lamelle. Cependant pour des plus gros moteurs la tension demandée devient de plus en plus importante. Le problème d'un tel moteur c'est qu'il n'est pas possible de tester sur les os, la seule solution a été de faire les comparaisons lorsque le composant est serré entre les dents. Le problème serait donc de modifier le moteur pour que la partie centrale ne tourne pas mais fasse des mouvements de va-et-viens pour venir taper l'os.

En recherchant, nous avons trouvé un composant Adafruit qui permet justement de conduire le son à travers les os. Ce composant fonctionne exactement comme nous voudrions : il y a trois bobines qui entourent une bobine centrale. Cette dernière bobine se déplace en fonction du champs du moteur. Nous avons donc rajouter ce composant à la liste du cahier des charges pour pouvoir tester si il fonctionne comme on l'attends.

Nous avons également mesurer qu'en sortie d'un prise jack, la tension maximale que nous obtenons est de 200mV ce qui n'est pas suffisamment fort pour une bonne qualité d'écoute. Nous avons donc commencer à utiliser un amplificateur audio LM386 pour augmenter le volume sonore. Nous vérifierons lors de la prochaine séance que nous amplifions correctement.

Le dernier point à préciser est que le son est différent en fonction du composant utiliser. En effet, il peut être plus grave ou plus aigu d'un composant à un autre ce qui est important pour de l'écoute de musique mais l'est moins pour écouter une voix.

Semaine 4

Séance 6

Lors de cette séance nous avons réaliser un amplificateur audio afin de tester les moteurs et les lamelles piézoélectriques pour des sons bien plus complexes que de simples sinus. Pour réaliser ce montage, nous avons utiliser un montage à base d'un composant que nous avions utiliser l'an dernier en CCE pour un montage audio justement : l'amplificateur LM386N.

LM386.png

Lors du premier montage nous ne parvenions pas à amplifier la tension d'entrée et il n'y avait rien qui arrivait jusqu'à la sortie du montage. Après plusieurs tests nous avons constaté que le composant récupéré n'était en fait pas fonctionnel. Nous avons donc commandé sur le site de Thierry Flamen le composant qui était justement disponible. Nous avons également demandé un potentiomètre pour pouvoir contrôler le volume.

Nous avons donc refait tout le montage. Celui-ci s'est avéré très fonctionnel; on peut d'ailleurs noté que l'amplificateur est censé être alimentée en 9V mais peut très facilement fonctionner au minimum à 6V. Le composant LM386 permet de modifier le gain grâce à une capacité entre 2 pattes (1 et 8) et une résistance intermédiaire permet de régler le gain entre 0 et 200. (capacité seule : gain de 200 / rien du tout entre les pattes : gain de 20). Avec la capacité seule on obtient un tension bien trop fort en sortie ce qui rend inaudible le moteur car il trembles beaucoup trop. On règles donc le gain en fonction du moteur que l'on utilises.

On peut également comme préciser plus haut régler le potentiomètre pour modifier le "volume" en sortie. Lors de tests avec la lamelle piézoélectrique, nous parvenons à obtenir un son plus propre en baissant le volume par l'action du potentiomètre. On peut en déduire que plus le volume augmente par cette action et plus le son sera bruité.

De manière général lors de l'écoute avec un moteur, le son produit est de bien moindre qualité (assimilable à une radio écouté en plein campagne !). De plus, nous remarquons que pour des tensions plus élevé on entends également le son sans le coller sur un os : ce son provient de l'intérieur du moteur et provient sans doute de la vibration interne plus élevé. Cependant, le son est bien moins audible que pour une lamelle piézoélectrique qui s'avère très bruyante et qui produit très facilement un son aigu en continu. Il faudra donc vérifier que le composant Adafruit commandé soit bien un compromis entre ces deux solutions.

Semaine 5

Séance 7

Lors de cette séance nous avons utilisé Altium Designer pour commencer la création d'un PCB, la semaine dernière nous avions déjà récupérer le symbol du MCU STM32L4 qui est déjà disponible. Le module Bluetooth n'est cependant pas disponible donc nous avons dû le créer nous même. C'était la première fois que nous utilisions Alitum dans cet objectif et c'est donc plus long que prévu. En effet, le symbole est déjà réaliser mais il reste à terminer le footprint. Nous prenons plus de temps sur cette partie car il ne faut pas se tromper sur les dimensions des trous ni sur les distances car sinon le PCB sera inutilisable.

Séance 8

Durant cette séance nous avons finalisé la réalisation des symboles et footprints des composants électronique, nous avons crée celui du module Bluetooth BM20SPKS1NBC-0001AA et de la mémoire flash IS25WP064A-RMLE avec Altium le premier en CMS et l'autre traversant, et nous avons récupéré celui du microcontrôleur STM32L433CCT6 sur internet.

Durant cette séance nous avons également fait quelques recherches sur l'architecture matériel que nous allons adopté. nous nous somme rendu compte que le module Bluetooth BM20 contient une mémoire EEPROM et un cristal 16MHz en plus de la carte Bluetooth IS2020 pour le transfert audio stéréo. Nous pouvons donc théoriquement utiliser que le IS2020 indépendamment du BM20, qui sera commandé en UART directement par le MCU et court-circuitant donc la commande du BM20.

Is2020.PNG

L'utilisation du BM20 reste aussi possible, en programmant l'EEPROM avec un utilitaire fourni par Microship, la programmation sera limitée au fonctionnalités fournis et donc diffusera automatiquement les données reçu.

BM20.PNG

Séance 9

Lors de cette séance nous avons réaliser grâce à l'outil de modélisation 3D un premier prototype de casque 3D que nous pourrions réaliser. Ceci est cependant un prototype puisque le modèle est dans l'ensemble très fin et il faudra l'épaissir un peu pour faire rentrer la carte et l'alimentation.

Bone headphone v1.jpg


Semaine 6

Séance 10

Lors de cette séance nous avons fait des recherche sur la programmation du STM32L433CCT6. les microcontrôleurs STM32L font partie de la gamme des cœurs de processeurs proposés par ARM, le Cortex-M4, opérant sur des registres de 32 bits, fournit un compromis entre une puissance de calcul appréciable et une consommation réduite qui, sans atteindre les performances du MSP430 (16 bits), propose néanmoins des modes de veille en vue de réduire la consommation moyenne d’une application. [5]

La chaîne de compilation est basée sur l’habituelle génération des binaires issus de 'binutils' et 'gcc' sur architecture x86 à destination du processeur ARM, et en particulier Cortex M3. Nous nous somme basé sur le script git://github.com/esden/summon-arm-toolchain.git pour l'instalation de la toolchain avec la version Vanilla de GCC au lieu de linaro GCC, par défaut, seule la bibliothèque libre 'libopencm3' est installée.

Le second prérequis, après l’obtention d’une chaîne de compilation fonctionnelle, concerne l’outil pour programmer le microcontrôleur. Deux solutions sont possibles : la programmation par JTAG grâce à OpenOCD et à une sonde, et la programmation par RS232 avec un outil tel que stm32flash. Nous ne disposant pas de sonde JTAG, nous allons donc utiliser la deuxième solution avec une liaison série. 'stm32flash' prend en argument le nom du fichier contenant l’image binaire à placer en mémoire du microcontrôleur (fichier .bin ou .hex), la commande à effectuer (lecture, écriture, vérification) et l’interface de communication.