f Proyecto: Estetoscopio ~ Ingenieria a nivel industrial

Visita mi canal de youtube

lunes, 17 de julio de 2017

Proyecto: Estetoscopio


Introducción

Nuestro proyecto es un estetoscopio digital que muestra los latidos de su corazón en cualquier televisión. También calcula latidos por minuto y le avisa si su tasa cae fuera de un rango especificado.

En el nivel más alto, el diseño de nuestro proyecto se centra alrededor de un circuito de adquisición, procesamiento de datos en dos MCU y la salida en una pantalla de televisión. La primera parte del estetoscopio es la unidad de adquisición, que consiste en un estetoscopio real acoplado con Un micrófono y un circuito amplificador. El micrófono capta la señal audible del cuerpo que es acústicamente amplificada por el estetoscopio. Después de eso, polarizamos y establecemos la ganancia de la señal usando un amplificador operacional para que el ADC en el MCU Será capaz de captar la señal. Los datos analógicos serán muestreados independientemente por las dos MCU a una velocidad apropiada para la visualización en el televisor (CPU1) y una velocidad suficiente para capturar las características apropiadas de la señal para la detección de batido (CPU2 ) . CPU2, utiliza un esquema de umbral móvil para detectar los latidos cardíacos reales, y de los que derivan la frecuencia cardíaca. Entonces la señal se dispara al televisor, que también muestra los datos pertinentes, como latidos por minuto. En el HyperTerm se muestra la información adicional. Si procede, sonará un zumbador si su frecuencia cardíaca cae fuera de un rango especificado.

[ Volver arriba ]
Diseño de alto nivel
La Idea y el Conocimiento Requerido
La idea de nuestro proyecto es más bien nuestra propia, y es realmente sólo una prueba de concepto y una buena demostración de las capacidades de la Mega32. Hay muchos instrumentos disponibles comercialmente para medir su ritmo cardíaco, incluso con una precisión mucho mayor que nosotros Obtener. Pensamos que sería interesante implementar una pieza utilizable de equipo que pone la frecuencia cardíaca en el televisor y obtiene los ritmos correctos por minuto (BPM) razonablemente bien.

No hay conocimiento necesario para entender nuestro proyecto más allá del contenido de ECE 476, excepto tal vez el de filtros de paso bajo. Nuestro circuito de adquisición contiene un filtro de paso bajo analógico y la segunda MCU que calcula el BPM real utiliza un sistema digital de bajo- . Las características del filtro analógico y la matemática del filtro digital aparecen en la sección de diseño del programa / hardware, donde se pueden ver en su contexto. También es bueno saber que hay un punto principal para cada filtro latido del corazón.
Diseño general
En nuestro proyecto final implementamos un estetoscopio digital. Al más alto nivel, el diseño de nuestro proyecto se centra alrededor de un circuito de adquisición, procesamiento de datos en dos MCU y la salida en una pantalla de televisión. El estetoscopio detecta y muestra el latido del corazón Y BPM. La primera parte del estetoscopio es la unidad de adquisición, que consiste básicamente en un estetoscopio real acoplado con un micrófono y un circuito amplificador. El micrófono capta la señal audible del cuerpo que es acústicamente amplificada por el estetoscopio. Después de eso, establecemos la ganancia de la señal usando un amplificador operacional para que el ADC en la MCU pueda captar la señal. Esto es necesario porque la cantidad de señal que recibe del latido del corazón en su cuello es probablemente Mucho más que el latido del corazón en su muñeca, por ejemplo.

Los datos analógicos serán muestreados independientemente por las dos MCU a una velocidad apropiada para la visualización en el televisor (CPU1) y una velocidad suficiente para capturar las características apropiadas de la señal para la detección de latidos

(CPU2). Con datos uniformes para trabajar con la CPU2, escribimos un esquema para detectar el latido cardíaco real, y de ahí derivamos la frecuencia cardiaca. Existen muchos métodos que podríamos usar para implementar esto incluyendo mínimos / máximos absolutos, Promedio de min / max y de Fourier (frecuencia) de la señal. Nuestro enfoque básico utiliza un enfoque de umbral móvil que se detalla en detalle en la sección de software a continuación. La señal de latido y la frecuencia (latidos por minuto) A la pantalla del televisor, similar al laboratorio ECE476 4. La figura 1 muestra la configuración básica de todo el proyecto.



