Sites


Fabrikarium 2016

Binoreille

La binoreille s'adresse aux personnes sourdes d'une oreille. L'appareillage permet de recevoir le son du côté de l'oreille sourde et de le transférer vers l'oreille fonctionnelle. Dans ce prototype, l'appareillage est composé d'un casque et d'un boitier contenant l'électronique de traitement du son.

Afin de ne pas perturber l'audition de l'oreille entendante, le casque choisi est un casque à conduction osseuse qui se place sur la tempe plutôt que dans le creux de l'oreille. Un petit micro fixé sur le casque, du côté de l'audition déficiente conduit le son reçu vers l'oreille entendante, après traitement.

photo provenant de innerfidely.com

La conduction osseuse

La conduction osseuse (ou ostéophonie) est une forme d'audition alternative. Le son émis par le transducteur du casque est transmis par les os du crâne jusqu'aux organes internes de l'audition, sans passer par le tympan.

Principe de fonctionnement

Le son extérieur est capté du côté de l'oreille sourde par un micro électret. Ce micro transforme le signal acoustique en signal électrique, qui est filtré par un premier circuit afin de limiter les parasites et d'adapter le niveau de tension. Puis, le signal entre dans l'entrée micro de la carte audio pour recevoir un traitement numérique.

Trois filtres successifs sont appliqués au signal : un filtre passe-haut à 300 Hz, un filtre passe-bas à 12000 Hz et un filtre passe-bande défini par les 2 potentiomètres de réglage : fréquence (pour la fréquence centrale), largeur (pour définir la largeur de la bande de fréquence). Le 3e potentiomètre fixe le volume de sortie vers le casque.

Ce prototype est basé sur une carte à microcontrôleur Teensy 3.2

Préparation

Matériel nécessaire

  • Imprimante 3D
  • Découpeuse laser
  • Matériel de soudure

Pré-requis

  • avoir l'environnement arduino installé
  • savoir utiliser une imprimante 3D
  • savoir utiliser une découpe laser
  • savoir souder

Liste de composants

