Descrição: Descrição: C:\Users\fabio\Desktop\NetPage_LABSI\image002.jpg   

 

Equipamento de Termoterapia e Crioterapia

 

 

 

 

 

 

 

 

 

 

 

Autores:

André Pereira (Nº1060270)

1060270@isep.ipp.pt

LABSIS

Fábio Oliveira (Nº 1100130)

1100130@isep.ipp.pt

2015

Introdução

Arquitetura

Hardware

Software

Resultados

Conclusões

Referências

·   

Introdução

Início

 

 

Com o objectivo de realizar um projecto para a cadeira de LABSIS, desenvolvemos um protótipo de um equipamento de termoterapia/crioterapia portátil para a realização de tratamentos com recurso ao calor ou frio.

A nível de programação será implementado um controlo proporcional, que irá atuar uma saída modulada em PWM para um módulo de potência que irá alimentar e controlar o dispositivo que por sua vez irá gerar a temperatura programada, o facto de controlar a temperatura de forma estável irá permitir promover a saúde e bem-estar de um individuo com, por exemplo uma lesão muscular.

Chama-se Termoterapia ao conjunto de técnicas que utilizam o calor como meio terapêutico. Esta técnica terapêutica tem vários efeitos no ser humano sendo de destacar o relaxamento muscular, a nível circulatório aumenta o fluxo sanguíneo, activa o metabolismo, também de destacar que a nível nervoso tem efeito relaxante muscular e articular. 

Crioterapia é  um grupo de diversas técnicas e procedimentos na Fisioterapia no qual se aplica baixas temperaturas em regiões locais ou gerais do corpo, genericamente chamada de “terapia com frio". A aplicação terapêutica de qualquer substância ao corpo que resulte na alteração do calor corporal, diminuindo, assim a temperatura dos tecidos tem esta designação. Ela abrange uma grande quantidade de técnicas específicas de como se aplica o frio, neste caso em estado liquido utilizando água.

Água quente/fria é bombeada num circuito fechado que por sua vez está em contacto com uma superfície de metal que acaba por aquecer/ arrefecer o bloco de refrigeração a água.

O módulo utilizado quando aplicada uma tensão aos pólos dos dois materiais distintos cria uma diferença de temperatura, devido a essa mesma diferença o efeito de Peltier fará com que o calor se mova de uma face do módulo para a outra. Esta pastilha de Peltier contem uma série de elementos semicondutores do tipo-p e tipo-n agrupados aos pares que por sua vez vão agir como condutores dissimilares (diferentes).

Esta série de elementos é soldada entre duas placas cerâmicas electricamente em série e termicamente em paralelo. Quando uma corrente DC passa por um ou mais pares de elementos do tipo-n a tipo-p verifica-se uma redução na temperatura da junta (“lado frio”) resultando em uma absorção do calor do ambiente. Este calor é transferido pela pastilha através de electrões e emitido no outro lado quente via electrões que se movem de um estado alto para um estado baixo. A capacidade de fornecimento de calor é proporcional á corrente e o número de pares de elementos tipo-n e tipo-p.

Cada pastilha Peltier tem o seu próprio limite de quantidade de calor que pode transferir, conhecido como Qmax. A corrente eléctrica associada ao Qmax é conhecida como Imax. E a tensão correspondente como Vmax. Se um módulo for completamente isolado de seu ambiente e estiver a funcionar a Imax, ele produz a diferença máxima de temperatura entre os lados quente e frio, conhecida como ΔTmax.

Também funcionam como bombas de calor e presentam espessura fina cerca de alguns milímetros e forma geralmente quadrada, são geralmente constituídos por duas placas de cerâmicas compostas por cubos de Bi2Te3 (telureto de bismuto).

É importante salientar que por mais tecnologicamente avançados que sejam estes módulos, não consomem calor por isso que se torna necessário o uso do dissipador.

A grande vantagem destes módulos são a ausência de peças móveis, gás, barulho, vibração, além do tamanho reduzido, alta durabilidade e precisão.

Este projeto seguiu o seguinte cronograma:

 

·  

Arquitetura

Início

 

 

Diagrama de blocos:

 

Fluxogramas do programa:

 

 

 

 

 

 

 

 

 

 

 

 

·   

