Téléphone as a Jukebox
L'idée est simple : composer un numéro sur le cadran déclenche la lecture d'un fichier audio correspondant. Composer le 1 joue un morceau, le 2 un autre, etc. Un Raspberry Pi logé sous le cadran écoute les impulsions électriques générées par la rotation, identifie le chiffre composé et lance la lecture via le haut-parleur du combiné.
Les numéros peuvent être aussi longs que souhaités : composer 007 joue le thème de James Bond, 3615 une pub du Minitel, 118218 les pages jaunes…
En m'inspirant des projets aselektriskbureau, s63, j'ai écrit un programme en Python qui identifie le chiffre tourné sur le cadran puis qui permet de rechercher dans une liste de fichiers le numéro correspondant.
Câblage
Pour commencer, j'ai nettoyé le téléphone ainsi que le mécanisme de rotation du cadran afin de lui permettre de retrouver sa mobilité.
Le schéma de câblage de ce type d'appareil est assez simple, 4 fils sortent du cadran, ils sont notés en chiffres romains et avec des couleurs :
I, blanc-rouge : les impulsionsII, rouge : masseIII, bleu : interrupteur ouvert lorsque le cadran tourneIV, blanc-bleu : aucune idée
Les 3 premiers sont reliés au Pi comme suit :
- le rouge et le blanc-rouge transmettent les impulsions liées à la rotation du cadran. Lorsque le chiffre 3 est tourné, 3 impulsions sont envoyées sur ces fils. Le but du jeu est de les lire, facile non ? En les branchant sur les ports GPIO
4et5puis en écoutant ces impulsions à l'aide d'un programme, il est possible de réagir en fonction d'un numéro composé. En fait, ce qui est bluffant est que la simple lecture d'un front montant sur le GPIO relié à ce cadran correspond à une impulsion ; en comptant le nombre d'impulsions, on connaît le chiffre composé par l'utilisateur. La fin de la composition d'un numéro correspond à une attente supérieure à 900 ms. Cette dernière valeur est empirique dans le cadre de ce projet, elle donne un bon compromis entre l'attente de la validation d'un numéro et la rotation du cadran pour le chiffre suivant.
- Pour améliorer la détection d'un chiffre, le fil bleu du cadran passe à l'état haut lorsque le cadran a terminé de tourner, cela évite d'attendre trop longtemps les impulsions. Je l'ai branché sur le GPIO
17.
- Enfin, un interrupteur est situé en haut du support métallique pour détecter si le combiné est décroché/raccroché : je l'ai branché entre le GPIO
18et à la masse.
- Pour la partie son, j'ai branché le haut-parleur du combiné sur la sortie audio du Pi, ici, il n'y a rien de particulier à faire : ça marche ©.
Voici un tableau de connexion des ports GPIO :
| GPIO | Couleur | Rôle |
|---|---|---|
4 | blanc-rouge | Impulsion du cadran |
GND | rouge | Impulsion du cadran |
17 | bleu | Rotation du cadran |
18 | blanc | Interrupteur du combiné |
GND | blanc | Interrupteur du combiné |
La cinématique, bien qu'évidente, est la suivante :
- Décrochement du combiné : événement sur le GPIO
18et le fichier musical du “tuuuuuuuuuuuuut” est joué correspondant à la note de musique “la”. - L'utilisateur tourne une première fois le cadran pour faire le chiffre 8 : 8 impulsions sont lues sur le GPIO
4, à chaque fin de rotation, le nombre d'impulsions comptées est ajouté au numéro composé - L'utilisateur tourne une 2e fois le cadran, rebelote
- …
- L'utilisateur ne touche plus au cadran, au bout d'un certain délai, le programme considère que le numéro est complet et recherche dans sa base de fichiers un nom de fichier correspondant au numéro et le joue.
Intégration
Pour loger le Raspberry Pi dans le téléphone, j'ai cassé ou arraché les différents composants électroniques de la carte mère afin de pouvoir le glisser sous le cadran.
Pour l'alimenter, j'ai repris l'approche de régulateur de tension XL4015 que j'ai déjà mis en oeuvre dans mes autres projets. J'ai utilisé le long câble, habituellement branché au mur avec la prise téléphonique en forme de T, pour y faire passer du 12 V avec un adaptateur secteur et puis au travers du régulateur 5V, j'alimente le Pi en me branchant directement sur les pins GPIO.
Les sources et le mode d'installation sont disponibles sur mon gitlab : https://gitlab.com/coliss86/telephoneasajukebox
Au final
Ce projet fut vraiment sympa à réaliser : il a été utilisé en conférence sur le stand de mon employeur pour agrémenter un jeu : nous avons mis de nombreux morceaux audio faisant des clins d'oeil à la culture geek, séries ou films.



