Вы находитесь на странице: 1из 59

Universidade Federal de Uberlândia

Faculdade de Engenharia Elétrica


Curso de Pós-Graduação em Engenharia da Computação
Disciplina: SISTEMAS EM TEMPO REAL
Prof: Alcimar Barbosa Soares, Phd

Nilton Costa Junior


Robson Nunes Da Silva
Osias Baptista De Souza Filho
Nelson Da Silva Paz
Clenio Batista Gonçalves Junior

“PROJETO E DESENVOLVIMENTO DE UM
SISTEMA EM TEMPO REAL PARA
AUTOMAÇÃO E CONTROLE RESIDENCIAL”

Trabalho de conclusão da disciplina de


Sistemas em Tempo Real do curso de
Engenharia da Computação da Universidade
Federal de Uberlândia.

CEFETSP – Brasil, 2008

i
RESUMO
Atualmente encontramos sistemas computacionais em diversas áreas de nosso
cotidiano, como: sistemas de navegação de veículos, controle de tráfego aéreo,
equipamentos hospitalares de monitoramento e suporte de vida, controle de
processos industriais e diversos outros sistemas e equipamentos modernos de uso
doméstico, como TVs, DVDs, etc.

Neste contexto de sistemas computacionais existe um grupo que são limitados


pelo tempo de processamento, onde suas resposta ao ambiente devem ser retornadas
em tempo hábil para que o sistema não entre em um estado de incosistência e mau
funcionamento [Alcantara, 2006]. Neste grupo se destaca os sistemas chamados de
“Sistemas em Tempo-Real” (STR).

Mas o que significa STR? Todo sistema computacional é um STR e vice-


versa? Qual é a velocidade requerida de resposta do STR? Para essas dúvidas o
pesquisador [Carneiro, 2001, pg.58] definiu STR da seguinte forma: “STR são
sistemas aplicados ou estão engajados em atividades do mundo real, as quais são
inerentemente complexas”. Podemos então concluir em um sentido mais amplo, que
STR se refere a um sistema integral, abrangendo o ambiente, o software e o
hardware, os quais em conjunto, executam uma ou mais atividades restritamente
dentro do tempo previsto.

Neste trabalho estaremos definindo as bases de um projeto de STR para


automatização de uma casa (casa inteligente - CI), o qual deverá comandar a abertura
de portas e janelas, acendimento de lâmpadas e ligação de uma TV, tudo feito via
comando de voz dos moradores da casa.

Palavras chaves: Sistemas em Tempo-Real, Casa Inteligente, Sistemas


Concorrentes (Threads), Aquisição de Dados.

ii
LISTA DE TABELAS
Pag.
Tabela 1: Relação dos dispositivos da CI.............................................................. 3
Tabela 2: Determinação das entradas e saídas do SG........................................... 9
Tabela 3: Especificações da PCAP NI USB-6229................................................ 12
Tabela 4: Especificações do CPU.......................................................................... 14
Tabela 5: Protocolo dos comandos de voz do software simulador........................ 39

iii
LISTA DE FIGURAS
Pag.
Figura 1: Planta baixa ........................................................................................... 2
Figura 2: Posição de instalação dos dispositivos da CI......................................... 6
Figura 3: Placa de aquisição de dados NI USB-6229............................................ 11
Figura 4: Quantização com 3 bits de range de um sinal analógico....................... 14
Figura 5: Computador DELL................................................................................ 15
Figura 6: Funcionamento de um microfone dinâmico.......................................... 16
Figura 7: Funcionamento de um microfone capacitivo........................................ 17
Figura 8: Microfone capacitivo (tipo eletreto) com pré-amplificador FET......... 18
Figura 9: Microfone de eletreto CSR-EM4FP..................................................... 19
Figura 10: Circuito de condicionamento de áudio............................................... 19
Figura 11: Circuito pré-amplificador de áudio..................................................... 20
Figura 12: Ajuste da tensão de repouso do microfone......................................... 21
Figura 13: Cálculo do ganho de tensão do pré-amplificador de áudio................ 21
Figura 14: Transformador de linha LYNX - AT600............................................ 22
Figura 15: Circuito da fonte de alimentação de +5V do pré-amplificador.......... 22
Figura 16: Diagrama interno do amplificador de instrumentação INA128.......... 23
Figura 17: Circuito amplificador diferenciador e cancelamento de espúrios....... 24
Figura 18: Comparação da resposta em amplitude de filtros passa baixa........... 24
Figura 19: Esquema de montagem de um filtro passa faixa................................ 25
Figura 20: Esquema do filtro FPB Butterworth de 2ª ordem............................... 25
Figura 21: Filtro Butterworth FPF de 40HZ a 5KHz de 2ª ordem e 40dB/dec.... 26
Figura 22: Especificações da fonte simétrica Selco, FSS1-00 15Vdc................. 26
Figura 23: Instalação do sistema de abertura automática das portas.................... 27
Figura 24: Esquema de ligação do sistema de automatismo SPRINT-J.............. 27
Figura 25: Fecho elétrico HDL FEC 91-CL......................................................... 28
Figura 26: Placa de interface de relés SELCO RLN50-48................................... 29
Figura 27: Sensor de porta aberta com reed-switch e placa RES1100................. 30
Figura 28: Esquema de montagem mecânica do sistema OLLY-C...................... 31
Figura 29: Esquema de ligações da placa de controle OLLY-C.......................... 31
Figura 30: Placa SELCO SCS-0198 e esquema de ligação.................................. 32
Figura 31: Sensores de presença FRT410 e FTR510........................................... 33
Figura 32: Relé Metaltex Q2A-110...................................................................... 34
Figura 33: Circuito do sensor de presença............................................................ 34
Figura 34: No-break Powerware P5125-220-120V.............................................. 35
Figura 35: Fluxograma simplificado do software do simulador da CI................. 38
Figura 36: Gráficos do protocolo de identificação do usuário 2........................... 39
Figura 37: Interface visual do software simulador da casa inteligente................. 40
Figura 38: Equações de DFT e IDFT ................................................................... 44

iv
LISTA DE ABREVIATURAS
AI: Amplificador de Instrumentação
AC: Tensão Alternada
AMPOP: Amplificador Operacional
AV: Ganho de Tensão
DC: Tensão Contínua
CI: Casa Inteligente
CPU: Computador
FPF: Filtro Passa Faixa
FPA: Filtro Passa Alta
FPB: Filtro Passa Baixa
PCAP: Placa de Captura
PRA: Pré-Amplificador
PID: Placa de Interface Digital
NB: No-Break
RRMC: Relação de Rejeição de Modo Comum
SG: Sistema de Gerenciamento
STR: Sistema em Tempo Real
Zin: Impedância de entrada
Zout: Impedância de Saída

v
SUMÁRIO
Resumo............................................................................................................... II
Lista de Tabelas ................................................................................................ III
Lista de Figuras ................................................................................................ IV
Lista de Abreviaturas ...................................................................................... V
Sumário ............................................................................................................. VI
1. INTRODUÇÃO ............................................................................................ 1
1.1. Objetivos do Projeto.................................................................................. 1
2. PROPOSTA DE UM SISTEMA DE AUTOMAÇÃO RESIDENCIAL.. 2
2.1. DETALHAMENTO DO PROJETO........................................................ 2
2.2.1. Planta Baixa............................................................................................ 2
2.2.2. Dispositivos.............................................................................................. 2
2.2.3. Entradas Analógicas dos Comandos de Voz........................................ 6
2.2.4. Entradas dos Sensores Digitais.............................................................. 7
2.2.5. Saída de Comandos................................................................................ 7
2.2.6. Relação Geral dos Dispositivos............................................................. 9
3. DETALHAMENTO DO HARDWARE..................................................... 11
3.1. PLACA DE CAPTURA............................................................................ 11
3.2. COMPUTADOR (CPU)........................................................................... 14
3.3. MICROFONE............................................................................................ 15
3.3.1.Microfone Dinâmico................................................................................ 16
3.3.2.Microfone Capacitivo.............................................................................. 17
3.4.CIRCUITO DE CONDICIONAMENTO DE ÁUDIO............................ 19
3.4.1. Circuito Pré-Amplificador (PRA) Balanceado e Isolamento
Galvânico........................................................................................................... 19
3.4.2. Amplificador de Instrumentação (AI) e Filtro Passa-Faixa (FPF).... 23
3.4.2.1. Circuito Amplificador Diferencial..................................................... 23
3.4.2.2. Circuito do Filtro Passa Faixa (FPF)................................................ 24
3.5. CIRCUITOS DE ENTRADA E SAÍDA DIGITAIS.............................. 27
3.5.1. Hardware das Portas............................................................................. 28
3.5.1.1. Portas da Sala e Cozinha.................................................................... 28
3.5.1.2. Portas do Quarto e da Suíte................................................................ 30
4.5.2. Hardware das Janelas............................................................................. 30
3.5.3. Hardware de Acionamento das Lâmpadas e TV.................................. 31
3.5.4. Sensores de Presença............................................................................... 33
3.5.5. No-Break.................................................................................................. 34
4. DETALHAMENTO DO SOFTWARE....................................................... 36
4.1. FLUXOGRAMA E DESCRIÇÃO DO SOFTWARE SIMULADOR.. 37
4.1.1. Protocolo de Simulação dos Comandos de Voz................................... 39
4.1.2. Tela Principal (Interface Visual do Simulador)................................... 40
4.1.3. Thread de Captura e Bufferização do Sinal Capturado..................... 41
4.1.4. Thread de Processamento do Buffer..................................................... 42
4.1.5. Processamento do Sinal e Identificação do Comando Recebido........ 42
4.1.6. Transformada Rápida de Fourier (FFT).............................................. 44

vi
4.1.7. Principais Códigos do Software Simulador......................................... 45
4.1.7.1. TimerGerador...................................................................................... 45
4.1.7.2. Theads de Captura.............................................................................. 46
4.1.7.3. Theads de Processamento................................................................... 46
4.1.7.4. Carregamento do Comando de Voz (Simulado)............................... 47
4.1.7.5. Envio do Comando de Voz (Simulado).............................................. 49
5. TESTES DO SISTEMA E CONCLUSÕES............................................... 50
6. REFERÊNCIAS BIBLIOGRÁFICAS....................................................... 52

vii
CAPÍTULO 1
INTRODUÇÃO
1.1 OBJETIVOS DO PROJETO:
O projeto de automatização de tarefas de uma residência, como abrir portas,
acender luzes ou ligar e desligar eletrodomésticos realizados através de comandos de
voz dos usuários, depende de uma série de dispositivos, circuitos e de um sistema
computacional de gerenciamento baseado em processamento paralelo de informações
dos comandos de voz (dos usuários moradores da casa) e dos dispositivos, com a
conseqüente atuação nos dispositivos e monitoramento das tarefas realizadas.
Neste projeto de Casa Inteligente (CI) foram determinados os seguintes
objetivos:
• O controle deve se basear em comandos de voz.
• O sistema deve ser treinado para reconhecer apenas comandos de voz de
pessoas devidamente cadastradas. Para tal ele utiliza um software baseado
técnicas de reconhecimento de voz (conteúdo espectral), que toma decisões
(reconhecimento do interlocutor e de comandos) com base nas informações
dos sinais de áudio contidas nas freqüências entre 40Hz e 5KHz.
• Todos os comandos devem ser fornecidos da seguinte forma: “HAL ...
comando ...” (HAL abra a porta de entrada, HAL apague a luz da sala...).
• Uma vez que HAL consegue identificar o interlocutor como pessoa
autorizada, ele avaliará o comando e, se reconhecido corretamente, irá
acionar o dispositivo desejado. Por exemplo, irá acionar uma fechadura
eletrônica, um relê para acender ou apagar uma lâmpada, um motor para abrir
as janelas, um relê para ligar a TV etc.
E o protótipo que será desenvolvido é de uma casa de dois quartos, um
banheiro, uma sala de estar/jantar com uma porta para o exterior, corredor para os
quartos e uma cozinha com uma porta para o exterior. Uma família de 3 pessoas
serão os residentes da casa.
Além destas diretrizes básicas, será previsto o tratamento de eventuais falhas
que possam ocorrer no sistema da CI.