Hardware

Início

 

 

Para realizar este trabalho implementamos o microcontrolador ATMEGA644 da Atmel.

Principais características:

·         Microcontrolador de 8 bits

·         Arquitetura RISC (Reduced instruction set computer)

·         64 Kbytes de memória Flash

·         2 Kbytes de EEPROM

·         4 Kbytes de SRAM

·         JTAG de acordo com o standard IEEE 1149.1

·         2 contadores/temporizador de 8 bits e 1 de 16 bits

·         6 canais PWM

·         8 canais de ADC com resolução de 10 bits com modo diferencial e ganho ajustável de 1x, 10x e 200x

·         Interface I2C

·         Cristal interno programável de 8 MHz

·         Redução de ruído no conversor ADC

·         Modos de energia: Redução de ruido no ADC, modo de poupança, modo desligado, modo de espera e espera longa(extended standby)

·         40 pinos PDIP

·         20 MHz de frequência máxima

A seleção do microcontrolador foi feita tendo em conta a possível expansão das funcionalidades do trabalho, e utilização de portos.

Descrição dos pinos:

Porto A

Descrição

Porto B

Descrição

Porto C

Descrição

Porto D

Descrição

PA0

Sensor de temperatura

PB0

Tecla 1 (decrementar tempo)

PC0

Pino D4 Display

PD0

RX_UART (não utilizado)

PA1

Não utilizado

PB1

Tecla 2 (incrementar tempo)

PC1

Pino D5 Display

PD1

TX_UART(não utilizado)

PA2

Não utilizado

PB2

Tecla 3 (decrementar temperatura)

PC2

Pino D6 Display

PD2

Controlo de polaridade

PA3

Não utilizado

PB3

Tecla 4 (incrementar temperatura)

PC3

Pino D7 Display

PD3

LED Pisca

PA4

Não utilizado

PB4

Tecla 5 (Início e paragem de tratamento)

PC4

Pino RS do Display

PD4

LED Ambar

PA5

Não utilizado

PB5

MOSI (programação)

PC5

Enable do Display

PD5

LED Azul

PA6

Não utilizado

PB6

MISO (programação)

PC6

Não utilizado

PD6

Não utilizado

PA7

Não utilizado

PB7

SCK (programação)

PC7

Não utilizado

PD7

Controlo da Bomba

Módulo utilizado para gerar a temperatura definida pelo utilizador: TEC1-12710

 

 

Temperatura parte quente (ºC)

25(ºC)

50(ºC)

Qmax (Watts)

85

96

ΔTmax (ºC)

66

75

Imax (A)

10.5

10.

Vmax(V)

15.2

17.4

Resistência do módulo (Ω)

1.08

1.24

Ilustrações do princípio de funcionamento e constituição do módulo Peltier:

 

 

 

 

 

Para gestão de alimentação do módulo Peltier foi utilizado o FET CSD19534KCS, esta selecção foi feita com base na acessibilidade de potenciais componentes a ser utilizados no nosso projecto disponíveis em amostra.

VDS (V)

100

Logic Level

No

Rds(on) Max at VGS=10V (mOhms)

16.5

IDM, Max Pulsed Drain Current (Max) (A)

138

ID, Silicon limited at Tc=25degC (A)

54

QG Typ (nC)

16.4

Configuration

Single

Package

TO-220

QGD Typ (nC)

3.3

VGS (V)

20

VGSTH Typ (V)

2.8

 

WaterBlock”, componente utilizado para o arrefecimento ou aquecimento, que, quando no seu interior passa água, irá transmitir ou receber o efeito térmico pretendido pelo módulo.

Neste projecto utilizou-se duas unidades, um deles, colocado junto ao módulo Peltier responsável por absorver o quente ou frio e passar esse mesmo estado para a água que por sua vez circula num circuito fechado que irá transmitir ao outro equipamento que tem a finalidade de ser colocado junto do corpo da pessoa. Neste último está colocado o sensor de temperatura que irá informar o microcontrolador da temperatura no destino do circuito de água.

 

 

 

 

LMT84

Sensor de temperatura usado no equipamento, estando este acoplado ao “WaterBlock de maneira a conseguir a leitura da temperatura o mais correta da água no seu interior.

