Au cours de la seconde année de BUT GEII, j’ai participé à une Situation d’Apprentissage et d’Évaluation : la conception d’un système de réception de signaux DTMF pour un environnement sous-marin.
S’étalant sur toute la période du BUT 2, ce projet avait pour objectif final de permettre la récupération de casiers de pêche pour empêcher d’éventuels vols de ces derniers.
Considérations acoustiques
L’un des prérequis de ce système était la nature des signaux à réceptionner : la DTMF (Dual Tone Multi Frequency). Ce format, issu de la téléphonie, assure l’envoi de symboles via l’émission simultané de deux fréquences.
En raison des propriétés acoustiques de l’eau et la DTMF se situant dans une plage de fréquence basse, ces signaux sont adaptés pour une transmission sous-marine sur plusieurs dizaines de mètres.

La présence de deux sinusoïdes par symboles permet de diminuer le risque de faux positifs dans un environnement qui peut être bruyant (faune, bateaux…).
Pour capter ces signaux sous l’eau, l’idée m’est venue d’utiliser un micro piezo fixé au couvercle d’un bocal étanche. Celui-ci permet de retranscrire électriquement les vibrations de la surface à laquelle il est collé. Ces transducteurs fonctionnent cependant sur une bande passante restreinte, il m’a donc fallu sélectionner une référence en fonction de sa fréquence de résonance.

Conception électronique
Une fois les signaux DTMF captés par le microphone, il est nécessaire de les amplifier afin qu’ils soient détectés par le circuit intégré MT8870 qui les convertis en signaux numériques.
J’ai donc travaillé sur une solution d’amplification que j’ai peaufinée au fil des tests et du prototypage. Celle-ci utilise un AOP externe (préamplificateur) ainsi que l’AOP intégré au MT8870.


J’ai finalement abouti sur une solution utilisant deux AOP externes (dans un même circuit intégré) suivant une topologie de Sallen-Key pour former un filtre passe-haut et amplifier le signal. J’ai ensuite schématisé et routé ce circuit pour en produire un PCB.
Pour m’assurer du bon fonctionnement de mon système, j’ai réalisé différents tests en intérieur, en extérieur et sous l’eau avec un algorithme de décodage codé en C++ sur une carte Arduino :