Compensaciones de hardware y software
Un ejemplo de una compensación de hardware / software en nuestro proyecto fue nuestra decisión de eliminar el control de ganancia automático. Incluimos esta característica en nuestra propuesta porque mejoraría la robustez del estetoscopio digital aumentando el número de áreas en su cuerpo que podría Tomar una lectura. (es decir, la señal de su cuello es diferente de su muñeca.) Básicamente, cuando hemos considerado hardware AGC demasiado difícil, hemos decidido implementar en software. Sin embargo, resultó que realmente didn T la necesidad en absoluto, puesto que la salida del circuito de la adquisición en el cuello era relativamente estable y constante, incluso con diversos usuarios. Podríamos haber soplado la salida del micrófono para arriba en software, pero decidimos utilizar un op- Amp para obtener la resolución en la conversión analógica a digital. También, los latidos de los puntos más débiles en el cuerpo, como la muñeca, simplemente no salió a parecerse a los golpes en absoluto.

Otro inconveniente fue la forma en que implementamos la función de silencio para el zumbador de alerta. En lugar de tener unas puertas lógicas colgando de las líneas de control de alta y baja violación entre las dos CPUs, decidimos implementar la lógica dentro de la segunda MCU y Sólo tiene una salida extra para el zumbador. Esto salvó el hardware externo adicional, pero agregó un nivel de complejidad al código. En general, hemos intentado implementar tanto como sea posible en el software, cuando sea apropiado.

Otro factor limitante de las CPUs Mega32 es que tienen un número finito de puertos de E / S. Debido a que tenemos 2 CPUs (una para mostrar información, una para información de cómputo), hay un límite en la cantidad de información que podríamos . Especialmente debido a que básicamente teníamos más números para poner en la TV que teníamos puertos de E / S para enviarlo entre las CPUs, decidimos implementar la interfaz RS232 a HyperTerminal en la PC. Una imagen de La salida en el HyperTerminal se puede encontrar en el apéndice.
Estándares reconocidos
El primer estándar en uso para nuestro proyecto es el mismo que utilizamos en el laboratorio ECE476 4, el estándar de video compuesto RS170 y la velocidad de fotogramas NTSC. Nuestra señal de TV es video en blanco y negro no entrelazado, igual que en el laboratorio 4. El estándar RS170 dicta los 3 voltajes para negro, blanco y sincronizado, así como la relación de aspecto 4: 3, y los anchos de los impulsos de sincronización horizontal y vertical y sus porches delantero y trasero. Además, la norma RS170 dicta que hay 525 líneas por fotograma y 60 fotogramas por segundo. Como se ha descrito anteriormente, nuestra implementación utiliza una versión de 30 fps, no entrelazada.

El segundo estándar que utilizamos fue la interfaz serie RS232 con la PC. RS232 es una interfaz serie común para comunicaciones de datos digitales. Especifica las tensiones de señal, la temporización y los protocolos para el intercambio de información y los conectores mecánicos. Porque nuestro RS232 se implementó en El STK500, no tuvimos que tocar ninguna de las especificaciones del protocolo como el Mega32 lo implementa para nosotros.
Patentes y propiedad intelectual
Existen ya muchos métodos para detectar los patrones de latidos cardíacos y las tasas de pulso. Indudablemente, muchos de estos métodos están protegidos por la ley de patentes, pero la simplicidad de nuestro diseño no invadirá ninguno de esos diseños complejos. Existen muchas patentes sobre estetoscopios. Aunque estamos usando uno, sin embargo, no lo estamos diseñando. Esto probablemente limitará las posibilidades de que nuestro dispositivo reciba una patente. Realmente, el único potencial de patente que tiene nuestro dispositivo es el hecho de que se conecta a su propio televisor.