O facto de ser um dos sensores mais recentes do mercado com saída analógica, e variação linear torna este sensor uma escolha perfeita para este trabalho, e o facto de poder requisitar amostras à Texas Instruments ajuda á concretização do protótipo, o único defeito que o sensor apresenta, segundo o fabricante (Texas Instruments), é a medição da temperatura nos valores limite de medição do sensor, ou seja, nos -50ºC e 150ºC o que acaba por estar muito longe dos valores pretendidos para este trabalho.

Esquemáticos dos vários módulos que constituem o projecto desenvolvidas em EAGLE CAD soft.

 

Módulo potência, esquema:

 

Módulo potência, esquemático PCB:

 

Módulo painel, esquema:

 

Módulo painel, esquema PCB:

 

Módulo CPU, esquema:

 

Módulo CPU, esquemático PCB:

 

Manual do painel:

 

·            

Software

Início

 

 

 

Aqui apresentam-se os extratos importantes do código desenvolvido.

 Controlo do LCD

Caixa de texto: void inicializa_LCD(void)
{
	_delay_ms(15);//tempo para estabilizar a tensão e preparar o display
	// o primeiro digito é de controle e o segundo configuração

	LCD = 0X22;//nesse momento o display ainda está em modo 8bits solicita modo de 4 bits
	_delay_ms(1);//tempo estabilizar o pino
	LCD = 0X02;//ao passar do nivel alto para o nivel baixo ele faz leitura
	_delay_ms(15);
	// é preciso colocar este comando pelo menos 2 vezes para que funcione o display
	LCD = 0X22;//nesse momento o display  está em modo 4bits
	_delay_ms(1);//tempo estabilizar o pino
	LCD = 0X02;//ao passar do nivel alto para o nivel baixo ele faz leitura
	_delay_ms(15);

////////////////////entrou no modo 4bits/////////////////////////////////////

	LCD = 0X28;//nesse momento o display  está em modo 4bits,manda usar 2 linhas
	_delay_ms(1);//tempo estabilizar o pino
	LCD =0X08;//ao passar do nivel alto para o nivel baixo ele faz leitura
	_delay_ms(15);

	/////////////////////envia 0X01 - limpar display //////////////////////////
	LCD = 0X20;//manda limpar o display
	_delay_ms(1);//tempo estabilizar o pino
	LCD = 0X00;//ao passar do nivel alto para o nivel baixo ele faz leitura
	_delay_ms(15);//substitui a leitura do busy flag

	LCD = 0X21;//segundo nibble (limpa display)
	_delay_ms(1);//tempo estabilizar o pino
	LCD = 0X01;//ao passar do nivel alto para o nivel baixo ele faz leitura
	_delay_ms(15);//substitui a leitura do busy flag

	////////////////envia 0X06  - movimento e pisca do display/////////////
	
	LCD = 0X20;//manda deslocar a direita (0x06)
	_delay_ms(1);//tempo estabilizar o pino
	LCD = 0X00;//ao passar do nivel alto para o nivel baixo ele faz leitura
	_delay_ms(15);

	LCD = 0X26;//segundo nibble (desloca a direita)
	_delay_ms(1);//tempo estabilizar o pino
	LCD = 0X06;//ao passar do nivel alto para o nivel baixo ele faz leitura
	_delay_ms(15);//substitui a leitura do busy flag

	////////////////envia 0X0C - desliga display /////////////////////

	LCD = 0X20;//cursor desligado (0X0C)
	_delay_ms(1);//tempo estabilizar o pino
	LCD = 0X00;//ao passar do nivel alto para o nivel baixo ele faz leitura
	_delay_ms(15);//substitui a leitura do busy flag

	LCD = 0X2C;//segundo nibble (cursor deligado)
	_delay_ms(1);//tempo estabilizar o pino
	LCD = 0X0C;//ao passar do nivel alto para o nivel baixo ele faz leitura
	_delay_ms(15);//substitui a leitura do busy flag

	//////envia 0X2F - modo 4bits modo 4 linhas tipo de fonte ///////

	LCD = 0X22;//cursor desligado (0X2F)
	_delay_ms(1);//tempo estabilizar o pino
	LCD = 0X02;//ao passar do nivel alto para o nivel baixo ele faz leitura
	_delay_ms(15);//substitui a leitura do busy flag

	LCD = 0X2F;//segundo nibble (cursor deligado)
	_delay_ms(1);//tempo estabilizar o pino
	LCD = 0X0F;//ao passar do nivel alto para o nivel baixo ele faz leitura
	_delay_ms(15);//substitui a leitura do busy flag
	
}

