From 803c9a94ca6577b5a55283d79d158de808871570 Mon Sep 17 00:00:00 2001 From: Caril Martinez <caril.martinez@cti.espol.edu.ec> Date: Wed, 16 Oct 2024 20:44:34 +0000 Subject: [PATCH] Update README.md --- README.md | 88 +++++++++++++++++++++++++++---------------------------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/README.md b/README.md index 2210b09..e724c8c 100644 --- a/README.md +++ b/README.md @@ -1,68 +1,68 @@ -# NEST Firmware - Arduino Version (Prototipo Wearable) +# NEST Firmware - Arduino Version (Wearable Prototype) -Este repositorio contiene el firmware para el proyecto **NEST (Non-intrusive dEviceS for Telemedicine)**, desarrollado para un **prototipo wearable** en la plataforma **Arduino**. El firmware controla el monitoreo de **frecuencia cardÃaca (BPM)** mediante el sensor **MAX30102** y el microcontrolador **nRF52840** con **Bluetooth Low Energy (BLE)** integrado. También incluye una interfaz táctil para interactuar con las funcionalidades del dispositivo, como la confirmación de rescates, monitoreo, y envÃo de datos a través de BLE. +This repository contains the firmware for the **NEST (Non-intrusive dEviceS for Telemedicine)** project, developed for a **wearable prototype** on the **Arduino** platform. The firmware controls the monitoring of **heart rate (BPM)** through the **MAX30102** sensor and the **nRF52840** microcontroller with integrated **Bluetooth Low Energy (BLE)**. It also includes a touch interface to interact with the device’s functionalities, such as rescue confirmation, monitoring, and sending data via BLE. -## Estructura del Repositorio +## Repository Structure -- **/bootloader**: Archivos del bootloader para el nRF52840, que se deben cargar manualmente. -- **/firmware**: Código fuente del firmware desarrollado en Arduino. -- **/libraries**: Bibliotecas necesarias como **Ucglib.h**, **algorithm_by_RF.h**, y **max30102.h** para controlar la pantalla TFT y el sensor de frecuencia cardÃaca. +- **/bootloader**: Bootloader files for the nRF52840, which need to be manually flashed. +- **/firmware**: Source code for the firmware developed in Arduino. +- **/libraries**: Required libraries such as **Ucglib.h**, **algorithm_by_RF.h**, and **max30102.h** to control the TFT screen and heart rate sensor. -## Descripción del Firmware +## Firmware Description -Este firmware está diseñado para un wearable médico que permite el monitoreo de frecuencia cardÃaca y la interacción con el usuario a través de una pantalla táctil. Las principales funcionalidades del firmware incluyen: +This firmware is designed for a medical wearable that allows heart rate monitoring and user interaction through a touchscreen. The main functionalities of the firmware include: -1. **Monitoreo de BPM**: Utiliza el sensor **MAX30102** para medir la frecuencia cardÃaca (BPM). Los datos se procesan y se muestran en la pantalla TFT. -2. **Pantalla TFT y Control Táctil**: La interfaz de usuario incluye un menú principal con opciones para monitorear los signos vitales, interactuar con un diario de dolor, y confirmar el envÃo de datos de rescate. Todo esto se controla mediante una pantalla TFT manejada con la biblioteca **Ucglib.h** y un sistema táctil basado en la biblioteca **TouchScreen.h**. -3. **Conectividad Bluetooth**: Implementa BLE usando **Bluefruit.h** para enviar notificaciones y datos de monitoreo a dispositivos conectados. Incluye caracterÃsticas BLE personalizadas para enviar alertas. -4. **Iluminación de Pantalla Controlada**: El pin de iluminación de la pantalla está controlado con PWM, lo que permite ajustar el brillo de la pantalla en función del estado del dispositivo. -5. **Actualización Dinámica de Frecuencia CardÃaca**: El valor de BPM se actualiza en tiempo real y se muestra en la pantalla, y también puede ser enviado vÃa BLE si hay un dispositivo conectado. +1. **BPM Monitoring**: Uses the **MAX30102** sensor to measure heart rate (BPM). The data is processed and displayed on the TFT screen. +2. **TFT Screen and Touch Control**: The user interface includes a main menu with options to monitor vital signs, interact with a pain diary, and confirm rescue data sending. All this is controlled through a TFT screen managed by the **Ucglib.h** library and a touch system based on the **TouchScreen.h** library. +3. **Bluetooth Connectivity**: Implements BLE using **Bluefruit.h** to send notifications and monitoring data to connected devices. It includes custom BLE characteristics for sending alerts. +4. **Screen Backlight Control**: The screen backlight pin is controlled with PWM, allowing brightness adjustment based on the device's state. +5. **Dynamic Heart Rate Update**: The BPM value is updated in real time and displayed on the screen. It can also be sent via BLE if a device is connected. -## Funciones Principales +## Main Functions -- **Pantalla Principal**: Presenta tres opciones: **Diario de Dolor**, **Rescate**, y **Monitoreo**. -- **Confirmación de Rescate**: Permite al usuario confirmar o cancelar el envÃo de datos de rescate. -- **EnvÃo de Datos**: Muestra una animación de envÃo y notifica cuando los datos se han enviado correctamente a través de BLE. -- **Monitoreo de Frecuencia CardÃaca**: Muestra el valor actual de BPM en la pantalla y permite volver al menú principal tocando la pantalla. +- **Main Screen**: Presents three options: **Pain Diary**, **Rescue**, and **Monitoring**. +- **Rescue Confirmation**: Allows the user to confirm or cancel the rescue data transmission. +- **Data Sending**: Shows a sending animation and notifies when data has been successfully sent via BLE. +- **Heart Rate Monitoring**: Displays the current BPM value on the screen and allows returning to the main menu by touching the screen. -### Bibliotecas Incluidas en el Proyecto +### Libraries Included in the Project -El proyecto incluye las siguientes bibliotecas personalizadas que se encuentran en el directorio `/libraries`: +The project includes the following custom libraries found in the `/libraries` directory: -- **Ucglib.h**: Utilizada para controlar la pantalla TFT e implementar las interfaces gráficas. -- **algorithm_by_RF.h**: Procesa los datos del sensor **MAX30102** para calcular la frecuencia cardÃaca. -- **max30102.h**: Controla las operaciones del sensor **MAX30102** para la lectura de datos biométricos. +- **Ucglib.h**: Used to control the TFT screen and implement graphical interfaces. +- **algorithm_by_RF.h**: Processes data from the **MAX30102** sensor to calculate heart rate. +- **max30102.h**: Handles the operations of the **MAX30102** sensor for reading biometric data. -Otras bibliotecas necesarias, como **Adafruit_TinyUSB.h**, **TouchScreen.h**, **Bluefruit.h** y **SPI.h**, se pueden instalar directamente desde el gestor de bibliotecas del **Arduino IDE**. +Other required libraries, such as **Adafruit_TinyUSB.h**, **TouchScreen.h**, **Bluefruit.h**, and **SPI.h**, can be installed directly from the **Arduino IDE** library manager. -## Requisitos para Programar en Arduino +## Arduino Programming Requirements -### Instalar Arduino Core para nRF52840 +### Install Arduino Core for nRF52840 -1. **Descargar e instalar Arduino IDE** (al menos v1.6.12): [Arduino IDE](https://www.arduino.cc/en/software). -2. Iniciar el Arduino IDE y entrar a las **Preferencias**. -3. En **Additional Board Manager URLs**, agregar: +1. **Download and install Arduino IDE** (at least v1.6.12): [Arduino IDE](https://www.arduino.cc/en/software). +2. Open the Arduino IDE and go to **Preferences**. +3. In **Additional Board Manager URLs**, add: `https://adafruit.github.io/arduino-board-index/package_adafruit_index.json` -4. Reiniciar el Arduino IDE. -5. Ir a **Herramientas > Placa > Gestor de Placas** y buscar "Adafruit nRF52" e instalar **Adafruit nRF52 by Adafruit**. -6. Una vez instalado, seleccionar **Adafruit Feather nRF52840 Express** desde **Herramientas > Placa** para configurar el sistema. +4. Restart the Arduino IDE. +5. Go to **Tools > Board > Board Manager**, search for "Adafruit nRF52" and install **Adafruit nRF52 by Adafruit**. +6. Once installed, select **Adafruit Feather nRF52840 Express** from **Tools > Board** to configure the system. ## Bootloader -El bootloader debe cargarse manualmente. En este repositorio, en el directorio `/bootloader`, encontrarás el archivo que debe cargarse en el nRF52840. Sigue las instrucciones a continuación para realizar la grabación del bootloader. +The bootloader must be manually flashed. In this repository, you will find the file that needs to be flashed to the nRF52840 in the `/bootloader` directory. Follow the instructions below to flash the bootloader. -### Grabar un nuevo Bootloader +### Flash a New Bootloader -Para grabar el bootloader desde el IDE de Arduino, necesitarás tener instaladas las siguientes herramientas en tu sistema y que estén disponibles en la ruta del sistema: +To flash the bootloader from the Arduino IDE, you will need the following tools installed and available in your system path: - [Segger JLink Software and Documentation Pack](https://www.segger.com/downloads/jlink) - [Nordic nRF5x Command Line Tools](https://www.nordicsemi.com/Software-and-Tools/Development-Tools/nRF-Command-Line-Tools) -Verifica que puedas ejecutar `nrfjprog` desde tu terminal o sÃmbolo del sistema. +Ensure you can run `nrfjprog` from your terminal or command prompt. -### Grabar el Bootloader manualmente con nrfjprog +### Manually Flash the Bootloader with nrfjprog -El archivo hex del bootloader se puede encontrar en la carpeta `/bootloader`. Ejecuta los siguientes comandos desde la carpeta donde se encuentra el bootloader: +The bootloader hex file can be found in the `/bootloader` folder. Run the following commands from the folder where the bootloader is located: ```bash $ nrfjprog -e -f nrf52 @@ -70,13 +70,13 @@ $ nrfjprog --program feather_nrf52840_bootloader.hex -f nrf52 $ nrfjprog --reset -f nrf52 ``` -### Configuraciones en Arduino +### Arduino Configurations -Una vez que el bootloader esté grabado, realiza las siguientes configuraciones en el IDE de Arduino: +Once the bootloader is flashed, follow these configurations in the Arduino IDE: -1. Selecciona **Herramientas > Placa > Adafruit Feather nRF52840 Express**. -2. Selecciona el puerto COM que corresponda a la placa. -3. En **Herramientas > Programador**, selecciona **J-Link for Bluefruit nRF52**. -4. Luego, selecciona **Herramientas > Grabar Bootloader** para finalizar el proceso de configuración. +1. Select **Tools > Board > Adafruit Feather nRF52840 Express**. +2. Select the correct COM port for the board. +3. In **Tools > Programmer**, choose **J-Link for Bluefruit nRF52**. +4. Then, select **Tools > Burn Bootloader** to finalize the setup process. -- GitLab