• Code Morse

     

    RINCKWALD Lisa et MORENO BOTERO Gonzalo Andres

    L3 EVMAN

     

    Description :

    Le code Morse est un système d'information qui permet de communiquer par la transmission d'impulsions électriques de différentes longueurs ou par des moyens visuels, tels que la lumière, le son ou la mécanique. La combinaison de ces différents signaux forme des mots, des chiffres et d'autres symboles. Deux types de signaux existent : un court (250 millisecondes) et un long (750 millisecondes).

     

    Figure 1 : Liste des lettres de l’alphabet latin avec leurs combinaisons de signaux respectives, source de l’image : https://www.potiondevie.fr/apprendre-le-code-morse/

     

    Dans le cadre du cours MAX/MSP, nous avons décidé de développer un projet de traduction qui vise à convertir les informations fournies par le code Morse en alphabet latin. Chaque signal étant constant (de même longueur temporelle, 400 millisecondes) dans notre programme, nous avons décidé de trier les signaux en se basant sur le temps qui sépare entre chaque signal. Pour séparer deux lettres, nous avons posé un temps d’attente de deux secondes. Ainsi, nous pouvons mettre en relation ces différents groupes de signaux (d’entre un et quatre) avec les lettres de l'alphabet latin (figure 1) afin de générer une traduction.

    Du côté esthétique, nous avons décidé de rester le plus basique possible, le but de ce projet étant la traduction. Par conséquent, nous avons mis dans le projet des lettres et un texte qui sert pour l’étape 1. Puis, pour l’immersion, nous avons inséré le son du signal, qui s’active à chaque contact avec le capteur de pression.

     

    Liste du matériel :

    - Capteur de pression

    - Allonge trois fils

    - Carte à capteurs

    - Câble MIDI

    - Interface MIDI/USB

    - Ordinateur

     

    Répartition du travail :

    - Gonzalo Andres Moreno Botero : étape 1 et 2 du programme, création de ressources d’image et du son pour l’étape 3, compte rendu

    - Lisa Rinckwald : schémas, affichage vidéo, son et étape 2 et 3 du programme, vidéo de démonstration, compte rendu

     

    Schéma fonctionnel :

    Figure 2 : Schéma des étapes du Code Morse

     

    Explication technique :

    Figure 3 : Ensemble du programme du Code Morse

     

    Figure 4 : Étape 1 du programme

     

    Après le démarrage automatique à l’aide du loadbang, un bang est envoyé pour afficher la première vidéo, dans laquelle un message s’affiche pour dire à l’utilisateur d’appuyer sur le bouton du capteur.

    Figure 5 : Première partie de l’étape 2 du programme qui sert à trier les signaux

     

    Pour passer de la première étape à la deuxième étape, nous avons utilisé un slider et un seuil (figure 5). Ce dernier permet de considérer si l’utilisateur appuie ou non sur le bouton du capteur de pression. Chaque fois que le slider dépasse le seuil 60, une information est envoyée et le son du signal est produit (figure 6).

    Figure 6 : Partie du programme gérant le son

     

    Ensuite, nous avons mis en place un timer (figure 5), qui a pour rôle de compter le temps entre chaque signal. Les split, quant à eux, servent à laisser entrer des signaux qui correspondent à une fourchette de temps. Nous obtenons ainsi deux groupes de signaux : les courts et les longs. Le troisième split a pour utilité de mettre fin à la traduction de la lettre actuelle et de permettre au programme de traduction de passer à la lettre suivante.

     

    Figure 7 : Deuxième partie de l’étape 2 du programme qui sert à convertir les signaux en chiffres, puis à les grouper

     

    Après la séparation des signaux, la suite du programme consiste à les enregistrer dans la mémoire cache (figure 7). Pour cela, le programme convertit les signaux en 1 (pour le signal court) et en 2 (pour le signal long). Ces chiffres sont ensuite stockés dans le message du zl.join, objet qui enregistre les données dans la mémoire cache. Quant au message clear (figure 7), il s’active quand le signal entre par l’objet split 2000 10000 (figure 5) et vide la mémoire cache (figure 7). La mémoire est prête à être de nouveau remplie pour les prochains signaux.

    Nous avons d’abord opté pour l’objet sprintf qui supprime les espaces entre les chiffres mais le message clear ne fonctionnait pas sur cet objet. Par conséquent, nous avons décidé d’utiliser tosymbol, qui supprime les espaces grâce au message separator, et fromsymbol, qui supprime les guillemets générés par tosymbol.

    Figure 8 : Étape 3 du programme

     

    Pour l'étape 3, le programme convertit le nombre en une lettre latine (figure 8). Pour savoir en quelle lettre traduire, il se réfère à l'objet coll, qui contient la liste des fichiers en format PNG associés à des nombres (figure 10). Ces fichiers représentent des lettres de l’alphabet latin. L’objet zl.join ajoutant des chiffres de droite à gauche, nous avons dû inverser les chiffres dans le fichier alphabets.txt (figure 10) afin qu’il sorte les bonnes lettres. Une fois trouvée la lettre latine correspondant au chiffre, une information est envoyée pour ouvrir le fichier sélectionné.

     

    Figure 9 : Schéma représentant les chemins des signaux (1 pour “Court” et 2 pour “Long”) vers la validation des lettres latines

     

    21, read A.png ;

    1112, read B.png ;

    1212, read C.png ;

    112, read D.png ;

    1, read E.png ;

    1211, read F.png ;

    122, read G.png ;

    1111, read H.png ;

    11, read I.png ;

    2221, read J.png ;

    212, read K.png ;

    1121, read L.png ;

    22, read M.png ;

    12, read N.png ;

    222, read O.png ;

    1221, read P.png ;

    2122, read Q.png ;

    121, read R.png ;

    111, read S.png ;

    2, read T.png ;

    211, read U.png ;

    2111, read V.png ;

    221, read W.png ;

    2112, read X.png ;

    2212, read Y.png ;

    1122, read Z.png ;

     

    Figure 10 : Fichier alphabets.txt

     

    Figure 11 : Partie du programme s’occupant de l’affichage vidéo

     

    Vidéo de démonstration :

     

    Et une vidéo de démonstration enregistrée la veille de l’achèvement du projet. Le seul changement est l’étape 1 (ajout des objets send et receive) mais le fonctionnement reste le même.

    « Test de courageJohn Quick - Chasseur de primes »

    Tags Tags : , ,
  • Commentaires

    Aucun commentaire pour le moment

    Suivre le flux RSS des commentaires

    Vous devez être connecté pour commenter