Conversão da temperatura lida do AD

Caixa de texto: void converte_temp()
{	
	float media;
	if(leituratemp==1)
	{
		Volt=((1100*ad_c)/1024);
		media=(1034.7-Volt)/5.4909;   // calculado para 0 a 60 graus
		temperatura=(temperatura+media)/2;
		leituratemp=0;	
	}
	
}

 

Tratamento e ajuste de energia ao módulo

Caixa de texto: void tratamento()
{
				
	if(estado==1)
	{
		
		PORTD|=(1<<PORTD7);
		if(m>=mp)
			{
				ciclo2=0;
				m=0;	
				escreve(0x01,0);
				_delay_us(250);
				cursor_lcd(1,0); //escreve primeira linha
				_delay_us(250);
				sprintf(buffer,"********************");
				impri_lcd(buffer, strlen(buffer));
				cursor_lcd(2,0);
				sprintf(buffer,"*Fim de tratamento!*");
				impri_lcd(buffer, strlen(buffer));
				cursor_lcd(3,0);
				sprintf(buffer,"********************");
				impri_lcd(buffer, strlen(buffer));
				_delay_ms(2000);
				escreve(0x01,0);
				estado=0;
				OCR2B=0;
				PORTD&=~(1<<PORTD7);
			}
	
	else if(modotemp==0)						//tratamento a quente
	{
		
		PORTD|=(1<<PORTD2);			//activa modo de aquecimento (liga relé e o módulo fica inversamente polarizado)
		PORTD|=(1<<PORTD4);			//liga led ambar
		PORTD&=~(1<<PORTD5);		//desliga led azul
		
		if(temperatura<tp)
		{
			OCR2B=255;
		}
		else if(temperatura>=tp)
		{
			OCR2B=OCR2B-10;
		}
	}
	else if(modotemp==1)				//tratamento a frio
		{
			PORTD&=~(1<<PORTD4);		//activa arrefecimento (desliga relé e o módulo fica directamente polarizado)
			PORTD|=(1<<PORTD5);
			PORTD&=~(1<<PORTD2);
		
		if(temperatura>tp)
			{
				OCR2B=255;
			}

		else if(temperatura<=tp)
			{
				OCR2B=OCR2B-10;	
			}
		}
	}	
}

 

Definir posição de escrita no LCD

Caixa de texto: void tela_inicial()
{
	
	escreve(0x01,0);
	_delay_us(250);
	cursor_lcd(1,0);
	 //escreve primeira linha
	sprintf(buffer," ");
	impri_lcd(buffer, strlen(buffer));
	
	cursor_lcd(2,0);
	sprintf(buffer,"******Bem vindo******");
	impri_lcd(buffer, strlen(buffer));
	_delay_ms(2000);
}

 

Pedidos de interrupção

Caixa de texto: //***************************rotinas de interrupção******************************
ISR(TIMER0_COMPA_vect)
{
	ciclo++;
	ciclo3++;
	if(ciclo==2)	//comparação criada para reduzir para metade a velocidade de comutação
	{
		a=1;
		
			PORTD^=(1<<PORTD3);	//comuta no Porto D pino 3
				
		ciclo=0;	//faz reset ao ciclo
}
	
			
		if(estado==1)
		{
			ciclo2++;
			if(ciclo2==4)
			{
				
				s++;
				if(s > 59)
				{
					s = 0;
					m++;
				}
				if(m > 59)
				{
					m = 0;
					
				}
				ciclo2=0;
			}

		}
	if(ciclo3==4)
		{
			leituratemp=1;
			ciclo3=0;	
		}
		
	ad_c=ADC;
	
	
}

ISR(ADC_vect)
{

ADCSRA|=(1<<ADSC);			//reinicia conversao


}

·   

Resultados

Início

 

 

