| |

Tuitea con código Morse

Por PJ Evans.

Cuando Samuel Morse creó su sistema de comunicación a mediados del siglo XIX, revolucionó la comunicación inalámbrica. La idea original era que unos simples pulsos electrónicos podían enviarse más lejos y de forma más fiable que la voz, así que se empleó el alfabeto Morse para representar cada letra y número como una combinación de pulsos cortos (puntos) y pulsos largos (rayas).

Aprender código Morse es un reto, pero puede resultar gratificante y muy divertido. Como introducción a esta forma clásica de comunicarse, vamos a construir un manipulador (llave) de código Morse que publica en Twitter. Aprenderemos a interpretar la entrada y también cómo crear proyectos más complejos dividiéndolos en pequeñas partes.

Descargar el PDF gratuito

Lo que necesitarás

Vamos a prepararnos

Primero, elige el modelo de Raspberry Pi adecuado para la tarea. Por supuesto, recomendamos de corazón una Raspberry Pi 4, pero en realidad este proyecto no exigirá demasiado ni siquiera a los modelos más antiguos, así que es ideal para reutilizar una Raspberry Pi vieja. De hecho, funcionará incluso con los Model A y B originales.

Empieza instalando la última versión de Raspbian. No necesitamos una interfaz gráfica de usuario, así que puedes usar Raspbian Lite si lo prefieres; lo que te resulte más cómodo. Haremos todo desde la línea de comandos.

Configurar y actualizar

Este proyecto tiene varios pasos, así que no te preocupes si solo quieres practicar código Morse: empezaremos por eso. Si quieres completar todo lo que hay aquí, necesitarás configurar una conexión a internet (inalámbrica o por cable) y habilitar I2C, que se usa para comunicarse con la pantalla LCD. Ejecutando sudo raspi-config desde la línea de comandos, puedes habilitar el WiFi en ‘Network Options’ e I2C en ‘Interfacing Options’.

Sea lo que sea que hayas decidido hacer, asegúrate siempre de haber actualizado el sistema ejecutando sudo apt update && sudo apt upgrade. Esto puede tardar un poco; una vez completado, es importante que reinicies para que I2C quede correctamente habilitado.

A conectar el interruptor

Intentemos emular la llave Morse usando un interruptor táctil. Estos interruptores, muy comunes y económicos, hacen un satisfactorio ‘clic’ al pulsarlos (de ahí su nombre). Tienen cuatro pines: dos pares que están conectados en el lado más largo, de modo que la conmutación se hace entre los que tienen la separación más corta. Teniendo esto en cuenta, coloca el interruptor en la protoboard de manera que el borde más largo siga las filas conectadas. No te preocupes si te equivocas: no se puede dañar nada. Ahora conecta la protoboard al GPIO de tu Raspberry Pi. Lleva cables jumper desde cada lado del interruptor a los dos últimos pines del extremo (los más cercanos a los puertos USB) del conector GPIO: GND y GPIO 21.

Hora de programar

Una vez comprobadas todas las conexiones, descarga el código morse.py desde GitHub. El código estará atento a los cambios en el ‘estado’ del botón (si está pulsado o no) y medirá las diferencias de tiempo para determinar si has hecho un ‘punto’ o una ‘raya’. Después convertirá el patrón en una letra y la mostrará en la pantalla.

Primero, instala estas dependencias (librerías que nos ayudan):

sudo apt install python3-pip
pip3 install gpiozero

Luego ejecuta python3 morse.py.

Practica puntos y rayas

Con la tabla de abajo (Figura 1), a ver si puedes deletrear tu nombre pulsando el botón. Usa una pulsación rápida para un ‘punto’ y una pulsación un poco más larga para una ‘raya’. Deja el botón sin tocar un tiempo algo más largo para indicarle al código que has terminado la letra. Cuando estés conforme con que todo funciona y te hayas divertido un rato, CTRL+C detendrá el programa.

Si no estás conforme con los tiempos, puedes ajustarlos a tu ‘puño’ (el nombre que los operadores dan a su estilo de manipulación). Puedes ajustar los tiempos de un punto, una raya y el intervalo entre letras cambiando los tiempos en las variables dot_timeout y dash_timeout al inicio del código. No tengas miedo de experimentar.

Figure 1: The Morse code alphabet. Although it appears random, there is an underlying structure that helps you understand and memorise the patterns

Monta la LCD

Para poder crear código Morse sin necesidad de una pantalla completa, hemos elegido una pantalla LCD de Adafruit, brillante, nítida y con un aire un poco retro. Estos populares paneles normalmente requieren muchos pines GPIO para controlarse de forma nativa, pero este HAT usa un expansor de entradas de modo que solo se necesitan dos pines. Y lo mejor: viene con cinco interruptores táctiles a bordo, así que podemos usarlos para la entrada.