También creemos que el crédito se debe a otros por parte del código utilizado en nuestras CPU. Esto también limitará nuestro potencial de patentes. El profesor Bruce Land de la Universidad de Cornell suministró el código básico para la salida de vídeo NTSC en el Mega32 en el laboratorio ECE476 4. Utilizamos una versión alterada de este código en CPU1 que emite la señal de latido al TV. También, la mayoría de la máquina de estado de rebote de botones en CPU2 también fue suministrada por Dr. Land en las conferencias ECE476. Diagrama de la máquina de estado se puede encontrar en el 

Apéndice.

Diseño del programa / hardware

Detalles del hardware
La primera parte de nuestro circuito fue el propio estetoscopio. El padre de Aaron es un cardiólogo y pudimos obtener un estetoscopio usado de forma gratuita. Originalmente, el estetoscopio tenía tubos de látex médicos muy flexibles que acoplaban el extremo con El marco metálico y los auriculares. El problema con el tubo es que no pudimos encontrar un micrófono lo suficientemente pequeño como para caber dentro de él. Nuestra solución era hacer un viaje a la ferretería y recoger algunos tubos de vinilo. Usamos 3 / 16 diámetro interior de la tubería para la longitud principal y luego 2 tamaños más grandes para telescopio hasta el tamaño de nuestro micrófono. Después de que trabajamos el micrófono hacia abajo en la pieza más grande, lo aseguró con una abrazadera de manguera de metal, como se muestra En la figura 2. Inicialmente pensamos que el tubo necesitaba ser sellado para que la pérdida acústica se minimizara. Tratamos de derretir los trozos de tubo juntos, pero eso fue bastante desastroso y terminamos quemando agujeros en el tubo. Nosotros eventuall Y decidí (después de la tranquilidad del profesor Land) que era suficiente para atascar las piezas juntas.




El micrófono WM-034DHB que utilizamos es omnidireccional con una sensibilidad de -42dB,> 60dB SNR y un rango de respuesta de 20-16kHz. Este micrófono en particular requiere un sesgo de 1,5V para funcionar correctamente. Construimos un circuito de polarización usando un trimpot de 10kΩ, Un transistor NPN 2N3904 y unas pocas resistencias. El diagrama del circuito de polarización del micrófono se muestra en la figura 3. La parte de ganancia de nuestro circuito consiste en un amplificador operacional LMC7111 configurado con una ganancia de 7, Como se muestra en la figura 4. Para este circuito, las ecuaciones para la constante de tiempo de paso bajo y la ganancia del amplificador son las siguientes:






Se utilizó una constante de tiempo real de 0,5 y una ganancia de 7, como se muestra en la figura 4. La entrada del amplificador se acopló a una tensión continua de alrededor de 2,5V. Esto fue necesario para centrar la señal amplificada en el A / D para el MCU. Hemos implementado esto con un divisor de tensión con 2 resistencias de 1MΩ, como se muestra en la figura 4.






Debido a que usamos dos MCU (como se detalla en la sección de detalles del software), tuvimos que construir una configuración de MCU en un tablero blanco. La Figura 5 es una fotografía de CPU1 y el circuito de salida de TV en el tablero blanco Se encuentran en la parte inferior de las dos pizarras mostradas, la parte superior es el circuito de polarización y amplificador del micrófono, junto con el zumbador). El televisor utiliza el pin D.5 como señal de sincronización y el D.6 como entrada de vídeo. HyperTerm Se configuró mediante conexiones desde el STK500 al PC, D.0 fue el bit de recepción y D.1 el bit de transmisión. Por favor, consulte el apéndice para una imagen de la salida de Hyperterm real. La salida de TV DAC, mostrada En la figura 1, se nos proporcionó en el laboratorio ECE 476 4. El apéndice contiene un diagrama detallado de cómo se implementa el Mega32 en la pizarra.