Durante as várias experiências com o equipamento verificou-se que devido a micro-cortes na alimentação o display deixa de trabalhar devidamente, este problema ocorre quando o equipamento está a alimentar o modulo peltier em plena carga, e ao consumir mais de 8 amperes, a própria fonte de alimentação desligava momentaneamente (proteção de curto circuito). O mesmo problema ficou solucionado com o aumento da espessura das pistas na placa de circuito impresso (menor resistência = menos perdas e quedas de tensão).

Relativamente aos valores de temperatura alcançados, constatou-se que para atingir os valores máximos aplicáveis, o equipamento demora cerca de 4 minutos para o arrefecimento(15ºC) e cerca de 2 a 3 minutos para aquecer (40 ºC).

Video 1- Ensaio do equipamento

        

Video 2 - Ensaio do menu de testes

 

·   

Conclusões

Início

 

 

O projeto desenvolvido na cadeira de LABSIS permitiu abrir horizontes numa área que não pertence ao plano de estudos, a electromedicina. Apesar da simplicidade do trabalho e o baixo nível de exigência de segurança quando comparado com equipamentos da mesma família (ex. desfibriladores, monitores cardíacos, máquinas de diálise, etc.), conseguiu-se e com sucesso criar um equipamento que consegue ajustar a temperatura de um tratamento qualquer para um tipo de lesão que possa ser abordada por estes tipos de tratamento. Evitando assim danos físicos, como queimaduras (causadas por frio ou calor), pele irritada, desintegração de proteínas, por exposição prolongada e/ou temperaturas não controladas.

Aspectos do software:

Inicialmente estava previsto ajustar os valores do PWM pelo método PID (proportional-integral-derivative) sendo calculado cada valor tendo em conta a temperatura actual, tendo assim um sistema ativo no aspeto do controlo da temperatura, contudo o método e a aplicação para este método era demasiado complexa para o projecto e inclusivamente mostrou-se ineficiente dado que os dados fornecidos pelo fabricante do módulo Peltier utilizado não serem exatas e em algumas situações, muito vagas. Para resolver essa situação recorreu-se a um sistema reactivo ou também conhecido por Proporcional.

O facto de o equipamento ter menu de testes e de reporting facilita ver dados em tempo real para possíveis ajustes/reparações.

O interface de utilizador foi pensado para ter uma leitura rápida e de fácil interpretação.

Aspectos do Hardware:

 Durante todo o trabalho e o seu progresso, quer a nível de design do hardware e programação, foi-se constatando que os microcontroladores iam ficando mais e mais limitados quer a nível de pinos quer a nível de capacidades (tendo em vista a possibilidade de expansão do mesmo).

O FET foi escolhido devidamente sendo que trabalha a 81.36% da sua capacidade (118 watts de potência máxima dissipada vs. 96 watts de potência máxima consumida pelo módulo).

PCB’s:

O circuito por uma questão de facilidade na montagem e na localização de possíveis avarias foi separado em 3 circuitos: Painel, CPU e Módulo de Potência.

Painel de instrumentos - onde se encontra o display e as teclas para ajuste de parâmetros foram separados das outras placas.

CPU – onde se encontra o microcontrolador, leds indicadores e interface para programação e onde e encontra o sensor de temperatura analógico ligado.

Módulo de Potência – A alimentação de todo o circuito é fornecida por esta parte, nela também se encontra toda a electrónica que atua sobre o processo de tratamento, e onde estão ligados os seguintes componentes: módulo Peltier, bomba de água, alimentações compostas de 15v, 12v e 5v.

·            

Referências

Início

 

 

[1]  https://pt.wikipedia.org/?title=Crioterapia a 2015/03/01

[2] Slides das aulas teóricas de LABSIS do ano letivo 2014/2015

[3] Slides das aulas teóricas de Eletrónica de Potência do ano letivo 2014/2015

[4] Slides das aulas teóricas de Instrumentação do ano letivo 2014/2015

[5] Slides das aulas teóricas de TESIS do ano letivo 2011/2012

[6] http://www.ebah.pt/content/ABAAAASFEAI/termoterapia a 2015/04/06

[7] http://www.dermatofuncional.pt/termoterapia

[8] https://pt.wikipedia.org/wiki/Modula%C3%A7%C3%A3o_por_largura_de_pulso

[9] Datasheets dos fabricantes.

 

Início