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.

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.

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:
200milisegundos o menos: añade un punto.abuff.- Más de
200milisegundos: añade una raya-abuff.

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.

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 | ----. |