trabajo_colaborativo2_grupo_299016_3.pdf

Embed Size (px)

Citation preview

  • ACTIVIDAD No. 6 TRABAJO COLABORATIVO 2

    INSTRUMENTACIN MDICA GRUPO 2990164_3

    ING. SAULO ANDRS TUTOR

    ANGEL MARIN CODIGO 4375696

    IVAN CASTAEDA MONSALVE CODIGO 75070194

    GERMAN LOPEZ ESCOBAR CODIGO 80.222.289

    MAURICIO JIMENEZ GALEANO CODIGO 79916070

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA ESCUELA DE CIENCIAS BSICAS TECNOLOGAS E INGENIERAS

    BOGOT, D.C. NOVIEMBRE 2015

  • INTRODUCCION

    En nuestra vida cotidiana podemos evidenciar diferente tipo de herramientas de anlisis y solucin de problemas, los cuales nos facilitan el proceso de alcanzar nuestras metas de aprendizaje, gran parte de poder superar los obstculos que se presentan es una buena planeacin y la informacin adecuada o documentacin, por eso es importante conocer las herramientas que tenemos a nuestro alcance como, como unidades de medida, magnitudes fsicas, variables, procedimientos de medicin de variables, componentes elctricos, simuladores de circuitos, los cuales nos permiten evidenciar el comportamiento de distintas variables y las diferentes variaciones de estas segn las condiciones a las cuales estn expuestas, como circuitos de medicin de voltaje, corriente y resistencia al paso de la corriente, los cuales vamos a desarrollar en la materia de instrumentacin mdica, los cuales hacen parte del proceso de aprendizaje, el cual nos va a permitir desarrollar las actividades programadas como laboratorios y trabajos colaborativos lograremos alcanzar as el xito en esta materia.

    Antes del ao 1900, la medicina se basaba principalmente en el medico, un bolso negro, y medicinas empricas. El hospital era ms bien un tipo de asilo.

    Es hasta el siglo XX que se da un rpido avance tecnolgico y cientfico, convirtiendo al hospital como el punto focal de la medicina, y utilizando tecnologa para el diagnstico y tratamiento de patologas.

    Por medio del siguiente trabajo se pretende poner en evidencia la alianza que ha tenido a medicina con la electrnica, permitiendo desarrollar instrumentos de medicin, diagnstico y procedimientos quirrgicos basados en una nica finalidad que es salvar vidas.

    Encontraran el desarrollo de un Estimulador muscular basado en la electrnica para la estimulacin de tejidos musculares a travs de corrientes elctricas, las cuales son usadas para diversos fines el primero puede ser con fin teraputico para hacer la estimulacin a diversas partes del cuerpo, sirve para la recuperacin muscular cuando hubo accidentes donde se pierda la movilidad, tambin es usado para hacer adelgazamiento en zonas que prefiera la persona haciendo que haya un calentamiento interno y as se genere un disminucin de grasa.

  • OBJETIVOS

    Poner en prctica los conceptos de aplicacin de la electroterapia para la medicina.

    Crear un sistema funcional que supla las necesidades requeridas para su buen funcionamiento

    Comprender y solucionar dudas presentadas con trabajo en equipo e investigacin

    Ampliar conocimientos mediante la intercomunicacin en el foro adems de las orientaciones del tutor con el fin de tener claro conceptos y procedimientos.

  • MARCO TERICO

    REALIZACIN DEL SOFTWARE

    El grupo debe desarrollar el software de programacin de un microcontrolador en lenguaje

    asembler, aplicado al mdulo de puente H de un equipo de electroterapia del captulo 10,

    numeral 10.5 para generar las ondas electroteraputicas de las figuras 121 a 125, que cumpla

    con las siguientes condiciones:

    1. El microcontrolador ser el PIC16F87.

    2. Debe simularse con Proteus.

    PARA TENER EN CUENTA A LA HORA DE LA PROGRAMACIN

    Para obtener pulsos aislados positivos en la carga (resistencia del paciente) conectada entre los

    drenadores D1/D2 y D3/D4, el microcontrolador genera la tensin VG1-3 de pulsos con las

    condiciones de tiempos TON (desde 0,005 ms a 1 s) y TOFF (desde 1 a 5 s) determinadas para

    aplicaciones TENS o TEMS, mientras que la tensin VG2-4 ser cero todo el tiempo, tal como se

    muestra en la figura 121. Para obtener pulsos aislados negativos en la carga, el microcontrolador

    genera la tensin VG2-4 de pulsos con las condiciones de tiempos ON y OFF determinadas para

    aplicaciones TENS o TEMS, mientras que la tensin VG1-3 ser cero todo el tiempo, tal como se

    muestra en la figura 122.

  • PULSOS AISLADOS NEGATIVOS

    Para obtener pulsos aislados negativos, el microcontrolador genera la tensin

    VG2-4 con las condiciones anteriores, mientras que la tensin en VG1-3 ser siempre de cero.

    PULSOS MONOFSICOS MANTENIDOS POSITIVOS O NEGATIVOS

    Se disminuye el T OFF desde 5 a 20 ms a valores similares de los T ON 0.1 a 5 ms con las

    mismas tensiones de control para las figuras anteriores.

  • TRENES DE PULSOS

    El microcontrolador es programado con los tiempos de encendido y apagado de los impulsos

    descritos anteriormente pero adicionalmente se temporiza durante cunto tiempo se aplican T

    ON 2 de 1 a 20 s y durante cunto tiempo no se aplica

    T OFF 2 1 a 40 s

    PULSOS BIFSICOS

    El microcontrolador debe generar los pulsos de puerta negados, es decir, cuando estn

    presentes VG1-3 las VG2-4 deben estar en cero y viceversa.

  • DIAGRAMA DE BLOQUES DEL ELECTRO ESTIMULADOR POR MEDIO DEL PUENTE H

    DESARROLLO DE LA ACTIVIDAD

    La mejor solucin, para el desarrollo del caso que se nos presenta es, es utilizar un puente H, la

    aplicacin ms comn es en los motores de corriente continua, el sentido de giro viene dado por

    la conexin que se le haga a sus bornes. Entonces para hacer que un robot vaya hacia adelante

    o hacia atrs, bastar con invertir la polaridad del motor que mueva sus ruedas, el problema es

    como hacer esto, el PIC solo puede suministrar 5v y 20mA por pin totalmente insuficiente para

    mover un motor, lo que se intenta lograr es poder controlar una tensin y una corriente superior

    que la que el integrado pueda darnos por medio de una seal que ser enviada por el PIC.

  • El Microcontrolador PIC16F87 lo utilizaremos para la generacin y aplicacin de cinco tipos de

    forma de onda a pacientes mdicos, los TENS es un pequeo aparato generador

    de pulsos elctricos destinado a conseguir analgesia. El EMS es otro pequeo aparato destinado

    al trabajo muscular en conjuntos neuromuscular normal. El TENS est basado en sus

    precursores estimuladores chinos y porttiles para aplicar electropuctura, a la vez buscadores de

    puntos. Los TENS no poseen la cualidad de busca-puntos y tampoco siguen totalmente las

    caractersticas de las corrientes generadas en los estimuladores de electropuntura. Los

    electropuntores no solamente sirven para conectar a las agujas, tambin se pueden aplicar a

    electrodos estndar. El EMS, de posterior aparicin al TENS, y como se dice ms arriba, se

    destina a la electroestimulacin neuromuscular siempre que no estemos ante procesos

    patolgicos, o si existen, que sean muy moderados.

    EL MICROCONTROLADOR PIC16F87:

    Es un microcontrolador de Microchip Technology fabricado en tecnologa CMOS, su consumo de

    potencia es muy bajo y adems es completamente esttico, esto quiere decir que el reloj puede

    detenerse y los datos de la memoria no se pierden. El encapsulado ms comn para este

    microcontrolador es el DIP (Dual In-line Pin) de 40 pines, propio para usarlo en experimentacin.

    La referencia completa es PIC16F877-04 para el dispositivo que utiliza cristal oscilador de hasta

    4 MHz, PIC16F877-20 para el dispositivo que utiliza cristal oscilador de hasta 20 MHz o

    PIC16F877A-I para el dispositivo tipo industrial que puede trabajar hasta a 20 MHz.

    El PIC16F87, es un microcontrolador con memoria de programa tipo FLASH, lo que es una gran

    facilidad en el desarrollo de prototipos, ya que no se requiere borrarlo con luz ultravioleta como

    las versiones EPROM, sino que permite reprogramarlo nuevamente sin ser borrado con

    anterioridad.

  • SOFTWARE MICROCONTROLADOR

    0000: MOVLW 00 0001: MOVWF 0A 0002: GOTO 2C0 0003: NOP #include "C:\Users\USR\Desktop\ghsgthstrhrthhst\main.h" #include / Standard Header file for the PIC16F877A device #device PIC16F877A #list #device ADC=8 #FUSES NOWDT #FUSES HS #FUSES PUT #FUSES PROTECT #FUSES NODEBUG #FUSES NOBROWNOUT #FUSES NOLVP #FUSES NOCPD #FUSES NOWRT #use delay (clock=10000000) * 000C: MOVLW 2B 000D: MOVWF 04 000E: BCF 03.7 000F: MOVF 00, W 0010: BTFSC 03.2 0011: GOTO 020 0012: MOVLW 03 0013: MOVWF 78 0014: CLRF 77 0015: DECFSZ 77, F 0016: GOTO 015 0017: DECFSZ 78, F 0018: GOTO 014 0019: MOVLW 3C 001A: MOVWF 77 001B: DECFSZ 77, F 001C: GOTO 01B 001D: GOTO 01E 001E: DECFSZ 00, F 001F: GOTO 012 0020: RETLW 00 0056: MOVLW F0 0057: BSF 03.5 0058: MOVWF 08 lcd.rw = 1; 0059: BCF 03.5 005A: BSF 08.1 Delay cycles (1);

  • 005B: NOP lcd.enable = 1; 005C: BSF 08.2 Delay cycles (1); 005D: NOP High = lcd.data; 005E: MOVF 08, W 005F: SWAPF 08, W 0060: ANDLW 0F 0061: MOVWF 2F lcd.enable = 0; 0062: BCF 08.2 Delay cycles (1); 0063: NOP lcd.enable = 1; 0064: BSF 08.2 Delay us (1); 0065: GOTO 066 .................... Low = lcd.data; 0066: MOVF 08, W 0067: SWAPF 08, W 0068: ANDLW 0F 0069: MOVWF 2E .................... lcd.enable = 0; 006A: BCF 08.2 .................... set_tris_lcd (LCD_WRITE); 006B: MOVLW 00 006C: BSF 03.5 006D: MOVWF 08 .................... Return ((high
  • 0076: MOVF 78, W 0077: MOVWF 2E 0078: BTFSC 2E.7 0079: GOTO 056 .................... lcd.rs = address; 007A: BTFSS 2C.0 007B: BCF 08.0 007C: BTFSC 2C.0 007D: BSF 08.0 .................... Delay cycles (1); 007E: NOP .................... lcd.rw = 0; 007F: BCF 08.1 .................... Delay cycles (1); 0080: NOP .................... lcd.enable = 0; 0081: BCF 08.2 .................... lcd_send_nibble (n >> 4); 0082: SWAPF 2D, W 0083: MOVWF 2E 0084: MOVLW 0F 0085: ANDWF 2E, F 0086: MOVF 2E, W 0087: MOVWF 2F 0088: CALL 021 .................... lcd_send_nibble (n & 0xf); 0089: MOVF 2D, W 008A: ANDLW 0F 008B: MOVWF 2E 008C: MOVWF 2F 008D: CALL 021 .................... } .................... .................... .................... Void lcd_init () { .................... BYTE i; .................... set_tris_lcd (LCD_WRITE); * 002F: MOVLW 00 0030: BSF 03.5 0031: MOVWF 08 .................... lcd.rs = 0; 0032: BCF 03.5 0033: BCF 08.0 .................... lcd.rw = 0; 0034: BCF 08.1 .................... lcd.enable = 0; 0035: BCF 08.2 .................... delay_ms (15); 0036: MOVLW 0F

  • 0037: MOVWF 2B 0038: CALL 00C .................... For (i=1;i
  • 02C6: BSF 1F.1 02C7: BSF 1F.2 02C8: BCF 1F.3 02C9: MOVLW 07 02CA: MOVWF 1C * 02D4: BSF 03.5 02D5: BCF 1F.0 02D6: BCF 1F.1 02D7: BSF 1F.2 02D8: BCF 1F.3 .................... setup_psp(PSP_DISABLED); 02D9: BCF 09.4 .................... setup_spi(SPI_SS_DISABLED); 02DA: BCF 03.5 02DB: BCF 14.5 02DC: MOVLW 01 02DD: MOVWF 14 02DE: MOVLW 00 02DF: BSF 03.5 02E0: MOVWF 14 .................... setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); 02E1: MOVF 01,W 02E2: ANDLW C7 02E3: IORLW 08 02E4: MOVWF 01 .................... setup_timer_1(T1_DISABLED); 02E5: BCF 03.5 02E6: CLRF 10 .................... setup_timer_2(T2_DISABLED,0,1); 02E7: MOVLW 00 02E8: MOVWF 78 02E9: MOVWF 12 02EA: MOVLW 00 02EB: BSF 03.5 02EC: MOVWF 12 .................... setup_comparator(NC_NC_NC_NC); 02ED: MOVLW 07 02EE: MOVWF 1C 02EF: MOVF 05,W 02F3: DECFSZ 77,F 02F4: GOTO 2F3 02F5: MOVF 1C,W 02F6: BCF 03.5 02F7: BCF 0D.6 .................... setup_vref(FALSE); 02F8: BSF 03.5 02F9: CLRF 1D .................... lcd_init();

  • 02FA: BCF 03.5 02FB: GOTO 02F .................... .................... // TODO: USER CODE!! .................... set_tris_b(0x00); 02FC: MOVLW 00 02FD: BSF 03.5 02FE: MOVWF 06 .................... portb=0x00; 02FF: BCF 03.5 0300: CLRF 06 .................... set_tris_c(0x00); 0301: BSF 03.5 0302: MOVWF 07 .................... portc=0x00; 0303: BCF 03.5 0304: CLRF 07 .................... set_tris_e(0xff); 0305: BSF 03.5 .................... { portc=0x0c; 0763: MOVLW 0C 0764: MOVWF 07 .................... delay_ms(3); 0765: MOVLW 03 0766: MOVWF 2B 0767: CALL 093 .................... portc=0x00; 0768: CLRF 07 .................... delay_ms(10); 0769: MOVLW 0A 076A: MOVWF 2B 076B: CALL 093 .................... portc=0x0c; 076C: MOVLW 0C 076D: MOVWF 07 .................... delay_ms(3); 076E: MOVLW 03 076F: MOVWF 2B 0770: CALL 093 .................... portc=0x00; 0771: CLRF 07 .................... delay_ms(10); 0772: MOVLW 0A 0773: MOVWF 2B 0774: CALL 093 .................... portc=0x0c; 0775: MOVLW 0C 0776: MOVWF 07 .................... delay_ms(3);

  • 0777: MOVLW 03 0778: MOVWF 2B 0779: CALL 093 .................... portc=0x00; 077A: CLRF 07 .................... delay_ms(10); 077B: MOVLW 0A 077C: MOVWF 2B 077D: CALL 093 .................... portc=0x0c; 077E: MOVLW 0C 077F: MOVWF 07 .................... delay_ms(3); 0780: MOVLW 03 0781: MOVWF 2B 0782: CALL 093 .................... portc=0x00; 0783: CLRF 07 .................... delay_ms(10); 0784: MOVLW 0A 0785: MOVWF 2B 0786: CALL 093 .................... portc=0x0c; 0787: MOVLW 0C 0788: MOVWF 07 .................... delay_ms(3); 0789: MOVLW 03 078A: MOVWF 2B 078B: CALL 093 .................... portc=0x00; 078C: CLRF 07 .................... delay_ms(10); 078D: MOVLW 0A 078E: MOVWF 2B 078F: CALL 093 .................... .................... delay_ms(500); 0790: MOVLW 02 0793: MOVWF 2B 0794: CALL 093 0795: DECFSZ 2A,F 0796: GOTO 792 .................... } .................... } .................... } 0797: GOTO 30A .................... } 0798: SLEEP

  • EL PROGRAMA EN LENGUAJE C SERIA AS (SE ADJUNTA EL ARCHIVO .C):

    #if defined(__PCM__)

    #include //

    #device ADC=8 //se ajusta el ADC con 8 bits

    #use delay(clock = 4000000) //se ajusta el oscilador

    #fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,BROWNOUT

    #use standard_io(A)

    #use standard_io(B)

    int valor=0x00; //se inicializa la memoria valor on

    int p; //se declara variable para tiempo on

    int on;

    int off;

    int off2;

    void toma_adc(void) //programa de toma de ADC

    {

    setup_adc(ADC_CLOCK_INTERNAL); //configura el conversor

    setup_adc_ports(RA0_analog); //entrada 0 como analgica

    set_adc_channel(0);

    valor=read_adc(); //se asocia la lectura con la memoria valor

    }

    void main() //programa principal

    {

    do

    {

    p = (5.0*valor/256.0); //se establece formula de valor

    on = (p*1.4);

    off = (p*4.25);

  • off2 = (p*0.4);

    if ((input(PIN_A2) == 1)&&(input(PIN_A3) == 0)&&(input(PIN_A4) == 0)&&(input(PIN_A5) == 0))

    {

    output_high(PIN_B0);

    delay_ms(on);

    output_low(PIN_B0);

    delay_ms(off);

    }

    if ((input(PIN_A3) == 1)&&(input(PIN_A2) == 0)&&(input(PIN_A4) == 0)&&(input(PIN_A5) == 0))

    {

    output_high(PIN_B1);

    delay_ms(on);

    output_low(PIN_B1);

    delay_ms(off);

    }

    if ((input(PIN_A4) == 1)&&(input(PIN_A2) == 0)&&(input(PIN_A3) == 0)&&(input(PIN_A5) == 0))

    {

    output_high(PIN_B0);

    delay_ms(on);

    output_low(PIN_B0);

    delay_ms(off2);

    }

    if ((input(PIN_A5) == 1)&&(input(PIN_A2) == 0)&&(input(PIN_A3) == 0)&&(input(PIN_A4) == 0))

    {

    output_high(PIN_B0);

    delay_ms(on);

  • output_low(PIN_B0);

    output_high(PIN_B1);

    delay_ms(on);

    output_low(PIN_B1);

    delay_ms(off);

    }

    toma_adc();

    }

    while(true);

    }

    CIRCUITO MONTADO EN PROTEUS

  • PULSOS BIFSICOS

    TRENES DE PULSOS

  • PULSOS MONOFSICOS

    PULSOS AISLADOS

  • Evidenciamos el comportamiento del microcontrolador segn la frecuencia parametrizada en el

    PIC y los tipos de onda con los selectores y el puente H.

    Vemos la programacin y los ajustes de las frecuencias los tiempos de los trenes de pulsos

    parametrizados para la simulacin y los tiempos ajustados al PIC.

  • Evidenciamos una parametrizacion de 40 segundos para la generacin de los trenes de pulsos

    Y tambin podemos ajustar los tiempos de los pulsos aislados.

    Ajustamos un tiempo de 35 pulsos por segundo en el TON y el TOFF, evidenciamos el cambio de

    las frecuencias en los trenes de pulsos, podemos ajustar segn el uso de la electroterapia.

  • CONCLUSIONES

    Se ha logrado identificar la gran importancia del puente H para la instrumentacin mdica

    o quirrgica.

    Por medio del programa Proteus para la elaboracin y simulacin del circuito exigido, se

    dise el circuito en programa brindando la posibilidad de generar cada tipo de onda que

    se mostraba durante la comprobacin de la actividad tambin podemos ver la gran

    importancia del osciloscopio para la generacin y visualizacin de las ondas o pulsos

  • BIBLIOGRAFIA

    Medical Instrumentation. Applications and Desing. Jhon G Webster.

    Introduction to Biomedical Engineering. Jhon D Enderle

    Handbook Biomedical Engineering. Vol. 1.

    Bioingeniera Tomo IV. Mauricio Wilches.

    Electroterapia en Fisioterapia.

    Manuales de equipos teraputicos

    Mdulo instrumentacin medica Jorge Eduardo Quintero Muoz

    [email protected]