Este kit de LCD llega sin ensamblar, así que es hora de sacar el cautín. Hay unas excelentes instrucciones de montaje. Como siempre, léelas por completo antes de hacer nada y tómate tu tiempo.

Configura la pantalla

Una vez ensamblada la pantalla, puedes conectarla a tu Raspberry Pi (¡asegúrate de que esté apagada!). Debido a la proximidad de algunas resistencias, cubre con cinta aislante la parte superior de los puertos USB y del puerto Ethernet si quedan cerca del PCB de la pantalla.

Comprueba que la pantalla funciona instalando sus librerías de Python:

sudo pip3 install adafruit-circuitpython-charlcd

Ahora crea un nuevo archivo llamado lcd.py e introduce el código del listado que aparece aquí. Guárdalo y ejecútalo con python3 lcd.py. La pantalla debería mostrar tu mensaje. Si se enciende pero no ves nada, ajusta el potenciómetro de ‘Contraste’ hasta que aparezca el texto.

Versión 2

Es momento de una versión más avanzada de nuestro código original, así que descarga lcd_morse.py desde GitHub. Esta vez estamos leyendo la entrada desde las teclas táctiles integradas de la LCD, así que el código tiene que ser un poco diferente. Las variables de medición de tiempo siguen ahí. Ejecútalo con python3 lcd_morse.py.

Deberías poder manipular y ver aparecer en pantalla las letras interpretadas. Ahora tienes un entrenador de código Morse autónomo y funcional.

Vamos a tuitear

Nos gustaría poder enviar nuestros mensajes a Twitter. Por razones de seguridad, necesitamos crear una ‘aplicación’ de Twitter que le dé al código credenciales únicas para publicar en nuestro nombre. Estamos usando la librería python-twitter; consulta la documentación para ver un excelente tutorial sobre cómo configurarla. Se te entregarán cuatro cadenas: una consumer key, un consumer secret, un access token y un access token secret. Introduce todos los valores en las variables equivalentes de las primeras líneas de lcd_morse_twitter.py (descarga el código desde GitHub). Ahora guarda el archivo.

¡Tuitea con Morse!

Ejecuta python3 lcd_morse_twitter.py. Como antes, puedes construir tu mensaje pulsando el botón de cursor derecho de la pantalla LCD. Tu mensaje se mostrará en la parte superior, y los puntos y rayas actuales en el ‘búfer’ en la parte inferior. ¿Te equivocaste? No hay problema: pulsa el cursor izquierdo para borrar el carácter anterior o la tecla ‘arriba’ para borrar todo el mensaje y empezar de nuevo. Cuando estés conforme, pulsa ‘Select’ para enviar. Tu mensaje se publicará en tu cuenta para que todo Twitter lo lea.

Agrega una llave Morse

Subamos un nivel la autenticidad agregando una llave Morse real. Estas llaves no son más que un simple interruptor de encendido/apagado. Dicho esto, algunas pueden ser sorprendentemente caras, ya que se fabrican con componentes de precisión para permitirle al operador ir cada vez más rápido con menos errores. Hemos elegido una llave de práctica más económica que tiene dos contactos que se pueden conectar directamente. Para usar el código existente, suelda dos cables por debajo del interruptor táctil que está más a la derecha en la placa LCD y conéctalos a la llave mediante sus bornes de tornillo. ¡Ahora puedes manipular usando el aparato de verdad!

Si no te apetece el gasto de comprar una llave Morse, ¡puedes hacer la tuya! Échale un vistazo a: magpi.cc/diymorsekey

Yendo más allá

Ahora que tienes lo básico como código Python, puedes reutilizar tu llave Morse tuitera para cualquier cosa que imagines. Agrega una segunda llave y crea juegos de desafío de código Morse. ¿Qué tal un ahorcado en código Morse? Agrega cronometraje para ver cuántas letras por minuto puedes manipular. ¿Podrían dos montajes idénticos enviarse mensajes entre sí?

Aunque al principio es un reto, aprender código Morse es gratificante y puede inspirar a los operadores a adentrarse en el rico y fascinante mundo de la radioafición. El turno es tuyo.


PJ Evans

PJ es escritor, programador y organizador del Raspberry Jam de Milton Keynes. En la época de la conexión por módem creaba páginas para Prestel, lo que delata bastante su edad.

Artículo traducido al español. Fuente original: The MagPi, número 94 (por PJ Evans)

Similar Posts

Deja un comentario