Morsetrainer - AZ-Delivery

Vous trouverez également des ordinateurs qui communiquent à des vitesses étonnantes sur les câbles Lan: 10 Mbit / s, 100 Mbit / s ou même 1 Gbit / S.Rappel: M pour Mega, c'est - à - dire 1 million (10 haut 6), g pour Giga, c'est - à - dire 1 milliard (10 haut 9).Avant de nous sentir étourdis par ces vitesses de transmission, je suggère que nous « ralentissions » ensemble et que nous apprenions à reconnaître environ 100 caractères par minute à l'aide d'un entraîneur marin fait maison.

Informations sur le code Morse

Pour de plus amples renseignements sur l'invention de Samuel Morse, veuillez consulter: Wikipedia.J'ai moi - même trouvé des détails intéressants.Je résume ici le point le plus important:

Au début, il y a certainement des raisons pour lesquelles le code Morse devrait encore être traité aujourd'hui, car le dernier amendement convenu au niveau international n'a eu lieu que quelques années auparavant.J'en ai moi - même besoin pour l'entraînement en vol, car les transmissions radio, c'est - à - dire les émetteurs à ondes moyennes et UKW, émettent un signal qui, combiné à la fréquence fixée, est clairement validé.En plus des signaux acoustiques, les identificateurs des feux de lumière et des bouées, par exemple dans la navigation, peuvent également être diffusés sous forme de signaux optiques.Par conséquent, nous nous concentrons sur la compréhension des noms des deux ou trois lettres de « débordement », comme mne, mnw, MSE et MSW pour les quatre feux radio (NDB) non édités autour de Munich.

Le code Morse d'une seule lettre se compose de ce qu'on appelle des points et des traits, c'est - à - dire des sons courts et longs.Parlez avec un "di" ou un "dit" à la fin pour un point, et un long "dah" pour une ligne.Donc "Di Dah di dit" correspond au code Morse court court long court.Ces lettres se composent d'un à quatre caractères et l'idée originale était que plus les lettres apparaissent fréquemment, plus le code Morse est court.Cela n'est donc pas surprenant.Pour "E".Les chiffres et les caractères spéciaux sont composés de cinq caractères ou plus.Le logo spécial le plus célèbre est connu de tous les enfants, appel d'urgence international Didi Didi Didi Didi Didi.Comme nous le verrons, il ressemble à la lettre S - O - S, mais il n'y a pas d'interruption entre les lettres.Sauver nos âmes est le premier "backronym" connu.

Bien sûr, la vitesse à laquelle le caractère "donne" dépend de la capacité du donneur (expéditeur) et du destinataire. Dans notre programme, nous définirons la longueur du "dit" comme une variable que nous pourrions définir plus tard.Capable de s'adapter.Ce "dit" est l'unit é de temps de base à laquelle tous les autres temps peuvent être retracés: "dah" La longueur est de 3 "dit".La longueur de la pause est un "dit" entre deux symboles, trois "dit" entre les lettres d'un mot et sept "dit" entre les mots.

De quoi avons - nous besoin?

Nombre Composantes
1 Peau de framboise
Sélectionner Compatible avec le microcontrôleur arduino
1 Buzzer KY - 012 Ou Buzzer KY - 006
Facultatif Plaque d'essai, CâbleLED supplémentaire


Programme Python

Le premier morsetrainer que je vais vous présenter est Raspberry Pi dans le langage de programmation Python.Ce problème peut être divisé en deux sous - tâches: premièrement, nous avons besoin d'une table avec traduction.Après cela, les points et les traits doivent être en tonalité ou.Mettre en œuvre des panneaux lumineux.

En Python, il existe un type de données appelé "dictionnaire", qui est idéal pour la traduction.Donc nous devons mettre le tableau suivant dans le dictionnaire, par exemple, en utilisant le nom Le matin. Mise en œuvre.

Perchaude

Dans cette section, j'ai utilisé le Code du programme dans le livre de Michael Weigend, à travers lequel j'ai appris Python, et je l'utilise encore occasionnellement aujourd'hui.

#----------------------------------------------------------------
 # Dateiname: morsen.py
 # Text durch Morsezeichen darstellen.
 #
 # Michael Weigend: Raspberry Pi programmieren mit Python, mitp 2013
 # 3.13.2
 # 28.10.2013
 #----------------------------------------------------------------
 
 morse = {"a":".-", "b":"-...", "c":"-.-.", "d":"-..", "e":".", "f": "..-.", "g":"--.", "h":"....",
          "i":"..", "j":".---", "k":"-.-", "l":".-..", "m":"--", "n":"-.", "o":"---", "p":".--.",
          "q":"--.-", "r":".-.", "s":"...", "t":"-","u":"..-", "v":"...-", "w":".--", "x":"-..-",
          "y":"-.--", "z":"--..", "ä":".-.-", "ö":"---.", "ü":"..--", "ß":"...--.", " ":" "}
 
 text = input("Geben Sie einen Text ein: ")
 morsetext = []
 for buchstabe in text:
     if buchstabe in morse.keys():
         morsetext.append(morse[buchstabe])
 
 for m in morsetext:
     print(m, end=" ")

