Alfabeto Morse.

 

 

ALFABETO MORSE.

Fue desarrollado por Alfred Vail mientras colaboraba en 1830 con Samuel Morse en la invención del telégrafo eléctrico. Vail creó un método según el cual cada letra o número era transmitido de forma individual con un código consistente en rayas y puntos, es decir, señales telegráficas que se diferencian en el tiempo de duración de la señal activa.

El alfabeto Morse más popularmente conocido como código Morse, es un sistema de representación de letras y números mediante señales emitidas de acuerdo a unas reglas preestablecidas. Estas señales consisten en una serie de pitidos, cortos (dot) y largos (dash). Un dot es un pitido corto, mientras que un dash es un pitido largo (tres veces más largo), algunos usan otros términos como did y dad, respectivamente. Cada letra está separada por una pausa corta y una palabra está separada por una pausa más larga (tres veces más larga).

codigo_mosrsemorse_tabla_signos

 Este es el aspecto de lo que es un sencillo manipulador Morse, por supuesto que existe una gran variedad de ellos, aunque el fin primordial es cortar o conectar un circuito señalizador.

more_manipuladores

Al parecer de mucha gente, el código Morse le es difícil de aprender de modo que, para facilitar su aprendizaje, se han ideado distintas reglas mnemotécnicas, las cuales permiten memorizarlo mediante un sencillo sistema, consistente en asignar a cada letra, una palabra determinada, que comienza con la letra que se quiere recordar. Luego basta con recordar la palabra de la letra correspondiente y obtener el código que le corresponde. El siguiente es el circuito es el que utilizaremos para el transmisor.

2015-01-29_morse

Regla: la palabra elegida para una letra, tiene la peculiaridad de empezar por la propia letra y también tiene tantas silabas como puntos y rayas tenga el código de dicha letra, además, la palabra responde a la combinación de silabas de una o dos letras para designar un punto y silabas de tres o más letras para designar las rayas. Luego, se ha de sustituir cada silaba de la palabra clave por un punto o una raya según la regla establecida anteriormente.

Así por ejemplo: el código de la letra a esta compuesto por un punto y una raya (·-), según esta regla, la palabra elegida es amor. Vemos que se cumple la regla de las silabas a (·) mor (-). Del mismo modo ocurre con la letra n, vemos: que le corresponde (-·), aplicando la regla, la palabra elegida es norte, y de nuevo se cumple la regla de las silabas nor (-) te (·).

Siguiendo este criterio, se han elegido las palabras que se pueden ver en la tabla de abajo. Si usted tiene interés en aprender el código Morse, este sistema le ayudará a memorizar fácilmente el alfabeto en código Morse.

REGLA MNEMOTÉCNICA.

Siguiendo este razonamiento, podemos agrupar letras bajo un criterio, por ejemplo, agrupar pares de letras con las mismas silabas, como puede ser:

      A		    |	 N 
     ·-	 <> a-mor   | 	-·  <>  nor-te
      	 
      E		    |	 T
      ·	<>  ep	    | 	-  <>  tos	    
     		   		 
      I		    | 	M
     ··	<> is-la    | 	-- <>  mar-mol

Entre otras posibles combinaciones que puede acomodar para su aprendizaje, el propio usuario.

El siguiente sería el código completo de letras y sus palabras mnemotécnicas asociadas para facilitar su aprendizaje al interesado en estas técnicas. Se trata de recordar el nombre asociado a cada letra.

tabla_silabasFig.5

Puesto que hemos descrito como es el código Morse y una forma sencilla de aprenderlo, cabía esperar que puestos en el tema, pensara que se podría completar este artículo añadiendo un código que nos permita hacer practicas con el código Morse, de modo que podamos enviar un texto con un módulo y con otro módulo recibir y descifrar el contenido del mensaje.

Pensando en este proyecto he aquí un pequeño código libre que he visto por la red y de ese modo usted podrá realizar algunas prácticas que reafirmarán sus conocimientos del código Morse, mientras preparo el código que he comentado. Este es el código:

