Skip to content

Commit

Permalink
Nombres de archivos cambiados
Browse files Browse the repository at this point in the history
  • Loading branch information
GenCabMon committed Dec 12, 2024
1 parent 2d72211 commit 94349c4
Show file tree
Hide file tree
Showing 15 changed files with 1,213 additions and 263 deletions.
9 changes: 5 additions & 4 deletions FirstPicoCode/.vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
"files.associations": {
"stdlib.h": "c",
"base_de_datos.h": "c",
"digiElements.h": "c",
"digi_elements.h": "c",
"time.h": "c",
"gpio.h": "c",
"timer.h": "c",
Expand All @@ -35,9 +35,10 @@
"stdio.h": "c",
"sync.h": "c",
"adc.h": "c",
"measurelibs.h": "c",
"configpwm.h": "c",
"math.h": "c"
"measure_libs.h": "c",
"config_pwm.h": "c",
"math.h": "c",
"measure_libs.h": "c"
},
"C_Cpp.errorSquiggles": "disabled"
}
6 changes: 3 additions & 3 deletions FirstPicoCode/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ pico_sdk_init()
# Add the executable target
add_executable(measure
measure.c
measurelibs.c
measure_libs.c
base_de_datos.c
digiElements.c
configpwm.c
digi_elements.c
config_pwm.c
)

string(APPEND CMAKE_EXE_LINKER_FLAGS "-Wl,--print-memory-usage")
Expand Down
2 changes: 1 addition & 1 deletion FirstPicoCode/configpwm.c → FirstPicoCode/config_pwm.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include "configpwm.h"
#include "config_pwm.h"

volatile uint64_t last_interrupt_time = 0; /**< Marca de tiempo de la última interrupción. */

Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include "digielements.h"
#include "digi_elements.h"

// Funciones de inicialización de sensores
void set_up_LDR()
Expand Down
File renamed without changes.
6 changes: 3 additions & 3 deletions FirstPicoCode/measure.c
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@
#include "hardware/gpio.h" /**< Configuración y control de pines GPIO. */
#include "hardware/irq.h" /**< Manejo de interrupciones en el hardware. */
#include "hardware/sync.h" /**< Funciones de sincronización del hardware. */
#include "measurelibs.h" /**< Librería personalizada para realizar mediciones específicas. */
#include "measure_libs.h" /**< Librería personalizada para realizar mediciones específicas. */
#include "base_de_datos.h" /**< Librería personalizada para gestionar la base de datos de usuarios. */
#include "hardware/pwm.h" /**< Control del módulo PWM en la Raspberry Pi Pico. */
#include "digiElements.h" /**< Librería personalizada de inicialización de sensores y actuadores digitales */
#include "configpwm.h" /**< Librería personalizada de configuración y uso de PWM */
#include "digi_elements.h" /**< Librería personalizada de inicialización de sensores y actuadores digitales */
#include "config_pwm.h" /**< Librería personalizada de configuración y uso de PWM */

/**
* @brief Valor de referencia de voltaje para la conversión ADC.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include "measurelibs.h"
#include "measure_libs.h"

/* Función FFT */
void fft(int N, float real[], float imag[])
Expand Down
234 changes: 117 additions & 117 deletions FirstPicoCode/measurelibs.h → FirstPicoCode/measure_libs.h
Original file line number Diff line number Diff line change
@@ -1,118 +1,118 @@
#ifndef MEASURELIBS_H
#define MEASURELIBS_H

/**
* @file measurelibs.h
* @brief Biblioteca para procesar señales, incluyendo FFT, correlación cruzada y DTW.
*
* Esta biblioteca contiene funciones para realizar análisis de señales, como la Transformada Rápida de Fourier (FFT),
* cálculo de correlación cruzada y Dynamic Time Warping (DTW), entre otras.
* Proporciona herramientas esenciales para trabajar con señales discretas en el dominio de tiempo y frecuencia.
*/

#include "pico/stdlib.h" /**< Librería principal del SDK de Raspberry Pi Pico */
#include <stdint.h> /**< Definiciones de tipos de datos enteros con tamaño fijo */
#include <stdio.h> /**< Funciones para entrada y salida estándar */
#include <math.h> /**< Funciones matemáticas estándar como cos, sin, sqrt, etc. */

/**
* @def SAMPLES
* @brief Número total de muestras de la señal.
*/
#define SAMPLES 5120

/**
* @def TAMANO_VENTANA
* @brief Tamaño de cada ventana utilizada en el análisis de señales.
*/
#define TAMANO_VENTANA 64

/**
* @def MAX_SIZE
* @brief Tamaño máximo de las señales utilizadas en DTW y otros cálculos.
*/
#define MAX_SIZE 81 // Tamaño máximo de las señales (80 + 1 para bordes)

