samedi 19 octobre 2013

Contrôler un Arduino en tapant des mains

En 1986, un gadget appelé "Clapper" fut mis sur le marché et obtint un certain succès grâce à des publicités télévisées:  plus la peine de vous déplacer jusqu'à un interrupteur lorsque vous désiriez allumer ou éteindre les lumières, il suffisait de taper deux fois dans les mains...  Le message publicitaire ci-dessous vous montre à quel point le Clapper rendait son propriétaire heureux...  (le secret du bonheur enfin révélé!)



En plus d'un microcontrôleur (ST 6210) qui détectait les "claps" en fonction de leur intensité sonore et leur durée, le Clapper était muni de trois étages de filtres afin de ne considérer que les fréquences sonores pertinentes (voir ici pour plus d'informations sur le Clapper).

Il est très facile de faire en sorte que votre Arduino exécute une action lorsque vous tapez des mains.  Pour ce faire, vous devez évidemment le munir d'un microphone.  J'ai utilisé un micro à électret rattaché à un petit circuit d'amplification dont le schéma se trouve ici (je l'avais utilisé dans une précédente rubrique pour visualiser des sons à l'écran d'un oscilloscope).   Mais vous pouvez opter pour une solution toute faite comme ce breakout commercialisé par Sparkfun ou chercher "Arduino Sound Sensor" sur eBay: n'importe quel capteur sonore de ce genre devrait faire l'affaire.

Côté logiciel, je vous suggère l'excellent sketch mis au point par Manoj Kunthu.  Après l'avoir installé dans votre Arduino, il ne reste plus qu'à acheminer le signal sonore du microphone à l'entrée analogique A0, et à brancher une LED à chacune des sorties numériques suivantes:  10, 11 et 12.

Lorsque vous tapez des mains une première fois, la LED 11 s'allume pendant environ une seconde.  Si vous tapez des mains une seconde fois à l'intérieur du délai requis, la LED 12 s'allume également pendant un bref instant, et la LED 10 s'allume (et demeure allumée:  pour l'éteindre, vous devez à nouveau taper des mains deux fois de suite).

Bien sûr, vous devrez probablement ajuster les réglages de votre amplificateur (ou les paramètres du sketch) pour ajuster la sensibilité (vous ne voulez pas que l'Arduino réagisse au moindre son ambiant, ni qu'il soit trop dur d'oreille...).

L'utilisation conventionnelle du dispositif consiste à placer un relais à la sortie numérique numéro 10, de façon à contrôler l'alimentation d'un appareil électrique (éclairage ou autre), mais ça peut être bien d'autres choses. Par exemple:  votre robot qui exécute une action particulière lorsque vous tapez des mains, etc.

Yves Pelletier (Twitter:  @ElectroAmateur)

1 commentaire: