Comment je lis les switchs avec WEMOS
Bonjour,
J'ai été un peu (beaucoup) long à répondre à cette question.
Tout d'abord un grand merci à Jay M pour le conseil sur l'utilisation d'un WEMOS pour faire la communication WIFI avec le reste de mon système. J'utilise un ESP WROM32 DEV KIT 38pins pour la machine à écrire (TELEX) et compte tenu du prix de ces équipements, j'en utilise un en borne WIFI et un en serveur relié à mon ordinateur.
Voici la description du projet :
- C'est pour un jeu (type Escape Game). J'avais besoin d'un système qui permette de transmettre des TELEGRAPHES vers l'extèrieur de la pièce où se trouvent les joueurs.
- Je voulais que ce télégraphe n'ait pas l'allure d'un ordinateur (époque visée 1930). J'ai donc acheté une vielle machine à écrire mécanique.
- Je souhaite que les télégraphes envoyés puissent être sauvegargés en automatique sur l'ordinateur de l'organisateur (hors de la salle de jeu).
- Le jeu se déroule dans un chateau loué pour l'occasion, impossible de percer des trous dans les murs ni de faire circuler des câbles partout, d'ou l'utilisation du WIFI pour la communication entre le télégraphe et l'ordinateur.
Comment j'ai transformé la machine à écrire en télégraphe?
- j'ai installé un micro switch sous chaque touche du clavier (merci l'imprimante 3D pour la réalisation de la pièce mécanique qui positionne chacun des 42 microswitch)
- Ensuite pour lire chaque touche, j'ai créé un matriçage (utilisation de 6 entrées analogique de l'ESP et génération de 7 tensions continues de valeurs différentes de 0.5v / 0.9v / 1.3v / 1.7v / 2.2v / 2.6v et 3v)
- une entrée analogique est donc stimulée par une touche qui va lui appliquer une de ces tensions (fonction de la touche) - exemple : la touche correspondant au "1" de la machine commute une tension de 0.5v sur l'entrée analogique 32 de l'ESP, la touche "N" commute 1.7v sur l'entrée analogique 35 de l'ESP .
- Chaque touche de la machine est donc de façon unique associée à un couple [tension/entrée analogique].
- Au niveau logiciel, je boucle sur la lecture des 6 entrées analogiques jusqu'à ce que l'une d'elle détecte un niveau de tension supérieur à 200mv (chaque entrée est ramenée à la masse quand aucun switch n'est actionné). Ensuite, je lance une lecture en boucle de cette entrée analogique, jusqu'à ce que le niveau redescende en dessous de 200mv (touche relachée, donc switch ouvert), les valeurs lues sont mémorisées dans un tableau.
- Puis je viens récupérer la valeur max mesurée.
- J'ai donc un couple [tension lue / Numéro de broche analogique stimulée]
- Il ne reste plus qu'à retrouver la touche associée dans un tableau qui fait le lien entre le couple et la touche.
Chaque caractère frappé est mémorisé dans un tableau de type char et à la fin il est envoyé par WIFI au serveur reliè à l'ordinateur dans la salle de l'organisateur.
Il y a d'autre touches utilisées pour la gestion des messages frappés :
- La touche "double flèche" du clavier permet d'indiquer que l'on saisit l'identité de l'expéditeur
- La touche " retour arrière" du clavier permet d'indiquer que l'on saisit l'identité du destinataire
- La touche "TAB" du clavier indique que l'on a fini de saisir un champ (expéditeur, destinataire ou texte) du télégramme.
- La touche "+-" du clavier indique la demande d'envoi du télégramme
Ces 4 touches sont lues sur des entrées logiques de l'ESP.
Je me suis aussi amusé à traduire les caractères frappés dans leur équivalent en MORSE et à la fin de la saisie et après l'envoi du télégramme, un système entièrement conçu par moi même vient transcrire sur un ruban de papier le code Morse associé au télégramme envoyé. Mais là c'est beaucoup plus des problèmes mécaniques que de programmation.
En tout cas merci beaucoup pour l'aide apportée qui m'a permis d'avancer sur ce projet. Il n'est pas encore terminé, il reste la partie boitier à fabriquer.
Prochain projet :
- Pour celles et ceux qui ont vu la série "DARK" sur Netflix, j'aimerai bien réaliser la fameuse boite (je n'en dis pas plus pour ne pas spoiler). Ce que j'aimerais, c'est qu'elle soit mécaniquement fonctionnelle .... pas mal de tests en perspective.