1
1-feedback: realimentação em sistemas de controle de laço fechado.
CAPÍTULO 2
PROPOSTA DE UM SISTEMA DE AUTOMAÇÃO
RESIDENCIAL
2.1 DETALHAMENTO DO PROJETO:
2.1.1 Planta Baixa:
Conforme a proposta acima foi projetada uma casa do tipo compacta de
classe média baixa, com 2 quartos, sendo uma suíte (quarto do casal) e um quarto de
solteiro (um filho(a)) que também serve de escritório e aonde está localizado o
computador (HAL). A sala de estar e de jantar dividem o mesmo ambiente sendo
integrada a cozinha/copa. O corredor principal interliga os quartos, a sala e o
banheiro social. Podemos ver a planta da casa na figura 1 com todos os seus detalhes.

Figura 1: Planta baixa

2
PROPOSTA DE UM SISTEMA DE AUTOMAÇÃ RESIDENCIAL

2.1.2 Dispositivos:
Atendendo os pré-requisitos deste projeto, podemos ver na tabela 1 uma
relação dos dispositivos do sistema de automação, relacionados pelo seu ambiente de
instalação e função.
CÔMODO DISPOSITIVO FUNÇÃO
Hall de SP1- Sensor de presença Identifica a presença, liga a lâmpada
entrada acima da porta de confirmando o reconhecimento e ativa o
entrada. microfone do Hall
MIC1- Microfone do Recebe os comandos de voz provenientes
Hall do Hall
PTA1 - Porta da sala Se for reconhecido o usuário e o comando
de voz, destranca e abre automaticamente
a porta
Sala de SP2- Sensor de presença Identifica a presença e ativa o microfone
jantar/estar fixado no teto da sala da sala
MIC2 - Microfone Recebe os comandos de voz provenientes
embutido no teto da sala da sala
RLP1 - Lâmpada(s) Se for reconhecido o usuário e o comando
de voz, é acionada a lâmpada
(liga/desliga)
SEL1 – Sensor de Envia para o HAL o status da lâmpada
equipamento ligado (ligada/desligada)
(lâmpada)
RL1 - Relé de Se for reconhecido o usuário e o comando
acionamento da de voz, é acionada a Televisão
Televisão (liga/desliga)
SEL2 – Sensor de Envia para o HAL o status da TV
equipamento ligado (ligada/desligada)
(TV)
SP3- Sensor de presença Identifica a presença e ativa o microfone
junto à porta da porta/janela
MIC3 - Microfone Recebe os comandos de voz junto à porta
embutido junto à porta de entrada/janela
de entrada
SAP1- Sistema de Se for reconhecido o usuário e o comando
abertura da porta da sala de voz, é acionado o SAP1, destrancando
e abrindo a porta.
SM1 – Sensor Envia para o HAL o status da porta
magnético de abertura (aberta/fechada)
da porta
SAJ1- Sistema de Se for reconhecido o usuário e o comando
abertura da janela de voz, é acionado o SAF1, abrindo ou
fechando a janela
SM2 – Sensor Envia para o HAL o status da janela
magnético de abertura (aberta/fechada)

3
1-feedback: realimentação em sistemas de controle de laço fechado.
PROPOSTA DE UM SISTEMA DE AUTOMAÇÃ RESIDENCIAL

da janela
Cozinha SP4 - Sensor de Identifica a presença e ativa o microfone
presença da cozinha
MIC4 - Microfone Recebe os comandos de voz provenientes
embutido no teto da cozinha
RLP2 – Lâmpada(s) Se for reconhecido o usuário e o comando
de voz, é acionada a lâmpada
(liga/desliga)
SEL3 – Sensor de Envia para o HAL o status da lâmpada(s)
equipamento ligado (ligada/desligada)
(lâmpada)
SAP2- Sistema de Se for reconhecido o usuário e o comando
abertura da porta da de voz, é acionado o SAP2, destrancando
cozinha e abrindo a porta.
SM3 – Sensor Envia para o HAL o status da porta
magnético de abertura (aberta/fechada)
da porta
SAJ2- Sistema de Se for reconhecido o usuário e o comando
abertura da janela de voz, é acionado o SAJ2, abrindo ou
fechando a janela.
SM4 – Sensor Envia para o HAL o status da janela
magnético de abertura (aberta/fechada)
da janela
Corredor SP5 – Sensor de Identifica a presença e ativa os microfones
presença do corredor
RLP3 – Lâmpada(s) Se for reconhecido o usuário e o comando
de voz, é acionada a lâmpada
(liga/desliga)
SEL4 – Sensor de Envia para o HAL o status da lâmpada(s)
equipamento ligado (ligada/desligada)
(lâmpada)
MIC5 - Microfone junto Recebe os comandos de voz junto à porta
à porta do do quarto
quarto/escritório
MIC6 - Microfone junto Recebe os comandos de voz junto à porta
à porta da suíte da suíte
PTA2 – Porta do Se for reconhecido o usuário e o comando
quarto/escritório de voz, destranca a porta
PTA3 – Porta da suíte Se for reconhecido o usuário e o comando
de voz, destranca a porta
Banheiro SP6 - Sensor de Identifica a presença e ativa o microfone
Social presença
RLP4 – Lâmpada(s) Se for reconhecido o usuário e o comando
de voz, é acionada a lâmpada
(liga/desliga)
SEL5– Sensor de Envia para o HAL o status da lâmpada(s)
equipamento ligado (ligada/desligada)

4
1-feedback: realimentação em sistemas de controle de laço fechado.
PROPOSTA DE UM SISTEMA DE AUTOMAÇÃ RESIDENCIAL

(lâmpada)
MIC7 – Microfone Recebe os comandos de voz
embutido no teto
Quarto/ SP7 – Sensor de Identifica a presença e ativa os microfones
Escritório presença fixado no teto do quarto
RLP5 – Lâmpada(s) Se for reconhecido o usuário e o comando
de voz, é acionada a lâmpada
(liga/desliga)
SEL6 – Sensor de Envia para o HAL o status da lâmpada(s)
equipamento ligado (ligada/desligada)
(lâmpada)
MIC8 – Microfone Recebe os comandos de voz junto à porta
embutido no teto do quarto
FEL1- Fechadura Se for reconhecido o usuário e o comando
elétrica da porta de voz, é acionado a FEL1, destrancando
a porta.
SM5 – Sensor Envia para o HAL o status da porta
magnético de abertura (aberta/fechada)
da porta
SAJ3- Sistema de Se for reconhecido o usuário e o comando
abertura da janela de voz, é acionado o SAJ2, abrindo ou
fechando a janela.
SM6 –Sensor magnético Envia para o HAL o status da janela
de abertura da janela (aberta/fechada)
Suíte SP8 – Sensor de Identifica a presença e ativa os microfones
presença do quarto
RLP6 – Lâmpada(s) Se for reconhecido o usuário e o comando
de voz, é acionada a lâmpada
(liga/desliga)
SEL7 – Sensor de Envia para o HAL o status da lâmpada(s)
equipamento ligado (ligada/desligada)
(lâmpada)
MIC9 – Microfone Recebe os comandos de voz junto à porta
embutido no teto da suíte
FEL2- Fechadura Se for reconhecido o usuário e o comando
elétrica da porta de voz, é acionada a FEL2, destrancando a
porta.
SM7 – Sensor Envia para o HAL o status da porta
magnético de abertura (aberta/fechada)
da porta
SAJ4- Sistema de Se for reconhecido o usuário e o comando
abertura da janela de voz, é acionado o SAJ2, abrindo ou
fechando a janela.
SM8 – Sensor Envia para o HAL o status da janela
magnético de abertura (aberta/fechada)
da janela
Banheiro SP9 - Sensor de Identifica a presença e ativa o microfone

5
1-feedback: realimentação em sistemas de controle de laço fechado.
PROPOSTA DE UM SISTEMA DE AUTOMAÇÃ RESIDENCIAL

Suíte presença
RLP7 – Lâmpada(s) Se for reconhecido o usuário e o comando
de voz, é acionada a lâmpada
(liga/desliga)
SEL8– Sensor de Envia para o HAL o status da lâmpada(s)
equipamento ligado (ligada/desligada)
(lâmpada)
MIC10 – Microfone Recebe os comandos de voz
embutido no teto
Tabela 1: Relação dos dispositivos da CI
Na figura 2 é apresentada a posição de instalação dos dispositivos em relação
aos cômodos da casa, sendo estes identificados pela nomenclatura e simbologia
adotadas neste projeto.

Figura 2: Posição de instalação dos dispositivos da CI

6
1-feedback: realimentação em sistemas de controle de laço fechado.
PROPOSTA DE UM SISTEMA DE AUTOMAÇÃ RESIDENCIAL

2.1.3 Entradas Analógicas dos Comandos de Voz

Todas as tarefas da CI serão feitas por comandos de voz dos usuários


devidamente cadastrados no sistema de gerenciamento, obedecendo um protocolo de
formalização dos comandos para que sejam corretamente interpretados e resultem na
execução da tarefa pretendida.

Existem na CI dez microfones espalhados que são ativados por sensores de


movimento, impedindo que barulhos e sons de atividades alheias possam resultar em
comandos indevidos ou saturem os buffers do SG e reconhecimento de voz,
prejudicando o reconhecimento de comandos dos usuários.

Para que um usuário possa solicitar uma tarefa da CI, este deverá estar
próximo de um dos microfones (figura 2) para ser detectado pelo sensor de presença
daquela área que acionará o microfone e LED indicativo. Após isto, o usuário
formalizará o comando, por exemplo: “HAL ABRA A PORTA DA SALA”.

Nesta estrutura teremos então:

• “HAL”: O SG identifica como início de um comando;

• “ABRA A PORTA”: comando pretendido a ser executado;

• “DA SALA”: local/dispositivo que sofrerá a ação do comando.

Obs: não foi previsto neste protótipo mas é perfeitamente possível


desenvolver em trabalhos futuros um SG que seja inteligente a ponto de cadastrar
permissões de comandos por microfone e por usuário, impedindo por exemplo, que o
comando acima possa abrir outra porta inadvertidamente, ou que um usuário possa
abrir a porta do quarto que não é o dele.

Os sons captados pelo microfone serão amplificados, filtrados e isolados


galvanicamente antes de serem capturados e entregues ao SG da CI, garantindo a
fidelidade dos sinais para o seu perfeito reconhecimento e posterior execução da
tarefa, que será feita por uma das interfaces ligadas na saída SG.

Obs.: foi previsto no projeto sistemas redundantes, como interruptores para


acionamento manual de luzes e abertura de portas, que podem ser utilizados
concomitantemente ou no caso de manutenção ou falha do SG, além de um no-break

7
1-feedback: realimentação em sistemas de controle de laço fechado.
PROPOSTA DE UM SISTEMA DE AUTOMAÇÃ RESIDENCIAL

para segurar a CPU e atuadores no caso de falta ou inconformidade de energia