La última pieza de hardware que usamos fue un zumbador CT-1205C, que se muestra en la placa superior en la figura 5. Esto se utiliza para indicar una violación de las violaciones de BPM altas o bajas. Compramos este zumbador particular porque era Fuerte, molesto, barato, y podría ser expulsado de un único pin de salida en términos de corriente y voltaje.
Detalles del software
Inicialmente planeamos utilizar sólo una MCU, pero rápidamente nos dimos cuenta de que simplemente no era posible hacer todos los cálculos necesarios y la salida de explosión a la pantalla en un MCU. La solución de 2 CPU que utilizamos utiliza CPU1 para la TV Salida y CPU2 como unidad de procesamiento. Ambas CPUs toman muestras de la misma señal de latidos cardíacos independientemente entre sí ya diferentes velocidades.

Nuestro código CPU1 era una versión modificada de nuestro código ECE476 de laboratorio 4, que a su vez era una versión modificada del código del profesor Land para la salida de vídeo NTSC del Mega32. Similar al laboratorio 4, el TV (CPU1) tiene diferentes modos de temporización , Y se puede configurar para mostrar uno o dos segundos de rastreo a través de la pantalla. Decidimos ir con la división uno / dos segundos porque a 60BPM, una frecuencia cardíaca típica, hay exactamente un latido en un segundo de ancho. Con un ancho de dos segundos, por supuesto, puede ver al menos dos tiempos completos.

CPU1 también toma varias líneas de control que son generadas por CPU2, incluyendo líneas de violación alta y baja, run / stop y ancho de pantalla de uno / dos segundos de los botones conectados a CPU2. Finalmente, hay 8 bits paralelos que transmiten los latidos por minuto Como se calculan. La figura 1 muestra cómo las dos CPUs encajan entre sí y la interfaz, junto con las conexiones externas. La siguiente tabla (figura 6) describe las diversas definiciones para la interfaz y las líneas de control.


CPU2 tiene tres tareas básicas. Primero, es responsable de debouncing los 7 botones adjuntos en el puerto B. Utilizamos una estructura de máquina de estado que era similar a la presentada en la conferencia ECE 476 para los botones debouncing. Las funciones del botón se describen En la siguiente tabla, y un diagrama general para una máquina de estado de debouncing se puede encontrar en el Apéndice.




En segundo lugar, la CPU2 es responsable de calcular el BPM de la señal muestreada. Elegimos ir con un esquema de muestreo con ventanas, en lugar de un enfoque en tiempo real. Esto significa básicamente que tomamos una serie de muestras durante un cierto período de tiempo, proceso Los datos, determinar el BPM e iniciar la siguiente cadena de muestra. Para cubrir los rangos de BPM razonables del sistema cardiovascular humano, buscábamos un rendimiento confiable entre 60 y 180 MBP. El extremo bajo es donde realmente tuvimos que Preocupación ya que a 60BPM, hay un golpe cada segundo.

Nuestro esquema de detección básicamente intenta encontrar picos de pulso en los datos, determina el tiempo entre los picos y luego convierte eso a BPM. La ventana de muestra tuvo que ser lo suficientemente larga para obtener al menos dos latidos en una ventana para el rango más bajo. A 60BPM, una ventana de 2 segundos da esto, y esta es la ventana que escogimos. La desventaja de la ventana de muestra larga es que sólo podemos proporcionar una nueva actualización de BPM cada 2 segundos. Esta decisión entre la longitud de la ventana de muestra y la La frecuencia con la BPM es la salida es una compensación que hicimos. Las tasas de corazón inferior a 60BPM se puede detectar si dos pulsos que caen dentro de la ventana de 2 segundos, pero ya que la fase de los latidos es relativamente aleatorio, no hay garantía Esto va a suceder. Modificamos nuestro código de tal manera que si sólo identificábamos un pico, dejaríamos BPM sin cambios. Si no identificamos ningún pico, entonces BPM fue ajustado a 0. En el laboratorio, pudimos detectar de forma fiable las frecuencias cardíacas de alrededor de 50 MBP. La precisión del extremo alto estuvo limitada por cuanto tiempo esperamos después de identificar el primer Pico antes de buscar el segundo pico. Nuestro código espera 150 muestras a 2ms cada una, o un total de 300ms, lo que equivale a un máximo de 200BPM.