/**
* @def INF
* @brief Representa un valor muy grande, utilizado como "infinito" en cálculos como la DWT.
*/
#define INF 1e30f // Un valor arbitrariamente grande como "infinito"

/**
* @def PI
* @brief Valor de la constante pi.
*/
#define PI 3.141592653589793

/**
* @brief Implementa la Transformada Rápida de Fourier (FFT).
*
* @param N Número de puntos de la FFT (debe ser potencia de 2).
* @param real Array de entrada con la parte real de los datos.
* @param imag Array de entrada con la parte imaginaria de los datos (inicialmente 0).
*/
void fft(int N, float real[], float imag[]);

/**
* @brief Calcula la magnitud de una señal compleja a partir de sus componentes reales e imaginarias.
*
* @param N Número de puntos en los arrays.
* @param real Array de entrada con la parte real de los datos.
* @param imag Array de entrada con la parte imaginaria de los datos.
* @param mag Array de salida donde se almacenan las magnitudes calculadas.
*/
void calculate_magnitude(int N, float real[], float imag[], float mag[]);

/**
* @brief Procesa una señal dividiéndola en ventanas, calcula la FFT para cada ventana
* y almacena las amplitudes promedio y los índices de tiempo.
*
* @param array Array de entrada con la señal a procesar.
* @param frecuencia_muestreo Frecuencia de muestreo de la señal.
* @param tamano_ventana Tamaño de cada ventana para el procesamiento.
* @param amplitudes_promedio Array de salida con las amplitudes promedio por ventana.
* @param indices_tiempo Array de salida con los índices de tiempo correspondientes.
*/
void graficar_amplitud_promedio_frecuencia(float *array, float frecuencia_muestreo, int tamano_ventana, float *amplitudes_promedio, float *indices_tiempo);

/**
* @brief Calcula la norma euclidiana de un vector.
*
* @param arr Array de entrada cuyos valores serán utilizados.
* @param size Tamaño del array.
* @return Norma euclidiana del vector.
*/
float calcular_norma(const float* arr, int size);

/**
* @brief Calcula la correlación cruzada normalizada entre dos señales.
*
* @param x Primera señal de entrada.
* @param y Segunda señal de entrada.
* @param size Tamaño de las señales.
*/
void calcular_correlacion_cruzada(const float* x, const float* y, int size);

/**
* @brief Encuentra el valor máximo en un vector y su índice correspondiente.
*
* @param vector Array de entrada.
* @param length Longitud del array.
* @param index_max Puntero al índice donde se almacenará el índice del valor máximo.
* @return Valor máximo del vector.
*/
float calcular_maximo(float* vector, int length, int* index_max);

/**
* @brief Calcula la distancia entre dos secuencias(principalmente iguales) usando Dynamic Time Warping (DTW).
*
* @param s1 Primera secuencia.
* @param n Longitud de la primera secuencia.
* @param s2 Segunda secuencia.
* @param m Longitud de la segunda secuencia.
* @return Distancia DTW entre las secuencias.
*/
float dtw(float *s1, int n, float *s2, int m);

#ifndef MEASURELIBS_H
#define MEASURELIBS_H

/**
* @file measurelibs.h
* @brief Biblioteca para procesar señales, incluyendo FFT, correlación cruzada y DTW.
*
* Esta biblioteca contiene funciones para realizar análisis de señales, como la Transformada Rápida de Fourier (FFT),
* cálculo de correlación cruzada y Dynamic Time Warping (DTW), entre otras.
* Proporciona herramientas esenciales para trabajar con señales discretas en el dominio de tiempo y frecuencia.
*/

#include "pico/stdlib.h" /**< Librería principal del SDK de Raspberry Pi Pico */
#include <stdint.h> /**< Definiciones de tipos de datos enteros con tamaño fijo */
#include <stdio.h> /**< Funciones para entrada y salida estándar */
#include <math.h> /**< Funciones matemáticas estándar como cos, sin, sqrt, etc. */

/**
* @def SAMPLES
* @brief Número total de muestras de la señal.
*/
#define SAMPLES 5120

/**
* @def TAMANO_VENTANA
* @brief Tamaño de cada ventana utilizada en el análisis de señales.
*/
#define TAMANO_VENTANA 64

/**
* @def MAX_SIZE
* @brief Tamaño máximo de las señales utilizadas en DTW y otros cálculos.
*/
#define MAX_SIZE 81 // Tamaño máximo de las señales (80 + 1 para bordes)

/**
* @def INF
* @brief Representa un valor muy grande, utilizado como "infinito" en cálculos como la DWT.
*/
#define INF 1e30f // Un valor arbitrariamente grande como "infinito"