elétrica.
2.1.4 Entradas dos Sensores Digitais
Além dos comandos por voz, o protótipo possui também entradas digitais que
monitoram a execução das tarefas através de sensores. No caso do exemplo acima, o
SG verificará se o sensor magnético da porta da sala “SM1” foi acionado (a porta
abriu), podendo em caso negativo disparar novas tentativas, indicar falha do sistema
e gravar um relatório de falhas para posterior análise.
2.1.5 Saída de Comandos
Conforme exposto acima, para um comando de voz válido o SG acionará uma
determinada saída ligada a uma placa de interface. Esta placa tem como principal
função isolar os comandos de baixa tensão e corrente do CPU, de tensões e correntes
elevadas dos dispositivos que irá acionar. A isolação galvânica é feita com
acopladores ópticos, garantido tensões de isolação acima de 1000V e nas etapas de
potência são utilizados relés ou TRIACS dependendo do dispositivo a ser acionado.
O dispositivo de abertura automática das portas “SAP” da sala e da cozinha
escolhido para este projeto, é fabricado pela DÍTEC (modelo Sprint J), com comando
microprocessado e com capacidade de programação de diversas funcionalidades
como: velocidade de abertura, tempo de permanência e fechamento automático,
sistema anti-esmagamento, etc.
Para essas portas, a abertura é feita automaticamente a partir de um comando
do SG, com o destravamento da fechadura elétrica “HDL” (modelo FEC91-CL) ,
abertura da porta, retenção por um período escolhido pelo usuário e fechamento
automático. Com isto, liberou-se o processamento do SG que fica responsável apenas
por enviar um comando digital momentâneo.
Para as demais portas da casa, exceto os banheiros, foi utilizado somente
tranca elétrica ficando por conta do usuário a abertura manual da porta. Obs.: não
foram instaladas fechaduras elétricas nas portas dos banheiros por motivo óbvios.
O dispositivo de abertura e fechamento das janelas que foi escolhido para este
projeto, exceto os vitrôs dos banheiros, é do tipo de acionamento deslizante
compatível com as janelas e que é fabricado pela DÍTEC (modelo OLLY C). Foram
previstos três comandos para as janelas: “ABRA A JANELA”, “FECHE A

8
1-feedback: realimentação em sistemas de controle de laço fechado.
PROPOSTA DE UM SISTEMA DE AUTOMAÇÃ RESIDENCIAL

JANELA” e “PARE A JANELA”, utilizando duas saídas digitais do SG que serão


acionadas independentemente para os dois primeiros comandos e conjuntamente para
o terceiro comando.
O acionamento da TV e das lâmpadas da casa, exceto as lâmpadas externas, é
feito por uma saída digital exclusiva para cada carga, sendo que a monitoração do
acionamento (feedback) é feito por sensores de corrente que detectam quando uma
carga está ligada pela corrente que ela consome. Deste modo, se a TV estiver
desligada da tomada (ou no botão ON/OFF), ou se uma lâmpada estiver queimada, o
SG saberá que ocorreu uma falha na realização da tarefa.
2.1.6 Relação Geral dos Dispositivos
Na tabela 2 abaixo estão relacionados todos os dispositivos do projeto com as
suas entradas e saídas, para determinação do número de interfaces necessárias no SG:
SIGLA DISPOSITIVO CÔMODO ENTRADA(S) SAÍDA(S)
A D A D
MIC1 Microfone Hall 1 - - -
MIC2 Sala 1 - - -
MIC3 Sala 1 - - -
MIC4 Cozinha 1 - - -
MIC5 Corredor 1 - - -
MIC6 Corredor 1 - - -
MIC7 Banheiro Soc. 1 - - -
MIC8 Quarto/Escr. 1 - - -
MIC9 Suíte 1 - - -
MIC10 Banheiro/Suíte 1 - - -
SP1 Sensor de Hall - 1 - -
SP2 presença Sala - 1 - -
SP3 Sala - 1 - -
SP4 Cozinha - 1 - -
SP5 Corredor - 1 - -
SP6 Banheiro Soc. - 1 - -
SP7 Quarto/Escr. - 1 - -
SP8 Suíte - 1 - -
SP9 Banheiro/Suíte - 1 - -
SM1 Sensor magnético Sala - 1 - -
SM2 Sala - 1 - -
SM3 Cozinha - 1 - -
SM4 Cozinha - 1 - -
SM5 Quarto/Escr. - 1 - -
SM6 Quarto/Escr. - 1 - -
SM7 Suíte - 1 - -
SM8 Suíte - 1 - -

9
1-feedback: realimentação em sistemas de controle de laço fechado.
PROPOSTA DE UM SISTEMA DE AUTOMAÇÃ RESIDENCIAL

SEL1 Sensor de Sala - 1 - -


SEL2 equipamento Sala - 1 - -
SEL3 ligado Cozinha - 1 - -
SEL4 Corredor - 1 - -
SEL5 Banheiro Soc. - 1 - -
SEL6 Quarto/Escr. - 1 - -
SEL7 Suíte - 1 - -
SEL8 Banheiro/Suíte - 1 - -
RL1 Relé TV Sala - - - 1
RLP1 Relé Lâmpada(s) Sala - - - 1
RLP2 Cozinha - - - 1
RLP3 Corredor - - - 1
RLP4 Banheiro - - - 1
RLP5 Quarto/Escr. - - - 1
RLP6 Suíte - - - 1
RLP7 Banheiro/Suíte - - - 1
SAP1 Sistema de acion. Sala - - - 1
SAP2 de porta Cozinha - - - 1
SAJ1 Sistema de acion. Sala - - - 2
SAJ2 de janela Cozinha - - - 2
SAJ3 Quarto/Escr. - - - 2
SAJ4 Suíte - - - 2
FEL1 Fechadura Quarto/Escr. - - - 1
FEL2 elétrica Suíte - - - 1
TOTAL DE ENTRADAS E SAÍDAS: 10 25 0 20
Tabela 2: Determinação das entradas e saídas do SG.
Pelo estudo acima, podemos verificar que a escolha da placa (ou placas) de
interface entre a CPU e os dispositivos da CI deverá possuir um número de entradas
igual ou maior do que:
• Entradas Analógicas: 10
• Entradas Digitais: 25
• Saídas Digitais: 20
Outras características importantes do hardware, como o tipo de placa de
captura que será utilizada, o circuito de condicionamento do sinal de áudio
(amplificação, isolação e filtragem), as interfaces digitais de alta potência de entrada
e saída, os sensores de presença e de corrente, entre outras, serão estudas e definidas
no próximo capítulo.

10
1-feedback: realimentação em sistemas de controle de laço fechado.
CAPÍTULO 3
DETALHAMENTO DO HARDWARE
3.1 PLACA DE CAPTURA
Dentre os diversos dispositivos de hardware que serão estudados neste
capítulo, a placa de captura (PCAP) se destaca dos demais pela sua importância no
funcionamento de todo os sistemas da CI. Esta placa faz o elo de ligação entre o SG
que estará rodando na CPU e todos os dispositivos espalhados pela casa.
Os principais pré-requisitos para escolha desta placa foram:
• Fabricante conceituado, com garantia e assistência técnica no
país;
• Número de entradas e saídas suficiente: entradas analógicas
=>10; entradas digitais =>25; saídas digitais =>20;
• Facilidade de instalação independentemente do tipo de CPU;
• As entradas analógicas deverão ter uma taxa de amostragem e
resolução de bits que atenda às necessidades do projeto.
Após várias pesquisas entre os principais fabricantes, foi encontrada uma
placa da National Instruments que se encaixa dentro dos pré-requisitos acima.
Podemos ver na figura 3 uma foto da placa escolhida para este projeto, modelo NI
USB-6229.

Figura 3: Placa de aquisição de dados NI USB-6229

11
DETALHAMENTO DO HARDWARE

As especificações da NI USB-6229 podem ser vistas na tabela 3.


TIPO CARACTERÍSTICA ESPECIFICAÇÃO
General Form Factor USB
OS Support Windows
Measurement Type Quadrature encoder,
Voltage
Product Family M Series
Analog Input Number of Channels 32 SE/16 DI
Sample Rate 250 kS/s
Resolution 16 bits
Simultaneous Sampling No
Maximum Voltage Range -10..10 V
-Range Accuracy 3100 µV
-Range Sensitivity 97.6 µV
Minimum Voltage Range -200..200 mV
-Range Accuracy 112 µV
-Range Sensitivity 5.2 µV
Number of Ranges 4
On-Board Memory 4095 samples
Analog Output Number of Channels 4
Update Rate 833 kS/s
Resolution 16 bits
Maximum Voltage Range -10..10 V
-Range Accuracy 3230 µV
-Range Sensitivity 3230 µV
Minimum Voltage Range -10..10 V
-Range Accuracy 3230 µV
-Range Sensitivity 3230 µV
Current Drive (Channel/Total) 5 mA
Digital I/O Number of Channels 48 DIO
Timing Hardware
Maximum Clock Rate 1 MHz
Logic Levels TTL
Maximum Input Range 0..5 V
Maximum Output Range 0..5 V
Input Current Flow Sinking, Sourcing
Programmable Input Filters Yes
Output Current Flow Sinking, Sourcing
Current Drive (Channel/Total) 24 mA/896 mA
Watchdog Timer No
Supports Programmable Power- Yes
Up States?
Supports Handshaking I/O? No
Supports Pattern I/O? Yes
Counter/Timers Number of Counter/Timers 2

12
1-feedback: realimentação em sistemas de controle de laço fechado.
DETALHAMENTO DO HARDWARE

Resolution 32 bits
Maximum Source Frequency 80 MHz
Minimum Input Pulse Width 12.5 ns
Logic Levels TTL
Maximum Range 0..5 V
Timebase Stability 50 ppm
GPS Synchronization No
Pulse Generation Yes
Buffered Operations Yes
Debouncing/Glitch Removal Yes
Timing/Triggering/ Triggering Digital
Synchronization
Physical Length 26.67 cm
Specifications Width 17.09 cm
Height 4.45 cm
I/O Connector Screw terminals
Tabela 3: Especificações da PCAP NI USB-6229
Embora esta PCAP não seja a de menor custo (U$1485,00) em comparação
com os modelos de placas PCI de instalação interna de mesma capacidade, ela tem
como pontos fortes a conexão externa USB (Universal Serial Bus), comum em todos
os computadores e facilitando a sua instalação, pois evita abrir a CPU e pode ser
utilizado até um notebook ao invés de um CPU desktop.
Outro ponto positivo é o barramento de conexões de saída do tipo
aparafusável (I/O Connector) que é interno na própria PCAP, o que reduz o número
de cabos e periféricos, melhorando a instalação e reduzindo custos. A PCAP e as
outras placas de interface serão instaladas em outro gabinete a parte.
Podemos ver também na tabela 3 que a quantidade de entradas analógicas da
USB-6229 (32SE – Entrada Simples e 16DI – Entrada Diferencial) é mais do que
suficiente para esta aplicação e que o número de entradas e saídas digitais (DIGITAL
I/O = 48), atende ao projeto que precisa de 25 entradas e 20 saídas (45 I/O ao todo).
A taxa de amostragem das entradas analógicas da USB-6229 é de 250KS/s (K
amostras por segundo), e conforme teorema de Nyquist, a freqüência máxima do
sinal de entrada deverá ser menor ou igual à metade da freqüência de amostragem,
para que se possa capturar todas as freqüências de interesse, ou seja:
• fmáx = 250000/2 = 125KHz
Neste projeto a freqüência máxima captada pelos microfones foi limitada em
5KHz, bem abaixo da capacidade da PCAP escolhida.

13
1-feedback: realimentação em sistemas de controle de laço fechado.
DETALHAMENTO DO HARDWARE

O range de 16 bits da USB-6229, referente à faixa que varia entre os níveis de


tensão mínimo e máximo que o conversor AD pode quantizar, conforme mostra o
exemplo da figura 4, determina o menor nível de tensão de resolução de um bit
menos significativo (LSB). Como exemplo, se utilizarmos uma entrada simples (SE),
com aquisição de tensões entre 0V a 10V e range de 3 bits, teríamos:
• 1 bit LSB = 10V / 23 = 1,25 V

Figura 4: Quantização de um sinal senoidal com 3 bits de range.


Os 16 bits de resolução da NI USB-6229 são mais do que suficientes para
este tipo de aplicação, não causando descontinuidade perceptível no sinal de áudio
captado pelos microfones.

3.2 COMPUTADOR (CPU)


