UNIVERSIDAD DE BUENOS AIRES Facultad de Ingeniería
Carrera de Especialización en Sistemas Embebidos
Memoria del Trabajo Final:
Diseño e implementación de un prototipo de batería electrónica para principiantes
Autor:
Ing. Iván Andrés León Vásquez
Director:
Dr. Ing. Pablo Gomez
Jurado:
Esp. Ing. Pablo Ridol䟀i (FIUBA)
Esp. Ing. Eric Pernia (FIUBA)
Ing. Pedro Martos (FIUBA)
Este trabajo fue realizado en las Ciudad Autónoma de Buenos Aires, entre agosto de 2015 y julio de 2016.
RESUMEN En esta memoria se presenta el diseno y construccion de un baterıa electronica prototipo capaz de enviar mensajes MIDI a un controlador externo. El proposito es disenar un prototipo de baterıa electronica de bajo costo para principiantes. La motivacion surge de la experiencia personal del autor como baterista, en la que advirtio las di䟀icultades al adquirir este instrumento para empezar a practicar, ya que la calidad de las baterıas acusticas de bajo costo deja mucho que desear, y para obtener un mejor sonido se requiere comprar parches, ademas de cambiar de platillos ya que las baterıas en general no vienen con platillos de buena calidad.
En consecuencia, se propuso disenar e implementar una baterıa economica con buena calidad de sonido usando la comunicacion MIDI para ası ayudar a los principiantes a empezar en el mundo de la percusion.
El paso previo para la realizacion del proyecto fue realizar una plani䟀icacion orientada a tareas, requerimientos, alcances, y objetivos a corto y largo plazo, analizando pautas como la calidad, uso de recursos, deteccion y mitigacion de riesgos,presupuesto en horas hombre, entre otros, para ası analizar la factibilidad de realizacion del mismo.
Una vez terminada la plani䟀icacion se diseno e implemento el “hardware” basado en al norma IPC221A,la cual de䟀ine procedimientos de diseno para pistas, ubicacion de componentes, planos de tierra, entre otros, el 䟀irmware fue disenado utilizando la programacion en estructura de capas, implementando maquinas de estado sobre el sistema operativo FreeRtos , para ası hacerlo lo mas portable posible, por si el autor decide cambiar de microcontrolador en alguna aplicacion futura.
Por ultimo se realizaron los respectivos ensayos tanto de hardware como de 䟀irmware.
El presente trabajo sirve como documento informativo para los miembros del jurado y como guıa a personas externas que deseen realizar un proyecto similar, no muestra ningun diseno muy detallado del prototipo, ya que al ser un proyecto con 䟀ines de lucro, el autor se reserva el derecho de la publicacion del diseno de hardware y codigo fuente.
Página 2 de 65
Agradecimientos
Agradezco a todos y cada uno de mis companeros y docentes de la especialidad, ya que ayudaron en poca o gran medida al desarrollo del presente proyecto.
A mis amados padres Monica y Raul, y a mis queridos hermanos Raul y Melanie, porque a pesar de la distancia siempre han estado para apoyarme,aconsejarme y darme animos, los amo a todos, tengo mucha suerte de que sean mi familia.
A la FIUBA por ayudarme con toda la informacion necesaria y facilidades para mi ingreso a la especialidad.
A mi querida Universidad de Fuerzas Armadas ESPE, por haberme brindado solidos conocimientos para mi correcto desempeno en la especialidad.
Al Ing. Jorge Fonseca, por darme su amistad, apoyarme en el transcurso de todas las materias de la especialidad, y por ayudarme durante mi estadıa en Buenos Aires, !Sos grande CHE!.
A mi gran amiga y con䟀idente la Psc. Salome Larrea , porque la amistad puede recorrer miles de kilometros, gracias por estar presente en todos mis momentos, ya sean buenos o malos, en serio mil gracias amiga bella.
A la companıa Baldor S.R.L., en especial al Ing. Pablo Dolber y al Fis. Pablo Urrutia, por haber con䟀iado en mı dandome una mano cuando mas lo necesitaba.
A la gente que integra DRAMMERS, por haberme apoyado con la estructura de la baterıa electronica y haber con䟀iado en mı para el desarrollo de la misma.
A los miembros del jurado Esp. Ing. Eric Pernia, Esp. Ing. Pablo Ridol䟀i, Ing. Pedro Martos y a mi tutor el Dr. Ing. Pablo Gomez, por sus consejos y guıa durante la realizacion del presente proyecto.
A mi paıs Ecuador, la tierra que me vio nacer y que forjo el hombre que soy ahora, todo logro que su pueblo consiga deja en alto su nombre, !Muchas gracias patria querida!.
Página 3 de 65
Índice General
RESUMEN
Agradecimientos
I㑤ndice General
Registros de versiones
CAPI㑤TULO 1
1. Introduccion gener al ……………………………………………………………………………………..…………9
1.1. Motivacion ………………………………………………………………………………………..………………9
1.2. Objetivos …………………………………………………………………………………….…………….………9
1.2.1. Objetivos Generales ……………………………………………………………………………………………….....………9
1.2.2. Objetivos especı䟀icos ………………………………………………………………………………………....……..………9
1.3. Alcance …………………………………………………………………………………………………..………10
1.4. La baterıa electronica ……………………………………………………………………………………………………………11
1.4.1. Introduccion …………………………………………………………………………..………………11
1.4.2. Ventajas y desventajas …………………………………………………………………………………………..…………12
1.5. Diagrama de bloques ………………………………………………………………………………………13
CAPI㑤TULO 2
2. Introduccion especı䟀ica ……………………………………………………………………………………………14
2.1 Requerimientos ………………………………………………………………………………………….……14
2.1.1. Requerimientos de hardware …………………………………………………………………………………………………..……14
Página 4 de 65
2.1.2. Requerimientos de Firmware …………………………………………………………………………………………………..……14
2.2. Protocolo MIDI(Musical Instrument Digital Interface ) ……………………………………………………………………………………………………………………….……15
2.2.1. Caracterısticas del MIDI ………………………………………………………………………………………………….……………15
2.2.2. Las cajas de ritmo. …………………………………………………………………………………………………...…………15
2.3. Sensores piezoelectricos ……………………………………………………………………………………...………………17
2.4. Microcontrolador utilizado ……………………………………………………………………………………………………….………18
2.5. Plani䟀icacion …………………………………………………………………………………………...………19
CAPI㑤TULO 3
Diseno e implementacion ……………………………………………………………………………………………20
3.1. Diseno de Hardware …………………………………………………………………………………………………………..…21
3.1.1. Adquisicion y Tratamiento de senal ………………………………………………………………………………………………………….……21
3.1.2. Salida MIDI ………………………………………………………………………….…………………23
3.1.3. Interfaz gra䟀ica ………………………………………………………………………………………………………….…24
3.1.4. Metronomo ………………………………………………………………………………………....…24
3.1.5. MCU ………………………………………………………………………………………………………24
3.2. Diseno de Firmware …………………………………………………………………………………………………………...…27
3.2.1 Ciclo de vida ……………………………………………………………………………………………28
3.2.2 Analisis y de䟀inicion de requerimientos …………………………………………………………………………………………….…28
Página 5 de 65
3.2.3. Diseno de la arquitectura del sistema ………………………………………………………………………………………………………...…29
3.2.4. Diseno Detallado …………………………………………………………………………………………...……………31
3.3 Implementacion de Hardware ……………………………………………………………………………………………………...………36
3.3.1 Diseno de placa de circuito impreso(PCB) ……………………………………………………………………………………………….…36
3.3.2 Procedimiento de orden y ruteado de los componentes …………………………………………………………………………………………………...39
3.3.3. Resultado 䟀inal …………………………………………………………………………………………………………..……42
3.4 Implementacion de Firmware …………………………………………………………………………………………………………...…43
3.4.1 Capas de abstraccion …………………………………………………………………………………………………..…44
3.4.2 Bloques funcionales ………………………………………………………………………………………………..……45
3.4.3 Integracion de bloques funcionales …………………………………………………………………………………………………..…47
3.4.4 Prioridades de tareas …………………………………………………………………………………………………………..…48
CAPI㑤TULO 4
Ensayos y resultados ……………………………………………………………………………………………..……50
4.1. Ensayos y resultados de Hardware …………………………………………………………………………………………………………..…50
4.2. Ensayos y resultados de Firmware ………………………………………………………………………………………………………...……56
4.2.1 Prueba de bloques funcionales ………………………………………………………………………………………………..……56
CAPI㑤TULO 5
Página 6 de 65
Conclusiones, recomendaciones y mejoras futuras ………………………………………………………………………………………………………………..………62
5.1 Conclusiones ………………………………………………………………………………………………...…62
5.2 Recomendaciones y mejoras futuras ……………………………………………………………………………………………………………….…63
Bibliografıa ………………………………………………………………………………………………………………………65
Página 7 de 65
Registros de versiones
Revisión Cambios realizados Fecha
1.0 Creacion del documento 16/06/2016
1.1 Entrega preliminar del informe a los jurados 11/07/2016
1.2 Entrega de informe 䟀inal a los jurados 18/07/2016
Página 8 de 65
CAPÍTULO 1
1. Introducción general
1.1. Motivación
La motivacion para la realizacion del presente proyecto es la siguiente:
● El elevado costo de las baterıas electronicas ya que su desarrollo lo hacen mayormente empresas extranjeras, por lo cual importar dichos instrumentos resulta muy costoso.
● La inexistencia de una baterıa economica de buena calidad para principiantes, ademas de que para las personas que recien empiezan a aprender a tocar este instrumento, comprar uno para practicar resulta muy costoso.
● El sonido que una baterıa acustica puede ser molesto para personas cercanas, lo que una baterıa electronica no tiene, ya que se puede usar audıfonos para practicar.
● El proyecto es de interes personal del autor.
1.2. Objetivos
1.2.1. Objetivos Generales
● Disenar e implementar un prototipo de baterıa electronica orientada a principiantes que ejecute envıe comandos MIDI a un reproductor externo, utilizando herramientas y dispositivos electronicos e informaticos, aprendidos a lo largo de la especialidad en sistemas embebidos para que sirva de herramienta a gente que quiere incursionar en el mundo de la percusion.
● Culminar la Especialidad de sistemas Embebidos.
1.2.2. Objetivos específicos
● Construir o adquirir los pads y estructura de la baterıa. ● Disenar e implementar el hardware y software para procesar las senales de
los pads del prototipo y para transformarlo a formato MIDI. ● Realizar la veri䟀icacion y validacion del prototipo.
Página 9 de 65
1.3. Alcance
El prototipo incluye:
● Ocho pads con su estructura. ● Controlador. ● PCB ● Metronomo con:
○ 1 compas 䟀ijo 2/4. ○ 1 tono no con䟀igurable.
● Interfaz gra䟀ica.
El proyecto no incluye :
● Mas de 8 pads que los especi䟀icados. ● Integracion de mas tonos y compases para el metronomo. ● Ampli䟀icacion. ● Software para PC. ● PC o laptop. ● Cable conversor de MIDI a USB.
Página 10 de 65
1.4. La batería electrónica
En la 䟀igura 1.1 se muestra una baterıa electronica convencional.
Figura 1.1: Batería electrónica
1.4.1. Introducción
Por de䟀inicion una baterıa electronica es un instrumento de percusion en el que el sonido es emitido por un generador de ondas electronicas o un sampler, que simula las ondas sonoras de las baterıas acusticas, el cual esta compuesto basicamente por tres elementos que son:
● Los pads, en los que se encuentran los sensores (generalmente piezoelectricos) comunmente llamados triggers.
● Un conversor “trigger‑to‑midi”, encargado de transformar la senal creada por los triggers a una senal MIDI
● Un modulo sampler, que produce un sonido determinado por la senal MIDI recibida.
Al golpear un pad con la baqueta, se crea una diferencia de potencial en los sensores piezoelectricos. Las senales resultantes son enviadas al conversor trigger‑to‑midi , y este los transforma en ondas de sonido, los cuales producen el sonido dependiendo cual pad se golpee y de la fuerza aplicada al momento de golpear el mismo[1].
Página 11 de 65
1.4.2. Ventajas y desventajas
En la tabla 1.1 se muestra las ventajas y desventajas del uso de la baterıa electronica.
Tabla 1.1: Ventajas y desventajas de la baterıa electronica
Ventaja Desventaja
El musico puede asignar distintos sonidos a los pads.
Los pads no poseen los mismos matices que una baterıa acustica
Se puede armar distintos “kits” de sonido con una sola baterıa
electronica.
El rebote de los pads aunque se asemeja a una baterıa acustica no
es similar.
Reduccion de ruido. Se necesita muchos cables y equipos de ampli䟀icacion.
Es mas plegable y facil de trasladar.
Las baterıas electronicas
profesionales son mas caras que las acusticas.
Se puede regular el volumen en los ensayos.
Página 12 de 65
1.5. Diagrama de bloques
En la 䟀igura 1.2 se presenta el diagrama de bloques general del proyecto.
Figura 1.2: Diagrama de bloques del proyecto
Página 13 de 65
CAPÍTULO 2
2. Introducción específica
2.1 Requerimientos
Los requerimientos fueron planteados en base a la conversacion con tal empresa, que se mostro interesada en el presente desarrollo, y ademas a partir de la experiencia personal del autor.
2.1.1. Requerimientos de hardware
Pads:
● Los pads seran construidos por el auspiciante. ● La instrumentacion se realizara con sensores piezoelectricos. ● Seran montados en una estructura proporcionada por el auspiciante.
Circuito impreso (PCB) :
● Placa electronica de control cuyo procesador sea un Cortex‑M. ● Placa electronica de adquisicion de datos. ● Placa electronica de salida que incorporara un conector MIDI.
Metrónomo.
● Buzzer de salida.
Interfaz gráfica.
● LCD monocromatico. ● Teclado.
2.1.2. Requerimientos de Firmware
● Conversion de senal analoga entregada por los pads a formato MIDI. ● Con䟀iguracion y comunicacion con la interfaz gra䟀ica. ● Implementacion de un sistema operativo. ● Control de versiones. ● Implementacion de maquinas de estado.
Página 14 de 65
2.2. Protocolo MIDI(Musical Instrument Digital Interface )
El “idioma” comun compartido actualmente por todos los instrumentos musicales electronicos se llama “MIDI”, el cual se describe en detalle en [2] y en [3]. El “MIDI” es el estandar que se utiliza para enviar ‘informacion de interpretacion’ de un instrumento a otro.
2.2.1. Características del MIDI
Las caracterısticas generales del MIDI son las siguientes:
● Capacidad multitımbrica de 16 canales. ● Polifonıa mınima de 24 notas. ● Lista o mapa estandar de 128 programas (lista de instrumentos). ● Incorporacion de una caja de ritmos de un mapa estandar de 59 sonidos de
percusion.
A su vez el estandar de䟀ine :
● Mapa de 317 programas (lista de instrumentos). ● 8 kits de percusion de 59 sonidos cada una tabla 2. ● Capacidad multitımbrica de 16 canales. ● Polifonıa mınima de 24 notas.
2.2.2. Las cajas de ritmo.
Las cajas de ritmo son destinadas a reproducir exclusivamente sonidos de percusion.
A diferencia de lo que ocurre con un instrumento normal de sintetizador, en el que diferentes notas MIDI producen diferentes alturas del mismo instrumento, en las cajas de ritmo, cada nota dispara un sonido diferente. Inicialmente, cada fabricante tenıa su mapa de sonidos particular, pero actualmente existe el estandar que se presenta en la tabla 2.1, que nos asegura que, por ejemplo, una nota MIDI 38 disparara siempre el sonido del redoblante.
Página 15 de 65
Tabla 2.1 : Mapas del estandar MIDI (tomado de [3])
Un ejemplo de mensaje MDI orientado a percusion se visualiza en la Tabla 2.3:
Tabla 2.3 : Ejemplo de mensaje MIDI orientado a percusion
Nombre Mensaje(Hex) Canal(Hex) Dato1(Hex) Dato2(Hex)
Bombo 1 0x09(Note ON) 0x09(Canal 10) 36(Bass drum 1) tomado de tabla 2.1
63 (Volumen)
Caja acustica 38(Acoustic snare)tomado de tabla 2.1
El cual reproducira un bombo y una caja acustica con un volumen de 63.
Página 16 de 65
2.3. Sensores piezoeléctricos
Los sensores piezoelectricos implementados se muestra en la 䟀igura 2.1 .
Figura 2.1: Sensor piezoeléctrico
Basan su funcionamiento en la fuerza o presion aplicada a una sustancia compuesta por cristales polarizados (piezo signi䟀ica presion en griego). Al ejercer presion sobre el cristal, este se deforma produciendo una descarga electrica [4].
Algunas de sus ventajas son las siguientes:
● Alta sensibilidad y bajo coste. ● Alta rigidez mecanica (deformaciones experimentadas < 1microm), apta para
medir esfuerzos variables (fuerza ‑ presion). ● Insensible a campos electromagneticos y a la radiacion .
Algunas de sus desventajas son las siguientes[5]:
● No poseen respuesta en c.c. ● Deben trabajar por debajo de la frecuencia de resonancia del material. ● Los coe䟀icientes piezoelectricos son sensibles a la temperatura. (Cuarzo hasta
260ºC y la turmalita 700ºC).
Página 17 de 65
2.4. Microcontrolador utilizado
El microcontrolador utilizado para el proyecto fue un LPC1769, cuyas caracterısticas son las siguientes [6]:
● Nucleo ARM Cortex‑M3 ○ Funcionamiento de hasta 120 MHz ○ Controlador de interrupcion de activacion para encendido automatico
desde cualquier funcion de irrupcion prioritaria ○ Unidad de proteccion de memoria ○ Consumo de energıa en modo activo: 420 μA/MHz ○ Cuatro modos con consumo reducido: reposo (2 mA), reposo profundo (240
μA), apagado (31 μA), apagado profundo (630 nA) ● Memorias
○ Hasta 512 KB de memoria Flash ○ Hasta 64 KB de memoria SRAM
● Perifericos seriales ○ Dispositivo USB 2.0 de 12 Mbps/host/controlador de OTG con PHY en chip ○ Cuatro UART con ındice de generacion de baudios fraccional, control de
modem E/S RS‑485 e IrDA ○ Dos controladores CAN 2.0B ○ Tres controladores de SSP/SPI ○ Tres interfaces l2C‑bus con un soporte rapido modo plus (tasas de datos de
1 Mbit/s) ○ Interfaz l2S de audio digital
● Perifericos analogicos ○ ADC de 12 bits con ocho canales ○ DAC de 10 bits
● Otros perifericos ○ Reloj en tiempo real con funcionamiento a <1 uA ○ Hasta 70 GPIO ○ Interfaz PWM de control de motor y codi䟀icador de cuadratura para
impulsar motores trifasicos ○ Cuatro temporizadores/contadores de uso general de 32 bits ○ Oscilador RC interno de 4 MHz con 1% de precision.
Página 18 de 65
2.5. Planificación
En la 䟀igura 2.2 se muestra la plani䟀icacion que se realizo en el curso de Gestion de Proyectos durante la Carrera de Especializacion de Sistemas Embebidos .
Figura 2.2: Planificación
Página 19 de 65
CAPÍTULO 3
Diseño e implementación En este capıtulo se describe las consideraciones de disenos del hardware del prototipo, las cuales se basaron en los requerimientos de hardware descritos en 2.1.
3.1. Diseño de Hardware
En la 䟀igura 3.1 se presenta el diagrama de bloques correspondiente al hardware del prototipo.
Figura 3.1: Diagrama de bloques de Hardware
Los cuales se describen de manera puntual en las secciones 3.1.1 a 3.1.5.
Página 20 de 65
3.1.1. Adquisición y Tratamiento de señal
El diagrama de bloques de la etapa de adquisicion y tratamiento de senal se ilustra en la 䟀igura 3.2,para posteriormente describir su funcionalidad.
Figura 3.2: Diagrama de bloques de adquisición y tratamiento de señal de sensor
Supresor de sobretensión del sensor piezoeléctrico.
Debido a que los sensores piezoelectricos entregan picos de voltaje elevados, se implemento un circuito que recorta la senal de voltaje al valor de +3.3V y 0 respectivamente.
Detector de pico
Como se ilustra en la 䟀igura 3.3 se tiene una oscilacion por parte del sensor de aproximadamente 4KHz(depende de el sensor utilizado) por lo que se eligio implementar un circuito detector de pico para que sea mas facil la lectura por parte de la MCU. En la 䟀igura 3.4 se muestra el sensor piezoelectrico despues de haberse aplicado el 䟀iltro.
Página 21 de 65
TIEMPO(ms)
Figura 3.3: Gráfica de sensor piezoeléctrico sin filtrar
TIEMPO(ms)
Figura 3.4: Gráfica de sensor piezoeléctrico filtrado
Página 22 de 65
Seguidor de voltaje
Se encarga de eliminar efectos de carga, y garantizar baja impedancia de salida.
Circuito multiplexor de señal analógica:
En la 䟀igura 3.5 se muestra el diagrama de bloques de la etapa de multiplexor de senal analogica
Figura 3.5: Diagrama de bloques del multiplexor de señal analógica.
Este circuito toma la senal 䟀iltrada del sensor piezo electrico y la multiplexa, para ası poder aprovechar mas entradas analogas del micro en futuras aplicaciones.
3.1.2. Salida MIDI
Se utilizo el circuito correspondiente al “Standart MIDI” cuya informacion se encuentra en la pagina [7] .
Página 23 de 65
3.1.3. Interfaz gráfica
En la 䟀igura 3.6 se muestra el diagrama de bloques correspondiente a la etapa de la Interfaz gra䟀ica.
Figura 3.6: Diagrama de bloques Interfaz gráfica
La interfaz gra䟀ica de un LCD monocromatico en el cual se presentaran diferentes menus para el usuario, y un teclado de membrana de 5 teclas cuyas funciones son:
● CANCEL: Salir de menus, cancelar alguna eleccion. ● ENTER: Seleccionar opciones.
● ↑ : ARRIBA
● ↓ : ABAJO
3.1.4. Metrónomo
Emite un sonido en tempo de 2/4 mediante un “Buzzer”.
El MCU emite una frecuencia grave y aguda a un circuito emisor de tonos.
3.1.5. MCU
Se utilizo una tarjeta LPCxpresso 1769, la cual tiene las siguientes caracterısticas[8]:
● Microcontrolador: NXP Cortex‑M3 LPC1769 en empaque LQFP100 ● Flash: 512 kB
Página 24 de 65
● Memoria de Datos:64 kB ● Reloj: Cristal de 12.000 para la CPU ● Dimensiones: 35 x 140 mm ● Alimentacion : 3.15V‑3.3V externa o USB via JTAG (LPC‑LINK) ● Conectores: Todos los pines relevantes de la LPC1769 estan disponibles en un
conector de expansion (2x27 䟀ilas de pines, espaciamiento 100 mil , 900 mil entre 䟀ilas)
● Funcionalidad Embedded JTAG (LPC‑LINK) via LPCXpresso toolchain ● La LPC‑LINK puede ser conectada a procesadores externos despues de hacer
modi䟀icaciones a la placa LPCXpresso ● LED integrado.
Las conexiones de referencia de la MCU se muestra en la 䟀igura 3.7 .
Figura 3.7: Conexiones de referencia de la MCU
Página 25 de 65
Tabla 4 : Descripcion de conexiones del MCU
Nombre Funcion TIPO
5V Alimentacion 5V Alimentacion
Reset_Micro Hardware Reset Entrada
MIDI_OUT Salida a circuito MIDI Salida
AD0 Entrada de multiplexor analogico
Entrada
AD1‑AD3 Entradas analogicas auxiliares
Entrada
LCD_XX Entradas/Salidas LCD Entrada/Salida
Metronomo Salida al circuito emisor de tono
Salida
BOT_XX Entradas de teclado Entrada
MUX_X Salida digital al circuito multiplexor analogo.
Salida
VCC Entrada 3.3V Alimentacion
GND Tierra Alimentacion
Página 26 de 65
3.2. Diseño de Firmware
En esta seccion se describe las consideraciones de diseno del Firmware del prototipo, basado en la materia Ingenierıa de Software vista Especializacion de sistemas Embebidos.
3.2.1 Ciclo de vida
En las 䟀igura 3.8 y 䟀igura 3.9 se muestra el ciclo de vida utilizado para el diseno.
Figura 3.8: Ciclo de vida evolutivo
Página 27 de 65
Figura 3.9: Ciclo de vida en cascada
En una vision generica, el proceso se divide en cuatro partes: Analisis, Diseno, Codigo y Prueba. Sin embargo, para la produccion del Software, se usa el principio de trabajo en cadena o “Pipeline”, utilizado en muchas otras formas de programacion. Con esto se mantiene al cliente en constante contacto con los resultados obtenidos en cada incremento. Es el mismo cliente el que incluye o desecha elementos al 䟀inal de cada incremento a 䟀in de que el software se adapte mejor a sus necesidades reales. El proceso se repite hasta que se elabore el producto completo.
Las caracterısticas principales son:
● Es un proceso por el cual se van obteniendo versiones mas grandes y so䟀isticadas de un proceso o sistema.
● No se conocen todos los requisitos desde el inicio, sino que se van obteniendo a medida que avanza el desarrollo.
● Particularmente util cuando no se cuenta con una dotacion de personal su䟀iciente. ● Los primeros pasos los pueden realizar un grupo reducido de personas y en cada
incremento se anade personal, de ser necesario. ● Se evitan proyectos largos y se entrega algo de valor a los usuarios con cierta
frecuencia. ● Por otro lado los incrementos se pueden planear para gestionar riesgos tecnicos. ● El usuario se involucra mas. ● Difıcil de evaluar el coste total. ● Los errores en los requisitos se detectan tarde.
Página 28 de 65
● El resultado puede ser muy positivo.
Utilizado en el proceso que involucra aprendizaje del equipo y en proyectos en los que no se tienen dominio de la tecnologıa o la experiencia es escasa.
3.2.2 Análisis y definición de requerimientos
Esto se de䟀inio en el capıtulo 1 por lo que solo se copio los requerimientos de Software.
De䟀inicion de requerimientos:
● Conversion de senal analoga entregada por los pads a formato MIDI. ● Con䟀iguracion y comunicacion con la interfaz gra䟀ica.
3.2.3. Diseño de la arquitectura del sistema
Los estilos Arquitectonicos permiten seleccionar una solucion entendible y probada a ciertos problemas, de䟀iniendo los principios organizativos del sistema.
Al basar la arquitectura en estilos que son conocidos las personas entienden mas facilmente las caracterısticas importantes de la misma
Algunos estilos son[9]:
● Shared Data (Datos Compartidos) ○ Pizarron (Blackboard)
● Cliente‑Servidor ● Capas Jerarquicas ● Descomposicion Orientada a Objetos ● Tubos y Filtros ● Control Centralizado ● Control Basado en Eventos ● Arquitecturas de Sistemas Distribuidos
○ Cliente‑Servidor ○ Objetos Distribuidos ○ Peer‑To‑Peer ○ Service Oriented Architecture (SOA)
Las caracterısticas del ciclo de vida evolutivo es:
● Se descompone el sistema en modulos funcionales ● Interaccion ‑ sucesiva transformacion de 䟀lujos de datos ● Los datos llegan a un 䟀iltro, se transforman y son pasados a traves de tubos al
siguiente 䟀iltro
Página 29 de 65
● Un unico 䟀iltro puede pasar datos a multiples tubos y recibir datos de multiples tubos
● Cada 䟀iltro es independiente del resto y no conoce la identidad de los otros 䟀iltros ● La transformacion del 䟀iltro puede comenzar antes de terminar de leer la entrada ● Respetando el grafo, no importa la secuencia (paralelismo)
Las ventajas del ciclo de vida son:
● Se pueden reutilizar los 䟀iltros. ● Es intuitivo pensar en secuencias de procesamientos de datos. ● Agregar nuevas transformaciones de forma que el sistema evolucione es sencillo.
Y sus desventajas son:
● Acordar cual es el formato de los datos. ● Tiene que ser “generico” si los componentes son reusados. ● Ine䟀iciente si hace mas de lo que debe o si los 䟀iltros repiten chequeos
Los datos de entrada son transformados a traves de una serie de componentes computacionales en los datos de salida. Un patron tuberıa y 䟀iltro tiene un grupo de componentes llamados 䟀iltros, conectados por tuberıas que transmiten datos de un componente al siguiente. El 䟀iltro esta disenado para recibir entrada de datos de una forma y producir la salida de datos de una forma especı䟀ica como se muestra en la 䟀igura 3.10.
Figura 3.10 : Tuberías y filtros
Página 30 de 65
3.2.4. Diseño Detallado
En esta seccion se describe el diseno de forma mas profunda, describiendo maquinas de estado con sus transiciones y condiciones de disparo.
Conversión de señal análoga entregada por los pads a formato MIDI
Esta etapa lee el puerto adc y transforma dicha senal a formato el cual el controlador MIDI puede interpretar.
Máquina de estado
La 䟀igura 3.11 describe la maquina de estado disenada para esta etapa, a su vez la tabla 3.1 se describe dicha maquina de estado.
Figura 3.11: Máquina de estado de etapa : conversión de señal análoga entregada por los pads a formato MIDI
Página 31 de 65
Tabla 3.1 : Descripcion de maquina de estado de etapa : conversion de senal analoga entregada por los pads a formato MIDI.
Transicion Estado Anterior Estado futuro Descripcion
Sensor>Umbral Lectura de puerto analogico
Toma de muestra periodica
Valor leıdo por el puerto analogico es mayor al valor Umbral(cuyo calculo se describe en la ecuacion 3.4), que signi䟀ica que hubo un golpe en el pad.
Muestras_Tomadas==Numero_de_muestras
Toma de muestras periodica
Transformacion a protocolo MIDI
Se tomaron n muestras predeterminadas.
Progreso==1 Transformacion a protocolo MIDI
Lectura de puerto analogico
Se tranformo a protocolo MIDI y se envio para reproducir.
Las consideraciones de diseno para esta maquina de estado son las siguientes:
Cada vez que el estado “Toma muestra periodica” se active , se tomaran 1 muestras cada 0.5ms durante 10ms, debido a que la duracion maxima de un golpe es de 20ms, siendo los primeros 10ms donde se encuentran los datos utiles (se obtuvo el valor mediante pruebas obtenidas por el autor).
El numero de muestras tomadas se calculo siguiendo el teorema de Nyquist considerando una frecuencia maxima de 1KHz(se obtuvo el valor mediante pruebas obtenidas por el autor) para la senal 䟀iltrada , lo cual nos da un periodo de muestreo de como describe la ecuacion 3.1.
PeriodoMuestreo=2*1k[Hz]=2k[Hz]. (3.1)
Lo cual equivaldrıa a un tiempo descrito en la ecuacion 3.2.
k[Hz] = 0.5m[s]. (3.2)21
Página 32 de 65
Lo cual nos darıa el resultado de la ecuacion 3.3
m[s]= 20 datos por golpe. (3.3)100.5
Para el caluclo del umbral se 䟀ijo en el valor de voltaje mınimo admisible para considerar que el pad fue golpeado, el cual fue de 600mV.
Realizando la regla de tres:
= 744.47 (3.4)3.30.6 4096*
Página 33 de 65
Configuración y comunicación con la interfaz gráfica.
Esta etapa presenta los diferentes menus del prototipo que se presentara en el display alfanumerico como se muestra en la maquina de estado de la 䟀igura 3.12 y se describen en la tabla 3.2.
Figura 3.12: Máquina de estado de etapa de configuración y comunicación con la interfaz gráfica
Tabla 3.2 : Descripcion de maquina de estado de etapa : con䟀iguracion y comunicacion con la interfaz gra䟀ica.
Transicion Estado Anterior Estado futuro Descripcion
ENTER Pantalla Inicial Pantalla de con䟀iguracion
Usuario presiona tecla “ENTER” y se presenta pantalla de con䟀iguracion.
CANCEL Pantalla de con䟀iguracion
Pantalla Inicial Usuario presiono accidentalmente la tecla Enter y desea volver a la pantalla principal.
UP Pantalla de con䟀iguracion
Con䟀iguracion de Pads
Usuario desea con䟀igurar sonidos de los pads.
Página 34 de 65
CANCEL Con䟀iguracion de Pads
Pantalla de con䟀iguracion
Usuario presiono accidentalmente la tecla UP y desea volver a la pantalla de con䟀iguracion.
DOWN Con䟀iguracion de Pads
Con䟀iguracion metronomo
Usuario desea con䟀igurar el tempo del metronomo.
CANCEL Con䟀iguracion metronomo
Pantalla de con䟀iguracion
Usuario presiono accidentalmente la tecla DOWN y desea volver a la pantalla de con䟀iguracion.
ENTER Con䟀iguracion de Pads
Pantalla Inicial Usuario acabo de con䟀igurar el sonido de los pads.
ENTER Con䟀iguracion metronomo
Pantalla Inicial Usuario acabo de con䟀igurar el metronomo.
Diagrama General
La interfaz gra䟀ica guardara los datos en la memoria 䟀lash interna del micro como se
muestra en la 䟀igura 3.13.
Figura 3.13: Diagrama simplificado de Firmware
Página 35 de 65
3.3 Implementación de Hardware
En esta etapa se describe el diseno del PCB basado en la Norma IPC221A[10], la cual fue aprendida en la materia de Diseno para manufacturabilidad y en la materia de Compatibilidad electromagnetica de la Carrera de Especializacion de Sistemas Embebidos.
3.3.1 Diseño de placa de circuito impreso(PCB)
Norma IPC221A
Cuando se esta disenando un “PCB” es importante basarse en parametros y normas ya establecidos para la realizacion de la misma, para lograr un producto de calidad,con estandares orientados a la productividad y e䟀iciencia.
La norma IPC221A, brinda da un conocimiento y criterio tecnico validados por la experiencia; proporcionando un lenguaje comun para describir atributos de calidad en el diseno y fabricacion de los circuitos impresos y brinda garantıas al contar con un nivel de䟀inido y conocido de calidad en los productos electronicos.
Los criterios de implementados de la norma se describen en la tabla 3.3.
Tabla 3.3 : Breve descripcion de parametros de la norma IPC221A y como se la utilizo .
Item Criterio de la norma Forma implementada
Diagrama esquematico Ordenado, logico y distribuido
Para el diseno del esquematico se utilizaron modelos jerarquicos.
Sistemas de unidades Puede ser en milımetros o mils.
Se implemento con unidades imperiales, en vista que utilizada universalmente por disenadores y fabricantes de PCB ( “mil” (o “thou”)es una milesima de pulgada).
Para evitar con䟀lictos si la dimension metrica estaba dada en un valor inexacto se busco una aproximacion bastante efectiva al equivalente en mils para evitar confusiones.
Página 36 de 65
Para todos los aspectos de diseno de PCB existe un punto de referencia que es de 100 mils.
Grids 100 mils es un estandar para la distribucion de grids que se acoplan perfectamente al trabajo con los ori䟀icios de perforacion.
Se utilizo grids de 50 mils para el ruteo de pistas, y hasta 25 mils para el diseno de componentes.
50 mils es un estandar general para la construccion de pistas. Para un trabajo mas 䟀ino se podrıa trabajar con 25 mils o menos.
Ancho de pista El tamano de estas depende de los requerimientos electricos del circuito(descritos en la tabla 3.4), del espacio disponible para enrutamiento y del “clearance”y en general de la preferencia personal del disenador.
Se utilizo como maximo 1 A con una placa de cobre de 1oz.
Para un buen inicio del diseno se puede utilizar el valor de 25 mils para pistas generales, 50 mils para pistas de poder o tierra y 10‑15 mils para las pistas de circuitos integrados o pads.
Se implemento como pista mınima 15mils.
Pads El pad debe ser por lo menos 1.8 veces el diametro del ori䟀icio; o por lo menos 0.5mm mas grande.
Se disenaron pads cuyo diametro era mınimo de 2 y maximo de 2.5 mas grande que el diametro de su ori䟀icio
Página 37 de 65
Clearance Un valor lımite muy bueno para trabajar es 15mils, con 8 y 10 mils el diseno se podrıa tornar un poco denso.
Se tomo como clearence mınimo 15 mils
Enrutamiento Conservar el tamano de “net” lo mas corto posible, es importante recordar que mientras mas extensa es la longitud de la pista, mayor el valor de resistencia,inductancia y capacitancia.
Se diseno las pistas lo mas cortas posibles
Las pistas deben tener solo angulos de 45 grados. Evitar el uso de angulos rectos, y bajo ninguna circunstancia utilice un angulo mayor que 90 grados.
La mayorıa solo tenıan angulos de 45 grados.
Siempre hacer coincidir la pista al centro del pad, no hacer que la pista y el pad simplemente se rocen.
Se coincidio la pista al centro del pad.
Conservar las pistas de poder y tierra, lo mas cerca una de otra como sea posible
Se conservo las pistas de poder y tierra, lo mas cerca una de otra como sea posible con los planos de tierra.
Conservar la simetrıa de las cosas, desde un punto estetico es muy agradable un diseno con simetrıa tanto en la distribucion de
Se intento ser lo mas simetrico posible
Página 38 de 65
componentes como en el enrutamiento.
Tabla 3.4 : Tamano de pistas en funcion a los requerimientos electricos del circuito
3.3.2 Procedimiento de orden y ruteado de los componentes
1. Se coloco separadamente los bloques a un lado de la placa y se los ruteo como se observa en las 䟀iguras 3.14‑3.18.
2. Se identi䟀ico las pistas crıticas en la etapa analogica se las ruteo primero como se muestra en la 䟀igura 3.19, en la cual se muestra una pista crıtica ya que corresponde a lala salida del ampli䟀icador operacional.
3. Se identi䟀ico el diseno de pistas de alimentacion en el circuito digital y se las realizo primero como se muestra en la 䟀igura 3.20, en la cual se muestra una pista crıtica ya que corresponde a la alimentacion.
4. Se llevo los bloques ordenadamente hacia la placa. 5. Se realizo las pistas restantes y conexiones de poder entre los bloques. 6. Se realizo un ordenado general de la placa como se muestra en la 䟀igura 3.21.
Página 39 de 65
Figura 3.14: Implementación de la interfaz gráfica
Figura 3.15: Implementación de metrónomo
Figura 3.16: Adquisición y tratamiento de señal
Figura 3.17:Salida MIDI
Página 40 de 65
Figura 3.18: MCU
Figura 3.19: Ejemplo de pista crítica análogica
Figura 3.20: Ejemplo de pista crítica digital
Página 41 de 65
Figura 3.21: Orden de los componentes según la frecuencia y tipo
3.3.3. Resultado final:
El resultado 䟀inal se presenta en la 䟀igura 3.22, se coloco la alimentacion lo mas cerca posible del circuito de mas alta frecuencia que en este caso es el LPCxpresso.
Figura 3.22: Resultado final
Página 42 de 65
3.4 Implementación de Firmware
Para la implementacion de Firmware se utilizo el sistema operativo FreeRtos por las siguientes razones [11]:
● Kernel de tiempo real totalmente gratuito ● Ofrece codigo abierto al ser software libre. ● Un hilo puede suspender su ejecucion para que otro hilo se ejecute sin que el hilo
original pierda su contexto. ● Aumenta la con䟀iabilidad del sistema ● Tiempo de respuesta al golpe de los pads es un parametro crıtico. ● El uso de un RTOS contribuye a aumentar el determinismo del sistema. ● Facilitar la gestion de funciones y hacer mas facil la implementacion de la
arquitectura seleccionada.
Cuyas caracterısticas son:
● Disenado para ocupar poca memoria, ser simple y facil de usar. ● La estructura del codigo es muy portable. ● Permite el uso de procesos y corrutinas por separado o ambos a la vez. ● Ofrece un potente mecanismo de traza de ejecucion y optimizacion. ● Facilitan aplicaciones de prueba (demos) precon䟀iguradas para el RTOS.
Página 43 de 65
3.4.1 Capas de abstracción
Las capas de abstraccion de 䟀irmware se observan en la 䟀igura 3.23
Figura 3.23: Capas de abstracción de Firmware
Cuyo funcionamiento son:
● CSP(Core Support Package): Capa de mas bajo nivel, se encarga de manejar los registros internos del procesador y perifericos del microcontroldador.
● BSP(Board Support Package): Capa de bajo nivel, posee herramientas provistas por LPCXPRESSO para poder manejar de mejor manera la capa CSP, en esta se implementaron los “Drum drivers”,el cual contiene funciones para poder manejar los diferentes perifericos usados en el proyecto y la memoria 䟀lash interna del microcontrolador, con el proposito facilitar el cambio de microcontrolador (de ser necesario en aplicaciones futuras).
● Midelware: Capa de nivel medio, se encarga de gestionar la BSP mediante funciones mas entendibles al programador.
Página 44 de 65
● FREERTOS kernel: Posee todas las funciones de Freertos ( task, queue, semaphores, scheduler, etc),que se encargan de la gestion de tareas, la comunicacion y sincronizacion entre tareas.
● Drum Application: Capa de alto nivel, la cual se escribio el programa principal del prototipo.
3.4.2 Bloques funcionales
El programa se dividio en bloques funcionales, y cada uno ocupo un proyecto de FreeRtos independiente,despues se los unio como se muestra en la seccion 3.4.3 en las 䟀iguras 3.24 y 3.25 . En la seccion 3.4.4 en la tabla 3.8 se muestra la asignacion de prioridades de cada tarea.
Adquisición , tratamiento de señal y reproducción MIDI
Basado en el diseno de la seccion 3.2.4, las tareas implementadas para este bloque se describen en la tabla 3.5.
Tabla 3.5 : Tareas implementadas de la etapa “Adquisicion y tratamiento de senal”
Tarea Función
vTaskTomaMuestra Envıa las combinaciones digitales al multiplexor analogico.
Actualiza la maquina de estado de la 䟀igura 3.11.
Envıa las muestras a “vTaskProcesaMuestra” mediante la cola xQueueMuestras.
vTaskProcesaMuestra Permanece bloqueada hasta que recibe un dato de “vTaskTomaMuestra” mediante la cola xQueueMuestras.
Procesa la senal.
Envıa el dato a “vTaskReproduceMidi” mediante la cola xQueueMIDI.
vTaskReproduceMidi Permanece bloqueada hasta que recibe un dato de “vTaskProcesaMuestra” mediante la cola xQueueMIDI.
Lee la memoria 䟀lash del microcontrolador el sonido asignado al pad golpeado.
Arma el paquete MIDI y envıa a reproducir..
Página 45 de 65
Interfaz Gráfica
Basado en el diseno de la seccion 3.2.4, las tareas implementadas para este bloque se describen en la tabla 3.6.
Tabla 3.6: Tareas implementadas de la etapa “Interfaz Gra䟀ica”
Tarea Descripción
vTaskMuestraMenu Permanece bloqueada hasta que vTaskMenus le envie el dato a mostrar por la cola xQueueLCD.
Se encarga de mostrar mensajes y manejar el driver del “display” alfanumercio.
vTaskMenus Actualiza la maquina de estado de la 䟀igura 3.1.2.
Si el usuario cambia alguna con䟀iguracion la tarea guarda en 䟀lash el cambio.
Se encarga de enviar los mensajes para mostrar a la tarea vTaskMuestraMenu, mediante la cola xQueueLCD.
Si se apaga o cambia la con䟀iguracion del metronomo enviara por la cola xQueueMetronomo, a la tarea vTaskLeeCon䟀iguracionMetr la nueva con䟀iguracion.
Metrónomo
Las tareas implementadas para este bloque se describen en la tabla 3.7.
Tabla 3.7: Tareas implementadas de la etapa “Metronomo”
Tarea Descripción
vTaskMetronomoH Permanece bloqueada hasta que el timer la libere el semaforo “Semaforo_tono_alto”.
Reproduce el tono agudo del metronomo.
vTaskMetronomoL Permanece bloqueada hasta que el timer libere el semaforo “Semaforo_tono_bajo”.
Reproduce el tono grave del metronomo.
vTaskLeeCon䟀iguracionMetr Permanece bloqueada hasta que la tarea externa
Página 46 de 65
vTaskMenus le envie un cambio de con䟀iguracion por la cola xQueueMetronomo.
3.4.3 Integración de bloques funcionales
Los bloques funcionales se los integro como se muestra en la 䟀igura 3.24
Figura 3.24: Integración de bloques funcionales del Firmware
Cuyas tareas interactuan como se muestra en al 䟀igura 3.25.
Página 47 de 65
Figura 3.25: Integración de tareas en FreeRTos
3.4.4 Prioridades de tareas
Se asignaron un total de cinco prioridades, las prioridades de cada tarea se describen en la tabla 3.8.
Tabla 3.8: Prioridades de cada tarea del prototipo
Tarea Prioridad Justificación
vTaskTomaMuestra 1 Es la tarea mas crıtica ya que sensa continuamente el puerto analogo a espera de un golpe.
VTaskMenus 2 Esta sensando el teclado en espera de algun cambio de con䟀iguracion.
vTaskMetronomoH 3
Si el metronomo esta activado estara en estado ready gran parte del tiempo, si el metronomo esta apagado estara en el estado “waiting” casi todo el tiempo de ejecucion del programa.
vTaskMetronomoL
Página 48 de 65
vTaskReproduceMidi 4
Estan en estado “waiting” gran parte del tiempo.
vTaskProcesaMuestra
vTaskMuestraMenu 5 Estan en estado “waiting” casi todo el tiempo de ejecucion del programa.
vTaskLeeCon䟀iguracionMetr
Página 49 de 65
CAPÍTULO 4
Ensayos y resultados En este capıtulo se describen los diferentes ensayos y resultados que se realizaron del prototipo, las cuales sirvieron de base para poder realizar las conclusiones y recomendaciones en el capıtulo 5.
4.1. Ensayos y resultados de Hardware
Los ensayos se realizaron siguiendo los bloques funcionales de la 䟀igura 3.1, y se describen en la tabla 4.1.
Tabla 4.1: Ensayos y resultados de hardware.
Dispositivo a ensayar
Ensayo realizado
Resultado esperado
Resultado obtenido
Corrección planteada/implementada
Adquisicion y tratamiento de senal
Pads Se conecto la salida de los pads a un osciloscopio y se procedio a lo golpearlo.
Forma de onda similar a la 䟀igura 3.3
Forma de onda de la 䟀igura 4.1
La onda entregada poseıa picos de voltajes hasta de 20V por lo cual se implemento un circuito supresor de sobretension
Supresor de sobretension
Se armo un circuito para cortar la sobretension que entregaban los sensores piezoelectricos.
Forma de onda de la 䟀igura 4.2
Para hacer mas facil la programacion se necesita detectar el valor pico por lo que se implemento un circuito que realiza una envolvente a la senal detectando valores pico Se conecto la
salida de los pads a un osciloscopio y se procedio a lo golpearlo
Página 50 de 65
Detector de Pico
Se armo un circuito para detectar picos en la senal del sensor piezo electrico.
Forma de onda similar a la Figura 3.4
Forma de onda de la 䟀igura 4.3
‑
Se conecto la salida de los pads a un osciloscopio y se procedio a lo golpearlo
Circuito Multiplexor de senal analogica
Se conecto la entrada digital del multiplexor a un “dip‑switch”, se variaron las combinaciones, se inyectaron diferentes tensiones por los diferentes canales y se midio el voltaje mediante un tester.
En la Tabla 4.2 se describe los resultados de este ensayo de mejor manera.
‑
MCU
LPCxpresso 1769
Se le cargo el programa “blinking”, el cual hace destellar el led de la placa.
El led de la placa titilo periodicamente
El led titilaba segun lo esperado
‑
Salida MIDI
MIDI Mediante un programa cargado en el
Reproduccion de sonidos de baterıa.
Se reprodujeron los sonidos
‑
Página 51 de 65
microcontrolador se envio 8 sonidos diferentes con volumen distinto al computador
enviados mediante el programa MidiPlayer.exe
Interfaz Gra䟀ica
Teclado Se encendıa/apagaba un led con cada tecla presionada
Encender/apagar leds con cada tecla presionada
Se prendieron los leds segun lo esperado
‑
Display alfa‑numerico
Mediante un programa cargado en el microcontrolador se enviaron comandos para visualizar una frase en el display
Se visualice la frase Con䟀ig:Enter Metronomo:85
Se visualizo la frase como se muestra en la 䟀igura 4.4
Se veri䟀ico en la hoja de datos los pines de salida, los cuales dos de los siete necesitaba una resistencia de “pull‑up” para funcionar
Metronomo
Buzzer Mediante un programa cargado en el microcontrolador se enviaron pulsos con distintas frecuencias al “Buzzer”
Sonido agudo con alta frecuencia, sonido grave con baja frecuencia
Se obtuvieron los sonidos esperados.
Se tuvo que ajustar el valor del potenciometro de 10k a 1k, ya que, el sonido se cortaba con poco desplazamiento de este.
PCB
PCB Pruebas punto a punto de integrados soldados mediante un tester.
Continuidad en todas las pistas del circuito impreso
Todos los pines tenıan continuidad
‑
Página 52 de 65
Reguladores de tension
Se midio el voltaje a la salida de los reguladores de 5V y 3.3V mediante un tester.
5V y 3.3V 4.98 V y 3.25 V lo cual son valores aceptables para la alimentacion.
‑
Figura 4.1: Voltaje de sensor piezoeléctrico
Página 53 de 65
Figura 4.2: Voltaje de sensor piezoeléctrico aplicado el supresor de sobretensión.
Figura 4.3: Voltaje de sensor piezoeléctrico aplicado el detector de pico
Página 54 de 65
Figura 4.4: Ensayo de LCD alfanumérico
Tabla 4.2: Ensayo de Multiplexor analogico
Combinación
Voltaje aplicado a pines(V) Voltaje medido(V)
A B C X0 X1 X2 X3 X4 X5 X6 X7 X
0 0 0 3.3 2.8 2.5 2 1.62 1.2 0.78 0.36 3.3
0 0 1 2.8
0 1 0 2.5
0 1 1 2
1 0 0 1.62
1 0 1 1.2
1 1 0 0.78
1 1 1 0.36
Página 55 de 65
4.2. Ensayos y resultados de Firmware
Las pruebas realizadas fueron basadas en el diseno presentado en la seccion 3.2.4 y sobre los tres bloques funcionales del Firmware descritos en la seccion 3.4,como muestra la 䟀igura 3.24.
Para las pruebas de 䟀irmware se “debugeo” los bloques funcionales y al 䟀inal el programa principal.
4.2.1 Prueba de bloques funcionales
Las pruebas de cada bloque funcional se describe en la tabla 4.3.
Tabla 4.3: Ensayo de bloques funcionales de 䟀irmware
Tarea Ensayo realizado Resultado esperado
Resultado obtenido
Adquisicion, tratamiento de senal y envıo MIDI
vTaskTomaMuestra Se golpeo el Pad y se reviso la variable “Dato_muestreado.Dato”, la cual alamacena los 20 valores medidos.
Valores superiores al umbral, el cual se de䟀inio en laecuaci[on 3.4
Se obtuvieron los valores mostrados en la 䟀igura 4.5
vTaskProcesaMuestra
Se reviso la variable “Valor_Pico” y se comparo con “Dato_muestreado. Dato” para ver que contenıa la media aritmetica.
Media aritmetica de “Dato_muestreado.Dato”.
Se obtuvo la media aritmetica como se muestra en la 䟀igura 4.6.
vTaskReproduceMIDI
Se reviso el correcto empaquetamiento de datos posteriores a enviar por el puerto MIDI.
Dato similar a la tabla 2.3.
Se obtuvo valores mostrados en la 䟀igura 4.7.
Interfaz gra䟀ica
vTaskMenus Se cambio la con䟀iguracion del
Cambios guardados
Los datos se guardaron
Página 56 de 65
metronomo y de pads.
correctamente. correctamente como se muestra en la 䟀igura 4.8.
Se reinicio el sistema para constatar que los datos fueron guardados en la 䟀lash interna del microcontrolador
vTaskMuestraMenu Mediante el teclado se navego por los diferentes menus.
Menus desplegados correctamente.
Se desplegaron los menus correctamente, como se muestra en la tabla 4.4.
Metronomo
vTaskLeeCon䟀iguracionMetr
Se cambio el tiempo del metronomo.
Variacion en la variable Metr_Bpm, la cual es responsable de con䟀igurar el tempo del metronomo.
Se observo en el Lcd el cambio del tempo del metronomo como se observa en la 䟀igura 4.9
vTaskMetronomoL Se coloco un “breakpoint” en la funcion xSemaphoreTake(Semaforo_tono_bajo,0) para visualizar que se libero el semaforo desde la funcion xSemaphoreGiveFromISR(Semaforo_tono_bajo,&xHigherPriorityTaskWoken).
El programa se detenga en el breakpoint colocado.
El programa se detuvo en el breakpoint como se muestra en la 䟀igura 4.10
vTaskMetronomoH Se coloco un “breakpoint” en la funcion xSemaphoreTake(Semaforo_tono_alto,0)
El programa se detuvo en el breakpoint como se muestra en la 䟀igura 4.11
Página 57 de 65
para visualizar que se libero el semaforo desde la funcion xSemaphoreGiveFromISR(Semaforo_tono_alto,&xHigherPriorityTaskWoken);
Figura 4.5: Valores guardados en variable Dato_muestreado.Dato
Página 58 de 65
Figura 4.6: Valores guardados en la variable Valor_Pico
Figura 4.8: Paquete MIDI enviado
Tabla 4.4: Menús del prototipo
Página 59 de 65
Página 60 de 65
Figura 4.9: Prueba de flash interna del microcontorlador
Figura 4.10: Liberación de semáforo Semaforo_tono_bajo
Figura 4.1: Liberación de semáforo Semaforo_tono_alto
Página 61 de 65
CAPÍTULO 5
Conclusiones, recomendaciones y mejoras futuras
5.1 Conclusiones
Analizando los objetivos de䟀inidos en la seccion 1.2 , los ensayos y resultados del capıtulo cuatro ası como los requerimientos de䟀inidos en la seccion 2.1 y el alcance de䟀inido en la seccion 1.3, se llego a las siguientes conclusiones:
● El auspiciante construyo la baterıa electronica sobre una estructura metalica con ocho pads los cuales incluyen un sensor piezoelectrico cada uno y un conector para jack de 3.5mm.
● Para el controlador del prototipo se adquirio la placa de desarrollo LpcXpresso1769. ● Se construyo el PCB de manera profesional, cuya construccion fue realizada por un
proveedor local el cual posee certi䟀icacion ISO 9001‑2008. ● Se implemento un metronomo basico con dos tonos no con䟀igurables y tiempo
variable. ● La interfaz gra䟀ica fue implementada mediante un lcd alfanumerico, el cual permite
una navegacion intuitiva por los diferentes menus de usuario,ası como un teclado de membrana reciclado.
● Se construyo el prototipo de baterıa electronica basado en los conocimientos adquiridos a lo largo de la especialidad de sistemas embebidos,normas de diseno como la IPC221A para las etapas de hardware, y un sistema operativo ampliamente utilizado, como lo es FreeRtos para la etapa de 䟀irmware.
● Se comprobo el funcionamiento del protocolo MIDI mediante la conexion de un cable conversor MIDI‑USB conectado al controlador y al computador (el cual tenıa cargado un programa para reproducir comandos MIDI).
● Se comprobo lo robusto del microcontrolador Cortex M3,y del paquete LPCopen, los cuales facilitaron mucho la implementacion de 䟀irmware, reduciendo tiempo de desarrollo.
● Se diseno el 䟀irmware lo mas modular posible,y orientado a capas, facilitando el entendimiento del codigo, ası como la posible migracion de este a otros microcontroladores de ser necesario.
● El ciclo de vida elegido facilita el desarrollo para futuras mejoras, sin la necesidad de tener mucho personal trabajando en su evolucion, detectando facilmente los puntos debiles en cada version para mejorarlos.
Página 62 de 65
● La implementacion de la norma IPC221A facilito el diseno de la placa de circuito impreso y redujo el ındice de falla por parte del hardware, ası como reducir los niveles de EMI/EMC para futuras certi䟀icaciones.
● La plani䟀icacion del proyecto sirvio como una base solida para la construccion del prototipo, dando objetivos claros a realizar mes a mes,los cuales se intentaron cumplir segun lo plani䟀icado.
● La veri䟀icacion y validacion del prototipo fue realizada por el autor y el auspiciante, concluyendo que el dispositivo prototipo tiene la capacidad de seguir al siguiente punto de desarrollo, o como el ciclo de vida lo de䟀ine, puede “evolucionar” a otra version.
5.2 Recomendaciones y mejoras futuras
En base a los ensayos realizados en el capıtulo cuatro se obtuvieron las siguientes recomendaciones y mejoras futuras tanto de hardware como de 䟀irmware, por lo que en hardware se recomienda:
● Mantener la tension del sensor piezoelectrico en el valor pico maximo hasta que el microcontrolador haya leıdo el valor, para ası tener valores mas precisos.
● Disenar el pcb integrando el microcontrolador lpc1769 en vez de usar el lpcxpresso, para poder abaratar costos.
● Remover el hardware correspondiente al metronomo ya que se puede gestionar este mediante comandos MIDI.
● Usar componentes smd en todo el circuito de ser necesario, para ası reducir el tamano y abaratar costos.
● Rede䟀inir los puertos del lcd alfanumerico, ya que dos pines son de tipo “open‑drain”.
En 䟀irmware en cambio se recomienda:
● Integrar mas compases al metronomo. ● Implementar DMA para la lectura del puerto analogico. ● Implementar algoritmos de deteccion de errores mediante “self‑tests” del
controlador. ● Implementar opciones de con䟀iguracion de tipos de baterıa, el cual consiste en
guardar un numero x de baterıas en memoria 䟀lash con sus respectivas con䟀iguraciones, para que el usuario tenga su baterıa prede䟀inida guardada.
● Manejar los posibles “Error‑Handlers” que puedan existir en el transcurso de la ejecucion como por ejemplo el “HardFault Handler” o el “IntDefaultHandler”.
● Modularizar mas la etapa de asignacion de pads , ya que este solo esta version solo esta disenada para trabajar con ocho pads.
Página 63 de 65
● Analizar las prioridades de las tareas de manera mas exhaustiva, para evitar “starving” entre ellas cuando las tareas sigan creciendo.
● Analizar el ciclo de vida de 䟀irmware en cada version funcional, y tomar la decision de seguir implementandolo o no.
Las mejoras futuras que se plantea por el autor y el constructor de los pads fueron:
● Integrar un dispositivo capaz de transformar los comandos MIDI en sonido. ● Incluir un puerto usb en el controlador, para conectar este a una PC y no necesitar el
cable conversor USB‑MIDI. ● Disenar un gabinete personalizado para el controlador. ● Integrar mas de ocho pads. ● Reducir el tamano del PCB lo que mas se pueda. ● Realizar la documentacion del diseno electronico segun lo aprendido en la materia
“Diseno de circuitos impresos”. ● Incluir ritmos predeterminados para que el usuario los pueda reproducir. ● Incluir un conector para audıfonos para permitir que el usuario toque sin molestar a
personas cercanas. ● Realizar el diseno orientado a montaje mediante una maquina “pick and place” y
soldado por horno. ● Documentar procesos para el diseno de hardware y 䟀irmware, para poder
automatizar lo que mas se pueda el proceso de diseno. ● Enviar a fabricar un teclado de membrana personalizado para el controlador. ● Utilizar un circuito basado en NFC para poder programar el microcontrolador
mediante una aplicacion movil. ● Investigar y utilizar mas la API de FReeRtos para optimizar codigo.
Página 64 de 65
Bibliografía [1]Batera electronica.Wikipedia, the free encyclopedia. [Online]. Available:, https://es.wikipedia.org/wiki/Bater%C3%ADa_electr%C3%B3nica .
[2] What´s MIDI?. [Online]. Available:, https://www.midi.org/
[3] Sergi Jorda Puig, Audio digital y MIDI, Guıas Monogra䟀icas Anaya Multimedia, Madrid 1997(cap 7‑10 )
[4]Efecto piezoelectrico.[Online]. Available:, .
https://gabrielamorales.wordpress.com/sensores‑piezoelectricos/
[5]Piezoelectric sensor.[Online]. Available:,
http://www.䟀indmems.com/wikimems‑learn/piezoelectric‑sensor
[6] LPC1769/68/67/66/65/64/63 Datasheet (pp 1‑3).[Online]. Available:,
http://www.nxp.com/documents/data_sheet/LPC1769_68_67_66_65_64_63.pdf
[7] Especi䟀icacion midi.[Online]. Available:,
https://www.midi.org/speci䟀ications/item/midi‑din‑electrical‑speci䟀icati.on )
[8] Lpcxpresso 1769.[Online]. Available:,
https://www.embeddedartists.com/products/lpcxpresso/lpc1769_xpr.php
[9]Estilos arquitectonicos.[Online]. Available:,
https://www.䟀ing.edu.uy/tecnoinf/mvd/cursos/ingsoft/material/teorico/is05‑ArquitecturaDeSoftware.pdf
[10]Norma IPC221A. [Online]. Available:,
http://sisko.colorado.edu/CRIA/FILES/REFS/Electronics/IPC_2221A.pdf
[11] Why choose FreeRTOS?.[Online]. Available:,
http://www.freertos.org/#whychoose
Página 65 de 65