Código Morse NXT

samuel_morse_telegraphHoy hemos querido utilizar uno de los sensores que menos aparece en los artículos, pero no por ello es menos importante: el sensor de sonido. Veremos cómo emplearlo para realizar código morse NXT.

Este sensor es capaz de medir intensidad sonora, ya sea valor directo (0-1024) o valor escalado (0-100). Esto nos puede permitir, por ejemplo, programar nuestros robots para avanzar cuando demos una palmada (valor de sonido más alto que el umbral) o tener un robot bailarín que se queje cuando bajamos la música (valor de sonido por debajo del valor umbral). En este caso utilizaremos el sensor para que nuestro NXT muestre en pantalla código morse en función del mensaje que estemos recibiendo.

Este experimento utiliza como base de comunicación el código morse. Este código permite representar todos los números y letras del alfabeto como secuencias de puntos y rayas.

Esta imagen es una representación del primer alfabeto morse internacional, en este primer alfabeto no existían signos de puntuación ni letras que no aparecieran en el alfabeto inglés (como la CH o la Ñ), que sí aparecerían más adelante, junto con signos de puntuación como: ?, . , ”

Intcode
Como se explica en la parte superior:

1. Una raya equivale a 3 puntos.
2. El espacio entre las partes de una misma letra es de 1 punto.
3. El espacio entre dos letras es de 3 puntos.
4. El espacio entre palabras es de 5 puntos.

Es decir, para hacer posible la comunicación se establece como unidad de medida la duración (en tiempo) de un punto, por lo que una raya equivale en duración a haber mandado 3 puntos, etc…

Aquí tenéis la tabla actual, extraída de Wikipedia, en este caso, se puede observar la inclusión de símbolos nuevos, tal y como comentábamos antes:

Signo Código Signo Código Signo Código
A · — N — · 0 — — — — —
B — · · · Ñ — — · — — 1 · — — — —
C — · — · O — — — 2 · · — — —
CH — — — — P · — — · 3 · · · — —
D — · · Q — — · — 4 · · · · —
E · R · — · 5 · · · · ·
F · · — · S · · · 6 — · · · ·
G — — · T 7 — — · · ·
H · · · · U · · — 8 — — — · ·
I · · V · · · — 9 — — — — ·
J · — — — W · — — . · — · — · —
K — · — X — · · — , — — · · — —
L · — · · Y — · — —  ? · · — — · ·
M — — Z — — · · · — · · — ·

 

Convenciones: — : raya (señal larga) · : punto (señal corta)
Sí se comete un error al transmitir el mensaje en morse, la señal «error» son ocho señales cortas (. . . . . . . .)

¿Para qué se utiliza?

samuel-morseSamuel Morse tardó 7 días en enterarse de la muerte de su esposa en 1832, debido a lo penoso de las comunicaciones a larga distancia en aquella época, tras este desgraciado hecho se decidió a inventar un dispositivo que agilizara ese tipo comunicaciones. El 6 de enero de 1833, Morse realizaría la primera demostración pública de su telégrafo.

Una vez presentado el invento, se concentró en la tarea de construir un telégrafo práctico y despertar el interés del público y del gobierno en el aparato para luego ponerlo en marcha. En 1835 apareció el primer modelo telegráfico que desarrolló Morse.

El funcionamiento del dispositivo es el siguiente:

Telegrafo
Cuando en la estación emisora se cierra el interruptor (manipulador) circula una corriente por el siguiente circuito: polo positivo, línea, electroimán, tierra, polo negativo, lo que tiene como consecuencia que, activado el electroiman atraída una pieza metálica terminada en un punzón que presiona una tira de papel, que se desplaza mediante unos rodillos de arrastre, movidos por un mecanismo de relojería, sobre un cilindro impregnado de tinta, de tal forma que, según la duración de la pulsación del interruptor, se traducirá en la impresión de un punto o una raya en la tira de papel. (Wikipedia)

Durante este tiempo, Morse desarrolla junto con el telégrafo un código de señales para facilitar la comunicación, dicho código se perfecciona durante 1838, y toma el nombre de Código Morse.

Intentó implantar líneas telegráficas primero en Estados Unidos y luego en Europa pero ambos intentos fracasaron. Por fin, Morse consiguió que el Congreso de su país aprobara un proyecto de ley para proporcionar 30.000 dólares designados a construir una línea telegráfica de 60 km. Varios meses después el proyecto fue aprobado, y la línea se extendería a lo largo de 37 millas entre Baltimore y Washington.

Ya hemos visto un poquito de historia, ahora… el experimento.

A forma de rudimentario telégrafo inalámbrico, donde la duración de los pulsos la marca el operador según las normas que veíamos más arriba, hemos construido dos robots, emisor y receptor, que se comunican mediante código morse.

El robot emisor cuenta con un sensor de contacto

Robot emisor

y un sencillo programa en el cual emitimos un sonido (una nota musical) mientras nos mantengan presionado el sensor.

Emisor
El receptor está equipado con un sensor de sonido (9845),

Robot receptor

con un programa algo más largo que le permitirá mostrar en pantalla puntos o rayas en función de la intensidad del sonido.

Receptor2

Nótese que miramos la intensidad del sonido y no su duración, de tal manera que a cada vuelta de bucle comprobaremos si hay o no sonido, pintando puntos cuando sí que haya.
De esta manera si recibimos sonido durante varias iteraciones de bucle pintaremos varios puntos juntos o, lo que es lo mismo, una raya.

Además hay una línea de control continua que nos permite comprobar que el programa está en marcha, aunque no esté recibiendo señal. Esta línea se pinta en X=Numérica, Y=0, donde Numérica es la varible que representa la posición de X en función del tiempo, se obtiene de dividir el valor del temporizador entre 100 .
Mientras que el mensaje se muestra en X=Numérica, Y=30.

Por último, indicar que, para evitar que la información se solape en pantalla, debemos borrar la pantalla cuando Numérica alcance el máximo que admite la pantalla de ancho, es decir 99.

Aquí tenéis un vídeo del funcionamiento

Esperamos que os haya gustado el artículo y os anime a experimentar con nuevos proyectos, además de buscar nuevas funcionalidades para nuestro set de robótica.

Comments are closed.