A escolha do CPU teve como principais diretrizes:
• Fabricante conceituado, com garantia e assistência técnica no
país;
• Processador de núcleo duplo (melhor desempenho multitarefas);
• Placa mãe e gabinete preparado para futuras expansões;
Obs.: devido à escolha da PCAP com conexão externa USB, a princípio,
qualquer CPU atualizada com um bom processador e com entradas USB 2.0
disponíveis, poderia atender perfeitamente a este projeto (generalização do CPU) ou
servir de backup em caso de falha do CPU principal.
Para este projeto foi escolhido um computador do fabricante DELL, modelo
OptPlex 755MT, com as especificações mostradas na tabela 4 e gabinete na figura 4:

14
1-feedback: realimentação em sistemas de controle de laço fechado.
DETALHAMENTO DO HARDWARE

ITEM ESPECIFICAÇÃO
Processador Intel Pentium Dual Core E2140, 1MB L2 Cache, 1,6GHz
Memória 1GB, DDR2, 667MHz, máx exp. 4GB
HD Serial Ata 160GB 3GB/s
Portas USB 8 portas 2.0, 2 frontais e 6 traseiras
CD/DVD Gravador CD, leitor de DVD
Vídeo Placa de vídeo integrada GMA3100
Rede Placa de rede integrada
Garantia 3 anos
Tabela 4: Especificações do CPU

Figura 5: Computador DELL

3.3 MICROFONE
O microfone é um item essencial neste projeto, já que todos os comandos
serão dados por voz e os microfones que serão instalados nos ambientes da CI
estarão sujeitos a diversos tipos ruídos e distorções, podendo captar também
interferências eletromagnéticas provenientes da rede elétrica (60Hz) ou até de
estações de rádio, eletrodomésticos, etc.
Por estes motivos acima, a escolha do microfone mais adequado e dos
circuitos de amplificação e tratamento dos sinais de áudio requer um estudo mais
detalhado.
Como pré-requisitos deste projeto, os microfones deverão ter as seguintes
características:
• Faixa dinâmica entre 40Hz e 5KHz;
• Captação ominidirecional;
• Saída balanceada (três fios + - e GND);
• Custo baixo.
Além dessas características acima, outras características como sensibilidade,
distorção e saturação deverão ser consideradas na escolha do microfone.

15
1-feedback: realimentação em sistemas de controle de laço fechado.
DETALHAMENTO DO HARDWARE

3.3.1 Microfone Dinâmico


Os microfones do tipo dinâmico são transdutores que convertem a pressão
acústica (sons) em sinais elétricos. O seu princípio de funcionamento é baseado na
movimentação de um diafragma que capta as ondas sonoras, movimentando uma
bobina presa neste diafragma e imersa num campo magnético. A interação entre os
movimentos da bobina e o campo magnético produz uma fem (fem – força
eletromagnética; Lei de Faraday: “a fem induzida é proporcional ao número de
espiras e à rapidez com que o fluxo magnético varia), gerando uma tensão nas pontas
da bobina equivalente ao sinal captado. Veja na figura 5 o esquema de
funcionamento de uma cápsula de microfone dinâmico.

Figura 6: Funcionamento de um microfone dinâmico


Suas principais vantagens e desvantagens são:
• Não necessita de alimentação externa;
• A saída é naturalmente balanceada (sem referência a terra);
• Nível de sinal baixo, na ordem de alguns milivolts;
• Custo elevado das cápsulas de melhor qualidade.

16
1-feedback: realimentação em sistemas de controle de laço fechado.
DETALHAMENTO DO HARDWARE

3.3.2 Micronone Capacitivo


A parte do diafragma sempre será um ponto comum em todos os tipos de
microfones, porém, o princípio elétrico da conversão dos sons é que poderá ser
diferente, como é o caso do microfone capacitivo, que utiliza este princípio de
conversão.
O microfone capacitivo consiste de uma placa fixada muito próxima ao
diafragma, e que é mantida polarizada com uma carga elétrica, de forma que quando
o diafragma se movimenta, a capacitância varia na mesma proporção.
A relação entre a carga elétrica, a capacitância e a tensão de um capacitor é
dada por:
• Vc = Q/C; onde “Vc” é a tensão em Volts, “Q” a carga em
Coulombs e “C” a capacitância em Farad (F)
Como a carga é mantida constante e a capacitância varia, aumentando ou
diminuindo com a aproximação e afastamento das placas, a tensão do capacitor
variará inversamente proporcional a capacitância e a pressão acústica dos sons
captados.
Podemos ver na figura 7 o funcionamento de um microfone capacitivo.

Figura 7: Funcionamento de um microfone capacitivo

17
1-feedback: realimentação em sistemas de controle de laço fechado.
DETALHAMENTO DO HARDWARE

Uma variação do microfone capacitivo utiliza o material dielétrico pré-


polarizado chamado de eletreto no lugar do capacitor (o que dá o mesmo nome ao
microfone), portanto, construindo o microfone com este material não há necessidade
de uma fonte de energia para polarizar as placas do capacitor.
Normalmente este tipo de microfone devido à sua baixa corrente de saída (o
que se traduz como uma elevadíssima impedância) é montado com um pré-
amplificador tipo FET (FET - Field Effect Transistor ou transistor de efeito de
campo) integrado na própria cápsula, conforme podemos ver na figura 8.

Figura 8: Microfone capacitivo (tipo eletreto) com pré-amplificador FET


Suas principais vantagens e desvantagens são:
• Alta sensibilidade;
• Tamanho reduzido;
• Ampla faixa dinâmica;
• Pré-amplificador FET integrado;
• Custo baixo (~ R$2,50);
• Necessita de alimentação externa.
• A saída é normalmente desbalanceada;
Dentre os dois tipos de microfones estudados, foi escolhido para este projeto
o microfone de eletreto pela sua melhor relação custo benefício e pela
disponibilidade e facilidade de compra no mercado de componentes.
Os pontos fracos como a necessidade de alimentação dos microfones , a saída
balanceanceada e a isolação galvânica serão tratados nos circuitos de
condicionamento do sinal. Veja o modelo de microfone escolhido na figura 9.

18
1-feedback: realimentação em sistemas de controle de laço fechado.
DETALHAMENTO DO HARDWARE

Figura 9: Microfone de eletreto CSR-EM4FP


3.4 CIRCUITO DE CONDICIONAMENTO DE ÁUDIO
No diagrama em blocos da figura 10 podemos ver todas as etapas de
condicionamento do sinal de áudio desde microfone até a captura feita pela PCAP.
As principais diretrizes do circuito de condicionamento são:
• Baixa distorção;
• Baixa captação de interferências eletromagnéticas (RRMC –
Relação de Rejeição de Modo Comum elevada);
• Isolamento galvânico entre o circuito pré-amplificador do
microfone e a etapa amplificadora final
• Filtragem das freqüências abaixo de 40Hz e acima de 5KHz (filtro
passa faixa – anti-aliasing)
• Controle de muting do microfone

Figura 10: Circuito de condicionamento de áudio


3.4.1 Circuito Pré-Amplificador (PRA) Balanceado e Isolamento Galvânico
Foi escolhido o circuito integrado (CI) LM324N, que é um amplificador
operacional (AMPOP) de pequenos sinais e baixa potência quádruplo, que funciona
com alimentação simples e se enquadra perfeitamente nas diretrizes acima.
Dentre suas principais características estão o ganho de tensão elevado (100dB
em circuito aberto), baixa distorção e eleva RRMC (70dB), garantindo alta
imunidade contra captação de ruídos eletromagnéticos da rede elétrica (60Hz).
Na figura 11 podemos ver o circuito eletrônico do PRA como os valores dos
componentes.

19
1-feedback: realimentação em sistemas de controle de laço fechado.
DETALHAMENTO DO HARDWARE

Figura 11: Circuito pré-amplificador de áudio


Cálculos dos componentes do circuito PRA:
• R5: resistor de alimentação do microfone de eletreto e que tem um
valor pré-definido pelo fabricante dependendo da tensão de
alimentação para captação dos sinais de áudio;
• RLY1: relé com contatos normalmente abertos (NA) que quando
fechado pelo sensor de presença alimentará o microfone, abrindo o
canal de áudio;
• C1: capacitor de desacoplamento DC, deixando passar somente as
componentes de freqüência do microfone, o seu valor é calculado pela
freqüência de corte de um filtro RC passa alta, ou seja, C =
1/(2.π.f.Zin), onde Zin é a impedância de entrada do PRA que será
definida pelo paralelo de R3 e R4. Como R4 >> R3, o valor prático é
o próprio R4 (750Ω). Sendo assim, teremos C1 = 1/(2*3,14*40*750)
= 5,3 µF. O valor escolhido foi de 10 µF;
• R3 e R4: Estes dois resistores formam um divisor de tensão que ajusta
a tensão de repouso dos sinais do microfone, para que as variações de
tensões sejam sempre positivas, conforme a figura 12. Como os picos
de sinal do microfone variam entre 10 e 20mV a tensão de repouso foi
fixada em 40mV, R3 em 750Ω e calculando R4 = 750*(5/0,04 – 1) =
93KΩ. O lavor escolhido foi de 100KΩ;

20
1-feedback: realimentação em sistemas de controle de laço fechado.
DETALHAMENTO DO HARDWARE

Figura 12: Ajuste da tensão de repouso do microfone


• R1 e R2: esses dois resistores determinam o ganho de tensão do pré-
amplificador pela realimentação negativa do AMPOP, conforme a
figura 13. Fixando R2 em 750Ω e considerando que o pico máximo de
tensão do microfone será de 60mV e da saída do AMPOP de 1,5V, o
ganho de tensão será de AV=1,5/0,06 = 25, e o valor de R1 será de R1
= 750*(25-1) = 18KΩ.

Figura 13: Cálculo do ganho de tensão do pré-amplificador de áudio


• C2: Este capacitor tem a função de desacoplamento da tensão
contínua presente na saída do AMPOP antes do transformador de
linha, que devido à sua natureza só pode trabalhar com tensões
alternadas, sendo o seu cálculo é igual ao de C1 com a impedância de
saída Zout fixada pelo transformador de linha, que é de 600Ω. O valor
de C2 = 1/(2*3,14*40*600) = 6,6 µF, sendo utilizado o valor
comercial de C2 = 10µF;

21
1-feedback: realimentação em sistemas de controle de laço fechado.
DETALHAMENTO DO HARDWARE

• T1: transformador de linha que tem duas funções no circuito: isolar


galvanicamente e balancear o sinal, impedindo que tensões contínuas
possam circular entre os circuitos e cancelando as interferências de
modo comum captadas nos fios de interligação. Foi utilizado um
transformador modelo AT600 da LYNX, conforme a figura 14.

Figura 14: Transformador de linha LYNX - AT600


Cada placa pré-amplificadora será montada com quatro circuitos pré-
amplificadores independente, aproveitando-se os quatro AMPOPs internos do CI
LM324N. Procedendo desta forma, reduziremos o número de placas pré-
amplificadores de dez para apenas quatro, com diversas vantagens de custo, ganho
em escala, modularidade e etc.
Outro fator positivo é que cada placa terá apenas uma fonte de alimentação
para os quatro pré-amplificadores, sendo que esta fonte será montada em uma caixa
independente e a sua ligação será por cabo com conexão por encaixe. Podemos ver o
esquema da fonte na figura 15.

Figura 15: Circuito da fonte de alimentação de +5V do pré-amplificador

22
1-feedback: realimentação em sistemas de controle de laço fechado.
DETALHAMENTO DO HARDWARE

3.4.2 Amplificador de Instrumentação (AI) e Filtro Passa-Faixa (FPF)


Nesta etapa do condicionamento dos sinais de áudio, os sinais provenientes
dos pré-amplificadores serão amplificados por um amplificador de instrumentação
trabalhando em modo diferencial, que tem como principal característica a rejeição
das interferências de modo comum captadas nos cabos de interligação e um ganho de
tensão preciso, para que o nível de tensão de áudio fique dentro da faixa de entrada
analógica da PCAP.
Entre a saída do AI e a PCAP o sinal de áudio é filtrado por um FPF,
garantindo que na entrada da PCAP os sinais de áudio estejam dentro da faixa de
40Hz até 5KHz, que foi determinada no escopo do projeto.
3.4.2.1 Circuito Amplificador Diferencial
Dentre vários modelos de AI pesquisados, foi escolhido o INA128 devido às
suas ótimas características, principalmente a elevada RRMC ~ 120dB que será muito
importante para o cancelamento das interferências. Na figura 16 mostra o diagrama
interno do INA128 e o cálculo do ganho de tensão.