El algoritmo de detección de golpes es en realidad bastante simple. Tomamos 1000 puntos de datos en 2 segundos, dando una tasa de muestreo de 2ms. Esto corresponde a una frecuencia de muestreo de 500 Hz. El teorema Nyquist muestra que la mayor componente de frecuencia presente en Nuestra señal muestreada es de 250 Hz. Esto es un filtro de paso bajo. Esto no es un problema, ya que sólo estamos interesados ​​en las frecuencias bajas de todos modos. Un segundo filtro de paso bajo digital fue implementado como un balanceo ponderado Average. El filtro tiene este aspecto:



El valor alfa en la ecuación dicta la cantidad de smudging que se produce. Esto en efecto suaviza los datos y reduce el nivel de ruido. Determinamos experimentalmente que el mejor alfa era 0.8. Los 1000 puntos de datos resultantes en CPU2 entonces se verían Algo similar a la figura 8, que grafica los datos reales que recopilamos imprimiéndolos en el HyperTerm. Antes de muestrear y el filtro digital de paso bajo, la SNR de la señal de latido era de 5, pero se puede ver en la figura 8 que el post- La detección utiliza un algoritmo de umbral móvil. El primer paso es determinar el valor máximo de los datos en la secuencia. Entonces, buscamos picos sucesivos con pendientes ascendentes dentro del 80% del valor máximo. Esto supone inherentemente que los picos en la secuencia de entrada son relativamente estables y dentro de un rango razonable por encima de los picos y ruidos secundarios.




La tercera función de la CPU2 es enviar datos a la CPU1 y controlar el zumbador de alarma. CPU2 envía BPM a través de PORTC e información sobre los modos de operación y violaciones a través de PORTA a CPU1. CPU2 envía un bit al zumbador para violaciones a través de PORTA . La Figura 1 muestra las conexiones específicas y la Figura 6 esboza las líneas de control. Además de los datos enviados a la CPU1, la segunda CPU también genera otros datos (exceso) al HyperTerm. Esto incluye el valor máximo (de 255 ) Recibidos en la última ventana de muestra, los índices de los dos tiempos utilizados para determinar el BPM, el BPM real y los valores de umbral alto y bajo que son ajustables mediante los botones asociados a PORTB. Los datos se actualizan cada 2 segundos, Al igual que el valor de BPM. La salida típica de HyperTerminal se muestra en el Apéndice.
Cosas que probamos que no funcionaron
Nuestro proyecto fue muy exitoso en su conjunto, pero hubo algunas cosas que no funcionaron como habíamos planeado originalmente. En primer lugar, planeamos mostrar los valores de violación de alta / baja en la televisión. El problema con esto es que Los botones para establecer los valores altos / bajos se adjuntan a la CPU2 en el STK500. No teníamos suficientes puertos de salida a la izquierda para enviar dos números de 8 bits a la CPU1. Debido a que no había una forma fácil de sincronizar las CPUs que resolvimos con HyperTerm Para mostrar los valores de violación alta / baja. Sin embargo, imprimimos HIGH o LOW en la pantalla si se produjeron las violaciones respectivas.

En segundo lugar, queríamos hacer estallar la señal de latido cardíaco digitalmente filtrada a la televisión. El filtrado tendría que hacerse en la CPU1, ya que hay demasiados datos para transferirla de la CPU2 a la CPU1. Dado que el rastreo en la TV rolls a través La pantalla, una cantidad significativa de lógica tuvo que ser insertada para seguir la pista del edge del rastro de los datos. El filtro necesitaría comenzar en el borde, envolver alrededor de la pantalla y continuar de nuevo al borde de modo que los datos Se filtra en orden. Cuando implementamos esto, el código era demasiado voluminoso e interfería con el tiempo de la salida de TV. Decidimos conformarnos con mostrar la señal de la pulsación que fue amplificada y filtrada de manera análoga en la televisión .

