Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
Universidade do Minho
Departamento de Engenharia Electrónica Industrial e Computadores
Desenvolvimento de sistema de regulação e monitorização de temperatura e humidade
para aplicação em calçado ortopédico.
Rafael Marques de Oliveira
Dissertação para a obtenção do Grau de Mestre em:
Engenharia Electrónica Industrial e Computadores
Orientador: Professor Hélder Carvalho
Co-Orientador: Professor Catedrático João Monteiro
Data:
I
“Faça as coisas o mais simples que puder, porém não as mais simples.”
Albert Einstein
II
Agradecimentos
Gostaria primeiramente de agradecer á Universidade do Minho pela
oportunidade de fazer parte da melhor academia do país e pelo carinho obtido por todas
as pessoas que fazem parte desta mesma Universidade, o meu muito obrigado.
Quero deixar também umas palavras de apreço a todos os meus professores que
me leccionaram durante estes anos, um obrigado pela paciência e interesse que tiveram
e também pelos ensinamentos que me foram dados. Um agradecimento também aos
funcionários das oficinas do Departamento de Electrónica pelo apoio dado, tanto no
hardware como no apoio informático e principalmente na área do desenho de placas
PCB.
Um muito obrigado ao meu orientador Prof. Hélder Carvalho, pelo auxílio e
orientação, pela disponibilidade e pelas valiosas ideias que foram surgindo ao longo de
todo este projecto, fazendo-o cada vez mais ambicioso.
Aos meus companheiros de curso, na qual sem eles a vida universitária não tem
qualquer sentido, as brincadeiras, as saídas á noite, o apoio e entreajuda de todos os
colegas de curso, fazem deles uma parte importantíssima de toda a formação académica.
Não poderia acabar sem deixar o mais valioso agradecimento que vai apara os
meus pais, tendo sido as pessoas fundamentais durante toda a minha formação. Um
muito obrigado pela paciência que tiveram, pelo ânimo e pela motivação, pelo esforço
feito para que eu tenha sucesso na vida e também pelo carinho ao longo de todos estes
meus anos de vida.
Pretendo também agradecer a toda a restante família, principalmente ao meu avô
materno, pois seria motivo de enorme orgulho tê-lo entre nós nesta altura tão especial
para mim, obrigado avô pelas histórias de vida contadas, pela coragem e orgulho
sentido.
Agradeço á Marta, por ser meu braço direito quando as coisas não estavam a
correr de feição, pela paciência e por todos os nossos momentos passados.
III
Resumo
Este trabalho teve como objectivo o desenvolvimento de um sistema de
regulação, monitorização e registo da temperatura, para ser aplicado a calçado
ortopédico.
Para tal, foi integrado numa bota um sistema de aquecimento baseado em tecidos
com fios condutores, sendo estes alimentados por uma bateria e a corrente fornecida
regulada por um sistema electrónico. Este mesmo sistema é constituído por um
microprocessador, um módulo Bluetooth e sensores de temperatura e humidade. O
controlo realizado é apenas feito sobre a temperatura, pois esta é monitorizada e pode
ser actuada (através dos fios condutores). Já no caso da humidade, esta apenas servirá
para informar o utilizador, pois não tem actuação possível no sistema desenvolvido.
Para realizar a comunicação com o microprocessador e para visualizar toda a
informação, foi usado um dispositivo móvel, ligado ao sistema através de comunicação
Bluetooth. O sistema oferece funcionalidades de medição de temperaturas e humidades
em tempo real, fazendo o registo destes valores na memória interna do
microprocessador, que posteriormente podem ser descarregados para o dispositivo
móvel; controlar a temperatura de 3 modos distintos (controlo On/Off, controlo
contínuo PI, ou regulação manual); e alterar os vários parâmetros relativos a estes
modos de actuação (setpoint, histerese, duty-cycle).
No final o sistema funcionou conforme o esperado, sendo demonstrado que
consegue atingir valores de temperatura suficientemente altos, quando o aquecimento é
realizado à temperatura ambiente (>40°C) e valores muito razoáveis quando aquecido
no frigorífico (≈33°C). O controlo da temperatura efectuado com os 3 modos distintos
funcionou correctamente, sendo capaz de elevar a temperatura e mantê-la, consoante o
modo utilizado.
Palavras-chave:
Regulação, Monitorização, Sensores, Microprocessador, Bluetooth, On/Off, PI.
IV
Abstract
This work had as objective, develop a system of regulation, monitoring and
recording of temperature, to be applied on orthopedic footwear.
To do this, a system based at heating tissues with wires was integrated in a boot,
powered by a battery and the current supply regulated by an electronic system. That
system consists of a microprocessor, a Bluetooth module and sensors for temperature
and humidity. The control is performed only about temperature, since it is monitored
and can be actuated (through wires). In the case of humidity, this will only serve to
inform the user, as it has no action possible in the system developed.
To realize communication with the microprocessor and to view all the
information, it was used a mobile device connected to the system using Bluetooth
communication. The system provides capabilities for measuring temperature and
humidity in real time, making the record of these values in the internal memory of the
microprocessor, which can later be downloaded to the mobile device; control the
temperature of three distinct modes (On / Off control, PI control, or manual regulation);
and changes the various parameters for these modes of action (setpoint, hysteresis, duty-
cycle).
In the end the system worked as expected, being demonstrated that it can reach
values of temperature high enough, when the heating is performed at room temperature
(> 40 ° C) and very reasonable values when heated in a refrigerator (≈33°C). The
temperature control performed with three distinct modes worked properly, being able to
raise the temperature and keep it, depending on the mode used.
Keywords:
Regulation, Monitoring, Sensors, Microprocessor, Bluetooth, On/Off, PI.
V
Índice
1. Introdução ...................................................................................... 1
1.1 Enquadramento e objectivos ................................................................. 1
1.2 Estrutura da tese .................................................................................... 1
2. Revisão da literatura ..................................................................... 2
2.1 Vestuário aquecido com fibras condutoras ........................................... 2
3. Fundamentos Teóricos .................................................................. 6
3.1 Sensores ................................................................................................. 6
3.1.1 Sensores de Temperatura .......................................................... 6
3.1.2 Sensores de Humidade .............................................................. 9
3.2 Sistemas de Controlo ........................................................................... 10
3.2.1 Controlo On/Off ...................................................................... 10
3.2.2 Controlo PID ........................................................................... 10
3.2.3 Controlo de potência por PWM .............................................. 14
3.3 Comunicação Bluetooth ...................................................................... 15
3.4 Especificação geral de requisitos e estrutura do sistema ..................... 17
4. Desenvolvimento.......................................................................... 18
4.1 Selecção de componentes .................................................................... 18
4.1.1 Sensor de Temperatura ........................................................... 18
4.1.2 Sensor de Humidade ............................................................... 18
4.1.3 Módulo Bluetooth ................................................................... 20
4.2 Alimentação ........................................................................................ 21
4.3 Microcontrolador ................................................................................. 22
4.3.1 Circuito de clock ..................................................................... 23
4.3.2 Software .................................................................................. 24
4.3.3 Programação ........................................................................... 26
4.4 Hardware ............................................................................................. 27
VI
4.4.1 Circuito de controlo de potência ............................................. 27
4.4.2 Filtro passa-baixo .................................................................... 28
4.4.3 Placa PCB ............................................................................... 29
4.5 Firmware ............................................................................................. 32
4.5.1 Funcionalidades e comandos .................................................. 32
4.5.2 Estrutura geral do firmware .................................................... 39
4.6 Software aplicacional para PC ............................................................ 49
5. Resultados .................................................................................... 51
5.1 Planeamento experimental .................................................................. 52
5.2 Desempenho do tecido de aquecimento .............................................. 53
5.3 Desempenho do controlo manual ........................................................ 55
5.4 Performance do controlo On/Off ......................................................... 56
5.5 Performance do controlo PI ................................................................. 58
5.6 Teste do sensor de humidade .............................................................. 59
5.7 Funcionamento geral do sistema ......................................................... 60
6. Conclusões .................................................................................... 62
7. Bibliografia .................................................................................. 64
VII
Índice de Figuras
Figura 1: Cobertor eléctrico com comando de regulação de potência, retirada de [1]. .... 2
Figura 2: Modo de aplicação do cobertor eléctrico, adaptada de [3]. .............................. 3
Figura 3: Visão geral da constituição da palmilha, adaptada de [6]. ................................ 4
Figura 4: Esquema geral do sistema de aquecimento, retirada de [7]. ............................. 5
Figura 5: Esquematização do funcionamento de um sensor............................................. 6
Figura 6: Circuito medidor de corrente, retirada de [10]. ................................................. 7
Figura 7: Exemplo de um termístor (PTC). ...................................................................... 8
Figura 8: Exemplo de um termopar. ................................................................................. 8
Figura 9: Exemplo de sensores de temperatura integrados. ............................................. 9
Figura 10: Exemplo de um sensor de humidade............................................................... 9
Figura 11: Ilustração do sistema de controlo On/Off, adaptada de [15]......................... 10
Figura 12: Esquema geral do controlo PID, retirada de [17].......................................... 11
Figura 13: Estabilidade vs Resposta, retirada de [18]. ................................................... 13
Figura 14: Curva característica do 1° método de Ziegler-Nichols, adaptada de [17]. ... 13
Figura 15: Variação do duty cycle no PWM, adaptada de [20]. ..................................... 14
Figura 16: Esquema de uma piconet e scatternet, retirada de [22]. ............................... 16
Figura 17: Ilustração geral da estrutura do sistema. ....................................................... 17
Figura 18: Sensor de temperatura LM35. ....................................................................... 18
Figura 19: Sensor de humidade HIH-5030. .................................................................... 19
Figura 20: Módulo Bluetooth KC-21. ............................................................................ 20
Figura 21: Esquema do regulador de tensão (+5V). ....................................................... 22
Figura 22: Microprocessador PIC16F877A. .................................................................. 23
Figura 23: Esquema do circuito de reset. ....................................................................... 23
VIII
Figura 24: Esquemático do clock.................................................................................... 24
Figura 25: Ambiente geral do software MPLAB IDE. ................................................... 24
Figura 26: Ambiente geral do software PIC Simulator IDE. ......................................... 25
Figura 27: Aspecto físico do programador ICA01. ........................................................ 26
Figura 28: Ambiente geral do software PICkit2. ............................................................ 26
Figura 29: Exemplificação do encaixe para os diferentes modelos de PIC‟s. ................ 27
Figura 30: Esquemático do circuito de controlo de potência. ........................................ 28
Figura 31: Esquemático de um filtro passa-baixo. ......................................................... 28
Figura 32: Ambiente geral do Eagle............................................................................... 29
Figura 33: Componentes e ligações no modo Schematic-Editor. ................................... 30
Figura 34: Disposição final de componentes na placa PCB. .......................................... 31
Figura 35: Vista detalhada da localização do módulo Bluetooth. .................................. 31
Figura 36: Imagem real da placa PCB final. .................................................................. 32
Figura 37: Fluxograma do funcionamento do teste ao comando recebido. .................... 34
Figura 38: Fluxograma do funcionamento do comando “Upld”, “Log” e “Lgoff”. ....... 37
Figura 39: Imagem do cabo TTL-232 3.3V, retirada de [28]. ........................................ 39
Figura 40: Ilustração dos pinos respectivos ao cabo TTL-232 3.3V, retirada de [28]. .. 39
Figura 41: Interface do módulo Bluetooth com o microcontrolador, adaptada de [25]. 40
Figura 42: Fluxograma do funcionamento da recepção de carateres. ............................ 41
Figura 43: Registos ADCON0 e ADCON1 do microprocessador PIC16F877A, adaptada
de [26]. ............................................................................................................................ 42
Figura 44: Equação do tempo de aquisição, retirada de [26]. ........................................ 43
Figura 45: Fluxograma geral do funcionamento do timer 1. .......................................... 45
Figura 46: Fluxograma do funcionamento do log. ......................................................... 47
Figura 47: Fluxograma do funcionamento do upload e logoff. ...................................... 48
IX
Figura 48: Aspecto do software criado para comunicar com o sistema. ........................ 49
Figura 49: Imagem dos vários intervenientes da fase de testes. ..................................... 51
Figura 50: Teste de temperatura máxima atingida no congelador.................................. 53
Figura 51: Teste de temperatura máxima atingida no frigorífico. .................................. 54
Figura 52: Teste de temperatura máxima atingida á temperatura ambiente. .................. 55
Figura 53: Performance do modo manual ...................................................................... 56
Figura 54: Teste do controlo On/Off (setpoint de 30°C). ............................................... 57
Figura 55: Teste do controlo On/Off (setpoint de 32°C e histerese de 2°C). ................. 57
Figura 56: Obtenção do parâmetro T. ............................................................................. 58
Figura 57: Performance do controlo PI no frigorífico .................................................... 59
Figura 58: Higrómetro e termómetro digital. ................................................................. 60
Figura 59: Performance do sensor de humidade. ........................................................... 60
X
Índice de Tabelas
Tabela 1: Influência dos parâmetros Kp, Ki e Kd. ......................................................... 12
Tabela 2: Tabela de parametrização de Ziegler-Nichols. ............................................... 14
Tabela 3: Tabela de alguns comandos do módulo Bluetooth KC-21. ............................ 21
Tabela 4: Tensões mínimas e máximas dos diferentes componentes. ............................ 21
Tabela 5: Comandos existentes para comunicar com o microprocessador. ................... 33
Tabela 6: Estrutura dos 2 bytes guardados. .................................................................... 34
Tabela 7: Tabela descritiva do planeamento experimental ............................................ 52
1
1. Introdução
1.1 Enquadramento e objectivos
Este projecto surge do facto das pessoas deficientes ou com problemas, que
utilizam calçado ortopédico, se queixarem de muito do frio nos pés. No projecto em que
este trabalho está inserido “INOVSHOES – Padronizar para Costumizar Calçado
Ortopédico”, propôs-se desenvolver um protótipo de um sistema de aquecimento
aplicável a este mesmo calçado. Neste sentido, foi prototipado um sistema algo
complexo, mas que demonstra capacidades para servir de base em projectos futuros.
Esses projectos poderão vir a ser desenvolvidos como sistemas de aquecimento para
pessoas acamadas ou com problemas de sensibilidade.
O objectivo passa por dar especial importância a este tipo de problemas,
projectando uma forma de os diminuir, contribuindo para um melhor bem-estar.
1.2 Estrutura da tese
O documento apresentado está dividido basicamente em seis capítulos. O
primeiro capítulo faz um enquadramento do tema e define os seus objectivos. No
segundo capítulo é feita uma revisão de literatura, sendo apresentados os trabalhos já
existentes e protótipos semelhantes ou com algumas funções idênticas. O terceiro
capítulo faz uma breve descrição da teoria relativa ao tipo de componentes e técnicas
utilizadas para a implementação do projecto. O capítulo 4 descreve o desenvolvimento
propriamente dito. O capítulo 5 apresenta os resultados obtidos e descreve alguns dos
problemas encontrados.
Por fim, as conclusões de todo o trabalho efectuado e as propostas para um
trabalho futuro são descritas no sexto e último capítulo.
2
2. Revisão da literatura
2.1 Vestuário aquecido com fibras condutoras
O sistema têxtil de aquecimento mais utilizado é provavelmente o cobertor
eléctrico do qual se apresenta um exemplo na Figura 1.
Figura 1: Cobertor eléctrico com comando de regulação de potência, retirada de [1].
De acordo com [2], no início do ano 1900, apareciam os primeiros cobertores
que eram inicialmente pesados, volumosos e muito perigosos, sendo considerados na
altura como uma extravagância.
O cobertor eléctrico é normalmente constituído por fios revestidos, inseridos
numa malha ou tecido, aquecendo quando aplicada uma tensão. A temperatura é
controlada por uma aparelho electrónico que vem sempre associado ao cobertor,
normalmente ligado a 24V e com sistema de segurança. O sistema realiza um corte de
corrente quando a temperatura atinja um valor definido pelo utilizador. Este era um
problema grave dos cobertores mais antigos, pois não continham esta segurança. Os
cobertores mais recentes usam fibra de carbono para efectuar o aquecimento, sendo este
material muito mais fino que o usado nos antigos cobertores.
Com o avanço tecnológico surgiram várias variantes e novas ideias, como a
criada por Scott D. Augustine e Ryan S. Augustine [3]. Considerando a cabeça e braços
como zonas onde existem grandes perdas de calor, o cobertor apresentado tem como
objectivo garantir o aquecimento da zona da cabeça e de pelo menos um braço,
3
deixando o peito e abdómen expostos. O modo de aplicação deste cobertor é
exemplificado na Figura 2.
Figura 2: Modo de aplicação do cobertor eléctrico, adaptada de [3].
Está comprovado que os pacientes provenientes dos blocos operatórios e sob
anestesia se tornam “poiquilotérmicos”. Isto significa que os pacientes perdem a
capacidade de controlar a sua temperatura corporal, ficando à mercê da temperatura
ambiente. Como os blocos operatórios modernos possuem ar condicionado e
normalmente ligados a uma temperatura relativamente baixa para conforto do pessoal
médico, a maioria dos pacientes sob anestesia geral, entram em estado de hipotermia se
não forem aquecidos [3].
Tal como a invenção dos cobertores eléctricos, várias ideias e novos produtos
surgiram. Exemplo disso são os casacos, luvas, botas, meias e cachecóis que foram
surgindo [4]. Todos estes possuem mais ou menos a mesma estrutura podendo apenas
variar nos materiais usados para realizar o aquecimento, sendo que um dispositivo de
controlo de potência é sempre indispensável.
Em relação ao calçado aquecido, existem vários projectos diferentes que se
baseiam no aquecimento da palmilha do sapato. Anne McCoy e Matt Tijan em [5],
patentearam uma forma de aquecimento no calçado, em que o aquecimento é efectuado
quando colocado em cima de uma placa indutora. Os sapatos possuem na sola um
material constituído por cobre e ferro, que quando posicionados em cima da placa
condutora, é-lhes induzida uma corrente, provocando calor.
4
Outro projecto patenteado relativo a calçado aquecido, é o de uma palmilha
aquecida electricamente, alimentada por uma bateria [6]. A sola é dividida em duas
partes, separadas pelos componentes eléctricos que vão realizar a monitorização da
temperatura e o respectivo aquecimento. A palmilha foi desenhada para ser aplicada a
qualquer tipo de calçado, sendo automaticamente aquecida, quando a temperatura do pé
no seu interior baixar de um certo ponto. Possui um modo automático, que liga o
aquecimento quando a temperatura vai abaixo dos 26ºC e desliga quando ultrapassa os
37ºC. Alternativamente, o aquecimento da palmilha pode ser actuado usando um
controlo remoto, usando rádio frequência para comunicar.
Figura 3: Visão geral da constituição da palmilha, adaptada de [6].
Hakan Isisk desenvolveu um sistema de aquecimento eléctrico aplicado a
calçado para usar em condições de temperatura baixa [7]. O sistema é demonstrado na
Figura 4.
5
Figura 4: Esquema geral do sistema de aquecimento, retirada de [7].
O sistema de controlo é constituído por um circuito analógico alimentado por
uma bateria de 3.5V - 5000mAh. O sensor de temperatura usado foi um termistor NTC.
A bateria foi colocada na zona do calcanhar, os componentes electrónicos ao centro,
pois trata-se da zona onde é aplicada menos pressão e o material de aquecimento
colocado na frente. O consumo de corrente é cerca de 500mAh o que equivale a
autonomia de aproximadamente 10 horas. Este sistema consegue atingir a temperatura
de 29°C em 4 minutos, não sendo especificadas as condições deste desempenho.
6
3. Fundamentos Teóricos
3.1 Sensores
Um sensor é uma parte do sistema de medida que fornece uma resposta a um
parâmetro físico particular e é capaz de converter alterações físicas num sinal
mensurável [8]. Os sensores são usados para reagir a mudanças no seu ambiente
permitindo medir essas alterações. Existem diversos tipos de sensores, cada um com o
propósito de medir diferentes estímulos físicos, podendo medir temperaturas, pressões,
luminosidade, humidade, radiação, calor, etc. Cada um destes sensores possui
características físicas diferentes, sendo que no geral a capacidade de medição diminui
com a distância ao estímulo e aumenta com o tempo exposto à mesma.
Figura 5: Esquematização do funcionamento de um sensor.
3.1.1 Sensores de Temperatura
Existem vários sensores de temperatura, distinguindo-se pela forma como a
temperatura é convertida e como é devolvida a informação. Um dos “sensores” mais
conhecidos trata-se do termómetro de vidro, inventado em 1659 por um astrónomo e
padre, Ismael Boulliau [9]. O termómetro possui mercúrio no interior de uma ampola e
que expande e diminui quando a temperatura aumenta e diminui respectivamente.
Juntando estas alterações a uma escala numerada, a temperatura torna-se facilmente
perceptível ao utilizador.
7
Existem outros tipos de sensores tais como o termístor, o termopar e circuitos
integrados com base em transístores de silício, em que as propriedades dos
semicondutores e das junções pn são utilizados para essa mesma função. Neste caso a o
cálculo da temperatura tem como base o circuito da Figura 6. Assumindo que (Q1,Q2) e
(Q3,Q4) são idênticos, a tensão na base dos transistors Q3 e Q4 é a mesma, logo a
corrente no terminal de entra divide-se de igual modo pelo colector de Q1 e Q2 [10]. A
equação geral que calcula a corrente dependendo do valor de temperatura é:
Alguns sensores deste tipo convertem internamente esta corrente, fazendo-a
passar por uma resistência, devolvendo depois o valor em tensão.
Figura 6: Circuito medidor de corrente, retirada de [10].
O termo termístor é uma contração das palavras “thermal” e “resistor”, tratando-
se de um semicondutor cuja resistência varia com a variação da temperatura, podendo
ser positivamente ou negativamente, ou seja com o aumento da temperatura a
resistência aumenta (PTC - Positive Temperature Coefficient) ou diminui (NTC -
Negative Temperature Coefficient). Um problema dos termístores é a sua calibração,
pois a sua relação temperatura/resistência é claramente não linear [11], levando a que se
tenha de utilizar um circuito electrónico de modo a ajustar ao mais linear possível.
Outros dos problemas que este tipo de sensor possui, é o facto de fornecer a medida da
temperatura em resistência, tendo esta de ser mais tarde convertida para tensão, de
(1)
8
modo a poder ser ligada aos pinos do microprocessador. Termístores são dispositivos de
baixo custo, oferecem uma resposta rápida, uma gama extensiva de tamanhos e
tolerâncias e uma extensa gama de funcionamento (-100°C e 300°C).
Figura 7: Exemplo de um termístor (PTC).
No caso do termopar trata-se de um sensor de temperatura que se baseia num
fenómeno físico chamado de “Efeito de Seebeck” descoberto pelo físico Thomas
Seebeck [12]. Num circuito formado por dois condutores metálicos diferentes, quando
as duas junções estão a temperaturas diferentes, gera-se uma corrente cuja grandeza é
directamente proporcional á diferença de temperatura entre as duas junções. Existem
tabelas onde é descriminada toda a informação sobre cada tipo de termopar, pois
possuem diferentes características conforme a junção de metais usados. Este tipo de
sensor é económico e consegue medir uma vasta gama de valores (-270 ~ 2300 °C), no
entanto a sua maior desvantagem é a sua exactidão, pois é difícil obter erros abaixo de
1°C.
Figura 8: Exemplo de um termopar.
Outro tipo de componente capaz de ler e converter a temperatura noutra
grandeza, são alguns sensores integrados, que normalmente devolvem o valor da
temperatura em tensão, variando linearmente com esta. Estes componentes necessitam
de alimentação e de uma ligação para obter o sinal convertido, sendo alguns deles
capazes de serem programados, definir a resolução do valor a converter, capazes de se
9
colocar em modo sleep poupando assim energia, definir valores para setpoint e
histerese, etc.
Alguns exemplos de modelos existentes são o LM135, LM235, LM335, LM35,
LM75, TMP275, DS18B20 e TCN75.
Figura 9: Exemplo de sensores de temperatura integrados.
3.1.2 Sensores de Humidade
Os sensores de humidade são dispositivos capazes de medir humidade relativa
do ar. Este tipo de sensores têm vindo a evoluir em muito graças a recentes evoluções
na tecnologia dos semicondutores, tornando estes dispositivos altamente precisos e com
maior durabilidade [13]. Os sensores de humidade subdividem-se em básicos
(capacitivos e resistivos) e mais complexos (circuitos integrados).
Os sensores capacitivos funcionam como um condensador variável, em que a
capacidade varia conforme a humidade relativa no ambiente. Este tipo de sensores
necessita de um condicionamento de sinal, sendo normalmente usado o circuito
oscilador RC, em que C é a capacidade do sensor, obtendo-se assim uma determinada
frequência de oscilação relativa à humidade lida pelo sensor. Outro tipo de sensor de
humidade é capaz de converter o valor de humidade a que está sujeito e devolve-o em
tensão, o que facilita de certo modo a sua leitura. Alguns dos modelos vistos foram
SHUM-0100, SHT 15, HIH-5030, HIH-5031, HS1101LF.
Figura 10: Exemplo de um sensor de humidade.
10
3.2 Sistemas de Controlo
3.2.1 Controlo On/Off
O modo mais comum e mais simples no controlo de temperatura é o controlo
ON/OFF. A saída deste sistema de controlo está ligada ou desligada, não havendo um
meio-termo, encontrando-se ligada quando a temperatura se encontra abaixo do setpoint
e desligada quando ultrapassa esse valor [14]. Tendo em conta um sistema de controlo,
o setpoint é o valor em que se pretende estabilizar o sistema. Nos casos em que o
sistema é muito rápido, a operação repetida de ligar e desligar pode danificar os
componentes. De modo a reduzir este problema é adicionado o parâmetro “histerese”,
consistindo em adicionar uma margem acima e abaixo do setpoint. O sistema de
controlo On/Off é frequentemente usado quando não é necessário um sistema de
controlo com grande precisão. A Figura 11 ilustra o modo de funcionamento do sistema
On/Off.
Figura 11: Ilustração do sistema de controlo On/Off, adaptada de [15].
3.2.2 Controlo PID
O controlo PID é uma técnica de controlo de processos com três termos, em que
usa uma variável proporcional, uma integral e uma derivativa. Por ser intuitivo,
relativamente simples e possuir um desempenho satisfatório, tornou-se na prática o
controlador padrão em ambientes industriais. Este modo de controlo vem evoluindo
11
juntamente com o progresso da tecnologia e hoje em dia é frequentemente
implementado através de processamento digital em vez de ser baseado em componentes
pneumáticos ou eléctricos [16].
A técnica de controlo PID consiste em calcular um valor de actuação a partir das
informações do valor desejado e do valor atual da variável do processo. O valor de
actuação é determinado garantindo um controlo estável e preciso. A Figura 12
esquematiza o processo de controlo PID.
Figura 12: Esquema geral do controlo PID, retirada de [17].
A equação 2 é a equação geral do controlo PID, de onde se obtém o valor da
variável de actuação. A variável e(t) representa o valor do erro, Kp é o ganho
proporcional, Ki é o ganho integral e Kd o ganho derivativo.
O controlo proporcional ou ação do controlador é proporcional ao erro e(t), ou
seja à diferença entre o valor pretendido (setpoint) e o valor atual da variável
controlada. Este controlo por si só não consegue manter uma temperatura constante,
porque quando a temperatura atinge o valor do setpoint (erro = 0) a sua influência será
nula, portanto a temperatura voltará a descer até que o erro volte a ser diferente de zero.
Foi necessário adicionar uma ação integral que visa eliminar o erro do controlo
proporcional. O controlo integral realiza uma integração do erro, ou seja soma o valor
dos erros ao longo do tempo, fazendo com que quando se atinja o valor do setpoint a
saída deixe de ser zero, mantendo a temperatura. O controlo derivativo tem o efeito de
reduzir a velocidade das variações da variável controlada. Esta ação apenas reage
quando acontecer uma variação na temperatura, contrariando essas variações.
(2)
12
Para aproximar digitalmente no tempo a Erro! A origem da referência não foi
encontrada. 2, e sendo h o período de amostragem, pode usar-se:
Em que, sum_e(t) = sum_e(t-1) + e(t). O valor dos parâmetros Kp, Ki e Kd, têm
de ser definidos de forma a se obter o controlo mais rápido e estável possível. Estes três
parâmetros influenciam de formas diferentes a dinâmica do sistema. As quatro
características mais importantes num sistema em malha fechada são:
Rise time – tempo que leva à variável a controlar atingir 90% do valor
pretendido pela primeira vez.
Overshoot – valor máximo que a variável a controlar atinge quando
ultrapassa o valor pretendido.
Settling time – tempo que do sistema leva a atingir o seu estado de
equilíbrio.
Erro – diferença entre o valor pretendido e o valor da variável a
controlar.
A tabela seguinte demonstra como cada um dos parâmetros influencia as
características acima descritas:
Parâmetros Rise Time Overshoot Settling Time Erro
Kp Diminui Aumenta Não Altera Diminui
Ki Diminui Aumenta Aumenta Elimina
Kd Não altera Diminui Diminui Não altera
Tabela 1: Influência dos parâmetros Kp, Ki e Kd.
O primeiro passo é definir o valor para cada um destes parâmetros, de modo a
que o sistema obtenha uma resposta rápida e boa estabilidade. No entanto estas duas
características são muito dinâmicas, pois dependem muito da própria velocidade do
sistema e da exigência de cada um. A Figura 13 mostra numa visão geral como será a
forma de onda que se pretende obter no final, tendo em conta a importância destas 2
características anteriores.
(
2)
(3)
13
Figura 13: Estabilidade vs Resposta, retirada de [18].
Para encontrar os três parâmetros existem vários métodos diferentes. Irá apenas
fazer-se referência ao conhecido por “primeiro método de Ziegler-Nichols” [17]. Neste
método, a saída do sistema é colocada no valor máximo e é traçado um gráfico com os
valores da variável a controlar, mostrando a sua evolução ao longo do tempo. No caso
da variável a controlar ser a temperatura, a curva traçada tende a ser em formato “S”,
que pode ser caracterizada por duas constantes, tempo de atraso L e constante de tempo
T. É traçada uma tangente no ponto de inflexão até intersectar o eixo do tempo e a recta
da temperatura máxima atingida. A constante L é o tempo que passa desde o ligar do
actuador, até à intersecção da recta tangente com o eixo do tempo e a constante T é o
tempo entre as duas intersecções. A Figura 14 exemplifica uma curva característica
deste método.
Figura 14: Curva característica do 1° método de Ziegler-Nichols, adaptada de [17].
14
Através destas duas constantes (L e T) é possível agora determinar os valores de
Kp, Ki e Kd, de acordo com a tabela seguinte.
Controlador Kp Ki Kd
P
0 0
PI 0.9
0.27
0
PID 1.2
0.6
0.6 T
Tabela 2: Tabela de parametrização de Ziegler-Nichols.
Definindo Kp, Ki e Kd, de acordo esta tabela, o sistema terá uma resposta com
cerca de 25% de overshoot e um bom tempo de estabilização. A partir deste ponto pode-
se calibrar melhor estas 3 variáveis, tendo sempre em conta a reação que cada um
provoca, como demonstrado na Tabela 1.
3.2.3 Controlo de potência por PWM
O PWM (Pulse-width modulation) é uma técnica usada para controlar potência.
Consiste em gerar uma onda quadrada sendo depois definido o tempo que o sinal se
mantém em nível alto ou nível baixo [19], conforme mostrado na Figura 15.
Figura 15: Variação do duty cycle no PWM, adaptada de [20].
A figura ilustra de que forma o tempo em que a tensão se mantém em ON, vai
alterar o valor da saída (linha a vermelho). O valor na saída é calculado pela equação 3,
15
em que „Ton‟ é o tempo em ON, „Tciclo‟ é o tempo de um ciclo da onda, „Vmáx‟ é a
tensão máxima fornecida pela saída e ao factor Ton/Tciclo chama-se „duty cycle‟:
3.3 Comunicação Bluetooth
Este projecto tem como objectivo a comunicação sem fios, de modo a facilitar a
interação entre o utilizador e dispositivo de controlo. Para realizar esta tarefa foi
adicionado um módulo Bluetooth à placa electrónica implementada na bota. A
tecnologia Bluetooth usa ondas de rádio a baixa frequência (2400-2485 MHz) para
efectuar a transmissão de dados entre computadores, smartphones, telefones, teclados,
ratos, impressoras e outros dispositivos. As principais características que definem esta
tecnologia são a robustez, baixo consumo e baixo custo [21].
Em relação ao alcance e potência, estes dividem-se em 3 classes:
Classe 1: potência máxima de 100 mW, alcance de até 100 metros;
Classe 2: potência máxima de 2,5 mW, alcance de até 10 metros;
Classe 3: potência máxima de 1 mW, alcance de até 1 metro.
É importante frisar que dispositivos com classes diferentes podem comunicar
entre si, desde que se respeite a distância máxima da classe inferior. Dispositivos com a
classe 3 podem parecer pouco funcionais por possuírem um alcance reduzido, mas por
exemplo para uma comunicação entre uns auscultadores e um dispositivo na cintura de
uma pessoa serve perfeitamente, com a vantagem de consumir menos que qualquer uma
das outras classes.
A tecnologia Bluetooth surgiu em 1994 em um acordo de empresas como
Ericsson, IBM, Intel, Toshiba e Nokia, que visava a junção de diferentes tecnologias,
motivada pela ideia de conseguir realizar a comunicação sem fios entre dispositivos
[22].
(4)
16
O Bluetooth é uma tecnologia em constante evolução e ao longo dos tempos já
passou por diferentes versões, variando principalmente em questões de velocidade de
transmissão de dados e consumo energético.
Bluetooth 1.0, 1.1 e 1.2 – velocidades de 1Mbps (0.7Mbps efectivos).
Bluetooth 2.0 e 2.1 – velocidades de 3Mbps (2.1 Mbps efectivos).
Bluetooth 3.0 – velocidades de 24 Mbps.
A velocidade de comunicação entre dispositivos com versões diferentes, é mais
uma vez possível mas a velocidade máxima permitida será sempre limitada pelo
dispositivo com a versão inferior.
Quando dois ou mais dispositivos comunicam usando uma conexão Bluetooth,
eles compõem uma rede denominada piconet. Nessa comunicação, quem inicia a
conexão assume-se como master (mestre), já os restantes dispositivos tornam-se slaves
(escravos). Compete ao master a tarefa de regular o sincronismo entre os dispositivos e
efectuar a transmissão de dados em toda a rede [22]. Numa piconet apenas podem fazer
parte 8 dispositivos (1 master e 7 slaves), mas é possível aumentar este número
sobrepondo piconets, desde que seja dentro de um certo limite. Este esquema tem o
nome de scatternet. Um master apenas pode fazer parte de uma piconet, mas um slave
pode fazer parte de várias [23].
Figura 16: Esquema de uma piconet e scatternet, retirada de [22].
17
3.4 Especificação geral de requisitos e estrutura do
sistema
De um modo resumido, este sistema é constituído por uma bota ortopédica, um
tecido que possui fios condutores (usada para o aquecimento), sensores de temperatura e
humidade, um sistema electrónico e uma bateria.
Todo o sistema electrónico foi dimensionado para que o circuito final fosse de
pequenas dimensões e construído de modo a ser fiável e seguro. Este sistema é
constituído por um microprocessador, um módulo Bluetooth, sensores de temperatura e
sensores de humidade, dois circuitos reguladores de tensão e um circuito actuador, tudo
isto alimentado por uma bateria de lítio 7.4V. No que toca à quantidade de sensores a
usar, foi estipulado um máximo de 4 sensores de temperatura e 4 sensores de humidade.
Figura 17: Ilustração geral da estrutura do sistema.
18
4. Desenvolvimento
4.1 Selecção de componentes
4.1.1 Sensor de Temperatura
O sensor LM35 foi o sensor escolhido por se tratar do que tinha características
adequadas ao sistema, inclusive o baixo custo. Trata-se de um circuito integrado muito
preciso, de pequenas dimensões, variação linear de 10mV/°C, precisão de 0.5°C,
funciona a temperaturas entre -55°C e +150°C, tensão de alimentação 4 a 30V e baixo
consumo [24]. O sensor apresenta o valor da temperatura em tensão, o que proporciona
uma leitura mais fácil, bastando assim ligá-lo directamente ao microprocessador e
converter a sua tensão para a respectiva temperatura (°C).
Figura 18: Sensor de temperatura LM35.
Este sensor tem como vantagens a sua pequena dimensão, simples de usar,
possui uma boa sensibilidade e boa resolução e possui uma tensão de alimentação
adequada ao projecto, pois esta abaixo da tensão da bateria (7.4V).
4.1.2 Sensor de Humidade
O sensor escolhido para efectuar a conversão da humidade foi o modelo HIH-
5030 da empresa “Honeywell”. Os aspectos que se teve mais em conta na selecção do
sensor foram o tamanho, a fiabilidade, o baixo consumo e facilidade de conversão. Este
19
sensor possui tensão de alimentação entre 2.7v e 5.5V, tem uma evolução
humidade/tensão muito próxima de linear e possui uma resposta rápida.
Figura 19: Sensor de humidade HIH-5030.
O valor da tensão que o sensor devolve quando submetido a uma determinada
humidade, é calculado recorrendo à equação 5, dependendo esse valor apenas da tensão
de alimentação e da humidade a que este sensor está sujeita.
Para efectuar o cálculo directo da humidade quando o sensor devolve uma
determinada tensão, é necessário recorrer à equação 6, tendo surgido de uma
reformulação da equação 5.
A tensão de alimentação usada para este sensor foi de 5V. Com isto e usando a
equação anterior, determina-se que o valor de tensão fornecido pelo sensor é de 0.76V e
3.94V, quando submetidos a ambientes com 0%RH e 100%RH, respectivamente.
(
3)
(
4)
(5)
(6)
20
4.1.3 Módulo Bluetooth
A escolha do módulo Bluetooth foi feita com base em dois critérios: o tamanho
reduzido e o baixo consumo. Depois de algumas comparações foi escolhido o módulo
KC-21 da empresa “KC Wirefree”, apenas com 26.9mm x 15.2mm x 2.5mm de
tamanho, consome 25mA como slave e 40µA em modo sleep. A sua tensão de
alimentação tem 3.6v como máximo admitido e possui mais algumas funcionalidades
(comandos AT, 14 pinos programáveis, alta taxa de transferência de dados até 3Mbps,
alcance até 20m, etc.) [25].
Figura 20: Módulo Bluetooth KC-21.
O que este módulo bluetooth realmente faz é “emular” a porta série substituindo
o cabo RS-232, usando um dos vários perfis bluetooth definidos e adoptados pela
“Bluetooth SIG”. O perfil utilizado chamado “Serial Port Profile (SPP)”. Utilizando este
perfil é possível efectuar uma comunicação sem fios como se de uma comunicação série
se trata-se. O módulo bluetooth utilizado possui 2 modos de funcionamento, modo
bypass e modo remoto. O modo bypass torna o módulo bluetooth “invisível”, fazendo a
ligação entre o PDA/computador e o microcontrolador. O modo remoto permite
comunicar directamente com o módulo, necessário para o configurar.
Relativamente à configuração do módulo bluetooth, é necessário parametrizar o
baud rate usando “comandos AT”. Comandos AT são comandos em que cada um
começa pelo prefixo AT, o corpo do comando e o caracter de fim de comando (ex: AT
Showstatus <CR>). O comando para definir o baud rate é “AT ChangeBaud 9600”,
sendo „9600‟ o valor do baud rate que foi definido.
21
Para passar do modo remoto para o modo bypass utiliza-se o comando “AT
Bypass”, para o inverso utiliza-se o comando “~~~~~3”. Na Tabela 3 são mostrados
alguns exemplos de comandos úteis.
Comandos Descrição
AT Discovery Mostra todos os dispositivos Bluetooth encontrados.
AT Discoverable Torna ou não o módulo visível para outros dispositivos.
AT FactoryReset Faz reset a todas as configurações.
AT Name Altera o nome apresentado quando descoberto por outros
dispositivos.
AT Showstatus Apresenta algumas definições assim como a temperatura a que se
encontra o dispositivo.
Tabela 3: Tabela de alguns comandos do módulo Bluetooth KC-21.
4.2 Alimentação
A fonte de energia utilizada durante toda a fase de testes foi uma fonte de
alimentação regulável. No entanto o sistema requer a utilização de uma bateria, devido à
necessidade da fonte de energia ser portátil e de pequenas dimensões. Escolheu-se
portanto uma bateria de lítio. Estas baterias vêm com valores estandardizados de 3.7V,
7.4V, 9v e 11.1V. Como os vários componentes necessitam de diferentes alimentações,
tiveram de ser escolhidos dois valores diferentes para alimentar todos os componentes.
A Tabela 4 apresenta as alimentações dos diferentes componentes:
Nome V mínimo V máximo
PIC16F877A 2 5.5
KC-21 2.8 3.6
LM35 4 30
HIH-5030 2.7 5.5
Tabela 4: Tensões mínimas e máximas dos diferentes componentes.
Depois de examinadas as possibilidades, os sensores de temperatura LM35, os
sensores de humidade HIH-5030 e o microcontrolador PIC16F877A, serão alimentados
22
à tensão de 5V. Já o módulo bluetooth será alimentado a 3.3V, pois é a tensão
recomendada, e o actuador (malha de aquecimento) será alimentado directamente com
7.4V da bateria.
No que diz respeito á alimentação, como a bateria não tem um valor de tensão
ideal para todos os componentes, foi necessário recorrer a dois reguladores de tensão de
modo a conseguir obter os 3.3V e 5V pretendidos. Os circuitos dos reguladores de
tensão são similares, apenas diferem no componente regulador: o LM1117-3.3V e o
LM1117-5V respectivamente. A Figura 21 mostra o esquemático do circuito
electrónico.
Figura 21: Esquema do regulador de tensão (+5V).
4.3 Microcontrolador
Os requisitos do microcontrolador a utilizar neste projecto eram os seguintes:
Possibilidade de gerar sinais PWM;
Mínimo de duas entradas analógicas;
Mínimo de 1 timer livre;
Comunicação série;
Memória não-volátil para registo de valores;
Conversor A/D;
Baixo consumo.
23
Foram identificados vários dispositivos com estas e muitas mais características,
mas por uma questão de preço, acessibilidade e grande quantidade de material auxiliar
(artigos, fóruns, blogs, etc), foi escolhido o modelo PIC16F877A [26].
Figura 22: Microprocessador PIC16F877A.
Reset
O circuito de reset utilizado consta do datasheet do microcontrolador [26] e
apresenta-se na Figura 23, sendo constituído por 1 díodo 1N4148, 1 resistência de 1kΩ
e um botão de pressão.
Figura 23: Esquema do circuito de reset.
O pino de reset do micro (MCLR), possui lógica inversa ou seja, quando a
tensão no pino é GND é feito reset ao microprocessador. O díodo é usado para assegurar
um único sentido da corrente e para garantir um valor ligeiramente abaixo da tensão de
alimentação no pino.
4.3.1 Circuito de clock
A frequência de relógio escolhida foi de 20Mhz, sendo esta a frequência máxima
permitida pelo microcontrolador. Com 20 MHz, garante-se velocidade suficiente na
24
execução das tarefas e também menor probabilidade de erro quando for necessário
executar comunicação série a 9.6k de baud rate [26].
Para definir a frequência do clock do microprocessador foi necessário colocar o
componente oscilador com a frequência pretendida entre os pinos 13 (OSC1) e 14
(OSC2), e a cada um dos seus terminais ligar um condensador de 33pF ao terminal
GND, como mostra a Figura 24.
Figura 24: Esquemático do clock.
4.3.2 Software
O compilador utilizado neste trabalho foi o MPLAB IDE 8.63v. A Figura 25
mostra o seu ambiente gráfico.
Figura 25: Ambiente geral do software MPLAB IDE.
25
Para facilitar o desenvolvimento foi usado um simulador de PIC‟s. Este software
simula todos os processos internos e externos, envolvidos na execução dos programas
num microprocessador real. Este software consegue detectar previamente as falhas
existentes no código, poupando o tempo que demora a programar o microprocessador
de cada vez que se pretende realizar um teste. O software permite visualizar o código
passo a passo e verificar todos os registos existentes no micro individualmente e
também simular algumas interacções externas. O simulador utilizado foi o “PIC
Simulator IDE”, cujo aspecto é mostrado na Figura 26.
Figura 26: Ambiente geral do software PIC Simulator IDE.
O simulador permite percorrer todo o código a 6 velocidades diferentes,
incluindo uma em modo “passo-a-passo”. É também possível alterar bit a bit o valor das
variáveis e registos pretendidos, ver as suas variações, ver o esquemático do PIC em
questão e as variações nos pinos do mesmo, simular a comunicação série, ver o
conteúdo da memória EEPROM, entre outras funcionalidades.
26
4.3.3 Programação
O programador de PIC‟s escolhido foi o ICA01, pela simplicidade e baixo custo
[27].
Figura 27: Aspecto físico do programador ICA01.
O software usado para transferir o ficheiro “.hex”, que resulta do processo de
compilação e linkagem no MPLab, foi o “PICkit2” (Figura 28).
Figura 28: Ambiente geral do software PICkit2.
27
Para realizar a programação no PIC, este deve ser inserido no programador
conforme mostra a Figura 29, sendo depois ligado o cabo USB ao computador e
programado o microprocessador com o auxílio do software “PICKit2”.
Figura 29: Exemplificação do encaixe para os diferentes modelos de PIC’s.
4.4 Hardware
4.4.1 Circuito de controlo de potência
Foi necessário criar um circuito de controlo de potência de modo controlar a
corrente fornecida à malha de aquecimento. Definiu-se que a potência máxima dissipada
na malha de aquecimento era de 3 Watts. Como o circuito foi alimentado por uma fonte
de alimentação de 10 Volts, conclui-se que a corrente máxima permitida seria de
3W/10V= 333mA. Para realizar o controlo de potência era necessário um transístor com
corrente máxima no colector superior a 333mA. Utilizou-se o transístor de Darlington
“BD675G” (Icmáx = 4A), devido a ser o único disponível no momento. O circuito
traduz-se pelo seguinte esquema:
28
Figura 30: Esquemático do circuito de controlo de potência.
4.4.2 Filtro passa-baixo
Quando chegada a fase de testes, detectou-se um problema de ruído na saída do
sensor de temperatura. A saída do sensor oscilava cerca de 20mV, o que se traduzia em
variações de +/- 2ºC. Foi necessário então dimensionar um filtro passa-baixo, de modo a
eliminar o ruído existente e obter um valor mais estável. A Figura 31 ilustra o esquema
de um filtro passa-baixo:
Figura 31: Esquemático de um filtro passa-baixo.
A frequência de corte foi determinada pela seguinte equação:
(7)
29
4.4.3 Placa PCB
Inicialmente foi prototipado todo o circuito electrónico numa breadboard, de
modo a garantir o bom funcionamento dos componentes, tendo sido mais tarde
necessário desenhar uma placa PCB. Esta placa PCB tende a tornar o circuito o mais
compacto possível, para que seja mais fácil de adaptá-la à sola da bota ortopédica.
Para desenhar a placa PCB foi necessário o auxílio de um software de desenho
de circuitos impressos, o software escolhido foi o “Eagle”.
Figura 32: Ambiente geral do Eagle.
Este software oferece três módulos de trabalho, o Schematic-Editor, Layout
Editor e Autorouter, tudo em apenas um interface.
O modo Schematic-Editor serve para o desenho do esquemático do circuito, ou
seja, são colocados todos os dispositivos e estabelecem-se todas as ligações entre eles,
sendo que nesta fase não importa a organização física dos componentes.
No modo Layout Editor é dimensionado o tamanho final da placa, é estruturada
a disposição final de todos os componentes e são desenhadas as pistas que estabelecem
as ligações entre eles.
30
No caso Autorouter trata-se de um modo de desenho automático, em que apenas
se posicionam todos os componentes no local pretendido e as pistas são desenhadas
automaticamente e de forma instantânea. A contrapartida deste modo é que por vezes o
trajecto das pistas não é o mais adequado nem o mais curto e não permite ao utilizador
desenhar as pistas manualmente. Por essas razões o modo Autorouter não foi utilizado.
A Figura 33 mostra os componentes usados e as ligações efectuadas entre eles,
no modo Schematic-Editor. Os sockets SV3 e SV4 são usados para ligar os sensores de
temperatura e humidade, servindo as primeiras quatro linhas para sensores de
temperatura e as restantes para sensores de humidade.
Figura 33: Componentes e ligações no modo Schematic-Editor.
Já no modo Layout Editor, foi definido o tamanho final da placa (6.4cm x
5.2cm), a organização e distribuição dos componentes, sendo posteriormente
desenhadas as pistas que ligam os componentes. A Figura 34 demonstra o aspecto final
da placa no software Eagle.
31
Figura 34: Disposição final de componentes na placa PCB.
Na placa PCB pode observar-se:
Um circuito de reset do micro, sendo o reset realizado pressionando o
botão de pressão;
Dois circuitos reguladores de tensão, 3.3V e 5V;
Um microcontrolador com circuito de clock ;
Um módulo para comunicação sem fios, Bluetooth KC-21, mais detalhado
na Figura 35.
Figura 35: Vista detalhada da localização do módulo Bluetooth.
32
Um circuito de controlo de potência (o circuito actuador), que regula a
corrente para aquecer o fio condutor;
Um filtro passa-baixo RC.
Ligação para os sensores (3 sockets lineares de 8 pinos);
Ligador de alimentação.
Figura 36: Imagem real da placa PCB final.
4.5 Firmware
4.5.1 Funcionalidades e comandos
Para o controlo do sistema de regulação de temperatura foi criado um protocolo
de comunicação através do qual é possível enviar comandos e requisitar informações do
sistema. O protocolo de comunicações é muito simples e baseia-se no envio de um
conjunto de caracteres com as seguintes regras:
Tamanho máximo de 15 caracteres;
Iniciar os comandos com os caracteres “*#”;
Intervalar os diferentes parâmetros com um espaço;
Terminar com o carácter “_”;
33
A cada envio, o sistema responde com a respectiva resposta, seguido de uma
cópia exacta do comando enviado. Com respectiva resposta quero dizer, no caso de uma
leitura a resposta será o valor lido, no caso de uma parametrização não haverá qualquer
resposta. Se houver erro, o sistema devolve uma mensagem de “Error”. A Tabela 5
apresenta os comandos implementados:
Descrição do comando Parâmetro 1 Parâmetro 2 Parâmetro 3 Comando
(exemplo) Resposta
Ler entrada analógica N° sensor
(0 - 7) *#anlg 0_ 47*#anlg 0_
Log entrada analógica N° sensor
(0 - 7)
Intervalo
(1<seg<65535) *#log 0 10_ *#log 0 10_
Log OFF Sensor
8:Todos *#lgoff 0_ *#lgoff 0_
Setpoint Temperatura *#stpnt 25_ *#stpnt 25_
Histerese Histerese *#hist 1_ *#hist 1_
Set duty cycle % *#duty 50_ *#duty 50_
Upload *#upld _ 47*48*#upld _
Modo de controlo
0. Desligar Modo *#ctrl 3_ *#ctrl 3_
1. On/Off Modo N° Sensor
(0 - 7) *#ctrl 1 0_ *#ctrl 1 0_
2. PI Modo N° Sensor
(0 - 7) *#ctrl 2 0_ *#ctrl 2 0_
3. Manual Modo *#ctrl 3_ *#ctrl 3_
Ler tensão *#outv _ 100*#outv _
Parâmetros PI Kp Ki N° amostras *#pid 18 6 4_ *#pid 18 6 4_
Tabela 5: Comandos existentes para comunicar com o microprocessador.
Com os caracteres “*#” e “_”, é delimitado claramente o início e fim de um
comando respectivamente. No caso de o comando enviado não corresponder com
nenhum dos pré-definidos, é devolvida pelo microprocessador uma mensagem de
“Error”. Esta mensagem também é devolvida caso falhe a verificação dos dois primeiros
caracteres.
34
Figura 37: Fluxograma do funcionamento do teste ao comando recebido.
a) Comando “anlg”
Descrição: Lê a entrada analógica, converte o valor e devolve-o em formato
digital;
Parâmetros: Nº de sensor;
Exemplo: *#anlg 0_
Implementação: Quando enviado o comando “*#anlg <sensor>_”, é chamada a
função “resposta” que chama de seguida a função “conversao” em que define qual o a
entrada a converter e inicia a conversão. Após a conversão estar completa, ocorre a
interrupção do conversor A/D, copiando os valores convertidos para uma variável
auxiliar e depois enviada pela porta série para o pc.
b) Comando “log”
Descrição: Realiza o log dos valores lidos, gravando na memória EEPROM do
microprocessador.
Parâmetros: Nº de sensor, Intervalo;
Exemplo: *#log 0 10_
Implementação: Esta função é executada quando é enviado o comando “*#log
<sensor> <intervalo>_”. A gravação é feita utilizando 2 bytes, em que o formato do log
é demonstrado na tabela abaixo:
Não utilizado N° Sensor Dados
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Tabela 6: Estrutura dos 2 bytes guardados.
35
Os 2 primeiros bytes da memória EEPROM foram reservados para guardar o
endereço dos últimos 2 bytes gravados. Foi adicionado aos bits 10, 11 e 12 o número do
sensor a que os dados dizem respeito.
c) Comando “lgoff”
Descrição: Desativa os logs que se encontram ativos;
Parâmetros: Nº de sensor;
Exemplo: *#lgoff 0_
Implementação: Esta função de parar a gravação, tem duas formas de ser
executada. Uma é quando não há mais espaço livre na memória, sendo executada uma
paragem forçada do log. Outra possibilidade é quando o próprio utilizador o pretende,
sendo esta paragem executada individualmente ou relativamente a todos os sensores. O
comando a enviar é “*#lgoff <sensor>_”. Para fazer uma paragem geral basta usar o
valor „8‟ no parâmetro <sensor>.
d) Comando “stpnt”
Descrição: Este comando altera o valor do setpoint;
Parâmetros: Temperatura;
Exemplo: *#stpnt 25_
Implementação: Foi pré-definido o valor „30‟ para a variável setpoint. O
comando “stpnt” apenas actualiza o valor do setpoint.
e) Comando “hist”
Descrição: Este comando altera o valor da histerese;
Parâmetros: Histerese;
Exemplo: *#hist 1_
Implementação: Foi pré-definido o valor „2‟ para a variável histerese. O
comando “hist” apenas actualiza o valor da histerese.
f) Comando “duty”
Descrição: Altera o valor de duty cycle;
Parâmetros: %;
36
Exemplo: *#duty 50_
Implementação: Após enviado o comando “*#duty <%>_” é chamada a função
“resposta” e é actualizado o valor do duty cycle.
g) Comando “upld”
Descrição: Realiza o upload dos valores gravados na memória EEPROM;
Parâmetros: Nenhum;
Exemplo: *#upld _
Implementação: Gravada toda a informação, o microprocessador terá de ser
capaz de enviar essa informação quando requisitada. O comando que realiza essa
operação é “*#upld _”. A informação é automaticamente descarregada para o pc ou
dispositivo móvel, ficando ao cargo do software do dispositivo, o tratamento da
informação recebida.
37
Figura 38: Fluxograma do funcionamento do comando “Upld”, “Log” e “Lgoff”.
h) Comando “ctrl”
Descrição: Este comando serve para definir qual o modo de controlo que será
ativado, ou seja, On/Off, PI ou manual, ou para desligar qualquer um deles.
Desligar o modo de controlo
Parâmetros: Modo;
Exemplo: *#ctrl 0_
Implementação: Desactiva qualquer um dos modos activos, desligando o
timer1 caso esteja apenas a ser utilizado pelo controlo On/Off e desliga o timer2
de modo a desactivar o PWM.
Ligar o modo de controlo On/Off
Parâmetros: Modo, nº sensor;
Exemplo: *#ctrl 1 0_
Implementação: Neste modo é necessário ter atenção aos parâmetros
setpoint‟ e histerese, porque são os parâmetros que vão influenciar o controlo
On/Off. É necessário escolher qual o sensor que lê a temperatura a regular, tendo
em conta que apenas poderá ser feito em sensores de temperatura,
correspondendo aos valores entre 0 e 3.
Ligar o modo de controlo PI
Parâmetros: Modo, nº sensor;
Exemplo: *#ctrl 2 0_
Implementação: Após o envio deste comando é ativado o timer1 para
realizar contagens de 1 segundo e activo o timer2 para iniciar a função de PWM.
Cada vez que o timer1 conta 1 segundo, é realizada uma conversão A/D e
actualizado o valor do duty cycle através da respectiva fórmula:
Em que Kp é a constante proporcional, erro é a diferença entre o valor do
setpoint e a média do nº de amostras (definido no comando “*#pid”), Ki é a constante
integrativa, dt é uma constante auxiliar com o valor de „0.1‟ sendo criada para conseguir
38
definir valores decimais para a variável Ki, e sum_e trata-se da soma de todos os erros
ao longo do tempo.
Ligar o modo de controlo manual
Parâmetros: Modo;
Exemplo: *#ctrl 3_
Implementação: Este comando activa o modo de controlo manual (controlo
realizado por PWM) carregando o valor do duty cycle para os registos
„CPP1CON‟ e „CCPR1L‟, arrancando de seguida o timer2.
i) Comando “outv”
Descrição: Lê a tensão fornecida à saída do microcontrolador.
Parâmetros: Nenhum;
Exemplo: *#outv _
Implementação: Após enviado o respectivo comando, a resposta devolvida será
um valor entre 0 e 100. Se o modo de controlo em execução for o On/Off, o valor
devolvido será „0‟ quando a saída estiver desligada (0v) e „100‟ quando a saída estiver
ligada (5V). No caso do controlo PI ou manual, será devolvido um inteiro entre 0 e 100,
podendo este ser qualquer valor inteiro neste intervalo. Havendo 100 valores diferentes
para representar 5V, isso corresponde que cada valor inteiro devolvido equivalha a
cerca de 50mV (ex: 5 -> 250mV, 25 -> 1.25V, 50 -> 2.50V).
j) Comando “pid”
Descrição: Define os parâmetros necessários à realização do controlo PI.
Parâmetros: Kp, Ki, nº amostras;
Exemplo: *#pid 18 6 4_
Implementação: Para iniciar este modo é necessário definir 3 parâmetros, sendo
eles o Kp, Ki e n° amostras. O Kp diz respeito à constante proporcional, o Ki à
constante integral e o n° amostras é a quantidade de amostras que se fará uma média, de
modo que saída reaja a partir desse valor. Com isto a actuação da saída é suavizada e
tornando o sistema menos susceptível a oscilações.
39
4.5.2 Estrutura geral do firmware
O firmware desenvolvido pode ser dividido nos seguintes blocos, que serão de
seguida apresentados: comunicação série, timers, gravação da memória, conversão A/D,
PWM.
Comunicação série
A comunicação série é usada para realizar a comunicação entre o
microcontrolador e um computador portátil ou entre o microcontrolador e um
smartphone com o auxílio do módulo Bluetooth. Para efectuar a ligação física entre os
dois primeiros é necessário usar um conversor série-USB. No caso foi utilizado o TTL-
232R 3.3V da empresa “FTDI Chip”. O aspecto do cabo é mostrado na Figura 39, assim
como os pinos respectivos na Figura 40.
Figura 39: Imagem do cabo TTL-232 3.3V, retirada de [28].
Figura 40: Ilustração dos pinos respectivos ao cabo TTL-232 3.3V, retirada de [28].
40
O pino TxD do microcontrolador liga portanto ao pino amarelo (5) e o pino RxD
ao pino laranja (4) do cabo.
No caso de se pretender usar comunicação sem fios, é introduzido o módulo
Bluetooth, na qual o modo de funcionamento foi explicado anteriormente. Assim, os
pinos TxD e RxD do microprocessador são ligados aos do módulo Bluetooth, que
estabelece a ligação com o PC ou smartphone. Por sua vez, o programa no PC acede a
uma porta série virtual proporcionada pela ligação Bluetooth.
Na ligação do microprocessador ao módulo Bluetooth teve que se ter em atenção
os níveis de tensão dos dois dispositivos. O pino TxD do módulo Bluetooth foi ligado
directamente ao pino RxD do micro já que o micro entende 3.3V como nível alto. Já o
pino TxD do micro passa primeiro por um divisor de tensão, de modo a baixá-la para
cerca de 3.3V, e só depois entra no pino RxD do módulo Bluetooth. O valor máximo da
tensão de entrada no módulo Bluetooth é de 3.7V. A Figura 41 ajuda a perceber o modo
como foram feitas as ligações.
Figura 41: Interface do módulo Bluetooth com o microcontrolador, adaptada de [25].
Em relação ao processamento interno, quando solicitada uma comunicação série
esta pode ser descrita em alguns passos. Os registos usados foram “TXEN” que permite
ao módulo o envio de caracteres, “CREN” que permite receber. A interrupção de leitura
41
é gerada cada vez que é recebido um byte. O fluxograma seguinte traduz todo o
funcionamento:
Figura 42: Fluxograma do funcionamento da recepção de carateres.
As funções usadas são a função “comparacao” e “resposta”. A função
“comparacao” compara byte a byte o comando recebido e uma lista de comandos
previamente inicializados no microcontrolador. Caso o comando não corresponda a
nenhum dos comandos implementados, é enviada uma resposta com a mensagem
“Error”. No caso de coincidirem, a variável auxiliar chamada “cmd” recebe o valor
respectivo ao comando em questão. Seguidamente é chamada a função “resposta”, que
executa as ações respectivas ao comando recebido. Após a tarefa pretendida estar
concluída, é accionado o envio da resposta através da porta série. A interrupção que
realiza o envio de caracteres é acionada quando o registo “TXEN” toma o valor „1‟. O
envio é realizado com um “printf” de uma variável chamada “envio”, e é feito byte a
42
byte até estar completo. Seguidamente é desligado o modo de envio (TXEN=0) e ligado
o modo de recepção (CREN=1), ficando o microcontrolador novamente à espera de um
comando.
Conversão Analógico-Digital
Para realizar a tarefa de leitura de sensores recorre-se ao conversor analógico-
digital que o microcontrolador possui, sendo que o resultado da conversão é um número
digital de 10 bits. Inicialmente quando o microcontrolador é ligado, o conversor A/D
encontra-se desligado de modo a minimizar o consumo, sendo apenas ligado quando
requisitado. Numa primeira fase, é necessário configurar o ADC. A configuração
consiste na parametrização do clock da conversão, definir se o registo que recebe o
resultado da conversão se encontra justificado à direita ou à esquerda, e a configuração
dos pinos. Esta configuração é efectuada através dos registos “ADCON0” e
“ADCON1”. No código criado o registo ADCON0 e ADCON1 possuem o valor de 128.
Figura 43: Registos ADCON0 e ADCON1 do microprocessador PIC16F877A, adaptada de [26].
A configuração dos pinos leva a definir se o pino é entrada digital ou analógica,
e se a tensão de referência é a mesma que a tensão de alimentação ou não. Sendo 128, o
valor definido para o registo ADCON1, significa que os 8 pinos (AN0 – AN7) são todas
entradas analógicas e a tensão de referência é a tensão de alimentação. Sabendo que o
conversor é de 10 bits, que a tensão “Vref+” são 5V (tensão de alimentação do
microcontrolador) e “Vref-“ são 0V, foi realizado o seguinte cálculo:
(8)
(9)
43
O sensor LM35 devolve 10mV/°C, ou seja 5mV/0.5°C. Assim sendo, a
resolução é de cerca de 0,5°C.
Quando requisitada uma conversão A/D, é definido no comando enviado o
número do sensor que se realizará a conversão. O microcontrolador chama uma função
chamada “conversão”, para que esta configure o registo ADCON0, de modo ao
microcontrolador saber qual o pino que vai ler e converter. Seguidamente é necessário
esperar um “acquisition time”, que é o tempo mínimo necessário para que um
condensador interno carregue completamente com a tensão aplicada ao pino em
questão. Este tempo é calculado segundo a Figura 44.
Figura 44: Equação do tempo de aquisição, retirada de [26].
Depois disto isto é iniciada a conversão, activando o bit 2 do registo ADCON0
(GO/DONE), ocorrendo uma interrupção quando esta finalizar. Os registos “ADRESL”
e “ADRESH” guardam o valor convertido, sendo de seguida através de uma pequena
operação lógica passados para uma variável auxiliar. A transmissão de caracteres via
comunicação série é ligada e a variável auxiliar onde está contido o valor da conversão
é enviada para o receptor.
Timers
Uns dos dispositivos mais usados pelo microcontrolador são os timers, sendo
estes responsáveis por controlar o intervalo de tempo entre determinadas acções. O
microcontrolador usado possui três timers diferentes, sendo dois deles de 8 bits e um de
16. Neste projecto utilizou-se apenas foi o timer1 (16bits) e o timer2 (8bits). O primeiro
foi usado para cronometrar intervalos de 100 milissegundos, sendo usado nas leituras
44
dos sensores, logs e modo de actuação ON/OFF. O segundo usou-se para efectuar o
controlo manual e controlo PI, em que se recorre ao PWM (Pulse-width modulation). A
função e modo de actuação do PWM, assim como a configuração do timer2, serão
explicados mais adiante.
A configuração do timer 1 é feita através do registo “T1CON”. Existem mais
dois registos necessários de inicializar, são eles o “TMR1L” e “TMR1H”, fazendo
juntos um registo de 16 bits. Dependendo da configuração no registo T1CON e da
frequência de clock do microcontrolador (no caso 20Mhz), é necessário carregar os
registos “TMR1L” e “TMR1H” com os respectivos valores. O cálculo do intervalo
máximo que o timer1 consegue contar, foi encontrado da seguinte forma:
De modo a fazer o timer incrementar mais lentamente decidiu-se definir o
prescaler = 32, fazendo que o timer1 demora-se mais tempo até ocorrer um overflow,
3.277ms * 32 ≈ 0.105 seg. Prescaler é o nome dado a uma função no microcontrolador
que divide a frequência de clock, fazendo com que o timer conte tempos mais longos.
Este apresenta valores como 2, 4, 8, 16, 32, 64, 128, 256, tendo por exemplo um
prescale de „128‟, significa que o timer apenas incrementa a cada 128 ciclos de clock.
De forma a facilitar os cálculos posteriores, foi definido para o timer1 um tempo de
contagem de 0.1seg. Os registos TMR1L e TMR1H foram carregados com os seguintes
valores:
Estes cálculos podem ser mais rapidamente efectuados através da ferramenta
apresentada em [29]. O que acontece no microcontrolador quando se arranca a
contagem do timer1, é o valor do registo TMR1L aumentar a cada ≈1.6µs (com
(10)
(11)
(12)
(13)
(14)
45
prescaler), ocorrendo uma interrupção quando suceder um overflow, sendo isto o atingir
do valor máximo nos dois registos (TMR1H e TMR1L possuírem o valor „0xFF‟).
Figura 45: Fluxograma geral do funcionamento do timer 1.
O timer1 intervém em 3 funções diferentes. No caso do log o tempo de entre
cada gravação é definida pelo utilizador, no caso do controlo PI e controlo On/Off foi
pré-definido 1 e 5 segundos respectivamente.
No caso do modo On/Off, este foi pré-definido para ser contado 50 vezes, visto
que o sistema é relativamente lento e torna-se dispensável estar constantemente a
verificar o valor da temperatura. Quando contado 50 vezes, é chamada a função
“conversao”, que converte o valor do respectivo sensor e de seguida é efectuado o
devido controlo.
Já o caso do modo PI, o número de interrupções contadas até se tomar uma
determinada ação vai depender do valor escolhido pelo utilizador. Foi definido que os
intervalos definidos pelo utilizador apenas poderão ser em segundos e com um mínimo
de 1, pois achou-se pouco útil fazer medições com intervalos inferiores.
Pulse-with Modulation (PWM)
O timer que gera a frequência da onda quadrada necessária ao PWM é o timer2
(8-bits). Para calcular a frequência do PWM é necessário recorrer à equação 15.
(15)
46
A frequência do PWM definida foi de 5KHz, o valor do TMR2 prescale foi 4 e a
Tosc = 1/20Mhz = 50ns, portanto reformulando a equação 15, obtemos a equação 16 e o
valor de PR2.
= 249
O registo T2CON é onde são configurados o prescale do clock, o postscale da
saída e arrancado o timer. O prescale foi explicado anteriormente, o postsale é parecido
com o prescale mas em vez de diminuir a frequência dos incrementos do timer, aumenta
o número de vezes que é necessário ocorrer um overflow para ocorrer uma interrupção.
Basicamente com um postscale de „8‟, é necessário que aconteçam 8 overflows até
ocorrer uma interrupção. O valor do prescale definido foi „4‟, logo o valor atribuido à
variável T2CON foi „0x01‟.
Quando for activado o modo manual, o microcontrolador carrega os bits menos
significativos do PWM para os bits 4 e 5 do registo CCP1CON, e carrega para o registo
CCPR1L o valor dos restantes bits, arrancando de seguida o timer 2. Foi definido por
defeito que o valor inicial do duty cycle é de 50%, podendo ser alterado sempre que
pretendido. Quando o duty cycle escolhido for „0‟ é carregado para o registo CCP1CON
o valor „12‟ e CCPR1L o valor „0‟. Se o valor de duty cycle escolhido for par, o valor de
CCP1CON é „60‟, no caso de ser ímpar o registo CCP1CON toma o valor de „28‟. Em
qualquer um destes casos o valor do registo CCPR1L é calculado segundo a equação 17.
Memória EEPROM
De modo a poder efetuar o log da temperatura, é necessário que os dados sejam
gravados numa memória, podendo ser mais tarde lidos ou trabalhados. A memória
EEPROM existente no microcontrolador PIC16F877A foi utilizada para cumprir essa
função. A memória EEPROM deste microprocessador apenas possui 256 bytes, o que
não representa muito espaço, acrescendo o facto de os dados gravados serem gravados
(
6)
(16)
(17)
47
em 2 bytes por registo (ver Tabela 6). Com 256 bytes disponíveis e com dois deles
serem reservados para guardar o ultimo endereço de memória gravado, restam apenas
254 bytes, o que dá um total de 127 registos que podem ser guardados.
Quando o microprocessador é ligado pela primeira vez ou quando é realizado
um reset, é atribuido ao bit 7 do registo EECON1 o valor „0‟. EECON1 é o registo de
acesso á memória, em que se define qual memória aceder (programa ou dados), permite
ou não a escrita e inicia a escrita/leitura da memória. De seguida é eliminado o conteúdo
do endereço de memória “0x00h” (local da memória reservado para guardar o apontador
para o último valor registado), garantindo que cada vez que seja efectuado um reset
limpe este endereço de memória. Para eliminar o conteúdo da EEPROM é apenas
necessário reinicializar o apontador descrito. Não é necessário apagar a memória, pois
ao escrever num espaço de memória da EEPROM, o seu conteúdo é automaticamente
eliminado e guardados os novos dados.
Figura 46: Fluxograma do funcionamento do log.
A sequência de gravação trata-se de colocar no registo EECON2 o valor “0x55”
seguido do valor “0xAA”, tratando-se de uma sequência necessária para garantir a
escrita. Falando agora em termos de controlo de endereços e dados, cada vez que é
requisitada uma gravação, o que acontece é após a informação a gravar (n° de sensor +
dados) ter sido efectuada com sucesso, o registo EEADR é aumentado para ser
efectuada nova gravação. Após este incremento este registo é comparado com o valor
48
“0xFF” de forma a perceber se a memória está no último endereço disponível. Em caso
positivo realiza mais uma gravação e após isso desliga.
Figura 47: Fluxograma do funcionamento do upload e logoff.
Quando o utilizador manda parar uma gravação, é primeiramente verificado se
está numa gravação. Em caso positivo o log é apenas desligado quando a gravação
estiver concluida, caso contrario é desligada a escrita na memória EEPROM de forma
imediata. Se for iniciado novamente o comando log, sem que tenham sido
descarregados os dados previamente guardados, este verifica o valor do registo “0x00” e
em caso do valor ser “0xFF” significa que a memória está completa, retornando uma
mensagem de “Mem error”. Se o valor existente nesse endereço for inferior a “0xFF”, o
log é inicializado normalmente, gravando os dados a partir desse mesmo endereço.
No caso da leitura da memória EEPROM, quando é requisitada pelo utilizador o
que o microcontrolador faz é verificar qual o endereço que se encontra na memória
“0x00h” da EEPROM, assim fica a saber a quantidade de dados existentes. De seguida
começa a ler os dados a partir do endereço “0x02h”, devolvendo-o de seguida para o
utilizador e aumentando o valor do registo EEADR. Esta operação é realizada
continuamente até ao valor do endereço atual ser o mesmo que o lido inicialmente no
endereço “0x00h”. O processo de leitura é mais simples que o de escrita, sendo apenas
necessário escrever no registo EEADR o endereço a ler, activar o bit RD iniciando
49
assim a leitura, verificar continuamente esse mesmo bit até voltar ao valor „0‟ e obter os
dados lidos através do registo EEDATA.
4.6 Software aplicacional para PC
Para comunicar com o sistema, foi usada uma aplicação gráfica desenvolvida
por outro investigador do projecto. A aplicação foi criada usando o software LabVIEW
e com o propósito de ser suportada no sistema operativo Windows. O aspecto do
interface do software é mostrado na Figura 48.
Figura 48: Aspecto do software criado para comunicar com o sistema.
Com este software é possível realizar todos os comandos já referidos. O
interface está separado em 2 partes, em que a superior “Sensores” é onde se realizam as
operações de leitura e gravação da temperatura. Na parte inferior “Controlo de
temperatura” define-se o modo de controlo de temperatura, podendo ser On/Off, PI ou
manual. No gráfico superior é mostrada a evolução da temperatura ou humidade ao
50
longo do tempo. O gráfico inferior mostra o valor da saída ao longo do tempo, numa
escala de 0 a 100.
Quando se inicia a aplicação, é pedido ao utilizador para atribuir um nome a um
ficheiro .txt, onde vão ser registados os valores lidos. O utilizador pode alterar quando
pretender, o modo como se efectua a ligação entre o software e o dispositivo, ou seja,
por Bluetooth ou cabo série. Caso a comunicação seja feita utilizando o cabo série, é
necessário definir qual a porta COM a utilizar.
51
5. Resultados
Numa fase final o sistema desenvolvido foi testado numa configuração física a
mais aproximada possível de uma aplicação real. Para tal, foi colocado um sensor de
temperatura na base de um pé falso (zona do calcanhar), sendo depois calçada uma
meia. Já com a meia calçada foi encostado na zona do sensor, um pequeno pedaço de
tecido condutor para realizar o aquecimento. Todo este sistema foi então inserido no
interior de uma bota ortopédica, sendo posteriormente ligada à placa electrónica que se
encontra no exterior.
Figura 49: Imagem dos vários intervenientes da fase de testes.
Nesta fase de testes foi usada fonte de alimentação externa servindo para
alimentar todo o circuito electrónico e o tecido condutor. Após a regulação de vários
valores de potência e das variações de temperatura provocadas, definiu-se como valor
inicial uma potência máxima de aproximadamente 3 Watts.
52
5.1 Planeamento experimental
A Tabela 7 descreve de forma estruturada o plano de ensaios realizados:
Nº
teste Ação Condições Objectivo
Teste 1 Ligar o controlo manual
à potência máxima
Inserida no congelador com
temperatura inicial de 0ºC
Determinar a temperatura
máxima atingida
Teste 2 Ligar o controlo manual
à potência máxima
Inserida no frigorífico
com temperatura inicial
de 12ºC
Determinar a temperatura
máxima atingida
Teste 3 Ligar o controlo manual
à potência de 50%
Realizado à temperatura
ambiente de 27ºC
Determinar a temperatura
máxima atingida e obter
parâmetros PI
Teste 4 Ligar o controlo manual
alterando o duty cycle de
5 em 5 minutos com os
valores: 80%, 20%,
50%, 0%, 90%, 10%.
Realizado à temperatura
ambiente de 27ºC
Demonstrar o funcionamento
do modo manual
Teste 5 Ligar o controlo On/Off
com setpoint de 30ºC e
histerese 0ºC
Realizado à temperatura
ambiente de 24.5ºC
Testar a performance do
modo On/Off
Teste 6 Ligar o controlo On/Off
com setpoint de 32ºC e
histerese 2ºC
Realizado à temperatura
ambiente de 27ºC
Testar a performance do
modo On/Off
Teste 7 Ligar o controlo PI com
vários valores de
setpoint: 17ºC, 22ºC e
18ºC
Inserida no frigorífico
com temperatura inicial
de 12ºC
Testar a performance do
modo PI
Tabela 7: Tabela descritiva do planeamento experimental
53
5.2 Desempenho do tecido de aquecimento
Para esta fase foram realizadas três experiências com a bota colocada em três
ambientes térmicos distintos: no congelador, no frigorífico e à temperatura ambiente.
Foi feita a medição dos valores de temperatura no interior da bota e no ambiente até esta
ficar estável, garantindo que o interior da bota se encontrava à mesma temperatura do
seu ambiente. Depois foi ligado o aquecimento na sua potência máxima e deixou-se o
sistema de aquecimento trabalhar até o sistema estabilizar numa determinada
temperatura. Este teste servirá para examinar as temperaturas máximas a que este
protótipo consegue chegar e também para tirar os parâmetros do controlo PI.
Teste 1: Realizado no congelador e com uma temperatura inicial de 0°C. Após
ser ligado o aquecimento na potência máxima, verifica-se um tempo ≈4minutos entre a
ligação do aquecimento e a primeira subida da temperatura (tendo em conta a resolução
de 0.5°C). Atingiu-se uma temperatura máxima de ≈5°C.
Figura 50: Teste de temperatura máxima atingida no congelador.
54
Teste 2: Este teste foi realizado no frigorífico a uma temperatura inicial de
12°C. O modo de realização foi o mesmo que o anterior, no entanto os resultados são
bem diferentes, sendo neste caso atingida uma temperatura de ≈33°C.
Figura 51: Teste de temperatura máxima atingida no frigorífico.
Teste 3: Por último este teste foi efectuado á temperatura ambiente, iniciando
próximo dos 27°C. Embora tendo o modo de realização sido o mesmo que os anteriores,
este apresenta uma pequena diferença, pois a potência aplicada foi de apenas 50%. Esta
decisão deveu-se à suspeita de que aplicando a potência máxima, a temperatura poderia
atingir valores demasiado altos. Verificou-se de facto que, conforme demonstram os
resultados apresentados na Figura 52, com uma potência aplicada de apenas 50%, a
temperatura atinge valores próximos de 35°C.
55
Figura 52: Teste de temperatura máxima atingida á temperatura ambiente.
5.3 Desempenho do controlo manual
O modo de controlo manual é o modo em que o utilizador tem menos noção da
temperatura, porque o apenas controla a potência fornecida ao elemento resistivo.
Teste 4: O teste realizado foi feito á temperatura ambiente (27ºC) e a ideia foi
atribuir diferentes valores de potência (80% - 20% - 50% - 0% - 90% - 10%)
intervalados aproximadamente de 5 minutos. O resultado está apresentado na Figura 53.
56
Figura 53: Performance do modo manual
5.4 Performance do controlo On/Off
Nesta secção serão demonstrados os resultados obtidos efetuando o controlo
On/Off da temperatura. Para este caso foram efectuados 2 testes semelhantes, sendo
ambos realizados á temperatura ambiente. No entanto estes variam no valor do setpoint
e histerese.
Teste 5: O primeiro teste foi iniciado a uma temperatura 24.5°C, sendo
definido um setpoint de 30°C e histerese „0‟. Quando a temperatura ultrapassa os
30.5°C, a saída é imediatamente desligada, levando a que a temperatura desça. Após ser
registado um valor abaixo de 29.5°C a saída volta a ser ligada.
57
Figura 54: Teste do controlo On/Off (setpoint de 30°C).
Teste 6: Neste o valor do setpoint foi alterado para 32°C e a histerese para 2°C.
Figura 55: Teste do controlo On/Off (setpoint de 32°C e histerese de 2°C).
58
5.5 Performance do controlo PI
Para efectuar este modo de controlo é necessário parametrizar três variáveis,
constante proporcional, integral e derivativa. No entanto decidiu-se remover a variável
derivativa, porque devido ao sistema ser lento não haverá problema com o overshoot.
De modo a encontrar os parâmetros Kp e Ki ideais, foi usado o “primeiro
método de Ziegler-Nichols”. O modo de realização deste método foi explicado no
capítulo 3.2.2. Segundo o método foi aplicado um degrau na saída e registados todos os
valores até a temperatura lida estabilizar. Este passo já foi realizado no teste da
performance do tecido de aquecimento à temperatura ambiente.
Figura 56: Obtenção do parâmetro T.
Os valores das variáveis „T‟ e „L‟ foram obtidos com maior detalhe através do
Excel, sendo eles 222 para a variável „T‟ e 15 para a variável „L‟. Usando a Tabela 2
facilmente se obtém o valor de Kp = 13.32 ≈ 13 e Ki = 0.26 ≈ 0.3. De notar que o
software criado apenas permite valores de Kp arredondando às unidades e valores de Ki
arredondado às decimas.
Teste 7: Para realizar o teste a bota foi introduzida no frigorífico durante um
longo tempo até estabilizar, temperatura esta que foi em ≈12°C. Inicialmente foi
59
definido um setpoint de 17°C e como mostra a Figura 57 foi estabilizado nesse mesmo
valor com sucesso. Perto dos 9 minutos, o setpoint foi alterado mas desta vez para 22°C,
levando a saída a aumentar de forma imediata para a potência máxima, com a intenção
de elevar a temperatura o mais rapidamente possível. Por último, perto dos 19 minutos o
setpoint foi novamente alterado para 18°C, fazendo a saída desligar por completo até
chegar perto desse valor pretendido.
Figura 57: Performance do controlo PI no frigorífico
Este teste serve para demonstrar que os parâmetros PI retirados à temperatura
ambiente, também funcionam para temperaturas inferiores. Apesar das pequenas
variações de meio grau que são visíveis no gráfico, considera-se um sucesso este modo
de controlo.
5.6 Teste do sensor de humidade
Para testar o sistema de monitorização da humidade relativa, foi primeiro
comparado o valor inicial com um higrómetro digital semelhante ao da Figura 58. A
diferença máxima entre o valor lido pelo sensor HIH-5030 e pelo higrómetro digital, foi
de 3% RH, considerando-se aceitável.
60
Figura 58: Higrómetro e termómetro digital.
Após realizada a monitorização da humidade durante ≈6 minutos, com uma
humidade considerada estável (50~55% RH), fizeram-se duas “expirações” próximas ao
sensor de humidade. Como demonstra o gráfico da Figura 59, a humidade relativa
aumenta significativamente devido ao vapor de água que a nossa respiração produz.
Figura 59: Performance do sensor de humidade.
5.7 Funcionamento geral do sistema
Observando o sistema de uma forma geral, considera-se que todas as funções e
comandos funcionam de forma correcta e como prevista. No entanto foram encontradas
algumas dificuldades que tiveram de ser ultrapassadas. Uma delas foi o sensor LM35,
61
que quando colocado em condições um pouco mais adversas (ex: congelador e
frigorífico) e a sua temperatura baixava de ≈10°C começava a oscilar de forma intensa.
Pensou-se ser do ruído devido ao cabos serem longos, no entanto essa não era a origem
da oscilação. O problema mas sim a necessidade de um filtro passa-baixo, que já foi
explicado e dimensionado no capítulo 4.4.2.
Também a realização da função log e upload criou algumas dificuldades, devido
à quantidade de operações que são necessárias nestas funções, tais como sequências de
leitura e escrita, controlo de espaço de memória, realização de vários logs em
simultâneo e o descarregar de toda esta informação para o utilizador.
62
6. Conclusões
Esta dissertação abordou vários aspectos, resultando num circuito electrónico
capaz de comunicar com vários dispositivos externos e controlar a temperatura numa
bota ortopédica. Os vários aspectos tratam-se de se ter trabalhado com fios têxteis e
aprendido algumas coisas sobre as suas características. Foi também crucial ter-se bons
conhecimentos de programação – neste caso em linguagem C – para que todos os
processos e programas criados funcionassem de forma correcta. Durante este projecto
foi também importante e obrigatório ter conhecimentos sobre electrónica, alguma
prática em relação a montagem e soldadura de componentes, e mais importante ter uma
boa base de conhecimento sobre microprocessadores, pois muito do tempo investido na
tese, foi exclusivamente dedicado a este componente.
Começou-se por investir grande parte do tempo a simular as reacções físicas e
térmicas no interior de uma bota usando o software COMSOL. A tentativa era simular
uma malha térmica a aquecer numa espécie de bota e verificar todas as reacções
existentes neste processo. O passo seguinte foi dado na direcção da escolha dos
componentes que viriam a ser usados, tendo sido confrontados entre si as diferentes
características de cada um, sobressaindo os componentes ideais. Em todas estas
escolhas, um dos parâmetros mais importantes e a ter em conta foi o tamanho reduzido,
pois tratou-se de uma característica importantíssima tendo em conta o espaço reduzido.
A fase onde foi investido maior parte do tempo foi na programação do
microprocessador PIC16F877A, tendo sido estritamente necessário recordar e investigar
assuntos, como programar um PIC, quais os seus registos, qual software usar, etc.
Os problemas com a programação foram constantes, muito devido à quantidade
de variáveis, controlo dos vários processos em simultâneo e alguma falta de prática que
já se fazia notar. Os vários processos referidos são por exemplo controlar o intervalo de
tempo correcto para ler, converter e devolver um valor para o dispositivo, ao mesmo
tempo que faz log e efectua o controlo de temperatura na bota. O controlo de vários
processos ao mesmo tempo levou alguma decepção e por vezes dificuldade em resolver
os problemas que tendiam a surgir. No entanto, agora todas estas operações correm sem
problemas, tornando esta fase de programação numa fase de fulcral para todo o
projecto.
63
Outra fase importante foi a escolha do módulo Bluetooth KC-21, pois tratava-se
de um dispositivo essencial para cumprir com os objectivos deste projecto. Houve duas
situações problemáticas com este dispositivo provocando algum atraso, sendo que uma
delas foi numa fase de soldadura e outra foi já numa fase mais terminal, onde o
dispositivo deixou de funcionar sem grande razão aparente.
A fase de testes decorreu normalmente, no entanto foram detectados alguns
problemas em relação ao log. O log foi uma das tarefas mais complicada, pois implica o
uso de quase todas as funções do microprocessador tais como, timer para controlo do
tempo de log, conversão para obter os respectivos valores, gravação na memória
EEPROM e controlar os endereços preenchidos, comunicação com o Bluetooth quando
necessário descarregar os dados e estruturar os dois bytes para enviar conforme o
formato descrito em cima na Tabela 6.
Concluída a dissertação, verifica-se que o trabalho foi de acordo aos objectivos
estabelecidos, sendo o principal objectivo a regulação da temperatura numa bota
ortopédica.
Após todo o trabalho efectuado, são visíveis várias melhorias e aspectos que
podem tornar o sistema mais funcional e até mais inovador. Como trabalhos futuros
propõem-se a adaptação deste software para comunicar simultaneamente com vários
smartphones e permitir execução no sistema operativo Windows Mobile. Alterar alguns
componentes, tais como o microprocessador e módulo Bluetooth, pois já existe um
microcontrolador que incorpora estes dois dispositivos. As funcionalidades podem
ainda evoluir para inovações mais arrojadas, tais como ser capaz de realizar o
arrefecimento ao invés de apenas aquecer, ler batimentos cardíacos e medir tensão
arterial.
64
7. Bibliografia
[1] Discount-Comfortersets, Amazon.com. Available: http://www.discount-comfortersets.com/sunbeam-navy-heated-blanket/
[2] M. Bellis. History of the Electric Blanket. Available: http://inventors.about.com/od/estartinventions/a/ElectricBlanket.htm
[3] S. D. B. Augustine, MN, US), Augustine, Ryan S. (Minneapolis, MN, US), "HEATING BLANKET," United States Patent, 2008.
[4] Gerbing's Heated Clothing. Available: http://gerbing.com/
[5] A. Mccoy, (Chicago, IL, US), Tijan, Matt (Northville, MI, US) "Induction Heating of Footwear and Apparel," United States Patent, 2007.
[6] A. R. Au, Hoi Ching House, Hoi Lai Estate, Lai Ch, Kowloon, CN), "Electrically heated insoles for footware and remote control heating system for electrical insoles for footware," 2010.
[7] H. Işik and E. Saraçoğlu, "The Design of Thermoelectric Footwear Heating System Via Fuzzy Logic," Journal of Medical Systems, vol. 31, pp. 521-527, 2007.
[8] G. S. Hedge, Mechatronics: Laxmi Publications Pvt Ltd, 2008.
[9] BLUMENTHAL, et al., Should we ban the mercury thermometer ? Discussion paper vol. 85. London, ROYAUME-UNI: Royal Society of Medicine, 1992.
[10] "Sensores de temperatura com base em junções pn - condicionamento do sinal proveniente do LM35DZ," ed, 2000.
[11] J. Fraden, Handbook of Modern Sensors: Physics, Designs, and Applications: Springer, 2010.
[12] H. S. Lee, Thermal Design: Heat Sinks, Thermoelectrics, Heat Pipes, Compact Heat Exchangers, and Solar Cells: John Wiley & Sons, 2010.
[13] J. S. Wilson, Sensor technology handbook: Elsevier, 2005.
[14] H. E. Harris, Extrusion control: machine-process-product: Hanser Gardner Publications, 2004.
65
[15] Introduction to Digital Signal Processing (1998). Available: http://www.scm.tees.ac.uk/users/u0000408/DSP/DSP.htm
[16] A. Visioli, Practical PID control: Springer, 2006.
[17] J. Zhong, "PID Controller Tuning: A Short Tutorial," ed. Purdue University, Mechanical Engineering Department, 2006.
[18] F. Haugen, "Tuning of PID controllers," in Basic Dynamics and Control, ed: TechTeach, 2010.
[19] X. Geng and U. o. I. a. Urbana-Champaign, Design and analysis of pulse-width modulation techniques for spectrum shaping: University of Illinois at Urbana-Champaign, 2007.
[20] T. Hirzel. Arduino. Available: http://www.arduino.cc/en/Tutorial/PWM
[21] Bluetooth. (2011). Bluetooth Basics. Available: http://www.bluetooth.com/Pages/Basics.aspx
[22] E. Alecrim. (2008). Tecnologia Bluetooth. Available: http://www.infowester.com/bluetooth.php
[23] Electrónica.org. (2010). Bluetooth. Available: http://www2.eletronica.org/artigos/eletronica-digital/bluetooth
[24] National Semicondutor, "Precision Centigrade Temperature Sensors," in LM35 Datasheet, ed, Nov 2000.
[25] K. Wirefree, "Bluetooth OEM Module," in KC-21 Datasheet, ed, Jan 2007.
[26] Microchip, "28/40-Pin 8-Bit CMOS FLASH Microcontrollers," in PIC16F87X Datasheet, ed, Jan, 2001.
[27] I. Technologies, "ICP01 - USB Pic Programmer," in ICP01 User Manual, ed, 2009.
[28] F. Chip, "TTL to USB Serial Converter Range of Cables," in TTL-232R Datasheet, ed, Nov, 2010.
[29] PIC Timer Calculator and Source Code Generator. Available: http://eng-serve.com/pic/pic_timer.html
66