Figura 16: Diagrama interno do amplificador de instrumentação INA128


Considerando que o sinal de áudio na entrada do AI poderá variar numa faixa
de tensão ampla, dependendo de valores não conhecidos como a distância dos cabos,
distância do microfone para o usuário, entre outros fatores, o ganho de tensão do
circuito deverá ser calculado para uma faixa entre 5 a 10 vezes o sinal de entrada,
sendo empregado um trimpot (resistor variável) em série com um resistor para fazer
este ajuste.
• Para G = 5: RG = 50KΩ/(G-1) = 50/(5-1) = 12,5KΩ;
• Para G = 10: RG = 50KΩ/(G-1) = 50/(10-1) = 5,5KΩ;
• R1 = 5,6KΩ e R2 = 6,8KΩ.
Além do ajuste de ganho, será necessário fixarmos a impedância de entrada
(Zin) do AI para o mesmo valor de saída do PRA, que é de 600Ω, através de dois

23
1-feedback: realimentação em sistemas de controle de laço fechado.
DETALHAMENTO DO HARDWARE

resistores em série com metade deste valor. Foram utilizados quatro resistores de
150Ω em série. Podemos ver na figura 17 o circuito do amplificador com os valores
dos componentes.

Figura 17: Circuito amplificador diferenciador e cancelamento de espúrios


3.4.2.2 Circuito do Filtro Passa Faixa (FPF)
Para este projeto foi escolhido o filtro Butterworth devido à sua linearidade
na banda passante e facilidade de implementação – não abordaremos a teoria de
funcionamento dos filtros, pois foge ao escopo deste trabalho. Podemos ver na figura
18 uma comparação da resposta em amplitude de quatro tipos diferentes de filtros:

Figura 18: Comparação da resposta em amplitude de filtros passa baixa

24
1-feedback: realimentação em sistemas de controle de laço fechado.
DETALHAMENTO DO HARDWARE

Para podermos montar um filtro passa faixa é necessário montarmos dois


filtros: um passa altas (FPA) com freqüência de corte de 40 Hz e um passa baixas
(FPB) com freqüência de corte de 5 KHz, ligando os dois filtros em série, conforme
podemos ver na figura 19.

Figura 19: Esquema de montagem de um filtro passa faixa


A taxa de atenuação a partir das freqüências de corte inferior e superior
adotada para este projeto foi de 40 dB por década, possibilitando uma melhor
filtragem dos sinais de áudio fora da banda passante. Veja na figura 20 o circuito
básico do filtro FPB Butterworth de 2ª Ordem (40db/dec) e suas principais fórmulas.

Figura 20: Esquema do filtro FPB Butterworth de 2ª ordem


O esquema do FPA é igual ao FPB da figura 20, trocando-se de lugar os
componentes “R” por “C”. Os cálculos dos componentes também são iguais,
tomando-se o cuidado de fixar o ganho “AV” em 1,586 para ambos os filtros,
garantindo a melhor linearidade na banda passante. Veja na figura 21 o circuito
completo do FPF com os calores dos componentes já calculados para este projeto.

25
1-feedback: realimentação em sistemas de controle de laço fechado.
DETALHAMENTO DO HARDWARE

Figura 21: Filtro Butterworth FPF de 40HZ a 5KHz de 2ª ordem e 40dB/dec


Onde:
• AVFPA = AVFPB = 5,8/10 + 1 = 1,58
• fcFPA = 1/2πRC = 1/(2*3,14*18KΩ*220nF) = 40,19 Hz;
• fcFPB = 1/2πRC = 1/(2*3,14*1680Ω*18nF) = 5260 Hz;
O capacitor C5 desacopla a saída do FPF e os resistores R9 e R10 formam um
divisor de tensão de 1/3V, ajustando o offset do sinal Vout para 5V e fazendo com
que o sinal de áudio possa variar entre 0V e 10V (padrão de entrada da PCAP
adotado no projeto).
A fonte é do tipo simétrica de ±15V com uma boa filtragem. Devido à baixa
potência dos circuitos (da ordem de miliwatts) será utilizada apenas uma única fonte
para todos os circuitos amplificadores e filtros. Foi escolhida a fonte FSS1-00 15Vcc
da Selco, conforme as especificações mostradas na figura 22.

Figura 22: Especificações da fonte simétrica Selco, FSS1-00 15Vdc

26
1-feedback: realimentação em sistemas de controle de laço fechado.
DETALHAMENTO DO HARDWARE

3.5 CIRCUITOS DE ENTRADA E SAÍDA DIGITAIS


Conforme as especificações da PCAP utilizada neste projeto (tabela 3), as
interfaces de entrada e saída digitais deverão trabalhar com tensões de 0V a 5V, ou
seja, níveis de tensão TTL (Transistor Transistor Logic).
Os padrões lógicos de entrada foram definidos como:
• Lâmpada: lidada = 5V, desligada = 0V;
• TV: ligada = 5V, desligada = 0V;
• Porta: aberta = 0V, fechada = 5V;
• Janela: aberta = 0V, fechada = 5V.
Os padrões lógicos de saída foram definidos como:
• Lâmpada: ligar = 5V, desligar = 0V;
• TV: ligar = 5V, desligar = 0V;
• Porta: abrir = 5V (comando momentâneo);
• Janela (três comandos com duas saídas)
o Abrir: S1 = 5V, S2 = 0V;
o Fechar: S1 = 0V, S2 = 5V;
o Parar: S1 = 5V, S2 = 5V.
Vimos acima que os padrões digitais de entrada e saída, necessários para a
comunicação de informações entre o SG e os periféricos, trabalham com baixa tensão
(TTL) não sendo compatível com as tensões e correntes elevadas que alimentam os
periféricos atuadores e sensores das lâmpadas, portas, janelas, eletrodomésticos em
geral.
Portanto, devemos utilizar PIDs que vão adaptar as tensões e correntes
elevadas dos periféricos para os níveis TTLs da PCAP, assim como, isolar essas
cargas evitando o retorno de energia da rede para o sistema de controle, o que
poderia queimar a PCAP a CPU e atingir até o usuário com choques perigosos.
Outro pré-requisito de segurança é que todos os isolamentos galvânicos sejam
feitos próximos a PCAP para se evitar trechos longos de fios e de cabos que possam
adquirir correntes de indução elevadas em caso de descarga atmosférica. Obs.: a casa
deverá possuir um sistema de aterramento eficiente, com um conjunto de hastes de
aterramento que propiciem uma impedância de terra inferior a 5Ω, e todas as partes
metálicas dos equipamentos devem ser ligadas neste aterramento.

27
1-feedback: realimentação em sistemas de controle de laço fechado.
DETALHAMENTO DO HARDWARE

3.5.1 Hardware das Portas

3.5.1.1 Portas da Sala e Cozinha


Após várias pesquisas entre diversos fabricantes de sistemas de automação de
portas e portões, foi escolhido o modelo SPRINT-J fabricado pela DÍTEC para
automatizar a abertura das portas da sala e cozinha, conforme o esquema de
instalação da figura 23

Figura 23: Instalação do sistema de abertura automática das portas


O esquema de ligação do SPRINT-J pode ser visto na figura 29.

Figura 24: Esquema de ligação do sistema de automatismo SPRINT-J

28
1-feedback: realimentação em sistemas de controle de laço fechado.
DETALHAMENTO DO HARDWARE

Para manter a porta fechada, um fecho elétrico modelo FEC 91-CL da HDL
foi instalado no batente da porta, sendo acionado por um contato seco do. Podemos
ver na figura 25 uma foto do fecho elétrico FEC 91-CL.

Figura 25: Fecho elétrico HDL FEC 91-CL


A interligação do sistema de acionamento da porta SPRINT-J com a PCAP é
feita através da placa SELCO RLN50-48, que tem 8 entradas digitais no padrão TTL
e 8 relés de saída com boa capacidade de corrente de contato e elevada isolação
galvânica de 1500V. Veja na figura 26 uma foto da RLN50-48.

Figura 26: Placa de interface de relés SELCO RLN50-48


O dispositivo sensor de porta aberta é do tipo magnético (reed-switch) da
Metaltex, instalado a parte do imã na porta e a ampola reed-switch no batente.
A interface entre os contados secos do reed-switch e a PCAP é feita pela
placa SELCO RES-1100, que é um bloco de acopladores óticos de corrente contínua,
próprio para isolar sistemas de nível TTL com outros em 24 VDC, juntamente com
uma fonte de 24VDC, modelo FSS1-00, que alimenta todos os dispositivos de 24V.
Podemos ver na figura 27 as fotos do conjunto formado pelo sensor
magnético, a fonte de alimentação FSS1-00 24V e a placa RES-1100.

29
1-feedback: realimentação em sistemas de controle de laço fechado.
DETALHAMENTO DO HARDWARE

Figura 27: Sensor de porta aberta com reed-switch e placa RES1100


3.5.1.2 Portas do Quarto e da Suíte
As portas do quarto e da suíte terão apenas o fecho elétrico modelo FEC 91-
CL da HDL para destrancar a porta e a abertura é feita manualmente pelo usuário,
com a possibilidade de instalação de um sistema mecânico de retorno automático da
porta (mola com amortecedor).
O acionamento do fecho elétrico é através de um dos relés da placa SELCO
RLN50-48, descrita anteriormente e o sensor magnético de porta aberta é o mesmo
da figura 27.
3.5.2 Hardware das Janelas
As janelas da sala, cozinha, quarto e suíte terão um sistema automático de
abertura fabricado pela DÍTEC, modelo OLLYC.
Este sistema é próprio para abertura de portas e janelas do tipo deslizante de
fácil adaptação, possuindo uma placa microprocessada de controle e um motor DC
que traciona a correia de deslocamento, movimentando a folha da janela. Podemos
ver na figura 28 o esquema de montagem mecânica do OLLYC na janela e na figura
29 o esquema de ligações da placa de controle.
Obs.: O produto OLLY-C é fabricado apenas para a Europa com tensão de
alimentação de 230VAC, portanto, será necessário utilizar um transformador com a
tensão do primário da rede local e secundário de 230VAC/100W.

30
1-feedback: realimentação em sistemas de controle de laço fechado.
DETALHAMENTO DO HARDWARE

Figura 28: Esquema de montagem mecânica do sistema OLLY-C

Figura 29: Esquema de ligações da placa de controle OLLY-C


A interface de acionamento escolhida para acionamento das janelas é a
mesma utilizada nas portas, placa SELCO RLN50-48 (figura 26), sendo utilizados
dois contatos secos por janela, para que se possa abrir, fechar e parar a janela em
qualquer posição.
O sensor de janela aberta é do tipo magnético já descrito anteriormente (veja
a figura 27).
3.5.3 Hardware de Acionamento das Lâmpadas e TV
A interface de acionamento das lâmpadas é a mesma utilizada para
acionamento das portas e janelas, placa SELCO RLN50-48 (figura 26) com relés

31
1-feedback: realimentação em sistemas de controle de laço fechado.
DETALHAMENTO DO HARDWARE

eletromecânicos, sendo utilizado um relé por lâmpada e TV (ou qualquer outro


eletrodoméstico que se queira automatizar).
Obs.:Embora seja possível a utilização de relés de estado sólido para
acionamento de cargas AC, optou-se pelos relés eletromecânicos por serem mais
resistentes às descargas atmosféricas e para se evitar diversidade de tipos diferentes
de placas no projeto.
Para o sensor de acionamento das lâmpadas e da TV foi escolhido o sensor de
corrente SELCO SCS-0198, que é usado para indicar a passagem de um nível
mínimo de corrente por um condutor elétrico (ajustável entre 0,15 e 5 A).
Cada módulo possui dois sensores independentes, portanto, será necessário
apenas 4 módulos SCS-0198 para todas as lâmpadas e a TV.
A saída do sensor é no padrão TTL e será ligada diretamente a PCAP. A
alimentação do módulo é de 24V, compartilhando a mesma fonte PSS1-00 24V dos
outros sensores. Na figura 30 podemos ver a foto do sensor e o seu esquema de
ligação.

