Skip to main content

Morse Code Translator

Interactive Text-to-Morse Translator with Multi-Sensory Feedback

info

Author: Nițu-Săraru Ramona-Gabriela
GitHub Project Link: https://github.com/UPB-FILS-MA/project-GabrielaNitu

Description

This project aims to seamlessly translate text input received from the server through Wi-Fi into Morse code, providing both visual and auditory feedback in real-time. Through the integration of an LCD screen, users can visually observe the Morse code representation of their text. Meanwhile, a buzzer emits distinct sounds for each Morse code symbol, allowing users to hear the translation simultaneously. Additionally, the RGB LED serves to provide visual feedback and indicate the status of the Morse code translation process, contributing to a more interactive and informative user experience.

Motivation

I chose this project because of its relevance in various emergency aspects, such as search and rescue operations and communication in remote areas. Morse code remains a fundamental skill in these contexts, offering a reliable means of communication when other methods may be unavailable. Additionally, undertaking this project provides a valuable opportunity for personal learning and skill development. Mastering Morse code not only equips me with practical skills for emergency situations but also deepens my understanding of communication systems and encoding methods.

Architecture

  1. Text Input Provided to the System: The user enters text input on a server, which is then transmitted through a Wi-Fi connection to the system. The input text is then passed to the Morse Code Translator for conversion.
  2. Morse Code Translator Converts Text into Morse Code Symbols: The Morse code translator receives the input text. It processes the text character by character, converting each character into its corresponding Morse code symbol. Special characters and spaces are also translated into their respective Morse code equivalents.
  3. Raspberry Pi Pico Controls the LCD Display, Buzzer, and RGB LED: The Raspberry Pi Pico receives the translated Morse code symbols from the Morse code translator. It controls the operation of the connected hardware components: -The Raspberry Pi Pico sends commands to the LCD display to update its content with the translated Morse code symbols. -Depending on the Morse code symbol being transmitted, the Raspberry Pi Pico activates the buzzer to emit corresponding sound signals. -The Raspberry Pi Pico sends signals to the RGB LED to change colors based on the Morse code symbols being transmitted, providing visual feedback. LCD Display Visually Represents the Morse Code Symbols:
  4. The LCD display receives commands from the Raspberry Pi Pico to update its content. It visually represents the Morse code symbols in real-time, displaying them character by character as they are transmitted.
  5. Buzzer Emits Sound Signals Corresponding to Each Morse Code Symbol: The buzzer receives signals from the Raspberry Pi Pico to emit sound signals. Depending on the Morse code symbol being transmitted, the buzzer generates corresponding audio tones, providing auditory feedback.
  6. RGB LED Changes Colors to Provide Visual Feedback: The RGB LED receives signals from the Raspberry Pi Pico to change colors. It dynamically changes colors based on the Morse code symbols being transmitted, offering visual feedback for the translation process.

architecture

Log

Week 6 - 12 May

I temporarily assembled the hardware components on a breadboard for testing. I began by testing the code for each component individually to ensure they worked as expected. This step-by-step approach allowed me to troubleshoot and verify the functionality of each part before integrating them into the complete system.

Week 7 - 19 May

I've successfully assembled all the components and created the KiCad schematics, ensuring to modify certain components to match the actual parts that I have.

Week 20 - 26 May

I completely finished the software part of the project and added all the final details. Now, the Morse Code Translator is ready!

Hardware

Raspberry Pi Pico WH (Wireless+Headers) - This is the main microcontroller board for the project. It will handle the processing tasks, transmission via Wi-Fi, GPIO interfacing, and control of peripherals.

Buzzer - An audio output device. It can produce sound signals corresponding to Morse code symbols when activated by the microcontroller.

LCD 1602 with I2C interface - This is an LCD display module with a 16x2 character display. It will be used to visually display the translated Morse code text.

Breadboard Kit (830 points) + Jumper Wires + Power Supply - The breadboard provides a platform for prototyping and connecting various components without soldering. Jumper wires will be used to make connections between components. The power supply ensures stable power for the circuit.

RGB LED (Common Cathode) + 220Ω Resistors - The RGB LED can emit different colors by combining the light emitted from its red, green, and blue components. It will be used for visual feedback and status indication. The resistors are used to limit the current flowing through the LED to prevent damage.

USB Cable - Used to power the Raspberry Pi Pico and for communication with the laptop.

Hardware1 Hardware2 Hardware3 Hardware4

Schematics

KiCad_Schematics

-RGB LED: The common cathode of the RGB LED is connected to GND (pin 33). The red cathode is connected to GP1 (pin 2) through a resistor. The green cathode is connected to GP2 (pin 4) through a resistor. The blue cathode is connected to GP4 (pin 6) through a resistor.

-Buzzer: The positive terminal of the buzzer is connected to GP7 (pin 10) of the Raspberry Pi Pico. The negative terminal of the buzzer is connected to GND (pin 3).

-LCD 1602 + I2C Module: The SCL (Serial Clock) of the I2C module is connected to GP21 (pin 27) of the Raspberry Pi Pico. The SDA (Serial Data) of the I2C module is connected to GP20 (pin 26) of the Raspberry Pi Pico. The VCC of the I2C module is connected to VBUS (pin 40) for power. The GND of the I2C module is connected to GND (pin 38).

Bill of Materials

DeviceUsagePrice
Rapspberry Pi Pico WHThe microcontroller56 RON
KIT Breadboard830 + jumper wiresMain board + connectors25 RON
LCD 1602 with I2C interface and blue backlightDisplay16 RON
Active BuzzerAudio output device2 RON
RGB LED with Common CathodeRGB LED3 RON
220Ω ResistorsResistors to limit the current flowing through the LED4 RON
Micro USBUSB used to power the Raspberry Pi Pico3 RON
"Mother-father" jumpersUsed to connect the LCD to Raspberry Pi Pico4 RON

Software

LibraryDescriptionUsage
embassy-rpPeripheral access libraryUsed for initializing the peripherals
embassy-gpioGPIO managementControls GPIO pins for devices and inputs
embassy-halHardware Abstraction LayerInterfaces with Raspberry Pi Pico W hardware
embassy-executorAsynchronous executor for Rust embedded systemsUsed for task scheduling and asynchronous programming
embassy_timeFor time-related functionalitySchedule tasks to run at specific times
embassy-netNetwork stackManages network connections and tasks, such as DHCP and UDP communications
pwmPulse-width modulationUsed for controlling the buzzer's sound intensity
cyw43Wi-Fi driverManages Wi-Fi connections and communication with the CYW43 Wi-Fi chip
ag_lcdLCD display handlingProvides functionality to interface with and control an LCD display via I2C
heaplessData structures for embedded systemsProvides 'Vec' and 'String' types that do not rely on the standard library, suitable for no_std environments
  1. Project Idea
  2. Morse Implementation ...