/* LED morse code
*
* ------------
*
* LED conectado a un pin digital parpadea.
* Pin 13 de la placa Arduino se utiliza porque
* que tiene una resistencia unida a él, necesitando sólo un LED
*
* Código de la red
*/int ledPin = 13; // digital pin 13
void setup()
{
 pinMode(ledPin, OUTPUT); // sets pin 13 as output
}

void loop()
{
 // V
 digitalWrite(ledPin, HIGH); // dot
 delay(200);
 digitalWrite(ledPin, LOW);
 delay(100);
 digitalWrite(ledPin, HIGH); // dot
 delay(200);
 digitalWrite(ledPin, LOW);
 delay(100);
 igitalWrite(ledPin, HIGH); // dot
 delay(200);
 digitalWrite(ledPin, LOW);
 delay(100);
 digitalWrite(ledPin, HIGH); // dash
 delay(600);
 digitalWrite(ledPin, LOW);
 delay(800);

 // you get the picture!
 delay(3000); // wait 3sec before repeat
}

 El anterior ejercicio en sí no tiene gran interés, se limita a presentar un mensaje supeditado al momento de crear el propio código, motivo por el cual queda invalidado. Lo ideal sería un código que permita comunicar el monitor serial para interactuar con Arduino u otro dispositivo actual para intercambiar información. Luego ya vendrían los códigos especiales para transmitir datos o información delicada entre interlocutores.

El siguiente programa está un poco mas elaborado, permitiendo introducir un texto con el teclado del computador mediante (COM) y el monitor serial de Arduino.

/*
*    clavemorse.pde
* 
* El circuito de prueba es muy sencillo, consta de un buzzer
* conectado al pin 13 que como se sabe tiene puesta una 
* resistencia para controlar el consumo del pin. El buzzer permite
* oir el sonido de los dot y dash que genere el mensaje que insertemos 
* por el monitor serial, para obtener una señal óptica podemos conectar 
* un LED en el mismo pin 13, sin embargo, sería conveniente utilizar un 
* transistor en la salida para disponer de mayor potencia.
* Este código básicamente lo que hace es recibir caracteres por el 
* puerto COM y los reproduce (luz, sonido o luz + sonido)
* 
* Basado en un código de Adán Silva
* 
* Modificado por V. Garcia el 2015.01.29 IDE ver. 0023 6774 bytes
*/

#include <LiquidCrystal.h>
//  LiquidCrystal(rs, enable, d4, d5, d6, d7)
LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // es mi config.

unsigned short int punto = 70; // Duracion del punto
unsigned short int raya = punto * 4; // Duracion de la raya
unsigned short int negro = punto * 3; // Duracion del apagado entre rayas y puntos
unsigned short int letrayletra = punto * 5; // Duracion del apagado entre letras

void playTone(int tone, int duration, int speakerPin) {
 // enviamos la señal al buzzer. // Sends the signal to the   speakerPin
 for (long i = 0; i < duration * 1000L; i += tone * 2) {
  digitalWrite(speakerPin, HIGH);
  delayMicroseconds(tone);
  digitalWrite(speakerPin, LOW);
  delayMicroseconds(tone);
 }
}

void playToneLed(int tone, int duration, int speakerPin, int ledPin) {
 // enviamos la señal al LED y buzzer. Sends the signal to speakerPin and ledPin
 for (long i = 0; i < duration * 1000L; i += tone * 2) {
  digitalWrite(speakerPin, HIGH);
  digitalWrite(ledPin, HIGH);
  delayMicroseconds(tone);
  digitalWrite(speakerPin, LOW);
  digitalWrite(ledPin, LOW);
  delayMicroseconds(tone);
 }
}

// ########## CLASE LETRA #########
class letra {
  private:
  char caracter;
  char* codigo;
  int ledPin;
 public:
  letra (char car, char* cad, unsigned short int pin);
  void set (char car, char* cad, unsigned short int pin);
  void mostrar ();
  void sonar ();
  void mostrarYsonar ();
};

letra::letra (char car, char* cad, unsigned short int pin) {
 // Constructor
  caracter = car;
  codigo = cad;
  ledPin = pin;
  pinMode(ledPin, OUTPUT);
}

void letra::set (char car, char* cad, unsigned short int pin) {
 // Setter
 caracter = car;
 codigo = cad;
 ledPin = pin;
}

