Des objets connectés qui communiquent par le son ?

C’est bien connu les « machins connectés » consomment énormément d’énergie,  et il faut les recharger très/trop souvent.   C’est très désagréable  pour un objet standard comme une station météo, une balance ou un smartphone,  et c’est absolument critique quand cela concerne un produit de sécurité domestique grand public, qui ne peut en aucun cas être déchargé.

Mon client, un grand fabricant français qui commercialise des capteurs de monoxyde de carbone, des détecteurs, de fuite d’eau, de fumées, et autres systèmes pour prévenir les incendies, s’est demandé comment rendre ses appareils communicants sans augmenter leurs coûts de fabrication, en consommant peu d’énergie électrique, et bien-sûr en respectant les très rigoureuses normes Européennes.

Communication par le son

En général ces capteurs sont équipés de douces sirènes, qui chatouillent nos oreilles en faisant vibrer des composants piézo-électriques. Nous nous sommes dit :  Pourrait-on moduler les sonneries pour encoder des messages et communiquer, sans fil, en voie descendante vers un téléphone ? Si tel était le cas, cela n’aurait presque pas d’incidence sur l’autonomie énergétique – généralement de plusieurs années avec des piles alcalines standards- et, cela ne demanderait qu’une modification secondaire des logiciels embarqués dans les dits capteurs, ce qui ne risquerait donc pas de mettre en péril leur certification. Alors ?

Verdict : Oui, c’est possible !

C’est possible, mais, décoder des signaux sonores dans l’espace réel, ce n’est pas simple du tout! Le contexte acoustique et environnemental peut être turbulent et chaotique. Le son rebondit, dans l’espace, produit des échos et autres artefacts perturbateurs. Le piézo ne passe pas instantanément d’une phase vibrante à un arrêt net, il s’amortit progressivement en quelques millisecondes, générant une sorte de traine acoustique.

Il a fallut quelques centaines d’heures de travail pour mettre au point le décodeur et pour trouver une procédure d’interaction simple à mettre en œuvre par les usagers.

La version iOS de l’app est prête depuis plusieurs mois, contrairement à la version Android, qui pose comme souvent de sérieux problèmes d’hétérogénéité matérielle (variabilité des microphones et du groupe acoustique contrairement aux iPhones & iPads qui ont depuis leurs premières versions, des comportements sonores très consistants).  A suivre  donc, en 2015…

com-sonore-objet.002

Comment ça marche?

Nous utilisons, un mécanisme de transmission du signal par « impulsion ». Nous aurions pu alternativement avoir recours à un encodage peut-être plus robuste par décalage ou modulation de fréquences.

En temps réel, lors des phases de communication, le portable mesure le niveau d’intensité acoustique dans des fréquences filtrées. Après dépoussiérage, il transmet à un moteur d’inférence la durée des impulsions, qu’il transforme en bits.

Miracle, merveille, Extase !,  il existe des mécanismes auto-correcteurs, qui permettent de rectifier d’éventuelles erreurs de transmission. Il est assez peu courant en développement mobile de pouvoir / devoir mettre en oeuvre ses merveilles conceptuelles.

Pour vérifier qu’il n’y a pas d’erreur, l’émetteur (le logiciel embarqué dans le capteur) injecte un code de Hamming(7,4).  A réception, si nécessaire la séquence de bit est corrigée avant que  le message ne soit interprété.

Code de Hamming ?

Le Code de Hamming (7,4) est un code correcteur linéaire binaire de la famille des codes de Hamming. À travers un message de sept bits, il transfère quatre bits de données et trois bits de parité. Il permet la correction de toute erreur portant sur un unique bit. C’est-à-dire que si, sur les sept bits transmis, un est altéré (un zéro devient un un ou l’inverse), alors il existe un algorithme permettant de corriger l’erreur, quel que soit le bit altéré.

Il fut introduit par Richard Hamming (1915-1998) en 1950 dans le cadre de son travail pour les laboratoires Bell.

– Source Wikipédia.

Détails obscurs, à destination de mes pairs, âmes sensibles, s’abstenir!

Pour traiter le signal, j’ai utilisé l’excellent « Amazing Audio Engine » de Michael Tyson, immense boxeur, redoutable développeur spécialisé dans le traitement du son, et fondateur du non moins excellent système Audiob.us.  Vous avez probablement rectifié, Michael, est un poids plume, homonyme de la terreur des rings, MikeTyson  alias « Kid Dynamite » alias  » Iron Mike ». Pour en savoir plus sur  » The Amazing Audio Engine  » rendez-vous sur la page GitHub dédiée.

Pour encoder et décoder du Hamming (7,4) j’ai utilisé la routine en C ANSI de Michael Dipperstein.

La partie « temps réel » du code, qui s’exécute toutes les 0.0058 secondes , est  écrite exclusivement en C, tout appel au « runtime objective C » produirait des décalages et fausserait le décodage.  Les résultats sont transmis par un « thread » séparé en asynchrone au moteur d’inférence et à la logique métier écrite en Objective C. La partie visuelle, oscillation et dessin de l’onde utilise des fonctions bas niveau CoreGraphics / Quartz2D.

En résumé :

J’ai développé une application iOS qui communique par le son avec des capteurs de sécurité grands publics. Elle décode des messages sonores émis par les sirènes de capteurs. Ce procédé permet à coût constant de fabrication, de rendre des objets communicants en restant, parcimonieux en ressources énergétiques, et respectueux des normes.

Addenda

Vous souvenez-vous des  sons émis par les « Modem RTC » en phase d’initialisation,  du Minitel, ou encore de la composition des numéros sur nos vieux téléphones? La modulation/démodulation est une notion très ancienne. Tam-tam, cloches, balafons, clairons sont des moyens traditionnels de communication en Afrique Sub-saharienne. Le télégraphe  en utilisant des séries d’impulsions pour transmettre un message encodé en Morse sur de très grandes distances, préfigure les grands réseaux numériques contemporains.

Les exemples de communications par le son sont pléthoriques, y compris dans le monde des objets connectés, ou des apps mobiles.  Ce qui me semble particulièrement  intéressant ici, c’est de voir comment une approche d’apparence archaïque, et, en réalité fort délicate à mettre en oeuvre, peut servir des problématiques connexes comme le bilan énergétique,  la sécurité, ou l’optimisation des coûts.

Une réflexion au sujet de « Des objets connectés qui communiquent par le son ? »

  1. Question de l’internaute mystère par mail :

    « le son est-il audible ou pas? »

    Ma réponse :

    Excellente question! Il s’agit d’une procédure de diagnostic pour des systèmes critiques. Elle doit impérativement faire beaucoup de bruit. Ferais-tu confiance à un système d’alerte / d’alarme silencieux? Je pense qu’il est tout à fait possible d’opérer dans les ultrasons. Pour les infrasons c’est moins sûr. Il serait également possible avec un petit accessoire à bas coût, comme un cornet en plastique, d’utiliser une source sonore très faible et de réduire les parasites.

Les commentaires sont fermés.