Harpe laser

Peut on vraiment appeler ça une harpe ?

Que faire avec 12 lasers, une carte Arduino, 4 planches et une après-midi ?

Quand j’étais encore a la DTRE (association robotique du groupe ESIEA), il m’arrivait d’avoir assez de temps libre et de matériel pour réaliser un petit projet sur un coup de tête.

En cette belle journée du mercredi 12 décembre 2018, l’école nous annonce qu’un TP de découverte d’électronique organisé par la DTRE ne sera plus réalisé. Notre TP consistait à mettre à disposition d’étudiants un laser, une photorésistance, un buzzer et une Arduino pour réaliser une simple porte laser (un “système d’alarme”) en introduisant les notions de programmation microcontrôleur et d’électronique basique. Ayant écrit puis organisé ce TP pendant 1 an, je me retrouve avec ma déception et une vingtaine de lasers sur les bras.

Très bien, faisons en quelque chose !

Concept technique

A ma connaissance, il existe deux types de harpe laser:

  • La harpe à rayons infinis
  • La harpe à rayons…. finis !

Les rayons infinis sont de bien bel effet, mais la détection du contact avec une “corde” de la harpe est assez complexe. De plus elle ne nécessite pas de cadre, ce qui pour moi est un élément important pour une harpe.

Les harpes à rayon fini utilisent une barre de récepteurs photo sensibles, permettant une réalisation plus simple, mais réduisant les possibilités et liberté d’utilisation.

En fonction du matériel et de ma volonté, j’ai décidé de partir sur la harpe à rayons finis.

La plupart des modèles de harpe laser que j’ai pu observer utilisent un seul laser projeté sur un miroir rotatif, ce qui donne l’impression de plusieurs cordes. Le système final est plus souple, on peut décider à la volée du nombre de cordes et autres paramètres. Utiliser un moteur assez précis et un miroir attaché dessus ne me tentait pas pour cette fois, mais qui sait pour la prochaine.

Réalisation physique

Et bien ça n’est pas bien compliqué, il faut simplement construire un cadre en bois (facile), avec 12 trous bien alignés (facile ?) de chaque cotés pour faire passer les lasers et leurs récepteurs.

Un petit passage vers notre mini perceuse à colonne et on constate immédiatement que les trous alignés, ça n’est pas si facile (sigh).

Pour éviter une consommation trop importante, les lasers sont allumés un par un plus rapidement que l’œil ne peut le distinguer, avec l’aide d’un démultiplexeur. De même, les pins analogiques sont une ressource rare, et un démultiplexeur n’est pas non plus exclu. Les capteurs utilisés seront de simples photorésistances, issues du même projet.

Notre émetteur de son sera un joli haut-parleur, récupèré par mes soins dans un vieux radio réveil.

La construction a duré en tout un peu plus de deux heures, soudure et colle chaude incluse.

Le code

J’écris ce post en 2021, le code de 2018 à disparu dans les limbes informatiques. Seule la mémoire humaine persiste !

Comme précisé précédemment, les lasers et photorésistances sont activés par paires, une paire a la fois. La vitesse de balayage est tellement élevée qu’on ne remarque pas la différence avec des lasers toujours allumés, et on économise en énergie le coût (non négligeable !) de tous les lasers éteints.

J’ai communiqué avec mes collègues musiciens de l’époque, qui m’ont tous conseillé de coder un MIDI (pour Musical Instrument Digital Interface), que j’ai bien sûr écouté en ne faisant pas du tout ça, et en réalisant plutôt une table de fréquences musicales en dur (la raison étant que ce genre d’interface est compliquée à mettre en place, et ici, j’ai déjà un haut-parleur de sortie qui ne nécessite pas d’interface). Il suffit d’associer chaque fréquence à une corde de la harpe, et envoyer la fréquence activée en PWM sur la pin de sortie.

L’Arduino ne peut pas gérer plusieurs sorties PWM simultanées, limitant donc la sortie audio à un seul haut-parleur. Quel est le problème ? Les harmoniques des sons de plusieurs cordes simultanées, la polyphonie, impossible de faire ça proprement. La méthode la moins désagréable à l’oreille (je ne suis pas musicien fort heureusement) est une simple interpolation linéaire de fréquences. Est-ce que l’utilisation d’un MIDI aurait contourné ce problème ? Assurément.

Le Résultat !

Une photo du prototype avant le passage de la breadboard a la plaque définitive (observez l’alignement irréprochable des trous !) :

Voir les performances de notre musicien le plus talentueux (sur Facebook)

Encore une fois, une réalisation extrêmement simple et qui attire la curiosité, donne envie de jouer avec et de découvrir son fonctionnement. Je n’en demande pas plus.


Suggestions de lecture :