/**
* @def PI
* @brief Valor de la constante pi.
*/
#define PI 3.141592653589793

/**
* @brief Implementa la Transformada Rápida de Fourier (FFT).
*
* @param N Número de puntos de la FFT (debe ser potencia de 2).
* @param real Array de entrada con la parte real de los datos.
* @param imag Array de entrada con la parte imaginaria de los datos (inicialmente 0).
*/
void fft(int N, float real[], float imag[]);

/**
* @brief Calcula la magnitud de una señal compleja a partir de sus componentes reales e imaginarias.
*
* @param N Número de puntos en los arrays.
* @param real Array de entrada con la parte real de los datos.
* @param imag Array de entrada con la parte imaginaria de los datos.
* @param mag Array de salida donde se almacenan las magnitudes calculadas.
*/
void calculate_magnitude(int N, float real[], float imag[], float mag[]);

/**
* @brief Procesa una señal dividiéndola en ventanas, calcula la FFT para cada ventana
* y almacena las amplitudes promedio y los índices de tiempo.
*
* @param array Array de entrada con la señal a procesar.
* @param frecuencia_muestreo Frecuencia de muestreo de la señal.
* @param tamano_ventana Tamaño de cada ventana para el procesamiento.
* @param amplitudes_promedio Array de salida con las amplitudes promedio por ventana.
* @param indices_tiempo Array de salida con los índices de tiempo correspondientes.
*/
void graficar_amplitud_promedio_frecuencia(float *array, float frecuencia_muestreo, int tamano_ventana, float *amplitudes_promedio, float *indices_tiempo);

/**
* @brief Calcula la norma euclidiana de un vector.
*
* @param arr Array de entrada cuyos valores serán utilizados.
* @param size Tamaño del array.
* @return Norma euclidiana del vector.
*/
float calcular_norma(const float* arr, int size);

/**
* @brief Calcula la correlación cruzada normalizada entre dos señales.
*
* @param x Primera señal de entrada.
* @param y Segunda señal de entrada.
* @param size Tamaño de las señales.
*/
void calcular_correlacion_cruzada(const float* x, const float* y, int size);

/**
* @brief Encuentra el valor máximo en un vector y su índice correspondiente.
*
* @param vector Array de entrada.
* @param length Longitud del array.
* @param index_max Puntero al índice donde se almacenará el índice del valor máximo.
* @return Valor máximo del vector.
*/
float calcular_maximo(float* vector, int length, int* index_max);

/**
* @brief Calcula la distancia entre dos secuencias(principalmente iguales) usando Dynamic Time Warping (DTW).
*
* @param s1 Primera secuencia.
* @param n Longitud de la primera secuencia.
* @param s2 Segunda secuencia.
* @param m Longitud de la segunda secuencia.
* @return Distancia DTW entre las secuencias.
*/
float dtw(float *s1, int n, float *s2, int m);

#endif // MEASURELIBS_H
14 changes: 7 additions & 7 deletions SecondPicoCode/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,25 +7,25 @@ set(PICO_SDK_PATH "C:/Program Files/Raspberry Pi/Pico SDK v1.5.1/pico-sdk")
include(pico_sdk_import.cmake)

# Define the project name and language
project(AccessSys C CXX)
project(MainPico C CXX)

# Initialize the Raspberry Pi Pico SDK
pico_sdk_init()

# Add the executable target
add_executable(access
access_sys.c
add_executable(mainpico
main_pico.c
LCD_i2c.c
)

string(APPEND CMAKE_EXE_LINKER_FLAGS "-Wl,--print-memory-usage")

# Add pico_stdlib library which aggregates commonly used features
target_link_libraries(access pico_stdlib m hardware_timer hardware_gpio hardware_pwm hardware_irq hardware_sync hardware_adc hardware_i2c hardware_spi)
target_link_libraries(mainpico pico_stdlib m hardware_timer hardware_gpio hardware_pwm hardware_irq hardware_sync hardware_adc hardware_i2c hardware_spi)

# Configurar la salida estándar (UART y USB)
pico_enable_stdio_usb(access 1)
pico_enable_stdio_uart(access 0)
pico_enable_stdio_usb(mainpico 1)
pico_enable_stdio_uart(mainpico 0)

# Generate additional output files (map, bin, hex, uf2)
pico_add_extra_outputs(access)
pico_add_extra_outputs(mainpico)
1 change: 0 additions & 1 deletion SecondPicoCode/access_sys.c
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@
#include "hardware/gpio.h"
#include "hardware/sync.h"
#include "hardware/adc.h"
#include "gpio_led.h"
#include "lcd_i2c.h"

// Constantes para control de servomotor
Expand Down
Loading

0 comments on commit 94349c4

Please sign in to comment.