Figura 30: Placa SELCO SCS-0198 e esquema de ligação

32
1-feedback: realimentação em sistemas de controle de laço fechado.
DETALHAMENTO DO HARDWARE

3.5.4 Sensores de Presença


Os sensores de presença são dispositivos que recebem as radiações de calor
emitidas pelo corpo humano para detectar o movimento de pessoas em ambientes
controlados. Neste projeto foram utilizados dois modelos de sensores fabricados pela
FACTOR, o FTR410 de instalação no teto utilizado somente na sala e o FTR510, de
montagem em parede, utilizado no restante da casa. Veja na figura 31 os dois
sensores de presença e suas especificações.

Figura 31: Sensores de presença FRT410 e FTR510


Estes dois modelos são alimentados diretamente pela rede elétrica e foram
projetados para ligar lâmpadas, através do chaveamento de um contado de relé com a
fase da rede, permanecendo ligado por um tempo ajustável entre 15 segundos até 3
minutos.
Existem diversos outros sensores de presença utilizados em sistemas de
segurança e que são alimentados com baixa tensão contínua, entretanto, estes
sensores não permitem o ajuste do tempo de permanência, e por isto, não foram
escolhidos.
Como o propósito dos sensores de presença é o acionamento dos microfones
nos ambientes e o envio de informação de presença para o SG, foi utilizado um relé
da METALTEX, modelo Q2A-110, que possui bobina AC com tensão da rede, dois
contatos normalmente abertos, tem suporte para trilhos de montagem DIN TS32/35 e

33
1-feedback: realimentação em sistemas de controle de laço fechado.
DETALHAMENTO DO HARDWARE

possui conexões do tipo aparafusáveis. Podemos ver na figura 32 o relé Q2A-110 e


suas especificações.

Figura 32: Relé Metaltex Q2A-110


O esquema do circuito de interligação entre o sensor de presença e o relé
pode ser visto na figura 33.

Figura 33: Circuito do sensor de presença


3.5.5 No-Break
O Operador Nacional do Sistema Elétrico (ONS) publicou previsões para o
desempenho do setor elétrico nacional entre 2000 e 2004, relatando em um estudo
feito para o ano de 2001, que a chance de ocorrer um déficit na Região
Sudeste/Centro-Oeste é de 17,9%. Para a Região Nordeste, é de 14,6%. A Região Sul
está um pouco melhor, com risco de 7,7%, e a Região Norte, com seus 4%, está no
limiar da garantia de suprimento [www.ons.org.br]. Como norma, o setor elétrico
estabelece o limite máximo aceitável até 5%.

34
1-feedback: realimentação em sistemas de controle de laço fechado.
DETALHAMENTO DO HARDWARE

A automatização proposta neste projeto de um sistema em tempo real


depende certamente de uma fonte de energia elétrica confiável e de boa qualidade,
sem variações ou interrupções freqüentes no fornecimento. Conforme as estatísticas
acima, existem riscos no fornecimento de energia elétrica em várias regiões do Brasil
e considerando que até interrupções momentâneas podem comprometer o
funcionamento de todos os dispositivos e danificar alguns deles, foi incluído neste
projeto um no-break (NB) de média potência, com características ótimas de
fornecimento de energia dentro de padrões de estabilidade e qualidade para
alimentação de todos os dispositivos da CI, exceto para as cargas de maior demanda
como a TV e parte da iluminação.
Foi escolhido o NB POWERWARE, modelo PW5125-2200-120V, com dois
módulos de baterias extras (2EBM), que proporcionará uma autonomia de cerca de 1
hora com carga total. Podemos ver na figura 34 o NB PW5125 e suas principais
especificações.

Figura 34: No-break Powerware P5125-220-120V

35
1-feedback: realimentação em sistemas de controle de laço fechado.
CAPÍTULO 4
DETALHAMENTO DO SOFTWARE
Neste capítulo estudaremos o software responsável pelo SG, que é
encarregado da aquisição de dados de múltiplas fontes (sistema multitarefa), que faz
a identificação dos comandos de voz dentre os sinais capturados e posteriormente,
envia comandos para os dispositivos e atuadores da casa. Tudo isto dentro do tempo
previsto, que é a característica principal de um sistema em tempo real.
Como exemplo, se um usuário entrasse no raio de ação do sensor de presença
da sala, o microfone daquele setor seria habilitado e ele poderia solicitar uma tarefa
através do protocolo convencionado, por exemplo: “HAL ACENDA A LUZ DA
SALA”.
Neste momento, o áudio captado pelo microfone e transformado em sinais
elétricos é tratado pelo hardware conforme o capítulo 2, e posteriormente
discretizado pela PCAP, que está constantemente sendo supervisada pelas rotinas do
SG, e que utiliza técnicas de avaliação da energia e da taxa de cruzamento por zero
(zerocrossing) para identificar um trecho de mensagem e começar a escrever os
dados num buffer de aquisição circular, de forma eficiente e rápida o suficiente para
que nenhum trecho da mensagem seja perdido.
Esse buffer circular é lido em outra parte do sistema liberando espaço para
novas gravações, enquanto que outra tarefa se encarrega de desenhar o gráfico do
comando de voz e passar adiante para outra parte do programa que tem como função
transformar os comandos de voz que estão representados no domínio do tempo para
o domínio da freqüência (FFT), para que possa ser analisado pelo seu conteúdo
espectral e identificado corretamente.
O sinal já na forma de espectro de freqüência é desenhado em um gráfico e as
suas componentes são transformadas em dados objetivos para que um algoritmo de
identificação possa reconhecer o comando carregado naquele espectro, separando em
sua saída a tarefa que será realizada.
Neste momento, com o reconhecimento do comando de voz, o SG habilitará a
porta digital referente à saída que controla o relé da luz da sala, que ligará a lâmpada
via interface de potência.

36
DETALHAMENTO DO SOFTWARE

Uma vez ligada a lâmpada da sala, outro sensor que monitora a corrente
circulando pela ligação elétrica da lâmpada emite um comando digital que seguirá
pela PCAP até a CPU, para que o SG possa analisar se a tarefa foi realizada com
sucesso (feedback).
Ao final, o usuário deverá ver a luz se acender e o tempo de resposta para que
isto aconteça deverá ser imperceptível, sem o que, todo o processo descrito acima
não seria mais eficiente do que um simples interruptor de luz.
Neste contexto, o software simulador que será desenvolvido deverá trabalhar
com códigos muti-tarefas, utilizando threads que são trechos de códigos menores e
mais simples, para serem executados paralelamente com funções específicas, sendo
as threads totalmente gerenciáveis quanto ao tempo de utilização do processador e a
sua prioridade de execução.
Portanto, trataremos neste capítulo do desenvolvimento de uma aplicação
visual do simulador da casa inteligente em linguagem de programação C# da
plataforma“.NET”, que terá como principais funcionalidades:
• Sistema de processamento multitarefa baseado em threads;
• Buffers circulares para armazenamento dos dados capturados;
• Plotagem dos dados no domínio do tempo.;
• FFT e plotagem no espectro de freqüência dos sinais capturados;
• Algoritmo de identificação dos comandos.
4.1 FLUXOGRAMA E DESCRIÇÃO DO SOFTWARE SIMULADOR
Podemos ver na figura 35 o fluxograma simplificado do software simulador
da casa inteligente, mostrando um panorama do funcionamento geral do sistema.
Para efeito de simplificação, os comandos de voz foram substituídos por um
protocolo de sinais senoidais de diferentes freqüências, que carrega um conjunto de
dados codificados binários. Obs.: em uma aplicação real a análise dos comandos de
voz seria similar a este processo, porém, com maior complexidade e provavelmente
utilizando métodos redes neurais artificiais para o reconhecimento de voz.

37
1-feedback: realimentação em sistemas de controle de laço fechado.
DETALHAMENTO DO SOFTWARE

Figura 35: Fluxograma simplificado do software do simulador da CI

38
1-feedback: realimentação em sistemas de controle de laço fechado.
DETALHAMENTO DO SOFTWARE

4.1.1 Protocolo de Simulação dos Comandos de Voz


Utilizamos para este protocolo um conjunto de dez sinais senoidais de
freqüências distintas dentro da banda passante de 40 HZ a 5KHz, fazendo cada um
destes sinais assumir amplitudes de “1V” para o código binário “1” e “0,5V” para o
código binário “0”, conforme mostra a tabela 5 abaixo
• Protocolo:
Local Instrução Cabeçalho Usuário
MSB LSB MSB LSB MSB LSB
bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
• Freqüências (Hz):
bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
f9 f8 f7 f6 f5 f4 f3 f2 f1 f0
4550 4050 3550 3050 2550 2050 1550 1050 550 50
Tabela 5: Protocolo dos comandos de voz do software simulador
Portanto, podemos ter com este protocolo até 4 usuários (22), 2 cabeçalhos
(21), 16 instruções (24) e 8 locais diferentes (23), atendendo aos pré-requisitos do
projeto.
Como exemplo, se o usuário 2 estivesse falando teríamos:
• f(t) = A0.f1 + A1.f0
• f(t) = A0*cos(2*π*f1*t) + A1*cos(2*π*f0*t)
• f(t) = 0,5*cos(2*π*550*t) + 1,0*cos(2*π*55*t)
A figura 36 mostra os gráficos do sinal f(t) do usuário 2 no domínio do tempo
e no domínio da freqüência.

Figura 36: Gráficos do protocolo de identificação do usuário 2


No software uma vez definido o comando de voz pela interface visual, o
sinal do comando é facilmente calculado dentro de um laço “FOR” utilizando a
fórmula da somatória dos 10 sinais senoidais:

39
1-feedback: realimentação em sistemas de controle de laço fechado.
DETALHAMENTO DO SOFTWARE

// gera o sinal do comando de voz do microfone


for (int i = 0; i < nPtos; i++)
{
ySinal[i] = protocolo[0] * Math.Sin(dPI * freqs[0] * (i /
freqAmostragem)) +
protocolo[1] * Math.Sin(dPI * freqs[1] * (i / freqAmostragem)) +
protocolo[2] * Math.Sin(dPI * freqs[2] * (i / freqAmostragem)) +
protocolo[3] * Math.Sin(dPI * freqs[3] * (i / freqAmostragem)) +
protocolo[4] * Math.Sin(dPI * freqs[4] * (i / freqAmostragem)) +
protocolo[5] * Math.Sin(dPI * freqs[5] * (i / freqAmostragem)) +
protocolo[6] * Math.Sin(dPI * freqs[6] * (i / freqAmostragem)) +
protocolo[7] * Math.Sin(dPI * freqs[7] * (i / freqAmostragem)) +
protocolo[8] * Math.Sin(dPI * freqs[8] * (i / freqAmostragem)) +
protocolo[9] * Math.Sin(dPI * freqs[9] * (i / freqAmostragem));

xTime[i] = i / freqAmostragem;
}
4.1.2 Tela Principal (Interface Visual do Simulador)
Buscou-se implementar uma tela mais intuitiva, onde os comandos são feitos
por botões, escolhendo-se primeiro na planta baixa o sensor de presença referente ao
microfone, depois o usuário, o cabeçalho, a instrução e por último o local onde será
executada a instrução. Veja na figura 37 a tela da interface visual

Figura 37: Interface visual do software simulador da casa inteligente

40
1-feedback: realimentação em sistemas de controle de laço fechado.
DETALHAMENTO DO SOFTWARE

Uma vez escolhido os botões do comando de voz, o comando é montado no