void letra::mostrar () {
  // Shows the code in in the ledPin
  unsigned short int j = 0;
  while (codigo[j] != 0) {
   if (codigo[j] == '.') {
     digitalWrite (ledPin, HIGH);
     lcd.setCursor(1,2);
     lcd.print(codigo[j]);	
     delay (punto);
     digitalWrite (ledPin, LOW);
     delay (negro);
   } else if (codigo[j] == '-') {
    digitalWrite (ledPin, HIGH);
    lcd.setCursor(2,2);
    lcd.print(codigo[j]);
    delay (raya);
    digitalWrite (ledPin, LOW);
    delay (negro);
   }
    j++;
  }
  delay (letrayletra);
}

void letra::sonar () {
  // Sounds the code on the speakerPin
  unsigned short int j = 0;
  while (codigo[j] != 0) {
   if (codigo[j] == '.') {
     playTone (440, 100, 9);
     delay (negro/3);
    } else if (codigo[j] == '-') {
      playTone (440, 100 * 4, 9);
      delay (negro/3);
    }
    j++;
  }
  delay (letrayletra);
}

void letra::mostrarYsonar () {
  // Sounds and shows the code (ledPin + speakerPin)
  unsigned short int j = 0;
  while (codigo[j] != 0) {
   if (codigo[j] == '.') {
    playToneLed (440, 100, 9, ledPin);
    delay (negro/4);
   } else if (codigo[j] == '-') {
    playToneLed (440, 100 * 4, 9, ledPin);
    delay (negro/4);
   }
    j++;
  }
  delay (letrayletra/2);
}
// ##############################

void setup() {
  Serial.begin(9600);
  pinMode(9, OUTPUT);
  lcd.begin(20, 4);
  lcd.clear(); //aclara el LCD
  lcd.setCursor(3,0); lcd.print("Hispavila.com");  lcd.setCursor(0,1);
  lcd.print("Presiona un boton"); 
}

int letraIN = 0;
unsigned short int ledPin = 13;