Por último, queríamos implementar el control de ganancia automático (AGC), pero nos dimos cuenta de que no era muy útil o necesario. Además, es bueno ver la fuerza relativa de diferentes señales de latido cardíaco. Esto se explicó en la sección anterior, Compensaciones de Hardware / Software.
Resultados

Velocidad de ejecución
En la CPU1, nuestro estetoscopio digital dibuja la traza del latido del corazón a la televisión con un retraso imperceptible a los seres humanos. Como CPU2 utiliza una ventana de muestreo para determinar el BPM, hay un retardo inherente de 2 segundos entre actualizaciones de la frecuencia cardíaca. El HyperTerm se actualiza cada 2 segundos también. Todos los demás componentes de nuestro proyecto se ejecutan sin retrasos perceptibles y no surgen problemas de concurrencia.

Exactitud
Nuestro diseño fue capaz de lograr un buen nivel de precisión, teniendo en cuenta las partes baratas utilizadas y la estructura simple de diseño. La relación señal / ruido para la entrada amplificada (que fue muestreada), fue alrededor de 5: 1, En la pantalla se ve bien. La Figura 9 muestra un trazo típico en la pantalla del televisor. En ocasiones, algunos píxeles perdidos fueron dejados en la pantalla, probablemente debido a la sincronización de nuestro código de CPU1. No pudimos eliminar completamente este , Pero no sucede muy a menudo y modificamos el código para solucionar este problema y hacer que suceda tan rara vez como sea posible. Cuando el estetoscopio digital se pone en modo de parada y luego se vuelve a iniciar, estas imperfecciones se borran cuando se inicializa la pantalla. En general, sin embargo, nuestro rastro es de muy buena calidad, como se demuestra a continuación.




La precisión para nuestro cálculo de BPM se discutió en la sección de diseño de software. En general, encontramos que nuestro estetoscopio digital era exacto en el rango de alrededor de 50-180 BPM. Utilizamos un generador de funciones para ayudar a determinar estos límites. , BPM se calcula cada 2 segundos desde el tiempo entre dos picos sucesivos y luego ese tiempo por tiempo se convierte en BPM. En consecuencia, el BPM real se actualiza solamente cada 2 segundos.

Nuestro estetoscopio digital funciona de manera más fiable con una fuerte señal de latido. Si una señal no es muy fuerte, puede ser difícil detectar picos debido al ruido inherente. Así, en algunas ocasiones, nos pareció necesario salir de nuestro Sillas en el laboratorio y correr arriba y abajo de las escaleras unas cuantas veces para mantener nuestra sangre en movimiento. Es muy sorprendente lo mucho que esto hace la diferencia. Encontrar el lugar adecuado para la pieza final de estetoscopio es también muy importante. El lugar más fuerte y más confiable en el cuerpo que encontramos fue el cuello. Hemos tenido un éxito limitado en el corazón cuando el flujo sanguíneo era bueno. La muñeca rara vez funcionaba en absoluto. Además, debes estar muy quieto y tranquilo para usar Nuestro dispositivo. Hablar o mover el estetoscopio produce una salida muy por encima de la barra de voltaje del amplificador, y la traza de latido y la BPM resultante no se mostrarán con precisión. Esto es inherente a cualquier estetoscopio y no es exclusivo de nuestro proyecto; Si se mueve un estetoscopio pasado de moda o el paciente habla cuando está en su cuello, habrá principalmente ruido.
Aplicación de la seguridad e interferencia
Nuestro diseño es intrínsecamente seguro por varias razones. Primero, el único contacto que nuestro dispositivo tiene con el usuario es la pieza final del estetoscopio; Se coloca contra su cuello o pecho. Esto es tan seguro como usar un estetoscopio normal. Además, no usamos altas tensiones ni corrientes en ninguno de nuestros circuitos. Los humanos están protegidos de esto de todos modos, ya que la tubería de plástico que conecta el micrófono y la pieza final del estetoscopio son aisladores y no conducen ninguna corriente.