botão “Montar Comando”, gerando sinal “ySinal” e ao lado deste botão o comando
binário do protocolo gerado.
O botão “Enviar Comando” tem a função de associar o sinal do comando a
entrada anteriormente escolhida, tal qual seria o usuário falando neste microfone. Na
figura 37 o usuário “Pai”, disse a seqüência: “Hal” + “Fechar a Porta” + “Sala de
Estar”, no microfone da sala de estar que é uma das entradas analógicas.
O sinal do comando é então capturado ponto a ponto através de uma thread
que controla o buffer circular de captura responsável por este microfone,
preenchendo com os dados do sinal capturado.
Internamente outra thread retira estes dados do buffer de captura e preenche
um buffer de processamento com todos os pontos discretizados do sinal capturado, e
uma vez completado este buffer, é chamada uma função de processamento do sinal
capturado que plota o sinal no domínio do tempo e da freqüência (FFT) na parte
inferior da tela ( esquerda f(t) e direita f(Hz)).
Neste instante um algoritmo de identificação simplificado (que substitui o
sistema de reconhecimento de voz) analisa os dados contidos no espectro de
freqüência do sinal processado, informando o código binário do comando recebido
na caixa de texto “Comando Recebido”, e finalizando o processo.
Não foi implementada a parte de envio de comandos, já que este código seria
meramente uma conseqüência do reconhecimento do comando de voz, podendo ser
implementado utilizando-se threads que enviariam os comandos utilizando os drivers
da PACAP.
4.1.3 Thread de Captura e Bufferização do Sinal Capturado
Como este projeto tem características um sistema em tempo real, foi
implementado uma thread para cada buffer de captura, com a possibilidade de
rodarem de modo concorrente, possibilitando que mais de comando de voz pudesse
ser enviado ao mesmo tempo, já que cada um seria armazenado em buffers
exclusivos.
A temporização de captura foi realizada através de um “Timer” que simula o
envio dos sinais discretizados utilizando-se o “Mutex” para evitar conflitos de

41
1-feedback: realimentação em sistemas de controle de laço fechado.
DETALHAMENTO DO SOFTWARE

gravação de dados no mesmo endereço, o que poderia ocorrer em se tratando de


sistemas concorrentes, destruindo o dado e trazendo conseqüências imprevisíveis.
Uma flag de sinalização indica para a thread de captura a presença de um
novo dado e assim que o escalonador do sistema destina o processador para esta
thread, ela armazena o dado no buffer circular de captura e baixa a flag para sinalizar
o dado capturado e liberar a entrada de um novo dado.
4.1.4 Thread de Processamento do Buffer
A thread de processamento que está rodando concorrentemente à thread de
captura, verifica se existem dados armazenados no buffer de captura, e caso
afirmativo, retira estes dados e armazena no buffler de processamento. A
sincronização entre a thread de captura e a de processamento é garantida pela
utilização de flags e pela técnica do mutex, conforme aprendido do professor.
O buffer de processamento, uma vez totalmente preenchido, sinaliza através
de uma flag para que o temporizador encerre as threads e envie o buffer para a
função de processamento, que fará a análise do sinal (FFT e algoritmo de
reconhecimento) e a plotagem dos gráficos de f(t) e f(Hz).
4.1.5 Processamento do Sinal e Identificação do Comando Recebido
A plotagem dos gráficos foi feita utilizando-se a classe “ZedGraph”, onde o
conjunto de pontos do sinal do buffer de processamento (buffer_ProcX)irá gerar o
gráfico do sinal em função do tempo e a transformação desse trecho de informação
em um espectro de freqüência é através da “Transformada Rápida de Fourier” (FFT),
que gera o gráfico do sinal em função da freqüência.
Foi criada uma DLL (Biblioteca de Ligação Dinâmica) chamada de
“TransfRapFourier” a partir dos códigos do [Saulo Jesiel Siqueira Machado, 2007] ,
sendo utilizado o método “FFT.PowerSpectrum” para se obter o espectro de potência
do sinal capturado, conforme a linha de comando abaixo:
ySpectro = TransRapFourier.FFT.PowerSpectrum(dadoscapturados,
freqAmostragem, out xFreq);
Na linha acima, o array “ySpectro” conterá os pontos de potência do sinal
para cada unidade de freqüência relacionada no array “xFreq”, devolvido pela DLL.
Como a freqüência de amostragem (freqAmostragem) e as freqüências do
protocolo são conhecidas (configuradas), existe uma relação entre estes dois arrays
para se determinar os pontos do espectro contendo as freqüências das portadoras e

42
1-feedback: realimentação em sistemas de controle de laço fechado.
DETALHAMENTO DO SOFTWARE

suas respectivas potências, para que se possa comparar e determinar o dado contido
em cada uma das freqüência de acordo com a amplitude do sinal, conforme mostra as
linhas de comando abaixo:
// recupera os dados e armazena no vetor protRecup
for (i = 0; i < 10; i++)
{
protRecup[i] = ySpecNormal[Convert.ToInt32((nPtos /
freqAmostragem) * freqs[i] + 1)];
if (protRecup[i] > 0.35)
protRecup[i] = 1;
else
if (protRecup[i] > 0.05 & protRecup[i] < 0.35)
protRecup[i] = 0.5;
else
protRecup[i] = 0;
}
Uma vez recuperada a informação, outra função se encarrega de transformá-la
em dados binários, que é o padrão adequado para entrada de qualquer sistema de
controle, conforme podemos ver nas linhas de comando abaixo:
// função de conversão do spetro em uma sequência de bits
private string Imprime(double[] vetor)
{
string comdo = "";
int i;
for (i = 9; i >= 0; i--)
{
if (vetor[i] == 1.0)
comdo += "1";
else
if (vetor[i] == 0.5)
comdo += "0";
else
comdo += "X";
}
return comdo;
}
Uma observação importante é que embora este protocolo seja baseado em
dados binários, existe na verdade três estados possíveis: zero “0”, um “1” e “X”,
sendo que o “X” significa ausência de sinal, podendo ser utilizado para identificar
omissão em parte do comando de voz, o que é perfeitamente normal de acontecer.
Por exemplo, se o usuário “Mãe” dissesse apenas “Hal” + “Abra a Porta”, o sistema
de gerenciamento receberia o protocolo: “XXX000001”, onde os “Xs” informaria a
ausência do local de aplicação do comando, podendo neste momento o SG informar
através de uma mensagem sintetizada de voz para que o usuário repita novamente o
comando, ou simplesmente, informe somente o local.

43
1-feedback: realimentação em sistemas de controle de laço fechado.
DETALHAMENTO DO SOFTWARE

4.1.6 Transformada Rápida de Fourier (FFT)


A Transformada rápida de Fourier é uma parte importante na identificação
dos comandos de voz, responsável pela transformação dos sinais capturados em
componentes de freqüência para que seja feita a identificação destes comandos em
comparação com padrões pré-conhecidos pelo sistema. Uma técnica amplamente
empregada no reconhecimento de vós utiliza os algoritmos de RNA (Redes Neurais
Artificiais), que tem como principais características o aprendizado de padrões e a
generalização após o treinamento. Neste trabalho não se utilizou esses técnicas, mas
seria perfeitamente possível a incorporação dos códigos de uma RNA Perceptron
para separação dos padrões binários do protocolo.
Veja na figura 38 as definições das equações de DFT e IDFT

Figura 38: Equações de DFT e IDFT


Podemos observar que o cálculo da DFT e IDFT é uma somatória de N2
multiplicações complexas de uma seqüência de comprimento N, ou seja, a DFT
aumenta com o quadrado do comprimento do sinal, que no caso do projeto foi um
valor arbitrado de 512 pontos de amostragem a uma taxa de 10000 amostras por
segundo, e portanto a DFT teria 5122 = 262144 multiplicações e somatórias. Num
caso real de comando de voz o cálculo da DFT dependeria de um processamento
pesado impactando nos custos de sistema em tempo real.
Os pesquisadores [Cooley e Tukey, 1965], propuseram um algoritmo mais
eficiente, o qual requer um numero de multiplicações complexas da ordem de
Nlog2N, o que representa um decréscimo extraordinário nos cálculos, 512*log2512 =
4608.
A DLL TransRapidFourier possui um método PowerSpectrum que recebe
como argumentos o array do buffer de processamento “dadoscapturados” contendo
512 pontos (2N) da curva, a freqüência de amostragem “freqAmostragem”
correspondente a 10000 amostras por segundo e um vetor vazio com a referência

44
1-feedback: realimentação em sistemas de controle de laço fechado.
DETALHAMENTO DO SOFTWARE

“out” para ser preenchido com as freqüências do gráfico “eixo x”. Podemos ver
abaixo a linha de código que chama o método “PowerSpectrum”:
// Transformada Rápida de Fourier do espectro de potência
// do sinal capturado: f(time) -> f(freq)
ySpectro = TransRapFourier.FFT.PowerSpectrum(dadoscapturados,
freqAmostragem, out xFreq);

4.1.7 Principais Códigos do Software Simulador