void loop() {
  digitalWrite(ledPin, LOW);
  lcd.setCursor(2,2);lcd.print(" ");
  letraIN = 0;
  letraIN = Serial.read();
  letra let (0, "", ledPin);
  switch (letraIN) {
   case 'a': let.set ('a', ".-", ledPin); lcd.setCursor(2,2);   lcd.print("a .- "); break;
   case 'b': let.set ('b', "-...", ledPin); lcd.setCursor(2,2); lcd.print("b -... "); break;
   case 'c': let.set ('c', "-.-.", ledPin); lcd.setCursor(2,2); lcd.print("c -.-. "); break;
   case 'd': let.set ('d', "-..", ledPin); lcd.setCursor(2,2); lcd.print("d -.. "); break;
   case 'e': let.set ('e', ".", ledPin); lcd.setCursor(2,2); lcd.print("e . "); break;
   case 'f': let.set ('f', "..-.", ledPin); lcd.setCursor(2,2); lcd.print("f ..-. "); break;
   case 'g': let.set ('g', "--.", ledPin); lcd.setCursor(2,2); lcd.print("g --. "); break;
   case 'h': let.set ('h', "....", ledPin); lcd.setCursor(2,2); lcd.print("h .... "); break;
   case 'i': let.set ('i', "..", ledPin); lcd.setCursor(2,2); lcd.print("i .. "); break;
   case 'j': let.set ('j', ".---", ledPin); lcd.setCursor(2,2); lcd.print("j .--- "); break;
   case 'k': let.set ('k', "-.-", ledPin); lcd.setCursor(2,2); lcd.print("k -.- "); break;
   case 'l': let.set ('l', ".-..", ledPin); lcd.setCursor(2,2); lcd.print("l .-.. "); break;
   case 'm': let.set ('m', "--", ledPin); lcd.setCursor(2,2); lcd.print("m -- "); break;
   case 'n': let.set ('n', "-.", ledPin); lcd.setCursor(2,2); lcd.print("n -. "); break;
   case 'o': let.set ('o', "---", ledPin); lcd.setCursor(2,2); lcd.print("o --- "); break;
   case 'p': let.set ('p', ".--.", ledPin); lcd.setCursor(2,2); lcd.print("p .--. "); break;
   case 'q': let.set ('q', "--.-", ledPin); lcd.setCursor(2,2); lcd.print("q --.- "); break;
   case 'r': let.set ('r', ".-.", ledPin); lcd.setCursor(2,2); lcd.print("r .-. "); break;
   case 's': let.set ('s', "...", ledPin); lcd.setCursor(2,2); lcd.print("s ... "); break; 
   case 't': let.set ('t', "-", ledPin); lcd.setCursor(2,2); lcd.print("t - "); break;
   case 'u': let.set ('u', "..-", ledPin); lcd.setCursor(2,2); lcd.print("u ..- "); break;
   case 'v': let.set ('v', "...-", ledPin); lcd.setCursor(2,2); lcd.print("v ...- "); break;
   case 'w': let.set ('w', ".--", ledPin); lcd.setCursor(2,2); lcd.print("w .-- "); break;
   case 'x': let.set ('x', "-..-", ledPin); lcd.setCursor(2,2); lcd.print("x -..- "); break;
   case 'y': let.set ('y', "-.--", ledPin); lcd.setCursor(2,2); lcd.print("y -.-- "); break;
   case 'z': let.set ('z', "--..", ledPin); lcd.setCursor(2,2); lcd.print("z --.. "); break;
   case '0': let.set ('0', "-----", ledPin); lcd.setCursor(2,2);  lcd.print("0 ----- "); break;
   case '1': let.set ('1', ".----", ledPin); lcd.setCursor(2,2); lcd.print("1 .---- "); break;
   case '2': let.set ('2', "..---", ledPin); lcd.setCursor(2,2); lcd.print("2 ..--- "); break;
   case '3': let.set ('3', "...--", ledPin); lcd.setCursor(2,2); lcd.print("3 ...-- "); break;
   case '4': let.set ('4', "....-", ledPin); lcd.setCursor(2,2); lcd.print("4 ....- "); break;
   case '5': let.set ('5', ".....", ledPin); lcd.setCursor(2,2); lcd.print("5 ..... "); break;
   case '6': let.set ('6', "-....", ledPin); lcd.setCursor(2,2); lcd.print("6 -.... "); break;
   case '7': let.set ('7', "--...", ledPin); lcd.setCursor(2,2); lcd.print("7 --... "); break;
   case '8': let.set ('8', "---..", ledPin); lcd.setCursor(2,2); lcd.print("8 ---.. "); break;
   case '9': let.set ('9', "----.", ledPin); lcd.setCursor(2,2); lcd.print("9 ----. "); break;
   case '.': let.set ('.', ".-.-.-", ledPin); lcd.setCursor(2,2); lcd.print(". .-.-.- "); break;
   case ',': let.set (',', "--..--", ledPin); lcd.setCursor(2,2); lcd.print(", --..-- "); break;
   case '?': let.set ('?', "..--..", ledPin); lcd.setCursor(2,2); lcd.print("? ..--.. "); break;
   case '"': let.set ('"', ".-..-.", ledPin); lcd.setCursor(2,2); lcd.print("'' .-..-. "); break;
  }
   let.mostrarYsonar();
}

Una vez más, copie y pegue este código en su editor preferido guárdelo con un nombre y cárguelo en su Arduino, para comprobar su efectividad.

A colación con las nuevas tecnologías, viene siendo demasiado habitual que los usuarios de los dispositivos de comunicación en detrimento de la lengua de uso común, por falta de espacio/tiempo vienen deteriorando el preciado lenguaje, puestos a utilizar vocablos o si me apuran letras sueltas, porque no utilizar un viejo y casi olvidado código Q. Se trata de un código muy elaborado y largamente utilizado en el siglo pasado.

Una posibilidad que completaría este sistema de transmitir mensajes en la actualidad, podría consistir en la construcción de un receptor de las señales y presentar en una pantalla el mensaje, lo que posiblemente tuviera una mayor acogida entre los usuarios.

EL CÓDIGO Q.

El código Q consiste en un código de tres letras que fue creado por los británicos sobre el 1909, y adoptado rápidamente como una lista abreviada para su uso por los barcos y estaciones costeras británicas. Este código Q fue adoptado por muchas comunidades debido a que facilitaba las comunicaciones, ya que permitía y sigue permitiendo la comprensión entre operadores de distintas nacionalidades que halan distintas lenguas.