Nuestro chip a chip de comunicación es puramente cableado, por lo que nuestro diseño no interfiere de ninguna manera con otros groups diseños.
Usabilidad
Nuestro estetoscopio digital es fácil de usar. La parte más difícil de usar el estetoscopio digital es encontrar el mejor lugar para medir los latidos de su corazón. Esto suele estar en el cuello, pero el pecho también funciona en el laboratorio. Además, las personas con latidos cardíacos que no son muy fuertes tendrán más dificultades para encontrar el lugar correcto y obtener una buena visualización de sus latidos en la televisión. Si tiene problemas para obtener una buena visualización de su latido del corazón, siempre puede ejecutar Y bajar las escaleras o hacer algo equivalente para aumentar su ritmo cardíaco y el flujo de sangre. El aumento de la frecuencia cardíaca y latidos más fuertes hará una mejor visualización.

Otros estudiantes de ECE 476 no han tenido problemas trabajando nuestro proyecto después de una explicación simple; Nuestro diseño es de uso fácil.

[ Volver arriba ]
Conclusiones
Análisis de resultados
Estamos muy contentos con los resultados finales de nuestro proyecto. El producto terminado cumplió con nuestras expectativas y funcionó tan bien como podríamos haber esperado. Nuestro proyecto demuestra lo que se puede hacer usando Mega32 MCUs con algunos circuitos y componentes adicionales. La pantalla De los latidos del corazón es muy bueno y los cálculos de BPM son precisos para una amplia gama de frecuencias cardíacas. La colocación correcta de la pieza final en el cuerpo para obtener una buena señal puede ser sofisticada a veces, pero con cierta práctica , Usted puede encontrar un buen lugar fácilmente, y dará excelentes resultados.

Si tuviéramos más tiempo, hay algunas adiciones al proyecto que intentaríamos. En primer lugar, intentaríamos mejorar la precisión de los cálculos de BPM de gama baja, sin retrasar el BPM que se muestra en la televisión cuando es innecesario. Intentaríamos ir Sobre esto alterando cuando almacenamos los valores de ADC en la matriz, de modo que el pico del latido del corazón esté cerca del inicio de la matriz y el ritmo sea detectado correctamente. Segundo, intentaremos que nuestro estetoscopio digital funcione a partir de más Puntos en el cuerpo. Esto probablemente implicaría la implementación de amplificación adicional para ciertas partes del cuerpo y, posiblemente, filtros adicionales para diferentes fuentes de ruido. En tercer lugar, trataríamos de emitir una señal más suave en la televisión, similar a la señal que usamos Calculado BPM. No se implementó en nuestro proyecto porque se equivocó el tiempo, pero podemos ser capaces de implementarlo, aunque sería difícil, si pasamos un tiempo significativo y modificamos algunos de los structu De nuestro código de CPU1.

Normas y Propiedad Intelectual
Como se mencionó anteriormente, gran parte del código de salida de TV dentro de la CPU1 se proporcionó para nosotros en el laboratorio ECE476 4 por Cornell Profesor Bruce Land. Además, la máquina de estado de rebote para los botones conectados a CPU2 se derivó de las conferencias del profesor Land. Aparte de eso, el código usado en este proyecto es de nuestro propio diseño y no es parte del dominio público. Nuestro diseño es un simple

Apéndice
Otras figuras y diagramas
A continuación se muestra un diagrama de máquina de estado general para un botón debouncer. Esto se implementa en el código para cada uno de los botones utilizados. Hay ligeras modificaciones para incrementar / alternar variables en un botón de empuje, y también para asegurarse de que la acción no sucede Más de una vez por empuje.



A continuación se muestra un diagrama general de cómo se implementó el Mega32 en la pizarra. Este diagrama se puede ver en la foto de la figura 5.




Las siguientes son algunas fotos adicionales que tomamos de nuestro proyecto. Incluyen Aaron demostrando cómo sostener la pieza final del estetoscopio en su cuello, la salida típica de HyperTerminal y una vista general de nuestras dos pizarras blancas y la STK500.



Typical Hyperterm output






Presupuesto
Nuestro proyecto se completó dentro de la restricción presupuestaria de $ 40. A continuación se muestra una tabla de todas las partes y su costo.












0 comentarios:

Publicar un comentario