Seguem os principais trechos de código do software simulador da casa
inteligente com uma breve descrição do seu funcionamento
4.1.7.1 TimerGerador
Gera eventos programados simulando a sincronização de captura dos
comandos de voz feitos pela PCAP. Internamente possui uma estrutura de seleção
múltipla que define a parte do código que será chamada, que no caso é um dos
microfones da casa.
A cada iteração do TimerGerador um novo valor é gerado e disponibilizado
para a respectiva thread de captura:
//evento gerado pelo temporizador
private void TimeGerador_Tick(object sender, EventArgs e)
{
label4.Text = count.ToString();

switch (microfone)
{
case 1:
if (buffer_Proc_cheio1)
{
// análisa e processa os dados capturados
ProcDados(buffer_Proc1);
myThAquis1.Abort();
myThAquis1 = null;
cancelar_Thread1_aq = true;
myThProc1.Abort();
myThProc1 = null;
cancelar_Thread1_proc = true;
TimeGerador.Enabled = false;
break;
}
valorGerado1 = ySinal[count];
MutexNV1.WaitOne();
Novo_Valor1 = true;
MutexNV1.ReleaseMutex();
break;
...

45
1-feedback: realimentação em sistemas de controle de laço fechado.
DETALHAMENTO DO SOFTWARE

4.1.7.2 Theads de Captura


Existem nove threads de captura relacionadas com as entradas analógicas da
PCAP, e que rodam continuamente buscando novos dados para serem armazenados
nos buffers de captura, até o sistema de gerenciamento. Obs.: nesta implementação
optou-se pela não implementação de loop infinito nas threads de captura, por uma
questão de otimização dos processos, embora fosse perfeitamente possível utilizar
esta técnica ensinada pelo professor.
//cria a thread de aquisição de dados da Onda 1
void aquis1()
{
while (cancelar_Thread1_aq == false)
{
if (Novo_Valor1 && (buffer_EL1 > 0))
{
buffer_Aq1[buffer_pWR1] = valorGerado1;

//decrementando o espaço livre do buffer1 de


aquis. de dados
MutexEL1.WaitOne();
--buffer_EL1;
MutexEL1.ReleaseMutex();

//liberando o flag de novo_valor para uma


nova aquis de dados
MutexNV1.WaitOne();
Novo_Valor1 = false;
MutexNV1.ReleaseMutex();

//incrementando e circulando o ponteiro de


escrita do buffer1
if(count < (nPtos-1))
{
++buffer_pWR1;
++count;
}
if (buffer_pWR1 >= buffer_Size1) buffer_pWR1
= 0;
}
}
}

4.1.7.3 Threads de Processamento


Essas threads trabalham em paralelo às threads de aquisição verificando se
existem dados novos nos buffers de aquisição e caso positivo, armazenam esta
informação nos buffers de processamento liberando o espaço desta informação para
que uma nova informação possa ser capturada, desta forma, pequenos atrasos no
processamento não impedem de novos dados serem capturados e transferidos para o

46
1-feedback: realimentação em sistemas de controle de laço fechado.
DETALHAMENTO DO SOFTWARE

buffer de processamento. Assim como nas threads de captura, optou-se pela


permanência das threads até completar o buffer de processamento e depois disso elas
são destruídas, liberando a memória para o sistema.
//cria a thread de processamento de dados da Onda 1
void proc2()
{
while (cancelar_Thread2_proc == false)
{
// existem dados disponíveis no buffer_Aq1 para
analisar?
if (buffer_EL2 < buffer_Size2)
{
//armazena no buffer de processamento os dados
da aquis
buffer_Proc2[buffer_Proc_pWR2] =
buffer_Aq2[buffer_pRD2];

//incrementando o espaço livre do buffer1 de


aquis de dados
MutexEL2.WaitOne();
++buffer_EL2;
MutexEL2.ReleaseMutex();

//incrementando e circulando o ponteiro de


leitura do buffer 1
buffer_pRD2++;
if (buffer_pRD2 >= buffer_Size2) buffer_pRD2 =
0;

//incrementa e circula o ponteiro de escrita


//do buffer de processamento
buffer_Proc_pWR2++;
if (buffer_Proc_pWR2 >= buffer_Proc_Size2)
buffer_Proc_pWR2 = 0;

--buffer_Proc_EL2;
if (buffer_Proc_EL2 == 0)
{
buffer_Proc_cheio2 = true;
buffer_EL2 = buffer_Size2;
}
}
}
}

4.1.7.4 Carregamento do Comando de Voz (Simulado)


Função realizada pelo botão “BtnMontar” ao ser clicado e que tem como
principais tarefas gerar o sinal do comando de voz (conforme já explicado
anteriormente), e imprimir os gráficos de f(t) e f(Hz), para mostrar o sinal original
antes de ser enviado.

47
1-feedback: realimentação em sistemas de controle de laço fechado.
DETALHAMENTO DO SOFTWARE

private void BtnMontar_Click(object sender, EventArgs e)


{

// gera o sinal do comando de voz do microfone


int i;
for (i = 0; i < nPtos; i++)
{
ySinal[i] =
protocolo[0] * Math.Sin(dPI * freqs[0] * (i /
freqAmostragem)) +
protocolo[1] * Math.Sin(dPI * freqs[1] * (i /
freqAmostragem)) +
protocolo[2] * Math.Sin(dPI * freqs[2] * (i /
freqAmostragem)) +
protocolo[3] * Math.Sin(dPI * freqs[3] * (i /
freqAmostragem)) +
protocolo[4] * Math.Sin(dPI * freqs[4] * (i /
freqAmostragem)) +
protocolo[5] * Math.Sin(dPI * freqs[5] * (i /
freqAmostragem)) +
protocolo[6] * Math.Sin(dPI * freqs[6] * (i /
freqAmostragem)) +
protocolo[7] * Math.Sin(dPI * freqs[7] * (i /
freqAmostragem)) +
protocolo[8] * Math.Sin(dPI * freqs[8] * (i /
freqAmostragem)) +
protocolo[9] * Math.Sin(dPI * freqs[9] * (i /
freqAmostragem));

xTime[i] = i / freqAmostragem;
}
// converte e imprime o código binário comando de voz
enviado
textBoxProtocolo.Text = Imprime(protocolo);

// imprime o gráfico do sinal do comando de voz


this.zedGraphControl1.GraphPane.CurveList.Clear();
this.zedGraphControl1.GraphPane.Title.Text = "SINAL DO
MICROFONE";
this.zedGraphControl1.GraphPane.XAxis.Title.Text =
"TEMPO ( SEG )";
this.zedGraphControl1.GraphPane.YAxis.Title.Text =
"AMPL ( V )";
this.zedGraphControl1.GraphPane.AddCurve("COMANDO DE
VOZ", xTime, ySinal, Color.Red, ZedGraph.SymbolType.None);
this.zedGraphControl1.AxisChange();
this.zedGraphControl1.Refresh();

// Transformada Rápida de Fourier: f(time) -> f(freq)


ySpectro = TransRapFourier.FFT.PowerSpectrum(ySinal,
freqAmostragem, out xFreq);

double[] ySpecNormal = new double[nPtos/2];


for (i = 0; i < (nPtos/2); i++)
ySpecNormal[i] = ySpectro[i] / 62000;

// imprime o gráfico Spetro de Frequencia do comando


de voz
this.zedGraphControl2.GraphPane.CurveList.Clear();

48
1-feedback: realimentação em sistemas de controle de laço fechado.
DETALHAMENTO DO SOFTWARE

this.zedGraphControl2.GraphPane.Title.Text = "ESPECTRO
DE FREQÜÊNCIA";
this.zedGraphControl2.GraphPane.XAxis.Title.Text =
"FREQ (HZ)";
this.zedGraphControl2.GraphPane.YAxis.Title.Text =
"AMPL (V)";
this.zedGraphControl2.GraphPane.AddCurve("ESPECTRO DO
COMANDO DE VOZ", xFreq, ySpecNormal, Color.Red,
ZedGraph.SymbolType.None);
this.zedGraphControl2.AxisChange();
this.zedGraphControl2.Refresh();
}

4.1.7.5 Envio do Comando de Voz (Simulado)


Função realizada pelo botão “BtnEnvCmd” ao ser clicado e que tem como
principal tarefa enviar o comando de voz para a respectiva entrada (microfone), o
que é feito através da estrutura de seleção múltipla “While”, que seleciona um trecho
do código responsável por estanciar as threads de captura e processamento, liberar os
flags de funcionamento das threads e por fim, partir as threads dando início ao
processamento concorrente das threads.
// botão de enviar comando
private void BtnEnvCmd_Click(object sender, EventArgs e)
{
textBoxProtRec.Text = "";
count = 0;
switch (microfone)
{
case 1:
// inicializa os ponteiros dos buffers
buffer_Proc_pWR1 = 0;
buffer_pRD1 = 0;
buffer_pWR1 = 0;
buffer_Proc_cheio1 = false;
buffer_Proc_EL1 = buffer_Proc_Size1;
// cria a thread de aquisição 1
myThAquis1 = new Thread(aquis1);
myThAquis1.Name = "Buffer1_aquit";
cancelar_Thread1_aq = false;
myThAquis1.Start();
// cria a thread de processamento 1
myThProc1 = new Thread(proc1);
myThProc1.Name = "Buffer1_proc";
cancelar_Thread1_proc = false;
myThProc1.Start();
break;
...

49
1-feedback: realimentação em sistemas de controle de laço fechado.
CAPÍTULO 5
TESTES DO SISTEMA E CONCLUSÕES
Embora tenham surgido diversas dificuldades durante a fase de pesquisa dos
dispositivos de hardware, quanto às especificações técnicas e outros detalhes de
funcionamento que nem sempre são fornecidos pelos fabricantes, que preferem
publicar informações comerciais ao invés de especificações técnicas (alguns
fornecedores que estão neste trabalho fugiram à regra), e também das dificuldades
durante a etapa de elaboração e modelagem do software simulador, que teve como
principal objetivo empregar as técnicas computacionais de sistemas concorrentes
multi-tarefas, importantes para assimilação dos conceitos da disciplina, acreditamos
que o trabalho realizado atingiu seus objetivos, de demonstrar a assimilação dos
principais conceitos de Sistemas em Tempo Real.
Os componentes de hardware e os circuitos ora elaborados para este trabalho,
como o pré-amplificado de microfone, o amplificador diferenciador de
instrumentação, o filtro Butterworth foram montados e testados em simulador,
obtendo os resultados esperados conforme suas fórmulas de cálculos.
Os dispositivos maiores como o sistema de abertura de porta e janelas foram
escolhidos de um fabricante estrangeiro pelas razões mencionadas acima (fornecem
manual técnico detalhado do produto) e são perfeitamente adaptáveis sem
necessidade de substituição de portas e janelas.
Particularidades de instalação como cabos blindados para interligação dos
microfones e outras fontes de sinais digitais e os gabinetes e caixas para acomodar as
placas e dispositivos foram suprimidos do texto, embora devam ser levados em
consideração num projeto real.
O software simulador trouxe uma série de dificuldades em sua
implementação, já que se pretendia a princípio atender plenamente ao escopo deste
projeto, de trabalhar com múltiplas linhas de comando recebendo comandos de voz
de vários microfones espalhados pela casa e realizar o reconhecimento do comando e
a atuação no sistema. Embora não tenhamos conseguido implementar um sistema
completo como pretendíamos a parte implementada possui todos os conceitos
aprendidos em STR, utilizando múltiplas linhas de comando e o “Mutex” para a
convivência “pacífica” entre elas. Obs.: pode-se acrescentar mais de um comando de

50
DETALHAMENTO DO SOFTWARE

voz sem que haja conflito entre os dados capturados, já que eles são armazenados e
processados em buffers exclusivos.
Nos testes identificamos um problema relacionado à utilização do “timer” do
C#, devido à sua resolução mínima ser de 1ms, causando atrasos significativos na
captura do comando de voz, já que um array contendo 8192 posições de informação
levaria no mínimo 8,192 segundos para ser totalmente lido, superando em muito o
limite de tempo considerado aceitável num sistema deste porte. Este problema foi
minimizado reduzindo-se o tamanho do array para 512 posições, contudo, num
sistema real seria utilizado o timer da placa de captura que tem a base de tempo da
ordem de poucos microssegundos e não teria este problema do simulador. Pode-se
resolver este problema do simulador empregando-se o relógio da classe
“System.Diagnostics” que possui parâmetros e métodos referentes ao clock do
sistema e que trabalha com alta resolução, ou seja, muito mais preciso. Chegamos a
implementar um clock utilizando este relógio com resultados animadores, mas
acabamos voltando para a forma clássica do timer.
No software simulador existe a possibilidade de o usuário enviar comandos
errados tais como “Hal” + “Ligar TV” + “Banheiro”. Embora pareça estranho isto ser
possível, num sistema real o usuário não teria de fato restrições de falar qualquer
comando, sendo assim, nenhuma restrição foi imposta e qualquer combinação de
comandos poderá ser falado. O importante neste caso é que o sistema de
gerenciamento receba os dados sem erros de processamento e não erros lógicos.
Por último gostaríamos de destacar o algoritmo da transformada rápida de
Fourier que foi implementado como uma classe “DLL”, o que agregou
conhecimentos sobre este tipo de estrutura e de suas vantagens quanto à
portabilidade do código para outras aplicações sem maiores problemas.

51
1-feedback: realimentação em sistemas de controle de laço fechado.
CAPÍTULO 6
REFERÊNCIAS BIBLIOGRÁFICAS
BIBLIOGRAFIA:

[Alcântara, 2006] Otávio Alcântara é Tecnólogo em Telemática pelo CEFET-CE e


especializado em desenvolvimento de software em tempo real para sistemas
embutidos. http://www2.eletronica.org/artigos/eletronica-digital/sistemas-embutidos-
em-tempo-real

[Carneiro, 2001, pg.58] CARNEIRO, P. Régis. “Gerenciador de Processos para


Aplicações em Tempo-Real: Uma Experiência com Arquitetura DSP (Processador de
Sinal Digital)”, Fortaleza, 2001

[Cooley e Tukey, 1965] “fast Fourier transform (FFT) algorithm”


http://en.wikipedia.org/wiki/Cooley-Tukey_FFT_algorithm

[Saulo Jesiel Siqueira Machado, 2007] “Implementação de um filtro digital sinc


janelado (windowed sinc) em C# “
http://www.linhadecodigo.com.br/ArtigoImpressao.aspx?id=1404

http://www.music-center.com.br/mic_akg1.htm

http://www.ditec.it/en/products

http://www.metaltex.com.br/

http://www.powerware.com/Brasil/Default.asp?CC=1

http://www.hdl.com.br/

http://www.ni.com/products/

http://www.selco.com.br/

[Soares, Alcimar B.] “Apostila de Sistema em tempo real”; Uberlândia-MG

52

Вам также может понравиться