Le coût total des composants s'élève à 120€ environ (comprenant la batterie).

  • carte à microcontrôleur Teensy 3.2 (équipée d'un microprocesseur Cortex-M4 à 72 MHz) / 25€ @ Snootlab
  • adaptateur audio Teensy / 15€ @ Snootlab
  • casque à conduction osseuse (pour le prototype le modèle utilisé est un Aftershokz Sportz M3 / 50€ @ amazon)
  • micro electret / 1€
  • 2 X potentiomètres linéaires 100k / 2€
  • 1 potentiomètre logarithmique 100k / 1€
  • 1 résistance 2.2k / 0.10€
  • 1 résistance 10k / 0.10€
  • 1 résistance 20k / 0.10€
  • 1 condensateur électrochimique 100 uF / 0.20€
  • barettes de connexion / 1€
  • barettes de connexion empilables / 2€
  • 1m de cable blindé mono conducteur / 1€
  • batterie 3.7V / 20€

Ressources et datasheets

Teensy : https://www.pjrc.com/teensy/index.html
Brochage de la carte Teensy 3.2 : Teensy 3.2 pinout
Adaptateur audio Teensy : https://www.pjrc.com/store/teensy3_audio.html
Teensy audio library : http://www.pjrc.com/teensy/td_libs_Audio.html
Teensy Audio System Design Tool : http://www.pjrc.com/teensy/gui/
Arduino : https://www.arduino.cc/
SGTL5000 (circuit intégré utilisé sur la carte audio adapter) : SGTL5000
Casque Aftershokz Sports M3 : https://aftershokz.com/products/sportz-m3

Prototype

Lors de la fabrication du prototype au Fabrikarium (oct. 2016), les versions suivantes de logiciel et de matériel ont été utilisées :

  • carte audio adapter "audio shield rev.b"
  • carte Teensy v3.2
  • Arduino IDE version 1.6.12
  • Teensyduino version 1.30
  • Teensyloader version 1.15
  • Imprimante 3D Bicephale Mark One
  • Découpeuse laser Trotec

Code

La carte Teensy est programmée avec le code suivant :

#include <Audio.h> 
#include <Wire.h>
#include <SPI.h>

#include <SD.h>

#include <SerialFlash.h>


// GUItool: begin automatically generated code
AudioFilterBiquad biquad2; //xy=375.3333435058594,250
AudioInputI2S i2s2; //xy=578.3333435058594,157.00000762939453
AudioFilterBiquad biquad1; //xy=730.0833129882812,169.08334350585938
AudioOutputI2S i2s1; //xy=891.3333740234375,134
AudioConnection patchCord1(i2s2, 0, biquad1, 0)
;
AudioConnection patchCord2(biquad1, 0, i2s1, 0);
AudioConnection patchCord3(biquad1, 0, i2s1, 1);
AudioControlSGTL5000 sgtl5000_1; //xy=361.3333740234375,203
// GUItool: end automatically generated code


const
int myInput = AUDIO_INPUT_MIC;

void setup() {
Serial.begin(115200);
// Audio connections require memory to work. For more
// detailed information, see the MemoryAndCpuUsage example

AudioMemory(12);

// Enable the audio shield, select input, and enable output

sgtl5000_1.enable();
sgtl5000_1.volume(0.5);
sgtl5000_1.inputSelect(myInput);
sgtl5000_1.micGain(36);

// paramétrage des filtres passe bas et passe haut : fixes, pour un confort permanent
biquad1.setHighpass(0,300,0.3);
biquad1.setLowpass(1,12000,0.1);

}

// mesure du temps écoulé, cf. https://www.pjrc.com/teensy/td_timing_elaspedMillis.html
elapsedMillis volmsec;

void loop() {


// every 50 ms, adjust the volume, frequency and filter with
float
vol = analogRead(0);
float frq = analogRead(1);
float
with = analogRead(2);

if (volmsec > 500) {
Serial.print("raw volume : ");
Serial.println(vol);
Serial.print("raw freq : ");
Serial.println(frq);
Serial.print("raw width : ");
Serial.println(with);
}

vol = vol / 1023.0;
frq = frq * 20.0;
with = (with / 1023.0) / 1.3;

if (volmsec > 500) {
Serial.print("Vol : ");
Serial.println(vol);
Serial.print("Frq : ");
Serial.println(frq);
Serial.print("with : ");
Serial.println(with); volmsec = 0;
}

// réglage du volume de sortie
sgtl5000_1.volume(vol,vol);

// réglage du filtre passe-bande selon les positions des potentiomètres
biquad1.setBandpass(2,frq,with);
}

Téléchargements

Télécharger le dossier contenant tous les éléments nécessaires à la réalisation de la binoreille v2.1 (schémas, modèles 3D, code).

Soudure des composants

Préparer les composants dans l'ordre suivant :

  • Souder les deux barrettes de connexion sur la carte audio adapter
  • Souder la barette sur les pins d'entrée micro de la carte audio adapter
  • Souder les deux barrettes de connexion empilables sur la carte Teensy.
  • Préparer des barettes à 4 entrées, en reliant les pins par un fil conducteur, puis souder les barrettes de connexion aux entrées 3.3V et GND de la carte Teensy
  • Souder les fils de connexion sur les 3 potentiomètres
  • Souder le circuit du filtre (le cable est long et fait antenne, ce filtre réduit les parasites et réduit la tension par un diviseur de tension avant l'entrée dans la carte audio)




  • Souder le micro

Après avoir empilé les circuits imprimés, installer le code du programme dans la carte, selon les étapes suivantes :

  • Installer teensyduino (plugin pour l'IDE arduino) https://www.pjrc.com/teensy/td_download.html
  • Relier la carte à un port USB de l'ordinateur
  • Ouvrir l'environnement de programmation arduino
  • Ouvrir le fichier du code téléchargé
  • Dans l'IDE arduino, choisir la carte Teensy 3 dans le menu Outils/type de carte
  • Dans l'IDE arduino, choisir le port adapté dans le menu Outils/port série
  • Dans l'IDE arduino, cliquer sur l'icone "vérifier" (le premier à gauche!)
  • Dans l'IDE arduino, cliquer sur uploader

3. Fabrication du boîtier (par découpe laser)

Envoyer le fichier SVG à la découpeuse laser.
Le fichier SVG original du modèle de la boite a été réalisé grâce au générateur de boite paramétrique de la Cité des Sciences. Des orifices ont été ajoutés avec Inkscape pour le passage des cables et le placement des potentiomètres.

4. Fabrication du support micro pour le casque (par impression 3D)

Envoyer le fichier STL à l'imprimante 3D.
Le fichier STL original a été réalisé avec CATIA, puis converti en STL.

5. Montage

Assembler les différents éléments de la binoreille dans l'ordre suivant :

  • Relier le cable du micro à l'entrée du filtre
  • Relier la sortie du filtre à l'entrée micro de la carte audio adapter
  • Monter le boitier et fixer les 3 potentiomètres

  • Placer la batterie au fond de la boite
  • Fixer les circuits sur une plaque et les placer sur la batterie
  • Placer le support de micro sur le casque et y insérer le micro
  • Relier le casque

Il y a une erreur de communication avec le serveur Booktype. Nous ne savons pas actuellement où est le problème.

Vous devriez rafraîchir la page.