Fiche d’identité
Microphone spécialement conçu pour enregistrer les ultrasons jusqu’à 192KHz (oversampling 768KHz)
Le microphone ULTRA768 intègre u puissant µC STM32H7.
Ce choix a été motivié par le fait que ce micro devait pouvoir :
Le logiciel embarqué utilise plusieurs stack, comme l’USB, l’I2C, I2S.
L’I2S est utilisé pour la communication avec un CODEC qui récupère l’information audio de deux microphones MEMS à une fréquence max de 768KHz
Deux filtres biquad ont été implémentés en plus des 3 filtres présents dans le codec. Mais la limitation du codec ne permettait pas l’utilisation des ses filtres au-delà de 192KHz. Ces deux filtres sont utilisés entre autres, en tant que filtre anti-repliement (aliasing). Ces filtres biquad seront portés au nombre de 4 dans une future version.
Un filtre supplémentaire, noise gate, à été développé afin de supprimer le bruit de fond lorsqu’on utilise le microphone pour enregistrer du son dans le domaine de l’audible, c’est-à-dire < 20KHz
Ci-dessous les différents écrans de configurations. Les données sont accessibles via un switch 3 positions, ou via une application Electron
Pourquoi Electron/NodeJS et non pas QT ?
J’ai longtemps hésité à partir sur QT, mais le but de ce logiciel est d’être maintenu pas une communauté d’utilisateurs, ce qui implique que le code source devait être public et accessible au plus grand nombre de dev. Comme React est actuellement un framework utilisé par énormément de mondes et que ce logiciel pourrai être, à l’avenir, déployé sur un serveur web, c’est tout naturellement que j’ai opté pour cette techno.
Tout est configurable via ce logiciel.
Le nombre de microphones utilisés (1 ou 2), les filtres biquad configurés en LOW_PASS, HIGH_PASS, BAND_PASS, NOTCH, PEAK, LOWSHELF et HIGHSEHLF, la FFT, le filtre Noise Gate.
Ces sont mes premiers pas avec React et sûrement pas les derniers.
Pas moins de 6 versions ont été nécessaires pour arriver à une première release stable. Au départ, je suis parti sur un 6 couches, mais la suppression de certaines fonctionnalités ont réduit les couches à 4. Rien de bien particulier sur ce desgin si ce n’est l’emploi d’une empreinte spécifique pour une sonde de programmation tag-connect
Le µC utilisé est un stm32H7 pour ces caractéristiques de calcul en double (64bits) et sa rapidité de traitement (400MHz). Puissance utile lorsqu’on doit faire des calculs toutes les ms afin d’être synchro avec les packet USB. Pour rappel les calculs sont :
Le plus intéressant pour moi, car c’est l’étape finale de la présentation du produit.
Le boîtier est constitué de deux demi-coques en aluminium, sablées et anodisées noir maintenu ensemble par quatres micro-vis. Deux orifices ont été placés sur le dessus afin de pouvoir canaliser le son vers les deux microphones MEMS. Un filtre en PTFE spécialement étudié pour ce produit vient prendre place sur le PCB afin de protéger les microphones MEMS de l’eau et de la poussière.
La prochaine étape sera le packaging…