En aquellos tiempos por distintas circunstancias, se utilizaba el código Morse por los radiotelegrafistas para transmitir con tres letras prácticamente  todo un mensaje. Posteriormente, fue empleado por la radiotelefonía al igual que los radio aficionados. En la actualidad se podría utilizar con los teléfonos móviles o celulares (en lugar de romper el idioma), reduciendo de esa forma mucho la longitud de las oraciones con el uso del mencionado código Q.

10 comentarios sobre «Alfabeto Morse.»

    1. La regla siempre ha sido sílabas con a, e, i, u = punto y sílabas con o = raya
      Creo que el que escribió el artículo no entendió, según el ejemplo de esta pag no hay cómo saber que sílaba es punto o cuál es raya. No tiene sentido.

      1. Estimada Katalina.
        Viendo tu comentario, he considerado que no estuve acertado en el planteamiento del jugo respecto del código, y es por este motivo que he re-hecho el contenido sólo dando «negrita» a ciertas letras o palabras como reafirmando lo que quiero describir y dejar claro.

        Tal vez no sea esta la forma ideal para describirlo y tal vez como dices siempre se ha considerado lo de a, e, i, u, para designar puntos y la o para las rayas. Lo cierto es (desde mi punto de vista) que cualquier sistema mnemónico es valido.

        En el caso que yo describo en este artículo, consiste en recordar el nombre de la palabra asociada a la letra. Míralo de es esta forma; al transmitir una frase como:
        codigomorse

        Frente al sistema que tu comentas. De todas formas, repito, se trata de facilitar un método fácil de recordar. Por cierto, este sistema pertenece al curso de Radio Maymó de los años 60. Hay mucha gente que lo ha estado usando sobre todo en la vieja URE.

  1. El sistema morse ….fue y sera el mejor…pero no todos los seres humanos
    tienen ese oido y dedos que permite esa comunicacion….y estos son los telegrafistas

  2. Hola Felisa Pineda Castellanos
    Es cierto pero solo en parte, el oído como la habilidad son cosas que se adquieren con la práctica, te lo aseguro, es como la memoria, es algo que se ha de practicar al igual que la musculatura con ejercicio se puede conseguir. Y para eso sólo se necesita voluntad y constancia.
    De todas formas gracias por tus comentarios.

  3. no entiendo, creo yo que no tendría sentido denominar a todas las vocales como ( . ) y solo la vocal antepenúltima «O» como
    ( = ),¿cómo se distingue una E de una A?, recién estoy aprendiendo esto, y tengo dudas, muchas dudas. Como una letra puede tener tanto símbolos, ya que si quieres comunicarte a través de este «Idioma» o esta forma de comunicación, tendrías que, bueno en el caso que uso yo, haciendo golpes, tengo que hacer muchos golpes tan solo para formar una palabra lo veo muy largo, no creen que habra una forma más simplificada de poder hablar o comunicar? digamos, una oración larga que quiero comunicar tengo que hacer tantos golpes y se pierden.

    1. Hola AZEMAIXEM .
      Sin duda que estás «recién estoy aprendiendo esto, y tengo dudas, muchas dudas», mi consejo y no estoy acostumbrado a dar consejos ni estoy por la labor. Pero, como una muestra de esto, te diré que si lees con un poco más de atención y tratas de entender lo que se describe, pronto llegarás a la conclusión de que no siendo lo ideal a la hora de comunicarse, este es un método (por otra parte muy experimentado) bastante coherente sencillo y eficaz para transmitir información entre dos puntos de forma sencilla y como digo, eficaz.
      Este método lleva unos 190 años de existencia y se ha utilizado en cantidad de ocasiones por lo sencillo que resulta su uso y lo básico de su sistema para entablar una información esclarecedora de un hecho que ocurre en un lugar sin medios para transmitir una información sucinta.
      Por lo tanto, relee el artículo y piensa, igual encuentras un nuevo método más sencillo y eficaz para utilizar, está en ello un premio que llaman NOBEL.
      Saludos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.