Construye una máquina de código Morse con CoCube

Antes de que existieran el teléfono e Internet, las personas utilizaban el código Morse para enviar mensajes. Este sistema solo emplea dos señales: una señal corta llamada punto y una señal larga llamada raya. Cada combinación de puntos y rayas representa una letra diferente.

En esta actividad convertiremos CoCube en una máquina de código Morse. Pulsa brevemente el botón A para introducir un punto o mantenlo pulsado para introducir una raya. Cuando termines una letra, espera un momento y CoCube mostrará la letra correspondiente.

Programa en línea: Abrir en MicroBlocks

Archivo del programa: Morse_code.ubp

1. Demostración

En el vídeo se introducen C, U, B y E para formar la palabra CUBE.

2. Conocer el código Morse

El código Morse utiliza dos señales básicas:

  • Punto .: una señal corta.
  • Raya -: una señal larga.

Por ejemplo, A es .-, B es -... y C es -.-..

Letra Código Letra Código Letra Código
A .- J .--- S ...
B -... K -.- T -
C -.-. L .-.. U ..-
D -.. M -- V ...-
E . N -. W .--
F ..-. O --- X -..-
G --. P .--. Y -.--
H .... Q --.- Z --..
I .. R .-.

Puedes utilizar la imagen siguiente para memorizar rápidamente el código Morse de cada letra y número.

Tabla para memorizar el código Morse

CoCube distingue los puntos y las rayas midiendo cuánto tiempo se mantiene pulsado el botón A:

Botón pulsado durante 200 ms o menos  -> punto
Botón pulsado durante más de 200 ms   -> raya
Botón suelto durante 1000 ms           -> letra terminada

3. Crear el programa

El programa contiene tres scripts: preparar la tabla de códigos, leer el botón y mostrar la letra descifrada.

3.1 Preparar la tabla de códigos

Crea tres variables:

  • buff: guarda los puntos y rayas introducidos.
  • codes: guarda los códigos Morse de A a Z.
  • letters: guarda las letras de A a Z.

Preparar la tabla de código Morse

Los elementos de codes y letters se corresponden por su posición. Por ejemplo, .- ocupa la posición 1 en codes y A ocupa la posición 1 en letters.

3.2 Introducir puntos y rayas

Al pulsar el botón A, el programa reinicia el temporizador y reproduce un sonido. Cuando se suelta el botón, comprueba la duración de la pulsación:

  • 200 milisegundos o menos: añade un punto . a buff.
  • Más de 200 milisegundos: añade una raya - a buff.

Introducir puntos y rayas

El temporizador vuelve a reiniciarse para medir la pausa después de soltar el botón.

3.3 Buscar y mostrar la letra

Cuando el botón lleva suelto más de 1000 milisegundos y buff no está vacío, el programa considera que la letra está terminada.

El programa busca buff en codes. Si lo encuentra, muestra la letra situada en la misma posición de letters. Si no lo encuentra, CoCube muestra ?. Finalmente, borra buff para poder introducir la siguiente letra.

Descifrar y mostrar la letra

Por ejemplo, -.-. ocupa la posición 3 en codes, así que el programa muestra el tercer carácter de letters: C.

4. Probar el programa

Empieza con algunas letras sencillas:

Letra Entrada
E Pulsación corta
T Pulsación larga
A Corta, larga
N Larga, corta
U Corta, corta, larga

Si las pulsaciones cortas resultan difíciles, cambia el límite entre punto y raya de 200 milisegundos a 250 o 300 milisegundos.

5. Reto de programación: añadir números

El programa actual solo reconoce las letras de A a Z. ¿Puedes utilizar la tabla siguiente para enseñar a CoCube a reconocer los números del 0 al 9?

Número Código Morse Número Código Morse
0 ----- 5 .....
1 .---- 6 -....
2 ..--- 7 --...
3 ...-- 8 ---..
4 ....- 9 ----.
CC-BY-SA

© por CoCube 2024-2026.
Many thanks to Professor José Manuel Ruiz Gutiérrez for helping with the translation!
Este trabajo tiene una licencia CC-BY-SA 4.0.