Ces lettres sont utilisées comme clés dans le dictionnaire.Après le double point, le code Morse avec le point et le trait d'union est listé comme valeur.

Comme nous n'utilisons que des lettres minuscules dans notre dictionnaire, nous vous recommandons d'utiliser la méthode Lower () String, qui crée une copie d'une chaîne avec des lettres minuscules de sorte qu'il n'y ait pas d'espace vide lorsque vous saisissez accidentellement des lettres majuscules.

Dans la boucle for, chaque lettre du texte d'entrée est convertie individuellement et ajoutée à la liste originale de texte Morse vide.Ensuite, imprimez les éléments de la liste.

Pour la sortie en tant que signal sonore ou lumineux, nous connectons la LED et / ou le Buzzer à la broche GPIO (ici gpio24) et nous la commutons en haut I (led.on ().Ouverture basse (led.off ().En utilisant la fonction Sleep () du module temps, nous déterminons séparément la durée du signal.Reposez - vous.Comme nous l'avons vu plus haut, tous les temps se réfèrent à la longueur du dit, que nous définissons comme la variable dit = 0,2.Pour rappel, le point décimal en python est un point décimal.Si vous voulez entendre le morse plus rapidement, vous pouvez changer cette valeur plus tard.

#! /usr/bin/python3
 # Morsen_LED.py
 # Programmidee und Algorithmus: Nele Marie Klipp, Enrichment-Kurs 2016/17
 # angepasst an gpiozero: Bernd Albrecht, Kursleiter
 #
 
 from time import time, sleep
 from gpiozero import LED
     
 DIT = 0.2
 led = LED(24)
 
 MORSECODE = {"a" : ".-" , "b" : "-...", "c" : "-.-.", "d" : "-.." , "e" : ".", "f" : "..-." , "g" : "--." , "h" : "...." ,
            "i" : ".." , "j" : ".---" , "k" : "-.-" , "l" : ".-.." , "m" : "--" , "n" : "-." , "o" : "---" , "p" : ".--." ,
            "q" : "--.-" , "r" : ".-." , "s" : "..." , "t" : "-", "u" : "..-" , "v" : "...-" , "w" : ".--" , "x" : "-...-",
            "y" : "-.--" , "z" : "--.." ,  "1" : ".----" , "2" : "..---" , "3" : "...--" , "4" : "....-" ,
            "5" : "....." , "6" : "-...." , "7" : "--..." , "8" : "---.." , "9" : "----." , "0" : "-----" }
 
 def morse(letter):
      print(letter,MORSECODE[letter])
      for a in MORSECODE[letter]:
          if a == ".":
             # print('drin Punkt')
             led.on()
             sleep(DIT)
             led.off()
             sleep(DIT)
          else:
             # print('drin Strich')
             led.on()
             sleep(3*DIT)
             led.off()
             sleep(DIT)
      sleep(3*DIT)
 
 def send(text):
     for letter in text:
          if letter in MORSECODE.keys():
             morse(letter)
          else:
              sleep(7*DIT)
              print(" ")
 
 print('Was soll gesendet werden?\n')
 
 Eingabe=input('Text: \n').lower()
 print(Eingabe)
 send(Eingabe)

Télécharger le code source morsen led.py

Programmes en langue C + +

Pour implémenter notre jauge Morse avec un microcontrôleur compatible arduino, nous devons choisir une autre méthode, car c + + ne connaît aucun dictionnaire comme type de données.Alternativement, nous utiliserons la liste des symboles Morse et accéderons ensuite aux lettres individuelles dans le code Morse par index.

Par souci de simplicité, je n'ai démontré ce principe que sur la base de lettres sans enveloppes, chiffres et caractères spéciaux.

 String morseTable[] = { ".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.."};

Tout ce que je vais faire maintenant est d'assigner l'index 0 à la lettre a, et ainsi de suite.Index 25 de la lettre Z;Donc 26 lettres, index de 0 à 25!

Dans le tableau ASCII, j'ai trouvé des codes ASCII de 65 à 90 pour les lettres majuscules a à Z et de 97 à 122 pour les lettres minuscules a à Z.Après avoir entré les lettres dans le moniteur série, les valeurs ASCII sont vérifiées entre les chiffres ci - dessus.L'indice est ensuite soustrait de 65 chacun.Le code Morse a été retiré de la liste.Selon le nombre de caractères Morse d'une lettre, la boucle sera utilisée pour la sortie de lumière ou de lumière.Le signal sonore fonctionne une à quatre fois.Je voudrais mentionner une pierre d'achoppement: si le point de requête ou le point de suture Si (molskar [i] = ') J'ai commencé avec des virgules doubles parce que le code Morse est enregistré comme une chaîne dans la liste.Mais chaque caractère de la chaîne est un caractère, donc utilisez une simple virgule haute.

Voici le Code d'arduino morsetrainer:

  /* Morse-Trainer mit Arduino
  * Buzzer und LED an Pin 13
  */
 
 int ledPin = 13;
 int dit = 200;
 int dah = 3 * dit;
 int oneChar;
 String morseChar;
 String morseTable[] = { ".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.."};
 
 void setup() {
   pinMode(ledPin, OUTPUT);
   digitalWrite(ledPin, HIGH);  
   delay(1000);  
   digitalWrite(ledPin, LOW);  
   Serial.begin(9600);
   while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }  
   Serial.println("\nEnter group of characters in Serial Monitor");
   Serial.println();  
 }  // end setup()
 
 void loop () {
   // get any incoming bytes:
   if (Serial.available() > 0) {
     oneChar = Serial.read();
     Serial.print(char(oneChar));
     Serial.print("   ");    
     morseCode();
  }
 }  // end loop()
 
 void morseCode() {
   if (oneChar >= 65 && oneChar <= 90) {
     morseChar=morseTable[oneChar-65]; }  
   else if (oneChar >= 97 && oneChar <= 122) {
     morseChar=morseTable[oneChar-97]; }
   else {
     morseChar=" ";}
   Serial.println(morseChar);
   outputMorse();
   Serial.println();
 }
 
 void outputMorse() {
   int len = morseChar.length();
 // Serial.print( "morseChar.length = ");
 // Serial.println(len);
   for (int i=0; i<len; i++) {
 //   Serial.print(morseChar[i]);      
     if (morseChar[i]=='.') {      //reminder: "String" with characters '.' and '-'
       digitalWrite(ledPin, HIGH);  
       delay(dit);  
       digitalWrite(ledPin, LOW);  
       delay(dit);   }
     if (morseChar[i]=='-') {      //reminder: "String" with characters '.' and '-'
       digitalWrite(ledPin, HIGH);  
       delay(dah);  
       digitalWrite(ledPin, LOW);  
       delay(dit);   }  
     else {
       delay(7*dit);}  
    }
     delay(dah);
  }

Télécharger le code source morsetrainer.ino

Aperçu du code Morse

Malheureusement, le tableau ci - dessus est trié par ordre alphabétique et n'aide guère à détecter les symboles Morse.C'est donc là encore l'inverse de la table de Morse.Astuce: commencez par une lettre jusqu'à trois caractères.Surtout en été, vous vous souviendrez sûrement de l'e i s le plus rapide.Amusez - vous bien.

.

Électronique

. .

- moi.

. . .

S

. . . .

Heures

. . . -

V

. . -

Type U

. . - .

Niveau f

. . - -

Niveau D

. -

A

. - .

À droite.

. - . .

- moi.

. - . -

Électronique

. - -

Type W

. - - .

No.

. - - -

Japon

-

Type T

- .

- Non.

- . .

Niveau D

- . . .

Catégorie B

- . . -

Dix.

- . -

Société K

- . - .

Classe C

- . - -

C'est vrai.

- -

M

- - .

G

- - . .

Type W

- - . -

Demande.

- - -

O

- - - .

Électronique

- - - -

Heures

AmateurfunkFür arduinoProjekte für anfängerRaspberry pi

3 commentaires

Alexander essreiter

Alexander essreiter

Habe früher viel gemorst werde jetzt wieder damit beginnen etwas eingerostet durch die viele arbeit

Jacobo

Jacobo

Para hacer esa traducción automática tan mala, vale más dejar el texto entero en inglés.
Por lo demás, bien.
Saludos.

Hermann Eckel

Hermann Eckel

Den richtigen Morsetrainer gibt es mit dem Morserino32
das ist Public Domain Infos bei morserino32.info

Liebe Grüße
Hermann, OE2HEM / AB3DR

Laisser un commentaire

Tous les commentaires sont modérés avant d'être publiés

Articles de blog recommandés

  1. ESP32 jetzt über den Boardverwalter installieren - AZ-Delivery
  2. Internet-Radio mit dem ESP32 - UPDATE - AZ-Delivery
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1 - AZ-Delivery
  4. ESP32 - das Multitalent - AZ-Delivery