Académique Documents
Professionnel Documents
Culture Documents
NOMBRE:
CURSO:
TEMA:
Proyecto Laboratorio
PROFESOR:
FACULTAD:
Ciencias
ESCUELA:
AÑO_2019
Tabla de Contenido
1. Propósito
2. Alcance
3. Documentos de referencia
4. Definiciones importantes
4.1. Conceptos generales
4.2. Procesos de entrada y salida
5. Diccionario de datos
5.1. Restricciones especiales
6. Instalación y configuración
6.1. Requisitos generales pre-instalación
6.2. Detalles del proceso de instalación
6.3. Detalles de configuración de la aplicación
a. Parámetros de aplicaciones
7. Desarrollo del Programa
8. Equipos y Componentes
9. Resultados
10. Limitaciones y Problemas del Programa
11. Posibles Soluciones
12. Recomendaciones
13. Conclusiones.
14. Referencias Bibliográficas
15. Anexos
1. Propósito
El propósito del presente proyecto es la aplicación de los conceptos de
procesamiento digital de señales para el tratamiento de una señal. Este está
caracterizado por la representación en el dominio del tiempo discreto, en el dominio
frecuencia discreta, u otro dominio discreto de señales por medio de una secuencia
de números o símbolos y el procesado de esas señales.
2. Alcance
El alcance del Proyecto en los sistemas de tratamiento de señales usando técnicas
sofisticadas tiene una amplia aplicación en el mundo moderno, se usan en el
electrocardiograma. En la mayoría de los casos estos sistemas son operados
directamente por seres humanos, lo cual implica que los resultados están sujetos a
la subjetividad de la percepción humana, lo cual puede llegar a convertirse en un
inconveniente en temas relacionados con la toma de decisiones (como ocurre en el
caso de decisiones arbitrales), de allí que implementar dispositivos de decisión “más
objetivos” traen grandes beneficios. El planteamiento del trabajo se basa en el
desarrollo de un generador de funciones y técnicas de procesamiento digital de
señales (filtro antialiasing, muestreo, ADC, DAC), logrando así el cumplimiento del
objetivo planteado para la presente investigación.
3. Documentos de referencia
https://www.youtube.com/watch?v=8yF8fo7rNvQ
https://aprendiendoarduino.wordpress.com/tag/adc/
4. Definiciones importantes
4.1 Conceptos generales
Software Python:
Python es un lenguaje de programación interpretado cuya filosofía hace hincapié
en una sintaxis que favorezca un código legible. Se trata de un lenguaje de
programación multiparadigma, ya que soporta orientación a objetos, programación
imperativa y, en menor medida, programación funcional. Es un software de licencia
libre y de código abierto lo que facilita la adquisición de librerías gratis así mismo
un enorme beneficio en el procesamiento digital de señales y facilita la
comunicación serial entre dispositivos y la PC.
Puerto serial:
Un puerto serie o puerto serial es una interfaz de comunicaciones de datos digitales,
frecuentemente utilizado por computadoras y periféricos, en donde la información
es transmitida bit a bit enviando un solo bit a la vez, en contraste con el puerto
paralelo que envía varios bits simultáneamente.
Software Arduino:
Arduino es una plataforma de hardware de código abierto, basada en una sencilla
placa con entradas y salidas, analógicas y digitales, en un entorno de desarrollo que
está basado en el lenguaje de programación Pressing.
Arduino 1:
Arduino UNO es la versión mejorada de su predecesor Duemilanove. Incluye
función de autoreset, protección de sobrecargas, conector USB para programarlo,
totalmente montado con componentes miniatura SMD (salvo el microcontrolador,
para poder cambiarlo facilmente) y nuevo bootloader OptiBoot a 155kbps.
5. Diccionario de datos
a. Restricciones especiales
Código del programa.
El programa desarrollo está basado en ejecutar instrucción por instrucción y no dos
o más instrucciones a la vez.
TRAJETA ARDUINO UNO
Se debe tener en cuenta que la tarjeta Arduino su conversor ADC va conectado a
un multiplexor, para que así, con uno solo de estos podamos tener varías entradas,
como es en el caso de las placas Arduino que normalmente cuenta con 6 de estas.
6. Instalación y configuración
Python Shell - la consola de Python, la cual nos permite ejecutar comandos línea
por línea.
IDLE GUI - una aplicación que nos permite escribir scripts más complejos para luego
ejecutarlos de manera sencilla.
IDLE
Para abrir el IDLE de Python navegamos hasta la carpeta de instalación de Python
y ejecutamos el archivo denominado IDLE (Para Mac/Linux/Windows). Una vez
abierto, vemos que la aplicación nos proporciona el Shell. La funcionalidad más
importante que ofrece es la capacidad de crear y modificar archivos.
import numpy
import pyqtgrahp
y nos deberá aparecer las versiones antes menciones para cada una de las librerías.
Lo mismo sucede con la librería Piserial.f. Requisitos del sistema para la
instalación de Python 3.7.4
Configure to Prescaler=32
bitWrite(ADCSRA,ADPS2,1);
bitWrite(ADCSRA,ADPS1,0);
bitWrite(ADCSRA,ADPS0,1);
Discretizar la señal:
void loop()
{
tStart=micros();
for (int i=0; i<mysize;i++)
{
mydata[i]=analogReadFast();
}
tEnd=micros();
for (int i=0; i<mysize;i++)
{
Serial.println(mydata[i],DEC);
}
}
int analogReadFast()
{
ADCSRA|=(1<<ADSC);
// ADSC is cleared when the conversion finishes
while (bit_is_set(ADCSRA, ADSC));
return ADCH;
}
Vamos a crear primero una ventana estándar con un título y vamos a añadir a esta
ventana una gráfica (Plot). De momento vamos a darles solo un título, tanto a la
ventana y a la gráfica.
#INICIAR QtApp
app = QtGui.QApplication([]) # DEBES hacer esto una vez (inicializa las
cosas)
# Gráfico de datos en tiempo real. Cada vez que se llama a esta función, se
actualiza la pantalla de datos.
def update():
global curve, ptr, Wn
Wn[:-1] = Wn[1:] # datos de desplazamiento en la media temporal 1 muestra
izquierda
#FIN QtApp
pg.QtGui.QApplication.exec_() # DEBES poner esto al final
8. Equipos y Componentes
Para la programación:
Software Python
Software Arduino
Tarjeta Arduino Uno
Generador de funciones
9 RESULTADOS
12. CONCLUSIONES
[1] https://es.wikipedia.org/wiki/Python.
[2] http://www.pyqtgraph.org/
[3] http://www.laboratoriogluon.com/pyqtgraph-graficas-tiempo-real-con-
python/
[4] https://www.uv.es/soriae/tema_1_pds.pdf
https://booleanbite.com/web/adquisicion-de-datos-con-arduino-i-tiempo-de-
muestreo-y-resolucion/
15.ANEXO:
Programación en arduino
#define mysize 300
void setup()
{
Serial.begin(115200);
//Prescaler
//ADPS2 - ADPS1 - ADPS0 - Division Factor
//0 -0 -0 ->2
//0 -0 -1 ->2
//0 -1 -0 ->4
//0 -1 -1 ->8
//1 -0 -0 ->16
//1 -0 -1 ->32
//1 -1 -0 ->64
//1 -1 -1 ->128
//Configure to Prescaler=32
bitWrite(ADCSRA,ADPS2,1);
bitWrite(ADCSRA,ADPS1,0);
bitWrite(ADCSRA,ADPS0,1);
//Entrada A3
ADMUX=(1<<ADLAR)|(0<<REFS1)|(1<<REFS0)|(0<<MUX3)|(0<<MUX2)|(1<<MU
X1)|(1<<MUX0);
}
void loop()
{
tStart=micros();
for (int i=0; i<mysize;i++)
{
mydata[i]=analogReadFast();
}
tEnd=micros();
int analogReadFast()
{
ADCSRA|=(1<<ADSC);
// ADSC is cleared when the conversion finishes
while (bit_is_set(ADCSRA, ADSC));
return ADCH;
}
Programación Python