trabalho de conclusão de curso
Post on 26-Jan-2015
2.811 Views
Preview:
DESCRIPTION
TRANSCRIPT
UNIVERSIDADE DE UBERABA
VALMIR FERREIRA ROCHA
AUTOMAÇÃO RESIDENCIAL POR COMANDO DE VOZ, UTILIZANDO MICROSOFT SPEECH RECOGNITION SDK 5.1
UBERLÂNDIA 2009
1
VALMIR FERREIRA ROCHA
AUTOMAÇÃO RESIDENCIAL POR COMANDO DE VOZ, UTILIZANDO MICROSOFT SPEECH RECOGNITION SDK 5.1
Trabalho apresentado à Universidade de Uberaba, como parte dos requisitos para conclusão de graduação em Sistemas de Informação da Universidade de Uberaba.
Orientador: Lilian R. Mendes Paiva. Ms
UBERLÂNDIA 2009
2
VALMIR FERREIRA ROCHA
AUTOMAÇÃO RESIDENCIAL POR COMANDO DE VOZ, UTILIZANDO MICROSOFT SPEECH RECOGNITION SDK 5.1
Trabalho apresentado à Universidade de Uberaba, como parte dos requisitos para conclusão de graduação em Sistemas de Informação da Universidade de Uberaba.
Orientador(a): Lilian R. Mendes Paiva. Ms Área de concentração: Automação Residencial
Aprovada em: 05 de dezembro de 2009
Banca Examinadora:
Prof. Lilian R. Mendes Paiva. Ms – Orientadora Universidade de Uberaba
Maria Fernanda Soares de Almeida Universidade de Uberaba
Prof. Carlos Magno Medeiros Queiroz. Ms Universidade de Uberaba
Prof. Thiago Bruno Caparelli. Ms Universidade de Uberaba
3
A toda minha família. Aos meus pais.
À minha Esposa. A Deus, pela força de sempre.
4
AGRADECIMENTOS
Primeiramente agradeço à Deus por ter me dado força de vontade para nunca desistir apesar
das grandes dificuldades ocorridas.
É com muita satisfação que dedico este trabalho aos meus pais, meus irmãos e a minha esposa
Gercilene Cristina, que sempre apostaram em mim, me deram apoio, carinho e compreensão,
sendo neste longo período as pessoas com quem sempre pude contar.
Ao meu amigo Rhobison Alves, que sempre me ajudou em momentos decisivos ao longo do
curso.
A todos os professores que de alguma forma contribuíram para esta conquista.
Aos verdadeiros amigos, compadres e parceiros que ganhei no decorrer de todo o curso.
5
RESUMO
Atualmente, os sistemas automatizados são largamente utilizados devido à busca pela
qualidade de vida, segurança e controle de equipamentos. A automação surgiu para facilitar e
reduzir trabalhos, tanto empresarias e industriais como domésticos, proporcionando aos
usuários maior comodidade, conforto, praticidade, produtividade e redução de custos. Além
disso, a automatização de tarefas visa possibilitar a inclusão digital dos usuários de
necessidades especiais. Este trabalho apresenta o desenvolvimento de um sistema para
automatização de equipamentos residenciais através do reconhecimento de voz. O sistema
utiliza uma estrutura de hardware próprio responsável por realizar a conexão entre os
equipamentos. O protótipo desenvolvido permite que o monitoramento dos equipamentos seja
realizado em duas plataformas distintas sendo elas: Internet e aplicação desktop. O Microsoft
Speech Recognition (SDK), integrado ao protótipo para execução dos comandos por
reconhecimento de voz, fundamenta-se em agentes inteligentes, que é considerado como uma
entidade que executa um conjunto de operações que lhes foram incumbidas por um usuário ou
outro programa, com algum grau de independência ou autonomia e, executando estas
operações, emprega algum conhecimento dos objetivos ou desejos do usuário (IBM Research,
1998). A comunicação entre o computador pessoal (PC) e o hardware foi realizada através da
porta paralela. Sendo assim, o projeto utiliza tecnologias acessíveis, visando simplicidade e
baixo custo ao simular uma solução de pequeno porte. A criação da interface gráfica prioriza
um ambiente amigável e de simples utilização, já que seu objetivo é permitir que portadores
de necessidades especiais e pessoas sem grandes conhecimentos técnicos possam interagir
facilmente com o protótipo.
Palavras-chave: Agentes inteligentes, automação residencial, Microsoft Speech Recognition,
segurança, baixo custo, porta paralela.
6
ABSTRACT
Currently, the automatized systems are widely used due to the constant search for quality of
life, safety and equipment control. Automation emerged in order to facilitate and reduce work,
company and industry work as well as domestic, offering more comfort, facility and cost
reduction. In addition to this, the automatization of tasks aims at enabling digital inclusion of
disabled users. This work presents the development of a system for automatization of
residential equipment through speech recognition. The system makes use of its own hardware
structure, which is responsible for making the connection among the equipment. The
prototype developed enables that the monitoring of the equipment to be done in two
different platforms, which are: Internet and desktop application. Microsoft Speech
Recognition (SDK), integrated with the prototype for the speech recognition execution, is
fundamented by intelligent agents, which are systems that hold autonomy and fulfill tasks,
which are always attached to an automatic executed action or to a manual outside action to be
executed. The communication between the personal computer (PC) and the hardware was
made possible through the parallel port. This way, the project makes use of accessible
technology, aiming at simplicity and low cost to simulate a smaller dimension solution. The
graphic interface creation prioritizes a simple and user-friendly environment, once its
objective is to allow that disabled people as well as those without much technical knowledge
can interact easily with the prototype.
Key words: intelligent agents, residential automation, Microsoft Speech Recognition, safety,
low cost, parallel port.
7
LISTA DE FIGURAS
FIGURA 1. ESQUEMA ELÉTRICO GERAL DO CIRCUITO.......................................... 30
FIGURA 2. PLACA DO LEDS ........................................................................................... 31
FIGURA 3. CIRCUITO DO DRIVER DE ACIONAMENTO ........................................... 32
FIGURA 4. CIRCUITO DO BUFFER PARA PROTEÇÃO DA PORTA PARALELA .... 34
FIGURA 5. CIRCUITO DA FONTE DE ALIMENTAÇÃO REGULADA (+5V) ............ 34
FIGURA 6. DIAGRAMA DAS FASES DO PROCESSO .................................................. 36
FIGURA 7. DB25 QUE FICA ATRÁS DO MICRO .......................................................... 39
FIGURA 8. CONECTOR MACHO DO CABO PARALELO. ........................................... 39
FIGURA 9. FOTO DO CONECTOR DB25 MACHO DO CABO PARALELO ............... 40
FIGURA 10. ESQUEMA DE FUNCIONAMENTO DO DB25 NO MODO SPP ............ 40
FIGURA 11. CONECTOR CENTRONICS 36 PINOS ..................................................... 41
FIGURA 12. ESBOÇO DA CONEXÃO DO CONECTOR DB25 ................................... 42
FIGURA 13. CASO DE USO PRINCIPAL DO SISTEMA .............................................. 46
FIGURA 14. DIAGRAMA DE CLASSE DO MODULO WEB ....................................... 47
FIGURA 15. DIAGRAMA DE CLASSE DO MODULO DESKTOP .............................. 48
FIGURA 16. DIAGRAMA DA ESTRUTURA DOS APARELHOS ............................... 49
FIGURA 17. DIAGRAMA DA ESTRUTURA DOS USUÁRIOS. .................................. 50
FIGURA 18. DIAGRAMA ENTIDADE RELACIONAMENTO DO BD ....................... 51
FIGURA 19. CÓDIGO FONTE DA HABILITAÇÃO DO COMPONENTE DE VOZ ... 54
FIGURA 20. CÓDIGO FONTE DA EXECUÇÃO DOS COMANDOS .......................... 55
FIGURA 21. APLICAÇÃO DESKTOP ............................................................................ 58
FIGURA 22. CADASTRO DE APARELHOS NA APLICAÇÃO DESKTOP ................ 58
FIGURA 23. CADASTRO DE USUÁRIOS UTILIZADOS PARA ACESSO WEB ....... 59
FIGURA 24. VISÃO GERAL DA ÁREA DE CADASTRAMENTOS. ........................... 59
FIGURA 25. APLICAÇÃO WEB (LOGIN) ..................................................................... 60
FIGURA 26. APLICAÇÃO WEB ..................................................................................... 60
FIGURA 27. TESTE EM PLACA DE PROTOBOARD ................................................... 67
FIGURA 28. PROJETO NO COMPUTADOR ................................................................. 68
FIGURA 29. ADESIVO PLOTADO SEM MASCARA ................................................... 68
8
FIGURA 30. RETIRANDO A MASCARA ...................................................................... 69
FIGURA 31. COLANDO A MASCARA NO ADESIVO ................................................. 69
FIGURA 32. FIXANDO BEM A MASCARA AO ADESIVO ........................................ 70
FIGURA 33. RETIRANDO A MASCARA ...................................................................... 70
FIGURA 34. COLANDO O ADESIVO NA PCB COM A MÁSCARA .......................... 71
FIGURA 35. RETIRANDO EXCESSO DE ADESIVOS ................................................. 71
FIGURA 36. VERIFICANDO PROJETO E PLACA ....................................................... 72
FIGURA 37. CORROENDO AS PLACAS COM PERCLORETO DE FERRO .............. 72
FIGURA 38. LAVANDO AS PLACAS APÓS CORROSÃO .......................................... 73
FIGURA 39. CORROSÃO FINALIZADA ....................................................................... 73
FIGURA 40. MONTAGEM DOS COMPONENTES ....................................................... 74
FIGURA 41. MONTANDO PROJETO ............................................................................. 74
FIGURA 42. PROJETO FINALIZADO ............................................................................ 75
FIGURA 43. TRANSISTOR BC337. ................................................................................ 75
RETIRADO DE ROBOTERNETZ (ROBOTERNETZ, 2009). .............................................. 75
FIGURA 44. DIODO 1N4148 ........................................................................................... 76
FIGURA 45. RESISTOR (MILCOMP PRODUTOS ELETRÔNICOS LTDA., 2009). ... 77
FIGURA 46. RELÉ DE 5V ................................................................................................ 77
FIGURA 47. LED (DIODO SEMICONDUTOR) ............................................................. 78
FIGURA 48. CI 74LS541 .................................................................................................. 78
9
LISTA DE QUADROS
QUADRO 1 – Endereços da porta paralela ..................................................................... 38
QUADRO 2 - Significado de cada pino do conector Centronics 36 pinos...................... 41
QUADRO 3 - Sequência de bytes gerados pela porta paralela .......................................
QUADRO 4 - Script para criação da base de dados........................................................
43
52
10
LISTA DE SIGLAS
API – Application Programming Interface
AR – Automação Residencial.
CI – Circuito Integrado
CPU – Central Processing Unit
DMA – Direct Memory Access
ECP – Enhaced Capabilities Port
EPP – Enhaced Parallel Port
FFT - Fast Fourier Transform
IIS – Internet Information Service
LED – Light-Emitting Diode
PCB - Placa de Circuito Impresso
PCM – Pulse Code Modulation
RF – Reconhecimento da fala
RUP – Rational Unified Process
RV – Reconhecimento de voz
SSP – Standard Parallel Port
TF – Texto para Fala
TTS – Text to Speech
UML – Unified Modeling Language
XML – Extensible Markup Language
DLL - Dynamic-link library
11
SUMÁRIO
1. INTRODUÇÃO .................................................................................................. 14
1.1. Justificativa ........................................................................................................... 14 1.2. Motivação ............................................................................................................. 14 1.3. Objetivos ............................................................................................................... 15 1.3.1. Objetivo geral ....................................................................................................... 15 1.3.2. Objetivos específicos ............................................................................................ 15 1.4. Estrutura do trabalho ............................................................................................ 16
2. FUNDAMENTAÇÃO TEÓRICA ..................................................................... 17
2.1. Agentes inteligentes .............................................................................................. 17 2.2. Reconhecimento de voz ........................................................................................ 18 2.2.1. O que é o reconhecimento de voz? ....................................................................... 18 2.2.2. Como funciona? .................................................................................................... 19 2.2.2.1. Transformação PCM ............................................................................................ 19 2.2.2.2. Padrões acústicos .................................................................................................. 21 2.2.2.3. Modelos linguísticos ............................................................................................. 22 2.3. Microsoft speech recognition SDK ...................................................................... 23 2.3.1. Introdução ............................................................................................................. 23 2.3.2. SAPI ..................................................................................................................... 24 2.3.3. Gramática ............................................................................................................. 25 2.3.4. Regras ................................................................................................................... 26 2.3.5. Contexto livre de gramática .................................................................................. 27 2.4. Automação residencial (domótica) ....................................................................... 27 2.4.1. Objetivos da automação residencial ..................................................................... 27
3. HARDWARE ...................................................................................................... 29
3.1. Eagle Layout Editor .............................................................................................. 29 3.2. Estrutura do Hardware .......................................................................................... 35 3.3. Porta paralela ........................................................................................................ 37 3.3.1. Introdução ............................................................................................................. 37 3.3.2. Modelos de porta paralela .................................................................................... 37 3.3.3. Endereços da porta paralela .................................................................................. 38 3.3.4. Conector DB25 ..................................................................................................... 38 3.3.5. Conector macho Centronics 36 pinos ................................................................... 40 3.3.6. Ligando e desligando aparelhos externos através da porta paralela ..................... 42
4. DESENVOLVIMENTO DO SOFTWARE ...................................................... 44
4.1. Documentação ...................................................................................................... 44 4.1.2. UML ..................................................................................................................... 44 4.1.2.1. Diagramas de casos de uso ................................................................................... 45 4.1.2.2. Diagrama de classes.............................................................................................. 47
12
4.2. Metodologias ........................................................................................................ 51 4.3. Processo de comunicação entre software e SDK 5.1............................................ 53 4.4. Plano de testes ...................................................................................................... 55 4.5. Apresentação do software ..................................................................................... 56 4.5.2. Introdução ............................................................................................................. 56 4.5.3. Requisitos funcionais ............................................................................................ 57 4.5.4. Aplicação desktop ................................................................................................ 57 4.5.5. Aplicação web ...................................................................................................... 60
5. CONCLUSÃO ..................................................................................................... 61
5.1. Trabalhos futuros .............................................................................................................. 62
REFERÊNCIAS ..................................................................................................................... 63
ANEXOS ................................................................................................................................. 66
APÊNDICE A - DESCREVENDO A CRIAÇÃO DA PLACA DE CIRCUITO IMPRESSO (PCB) .................................................................................................................. 67
APÊNDICE B - COMPONENTES ELETRÔNICOS UTILIZADOS ............................. 75
B.1 Transístor BC337 ............................................................................................................... 75 B.2 Diodo 1N4148 .................................................................................................................... 76 B.3 Resistor .............................................................................................................................. 76 B.4 Relé de 5V ......................................................................................................................... 77 B.5 Led Verde / Led Vermelho 3mm ....................................................................................... 77 B.6 Circuito Integrado 74LS541 .............................................................................................. 78
APÊNDICE C – CENÁRIOS DOS CASOS DE USO ......................................................... 79
C.1. UC1 - Cadastrar Aparelho ................................................................................................ 79 C.2. UC2 - Consultar Aparelho ................................................................................................ 79 C.3. UC3 - Alterar Aparelho .................................................................................................... 79 C.4. UC4 - Excluir Aparelho .................................................................................................... 80 C.5. UC5 - Cadastrar Usuário ................................................................................................... 80 C.6. UC6 - Consultar Usuário .................................................................................................. 81 C.7. UC7 - Alterar Usuário ....................................................................................................... 81 C.8. UC8 - Excluir Usuário ...................................................................................................... 81 C.9. UC9 - Validar Comando de Voz ....................................................................................... 82 C.10. UC10 - Ligar Aparelho ................................................................................................... 82 C.11. UC11 - Desligar Aparelho ............................................................................................. 82 C.12. UC12 - Aguardar Execução de Comando no Sistema .................................................... 83 C.13. UC13 - Capturar informações do sistema Local ............................................................. 83 C.14. UC14 - Validar Identificação .......................................................................................... 83
APÊNDICE D – PLANO DE TESTES E RELATÓRIOS DE EXECUÇÃO ................... 83
1. INTRODUÇÃO .................................................................................................. 87
1.1. Finalidade ............................................................................................................. 87
13
1.2. Informações Detalhadas ....................................................................................... 87 1.3. Escopo .................................................................................................................. 87 1.4. Identificação do Projeto ........................................................................................ 87
2. REQUISITOS DE TESTE ................................................................................. 88
2.1. Teste Funcional .................................................................................................... 88 2.2. Teste de Interface do Usuário ............................................................................... 88 2.3. Teste de Configuração .......................................................................................... 88 2.4. Teste de Instalação ............................................................................................... 89
3. ESTRATÉGIA DE TESTE ............................................................................... 89
3.1. Tipos de Teste ....................................................................................................... 89 3.1.1. Teste Funcional .................................................................................................... 89 3.1.2. Teste da Interface do Usuário ............................................................................... 90 3.1.3. Teste de Configuração .......................................................................................... 90 3.1.4. Teste de Instalação ............................................................................................... 91 3.1.5. Ferramentas .......................................................................................................... 91
4. RECURSOS ........................................................................................................ 92
4.1. Papéis .................................................................................................................... 92
14
1. INTRODUÇÃO
1.1. Justificativa
A automação está cada dia mais presente em nosso cotidiano, tanto nas residências
quanto nas indústrias e shoppings. Isso se deve à vários fatores, tais como redução do tempo
disponível das pessoas e a constante preocupação das mesmas com a segurança e economia
dos recursos disponíveis. A domótica (automação residencial) tem evoluído a cada dia.
Atualmente, na maioria dos softwares existentes de automação, os usuários possuem
pequenos confortos, como por exemplo, portões eletrônicos, alarmes, luzes com timer, entre
outros. O grande objetivo é a convergência de tecnologias fazendo com que estejam
conectadas entre si, e que os moradores de uma residência automatizada tenham o máximo de
conforto e segurança que a tecnologia possibilitar (AFONSO, 2006).
O campo de pesquisa relacionado ao reconhecimento de voz é muito grande,
envolvendo várias áreas, tais como jogos, editores de texto, extensão de habilidades para
deficientes físicos, atividades domésticas simples, tais como ligar e desligar aparelhos,
sistemas de reconhecimento de fala para possibilitar diálogos inteligentes com máquinas, uso
em pesquisas médicas sobre a voz e órgãos relacionados a sistemas de segurança.
1.2. Motivação
Após levantamento de informações sobre diversos produtos disponíveis no mercado
envolvendo reconhecimento de voz, tais como o Voice Pilot (MICROSOFT, 2003), da
Microsoft, e o ViaVoice (IBM, 2009) da IBM, pode-se concluir que ainda existe espaço e
necessidade de criação de novos produtos nesta área, pois os já existentes possuem alto custo,
exigem hardware e software compatíveis e fazem com que exista uma constante dependência
de fabricantes externos. O sistema de automação apresentado neste projeto é independente de
especificações de hardware, possibilitando que qualquer computador doméstico simples seja
capaz de executar perfeitamente todo o sistema.
15
Existe uma ausência de informações mais específicas em produtos para a área de
reconhecimento de voz, principalmente no Brasil, sendo que a maioria das referências
encontradas são provenientes de países da Europa e dos Estados Unidos. Diante destas
informações, este trabalho busca a utilização e integração com o componente Microsoft
Speech Recognition SDK (LONG, 2003), uma biblioteca de recursos disponibilizada
gratuitamente através do site da Microsoft (2009), que tem como objetivo auxiliar no
desenvolvimento de soluções com o reconhecimento de voz. Esta ferramenta foi integrada ao
software de Automação Residencial disponibilizando meios para controlar equipamentos
domésticos através do processamento computadorizado, com baixo custo e grande conforto.
Além disto, o trabalho tem como objetivo a contribuição para o processo de inclusão digital
dos portadores de necessidades especiais.
1.3. Objetivos
1.3.1. Objetivo geral
Desenvolver um sistema de automação residencial para reconhecimento de voz, com
“comandos únicos” que ativarão determinados pontos de energia conectados a aparelhos
eletroeletrônicos e domésticos, através da porta paralela do computador.
1.3.2. Objetivos específicos
Têm-se como objetivos específicos:
a) Classificar e reconhecer palavras através do componente Microsoft Speech
Recognition SDK 5.1;
b) Ligar/Desligar o aparelho doméstico através do reconhecimento de voz;
c) Possibilitar que os aparelhos da residência sejam controlados (Ligados ou
Desligados) pelas aplicações desktop ou web;
d) Permitir que o usuário monitore os estados de todos os aparelhos que estão ao
seu controle pelas aplicações desktop e web.
16
1.4. Estrutura do trabalho
O Capítulo 2 (dois) apresenta o estado da arte quanto ao funcionamento do
reconhecimento de voz, destacando a complexidade das técnicas e sua evolução. Conceitos
sobre Agentes Inteligentes diante do componente utilizado, reconhecimento da voz e seu
funcionamento. Descreve o Microsoft Speech Recognition, e uma breve descrição sobre
automação residencial e seus objetivos.
O Capítulo 3 (três) relata toda a modelagem do sistema de automação residencial por
comando de voz, passando pela estrutura do hardware, softwares utilizados na construção do
projeto, componentes eletrônicos utilizados, os casos de uso e os planos de teste.
O Capítulo 4 (quatro) apresenta o software que foi desenvolvido seguindo os
conhecimentos adquiridos através da pesquisa bibliográfica.
O Capítulo 5 (cinco) traz a conclusão do trabalho e as propostas futuras para
melhorias do sistema.
17
2. FUNDAMENTAÇÃO TEÓRICA
2.1. Agentes inteligentes
Basicamente um agente inteligente possui autonomia e executa tarefas, estando
sempre vinculado a uma ação disparada automaticamente ou a uma ação externa manual a ser
executada. A utilização de agentes inteligentes é cada vez mais difundida no meio
computacional, principalmente nas áreas de interfaces, gerenciamento de redes, recuperação
de informação, sistemas distribuídos e automação em geral (BARONE; YEPES, 2002).
O termo agente inteligente refere-se a todo ente que possui habilidade, capacidade e
permissão para atuar em nome de outro. Em termos usuais, agentes seriam pessoas com um
conhecimento ou recurso mais especializado em uma determinada área, mediante o qual
auxiliariam outros indivíduos em suas tarefas (BARONE; YEPES, 2002).
Como ainda não é possível ter um consenso exato da definição sobre o termo agente
inteligente, algumas definições mais relevantes são destacadas de acordo com alguns
estudiosos:
Segundo Wooldridge e Jennings (1994), são sistemas que apresentam um
comportamento que é determinado por um processo de raciocínio baseado na representação
de suas atitudes, tais como crenças, comprometimentos e desejos. Um sistema pode ser visto
como um agente se possuir as seguintes propriedades: autonomia, habilidade social,
reatividade, pró-atividade.
De acordo com Nwana (1996), agente é um componente de software ou hardware
capaz de atuar para poder executar uma tarefa em nome de um usuário.
Tem-se ainda a definição de Russel e Norvig (1995), segundo o qual a inteligência
está intrinsecamente relacionada com as ações racionais. Agir racionalmente significa agir de
forma a alcançar as metas definidas por alguém, dadas às crenças deste. Assim, definem de
forma genérica que um agente é algo que percebe seu ambiente por meio de sensores e atua
nesse ambiente por meio de atuadores.
18
2.2. Reconhecimento de voz
Há alguns anos atrás, o reconhecimento de voz era considerado por muitos como
sendo apenas obra de ficção científica. Contudo, desde o final da década de 50, instituições de
pesquisa já estudavam meios de fazer com que a voz fosse processada pelo computador. De
fato, muitas aplicações estão sendo desenvolvidas atualmente no mercado. Um dos exemplos
mais comuns, com os quais a maioria de nós certamente já tivemos contato, é a tecnologia de
chamada por voz, presente em alguns celulares, rádio comunicadores e outros, existentes no
mercado (RABINER; JUANG, 1993).
2.2.1. O que é o reconhecimento de voz?
Frequentemente, a expressão “reconhecimento de voz” é utilizada com vários sentidos,
que, na verdade, referem-se a tecnologias distintas. O processamento da voz pode ser aplicado
em quatro áreas principais: comandos por voz, fala natural, síntese de voz e autenticação de
voz. Cada uma destas é descrita a seguir:
a) O reconhecimento de palavras (utilizado nos comandos de voz) caracteriza-se por
processar apenas um pequeno trecho de fala, de modo a identificar que tipo de ação o
sistema deve tomar. Este processamento torna-se simplificado, uma vez que o sistema
já sabe de antemão quais os comandos disponíveis para o utilizador. Este é o caso de
centrais de atendimento telefônico, onde o utilizador pode usar a voz em vez de
pressionar botões (GUILHOTO, 2002).
b) O reconhecimento de fala natural (ou fala contínua) envolve uma ou mais frases,
isto é, várias palavras que tenham um sentido semântico. A fala reconhecida é então
convertida em texto. O tipo de aplicação mais comum para essa tecnologia é o ditado
de documentos, para uso em processadores de texto, escrita de e-mails, etc.
(GUILHOTO, 2002).
c) A síntese de voz é o processo contrário ao do reconhecimento da fala. O sintetizador
recebe um texto na forma digital e transforma-o em ondas sonoras, ou em outras
palavras, fazendo uma leitura em voz alta. Um programa de síntese de voz é útil nas
situações em que o utilizador não pode desviar a atenção para ler algo ou não tem
19
acesso ao texto escrito, seja porque a informação está distante ou porque o utilizador
tem alguma deficiência visual (GUILHOTO, 2002).
d) A autenticação de voz baseia-se, por sua vez, no fato de que a voz é única para cada
pessoa e pode ser utilizada para identificar alguém. Os sistemas de autenticação
podem ser aplicados para permitir o acesso de uma pessoa a uma determinada função.
Um telefone celular com esse recurso de voz, por exemplo, pode ser habilitado para
que somente seu dono tenha o direito de usá-lo (GUILHOTO, 2002).
2.2.2. Como funciona?
O reconhecimento de voz evoluiu bastante ao longo dos últimos anos. Antes, o
reconhecimento processava-se apenas em modo discreto, isto é, o utilizador tinha que fazer
uma pausa entre cada palavra ditada. Atualmente, o utilizador já tem a possibilidade de
efetuar ditados contínuos ao computador. Além disso, o reconhecimento também se tornou
mais inteligente, uma vez que possui um conjunto de regras gramaticais incorporadas
permitindo, assim, uma melhor percepção do que está sendo ditado.
Diferentes técnicas são utilizadas no processo do reconhecimento da voz humana, que
transforma os sinais de áudio digitais provenientes da placa de som em voz reconhecida. Estes
sinais passam por diversas etapas, ao longo das quais são aplicados métodos matemáticos e
estatísticos junto a sua gramática de forma a tentar compreender o que está a ser ditado
(WIKIPEDIA, 2009e).
2.2.2.1. Transformação PCM
Quando o utilizador fornece um comando de voz pelo microfone, este é transmitido
para a placa de som, sendo o sinal analógico, possivelmente amostrado 16.000 vezes por
segundo. Em seguida, este é digitalizado através de uma técnica chamada Pulse Code
20
Modulation1 (PCM) (WIKIPEDIA, 2009e). Esta forma digital do sinal nada mais é do que
uma stream2 (WIKIPEDIA, 2009e) de amplitudes que representa o sinal analógico. No
entanto, o software de reconhecimento de voz não pode trabalhar diretamente com base nesta
stream, dado que é muito complicado procurar padrões que possam ser relacionadas com a
voz ditada atualmente. É por este motivo que a voz é transformada num conjunto de bandas
de frequência discreta através de uma técnica chamada Fast Fourier Transform3 (FFT)
(WIKIPEDIA, 2009b). Esta consiste numa amostragem do sinal de áudio em cada centésimo
de segundo no domínio da frequência. Assim, a stream de entrada é agora representada por
um conjunto de bandas de frequência discretas, que podem ser facilmente identificadas pelos
componentes de frequência de um som. A partir destes componentes, é possível aproximar-
nos do que o ouvido humano consegue captar. O passo seguinte envolve o reconhecimento
destas bandas de frequência. Para isso, o software de reconhecimento de voz possui uma base
de dados de milhares de frequências ou “fonemas”. Um fonema é a menor unidade de fala de
um idioma ou dialeto.
As dicções dos fonemas são diferentes entre si, de tal forma que, ao substituir um
fonema numa palavra, esta passa a ter um significado completamente diferente. Por exemplo,
se substituir o fonema “b” na palavra “bato” pelo fonema “m”, o significado será alterado
para “mato”.
A base de dados de fonemas é usada para comparar e identificar as bandas de
frequência de áudio que foram amostradas. Se, por exemplo, a frequência de entrada tem um
som igual ao “t”, o software tentará compará-lo com o respectivo fonema na base de dados.
Ao encontrar o fonema correspondente, será atribuído ao sinal de entrada o número
identificador do fonema na base de dados, também chamado de ”feature number”4. Graças às
transformadas de Fourier e à base de dados de fonemas, tornou-se possível passar de um vetor
PCM com 16.000 entradas para um vetor com apenas 100 entradas (por segundo),
transformando o processo de reconhecimento em tempo real.
1 Representação digital de um sinal analógico, onde a magnitude do sinal é amostrado regularmente em intervalos uniformes, então quantizados para uma série de símbolos em um valor numérico (geralmente binário) do código (WIKIPEDIA, 2009e). 2 Pode ser definido como um fluxo de dados em um sistema computacional. Quando um arquivo é aberto para edição, todo ele ou parte dele fica na memória, permitindo assim alterações, por isto somente quando ele é fechado, tem-se a garantia de que nenhum dado se perderá ou será danificado (WIKIPEDIA, 2009f). 3 É um algoritmo eficiente para calcular a transformada de Fourier discreta e a sua inversa (WIKIPEDIA, 2009g). 4 Número identificador de cada fonema ditado, na base de dados do componente reconhecedor de voz.
21
2.2.2.2. Padrões acústicos
O comando de voz é composto por diversos padrões acústicos e é justamente com eles
que são formados todos os fonemas para o reconhecimento da voz. Em primeira instância o
processo parece ser simples, a cada banda de frequência seria associado o seu fonema
correspondente, o software, em seguida, juntaria os fonemas em palavras e o computador
passaria a compreender, aparentemente, a voz humana. No entanto, o processo apresenta
maiores complexidades quando visualizado de forma detalhada. Podem existir tantas
variações no som, causadas pelo modo como as palavras são pronunciadas, que é quase
impossível localizar a entrada na base de dados correspondente ao som. Se não bastasse,
pessoas pronunciam a mesma palavra de formas diferentes e, para complicar ainda mais, o
ambiente também adiciona componentes de ruído em situações nas quais o utilizador
encontra-se em ambientes ruidosos. Assim sendo, o reconhecedor de voz pode apresentar
resultados diferentes dependendo da localização do utilizador e da qualidade do microfone
utilizado.
Além disso, o próprio som de um fonema varia conforme os fonemas que o rodeiam e
o som produzido por um fonema altera-se desde o início da sua pronúncia até o seu fim.
Sendo assim, o software precisa usar técnicas complexas para aproximar o som de entrada e
descobrir quais os fonemas que estão envolvidos. O ruído de fundo e os problemas de
variação são solucionados com recurso de métodos estatísticos, ao permitirmos que um
feature number seja usado por mais do que um fonema.
Isto apenas é possível porque a duração de um fonema é longa se comparada com a
frequência de amostragem de um centésimo de segundo. Quer dizer que enquanto um fonema
está a ser pronunciado, lhe são atribuídos vários feature numbers. Admitindo que o software
já foi treinado, ou seja, já foram estabelecidas as probabilidades de ocorrência de um
determinado feature number num fonema, resta-nos calcular a probabilidade do conjunto de
feature numbers registrados ser realmente o fonema (GUILHOTO; ROSA, 2001).
22
2.2.2.3. Modelos linguísticos
Consiste em reconhecer palavras, comparando as combinações de fonemas com as
palavras contidas no dicionário utilizado pelo programa. Contudo, isto não é assim tão
simples: o utilizador pode se atrapalhar ao pronunciar uma palavra que não faz parte do
dicionário; o software de reconhecimento de voz pode enganar-se ao reconhecer uma palavra;
ainda não se sabe onde começa uma palavra e acaba a outra; o processamento de voz continua
incomportável no nível de exigências de CPU e de memória. É por isto tudo que se torna
necessário para o reconhecedor de voz restringir as possibilidades do que está a ser ditado,
através do recurso de modelos linguísticos e gramáticas adequadas. Se o sistema for
programado para fazer o reconhecimento de comandos, o modelo linguístico é mais simples
do que se fosse para reconhecimento da linguagem natural. Nesse caso, o dicionário contém
todas as formas possíveis de pronunciar cada comando registrado no sistema. Para a fala
contínua, é preciso que o sistema utilize um dicionário com todas as palavras da língua ou
pelo menos com todas as palavras usadas com maior frequência.
As condicionantes não ficam por aqui. O dicionário deve também registrar as classes
gramaticais de cada vocábulo. Além disso, é preciso construir um modelo gramatical com as
construções possíveis e a probabilidade de ocorrência de cada tipo de construção. Com a
ajuda destas informações, o software de reconhecimento de voz tem condições para concluir
que as frases “foi à três anos” e “foi a três anos” não estão corretas, mas sim “foi há três
anos”. Mais uma vez, para o caso do ditado discreto (reconhecimento de comandos), as
gramáticas são muito mais simples, uma vez que o sistema sabe com antecedência quais as
palavras que estão à espera. Antes disto, o software deve processar os fonemas para
identificar corretamente o agrupamento de palavras. Os fonemas contidos em “foi há três
anos” sugerem termos como “foia” e “trêzanos”, que não estão no dicionário de vocábulos
conhecidos e, assim, devem ser descartados. Por outro lado, ao ouvir a palavra
“comunicação”, o reconhecedor de voz terá que decidir se ouviu “comunica ação” ou um
único termo. O modelo gramatical vai indicar qual é a construção mais plausível. Os
programas mais recentemente implementados fazem a análise de toda a frase para ampliar a
precisão do reconhecimento tomando, assim, vantagem do fato da linguagem apresentar uma
estrutura. Por exemplo, supondo que o reconhecedor de voz tem dúvidas entre a escolha das
palavras “hora” e “ora”, mas sabe que a palavra anterior é “uma”, então está na possibilidade
de efetuar a escolha certa porque sabe que a sequência “uma hora” faz mais sentido do que a
23
sequência “uma ora”. A técnica que está por detrás disto usa “trigramas”, baseados em
modelos estatísticos, que calculam a probabilidade de uma determinada sequência de palavras
ocorrer. A maioria dos pacotes de reconhecimento da fala vem com dicionários que contêm
cerca de 150 mil palavras do português. Os sistemas na língua inglesa também trabalham com
aproximadamente a mesma quantidade de termos no dicionário (GUILHOTO; ROSA, 2001).
.
2.3. Microsoft speech recognition SDK
2.3.1. Introdução
A Microsoft está há mais de uma década realizando pesquisas sobre sistemas de
reconhecimento de voz, inspirado a ficção cientifica, e sendo atribuídos a filmes, jogos,
sistemas de automação e vários outros (RABINER; JUANG, 1993).
O Microsoft Speech SDK (SDK) é um kit de desenvolvimento de software para
construção de agentes de fala e aplicações para o Microsoft Windows. A interface de
programação de aplicações de fala (SAPI (Speech Application Programming Interface))
(MEGATTS, 2009) reduz de forma substancial o código requerido para que se possa utilizar
em um projeto o reconhecimento de voz (para mais informações sobre SAPI, ver seção
dedicada no item 2.3.2). Desta forma tenta-se fazer com que a tecnologia de fala torne-se mais
accessível e robusta para as novas aplicações que irão surgir (MICROSOFT, 2002).
Este kit de desenvolvimento suporta OLE Automation5 (WIKIPÉDIA, 2009e) o que
permite a portabilidade do kit para as linguagens ou ambientes de programação que possuem
suporte a estas características, como Microsoft Visual Studio, Borland Delphi, C, C++.
Existem dois tipos básicos de máquinas SAPI que são o sistema de Texto para Fala (TF) e o
Reconhecimento de Voz (RV). O sistema de TF sintetiza o texto e arquivos para serem 5 É um mecanismo para a comunicação entre processos baseado em Component Object Model (COM) (MICROSOFT, 2002), introduzido pela Microsoft. Ele fornece uma infraestrutura na qual aplicações (chamadas de controladores de automação) podem acessar e manipular dados compartilhados (chamados objetos de automação) que são exportados por outras aplicações. Ela é uma evolução à Dynamic Data Exchange (DDE) (é uma tecnologia para a comunicação entre múltiplas aplicações executadas em Microsoft Windows e OS/2 introduzida pela Microsoft em 1987.), é um mecanismo mais antigo para que aplicações controlem umas as outras. Assim como em DDE, em OLE Automation o controlador de automação é o cliente, e a aplicação exportando os objetos de automação, é o servidor.
24
ouvidos usando vozes sintéticas. O reconhecedor de fala converte a voz humana falada no
áudio para texto e arquivos.
SAPI controla um grande número de aspectos de um sistema de fala, tais como:
a) Controle de entrada de áudio
b) Carrega arquivos de gramática (se foi criado dinamicamente ou criado a partir de
dados que já existiam na memória);
c) Compila padrões SAPI XML em formato de gramática, conversão de formatos
gramaticais;
d) Compartilhamento de reconhecimento através de múltiplas aplicações utilizando
agentes compartilhados;
e) Armazena dados e encaminha os resultados para análises posteriores.
O reconhecedor de voz realiza as seguintes tarefas:
a) Utiliza a interface de gramática do SAPI e carrega os comandos ditados;
b) Realiza o reconhecimento;
c) Retorna a partir do SAPI informações sobre a gramática e o estado das
alterações;
d) Gera reconhecimento e outros eventos para retornar informações a aplicação.
2.3.2. SAPI
A interface da programação das aplicações de voz (Speech Application Programming
Interface – SAPI) é uma API (Application Programming Interface) desenvolvida pela
Microsoft que permite a utilização do reconhecimento de voz (Speech Recognition) e síntese
de voz (TTS – Text To Speech) nas aplicações do Windows. Em geral, todas as versões desta
API foram projetadas para que os programas consigam comunicar de uma maneira fácil,
acessível e através de diversas linguagens de programação com o software que reconhece a
voz ou que converte o texto para voz. Nas versões, de 1 a 4 as aplicações comunicam
diretamente com os sistemas de voz. Estas API’s incluíam definições de interface abstratas
com os diversos programas e não necessitavam de mais recursos. Entretanto, na família SAPI
5 as aplicações e os sistemas não comunicam diretamente, associando a fala que está em
execução (sapi.dll) ao respectivo componente. Existe uma API que executa um destes
25
componentes para as aplicações e outro para o conjunto das relações entre os motores de voz.
Normalmente em SAPI 5, os programas dão a ordem para:
a) Chamar através da API uma gramática para o reconhecimento da voz;
b) Iniciar o reconhecimento de voz;
c) Fornecer o texto ao sintetizador para ser convertido em voz.
O componente sapi.dll em execução interpreta estes comandos e processa-os,
momento no qual torna-se necessário chamar o motor de voz que fará a interface. Um
exemplo é o carregamento do arquivo de gramática que é feito em tempo real e,
posteriormente, os seus dados são passados para o reconhecedor de voz, no qual são
atualizados para serem utilizados. Os motores do reconhecimento e síntese de voz também
geram eventos quando estão sendo processados (por exemplo, uma expressão vocal quando
reconhecida ou o final de uma palavra sintetizada).
2.3.3. Gramática
Para a Microsoft (2002), a gramática define as palavras que uma aplicação pode
reconhecer. O reconhecimento da fala (RF) é baseado na gramática. Uma aplicação pode
realizar o RF usando três diferentes tipos de gramática. Cada gramática utiliza-se de uma
estratégia diferente para reduzir a possibilidade de sentença a ser reconhecida aumentando,
assim, as chances de assertividade durante o processo de RF.
a) Gramática em formato arquivo texto - Este tipo de gramática, que é definido em
arquivo texto, tem o seu formato similar a arquivos “.ini”. Este arquivo consiste de um
número de seções. Cada seção é identificada por uma nova linha com o nome da seção
entre colchetes “[]”. As seções têm um número de valores, identificadas pelo nome do
valor, seguido do sinal de igual “=” e finalmente pelo valor. Comentários podem ser
acrescentados no arquivo. Para isto basta acrescentar ponto e virgula “;” ou duas
barras “//”no início da linha. A vantagem do uso de listas consiste no fato das
aplicações poderem setar facilmente novos parâmetros para a sua lista em tempo de
execução sem ter que recompilar a gramática. O Anexo 1 possui um exemplo de uma
gramática.
b) Gramática livre - Aqui são utilizadas regras de uso, que predizem as próximas
palavras, ou seja, reduz o número de candidatos para avaliar e para reconhecer a
26
próxima palavra. Para iniciar o uso deste tipo de gramática no RF, a aplicação,
primeiro deve ativar uma regra específica dentro da gramática. Isto coloca a regra
dentro do nó inicial do reconhecimento. Em outras palavras, para a regra ser utilizada,
deve ser colocado no “Start” de regra. Este tipo de padrão requer uma lista de todas as
regras que podem ser ativadas. Contudo, estas listas devem optar por ter sempre um
número mínimo de regras, pois, desta forma, a eficiência da gramática será aumentada
crescendo, assim, a precisão do reconhecimento. Esta ferramenta é muito poderosa
devido à habilidade de recursão, mas também pode se tornar muito complexa.
Gramática de ditado - Uma gramática de ditado define um contexto para falar, que identifica
o assunto do ditado, o tipo de estilo de idioma que é esperado, e que ditado foi acabado no
passado. Uma gramática de ditado não contém informação sobre o modelo de idioma (a
máquina tem aquela informação) nem especifica tudo das palavras que podem ser faladas.
Especifica somente palavras incomuns ou grupos esperados de palavras. Existem algumas
características que podem influenciar a gramática durante o seu processamento. O peso da
gramática é um destes fatores, utilizado a cada transação para alterar a semelhança dos
mesmos já iniciados. Este peso é uma probabilidade e a faixa de valores permitida está entre 0
e 1. Os com valores 0, sempre serão interpretados como transições impossíveis de passarem a
ser reconhecidos. Por definição, as gramáticas não possuem pesos definidos, para cada
transição o peso será 1 dividido pelo número de transições fora do estado de precedência
(O&A PRODUCTIONS, 2009).
2.3.4. Regras
Cada gramática pode conter uma ou mais regras. Podem ser de alto nível, indicando
que podem ser ativados para o reconhecimento. Cada uma tem um estado inicial, os quais são
conectados por vários tipos de transição:
a) Uma palavra de transição indica uma palavra para ser reconhecida;
b) Uma regra de transição indica uma referência para uma sub-regra;
c) Transições especiais que caracterizam ditados especiais dentro de um contexto
27
2.3.5. Contexto livre de gramática
As referências para sub-regras podem ser recursivas, podem referenciar a elas
próprias, um ao outro de forma direta ou indiretamente.
Notificações de regras chamam o agente para informar quando regras são adicionadas,
alteradas ou removidas. Existem cinco ações que são tomadas na realização das regras:
a) Novas regras podem ser adicionadas;
b) Regras podem ser removidas;
c) Regras podem ser ativadas;
d) Regras podem ser desativadas para o reconhecimento;
e) Regras podem ser invalidadas, o qual é uma maneira utilizada para editar através de
uma aplicação e deste modo o agente precisa fazer uma leitura nova do conteúdo da
regra.
2.4. Automação residencial (domótica)
A domótica, como é chamada a automação residencial, tem como principal objetivo a
integração de todos os equipamentos residenciais, vinculando-os em uma só tecnologia.
Independentemente dos problemas, a domótica visa atender às necessidades de usuários
domésticos em termos de conforto e segurança, e também apresenta algumas soluções em
termos de comunicação de dados.
2.4.1. Objetivos da automação residencial
A domótica visa solucionar uma série de problemas usando eletrônica e conceitos
muitas vezes vindos diretamente da ficção científica.
O objetivo da automação residencial é integrar iluminação, entretenimento, segurança, telecomunicações, aquecimento, ar condicionado e muito mais
28
através de um sistema inteligente programável e centralizado. Como consequência fornece praticidade, segurança, conforto e economia para o dia a dia dos usuários (ABREU, 2003).
De acordo com Abreu (2003), a automação residencial se divide em três tipos:
a) Sistemas autômatos (stand alone): são divididos módulos entre os cômodos,
onde cada um pode ser transmissor ou receptor e os módulos (que podem
controlar luzes) podem ser controlados através de uma central na cabeceira da
cama. O sistema pode ser montado aos poucos;
b) Sistemas integrados com controle centralizado: a central é inteligente, as
configurações podem ser simples ou complexas, inclui ações ativadas por
eventos, equipamento controlado via infravermelho podem ser programados pela
central;
c) Sistemas de automação complexos: integração total dos sistemas domésticos, a
residência precisa ser projetada para essa automação com cabeamento
estruturado. Segundo Abreu (2003), os equipamentos, acessórios e técnicas
comumente utilizadas na automação residencial são:
Telefonia e transmissão de dados,
Aquecimento e ar condicionado,
Iluminação,
Home theater e som ambiente,
Vigilância, alarme, iluminação de segurança, e circuito interno de TV,
Aparelhos eletrodomésticos,
Cortinas e portas automáticas,
Home offices.
29
3. HARDWARE
3.1. Eagle Layout Editor
O Eagle Layout Editor (CADSOFT ONLINE, 2009) é uma ferramenta de fácil uso e
poderosa para projeto de placas de circuito impresso (PCB). Desenvolvida pela empresa
CadSoft Online (2009), o EAGLE veio para facilitar a vida de estudantes e profissionais que
trabalham com desenvolvimento de placas de circuito impresso.
Para os estudantes, ou aqueles que necessitam de um pequeno projeto, a CadSoft
disponibiliza uma versão freeware do EAGLE. Contudo, algumas funcionalidades mais
profissionais encontram-se desativadas.
O EAGLE permite o desenho de circuitos elétricos, possibilitando colocar os símbolos
representativos dos componentes, o que facilita a visualização do projeto em si.
A Figura 1 mostra uma visão geral do circuito, desenvolvido no EAGLE, com todas as
conexões entre os componentes. Foi definido a seguinte estrutura de conexões:
SV9 – Conexão com a porta paralela do computador
CON_PM e CON_PF – Conexões para interligar o Buffer de proteção da porta
paralela com a placa dos LEDs
SV1 a SV8 – Conexão da placa dos LEDs com o driver de acionamento
SV10 – Conexão do driver de acionamento com a placa dos LEDs
TRAFO – Ligação do transformador a fonte
30
Figura 1. Esquema elétrico geral do circuito
Na Figura 2 mostra a placa dos LEDs. Esta placa é interligada com a placa de driver
de acionamento (Figura 3) que está junto ao equipamento. Cada conexão é identificada por
um LED verde que, quando aceso, indica que o equipamento está ligado. Esta placa de LEDs,
como pode ser observado, foi desenvolvida para acoplar até 8 drivers de acionamento, ou seja,
até 8 equipamentos. Esta placa é composta apenas por resistores e diodos emissores de luz,
sendo que finalidade dos resistores é limitar a corrente que deve circular em cada led. Um led
31
padrão, para que acenda com intensidade razoável, deve ser percorrido por uma corrente de
+/- 10mA. Um led oferece uma queda de tensão de +/- 1.8V quando percorrido com sua
corrente nominal. Portanto, para calcular o valor dos resistores usamos a lei de ohm:
V=R*I
Onde:
V = tensão (que no caso é 5V - 1.8V de queda no led)
R = resistência que queremos encontrar
I = corrente que deve circular pelo led, que no nosso caso é 10mA = 0.01A
Então temos:
5V-1.8V = R*0.01A
R = 3.2V/0.01A
R = 320ohms
Portanto, o valor comercial mais próximo para os resistores de 320ohms é 330ohms.
Figura 2. Placa do Leds
O conjunto dos hardwares também é composto pelo driver de acionamento, que é
basicamente um transistor operando como chave para ligar ou desligar o relé, representado
como (K2 351). Este circuito é acoplado junto a cada equipamento, realizando o trabalho de
32
fechar ou abrir o circuito para passagem da corrente elétrica. No conector SV10 temos 3
sinais que são identificados da seguinte forma. 1=5V, 2=GND(terra), 3=Sinal para
ligar/desligar o transístor e, por consequência, o relé. Explicando mais a fundo, o driver de
acionamento recebe a alimentação (5V e GND) e o sinal para ligar/desligar o equipamento.
Antes de chegar ao transístor, o sinal deve passar por um resistor para limitar a corrente que
circula pela base do mesmo. Quando o sinal está presente, uma corrente circula pela base
fazendo com que este conduza, e uma corrente circule pelo relé e este tenha seus contatos
fechados, ligando o equipamento. O diodo em antiparalelo com o relé tem a função de prover
um caminho para a corrente quando o relé é desligado, protegendo o transístor contra uma alta
tensão que é gerada pela bobina do relé. É geralmente chamado de "diodo de roda livre". A
alta tensão acontece pelo fato da bobina do relé ser um indutor, que tem a característica de
manter a corrente que circula por ele constante, quando esta corrente é interrompida
bruscamente e, na tentativa de mantê-la constante, uma alta tensão aparece nos terminais do
indutor. Esta alta tensão, por sua vez, pode ser suficiente para danificar o transístor caso não
haja outro caminho para a corrente no indutor. Sobre o relé utilizado no projeto, este é
composto internamente por duas chaves, denominado (relé com contatos duplos).
As chaves são nomeadas K1 e K2. Cada chave tem os terminais S, P e O (S1, P1, O1 e
S2, P2, O2). Como no projeto é necessária apenas uma chave, as duas foram ligadas em
paralelo formando, assim, uma única chave com maior capacidade de corrente. A Figura 3
destaca o driver de acionamento e seus contatos dos terminas que são ligados no paralelo.
Figura 3. Circuito do driver de acionamento
33
“P” é o terminal comum de cada chave.
“S” é o terminal "Normalmente Aberto" de cada chave, ou seja, quando o relé está
desenergizado, esta chave (formada por P e S) está aberta.
“O” é o terminal "Normalmente Fechado" de cada chave, ou seja, quando o relé está
desenergizado, esta chave (formada por P e O) está fechada.
Os equipamentos são conectados aos terminais P e S ou seja, TP1 e TP2 de forma que,
quando o relé for energizado, esta chave é fechada e o equipamento é ligado. O terminal TP3
fica livre, servindo apenas caso seja necessário mudar o sentido do bit. Ao interligar TP1 e
TP2 e o driver receber 0 (zero), o mesmo será desligado e quando receber 1(um) será ligado.
Como o equipamento foi interligado entre os terminais TP1 e TP3, quando o driver de
acionamento receber o bit 1(um) o equipamento será desligado.
O circuito do buffer para proteção da porta paralela é mostrado na Figura 4. Este
circuito possui a função de proteger a porta paralela e, ao mesmo tempo, fornecer os níveis de
corrente elétrica suficientes para ativar os Circuitos Integrados. Estes buffers de proteção
estão acoplados junto ao circuito integrado (CI) com referência (74LS244N). Dentro do CI
existem 8 buffers, que têm, neste protótipo, a funcionalidade de proteger a porta paralela
fornecendo mais corrente do que a mesma pode fornecer. Assim, os circuitos que estão
ligados podem exigir maior corrente, sendo que o CI é capaz de fornecê-la sem requerer da
porta paralela protegendo-a contra sobrecarga de corrente.
O buffer de proteção é composto por um circuito integrado (CI) e um jumper. O
mesmo é dividido em dois grupos de 4 buffers. Cada grupo pode ser habilitado/desabilitado
separadamente através do pino representado pela letra G na Figura 4. No desenho, apenas
para fins de representação, parece ter 2 CI's, o que se deve ao fato da existência dos dois
grupos de buffers citados acima
O jumper é representado pela sigla JEN. Como dito acima, os buffers podem ser
habilitados/desabilitados através do pino de enable 'G'. Quando o jumper está na posição 1-2,
os buffers ficam sempre habilitados, quando o jumper está na posição 2-3, os buffers podem
ser habilitados através do pino 1 da porta paralela, ou seja, podem ser habilitados via
software, colocando o pino 1 em nível baixo (0 volts).
Habilitar o buffer significa que o sinal que estiver presente na entrada do
buffer, tem sua corrente amplificada e aparece na saída do buffer.
Desabilitar o buffer significa que suas saídas ficarão em alta impedância
independente do sinal que estiver na entrada (o buffer não deixa o sinal passar).
34
Figura 4. Circuito do buffer para proteção da porta paralela
Para finalizar a composição de todo o projeto de hardware a Figura 5 mostra o circuito
da fonte de alimentação regulada, onde o nome já atribui à funcionalidade, que é alimentar
todo o circuito com uma tensão de 5 volts regulada.
Figura 5. Circuito da fonte de alimentação regulada (+5V)
Todos estes circuitos demonstrados acima foram desenvolvidos no programa EAGLE
e, posteriormente, convertidos para outro formato para a criação dos adesivos realização da
plotagem em gráfica. A descrição da criação da Placa de Circuito Impresso (PCI) será
apresentada no Apêndice A.
35
3.2. Estrutura do Hardware
A estrutura do hardware é fundamental para entendimento do projeto, através desta
estrutura é possível compreender detalhes técnicos e funcionais do hardware.
Primeiramente é necessário enfatizar que todo o circuito trabalha com baixa tensão de
5 Volts, sendo responsável apenas por acionar o relé fechando o circuito da corrente elétrica
do aparelho. O funcionamento de todo o projeto pode ser compreendido da seguinte forma,
somente a porta paralela envia dados para o circuito. O circuito não envia nada de volta para a
porta paralela, portanto não é necessário usar os sinais de entrada da porta paralela. O circuito
recebe 8 sinais de controle (nível 0 ou 1) para ativar ou desativar os equipamentos, estes sinais
seguem o seguinte caminho: Paralela->Buffer Octal->Drivers dos relés->Relés.
Para que o sinal elétrico proveniente da porta paralela do computador seja capaz de
acionar o relé e, por consequência, ligar o equipamento conectado ao mesmo, ele deve passar
por alguns estágios de condicionamento.
O primeiro estágio é um buffer octal, ou seja, possui internamente oito buffers
individuais, cuja principal finalidade é proteger a porta paralela impedindo que
os circuitos seguintes drenem uma corrente maior do que ela é capaz de
fornecer. Caso esta sobrecarga aconteça, a corrente será drenada do buffer
octal ao invés de ser drenada da porta paralela. O buffer funciona como um
mini amplificador de corrente.
O segundo estágio também é um amplificador de corrente, mas, desta vez, com
uma capacidade bem maior se comparado com o buffer octal. É composto
principalmente por um transístor operando como uma chave digital. Este
transístor, quando acionado, fornece toda a corrente necessária para ligar o relé
(esta corrente é cerca de 10 vezes maior do que a porta paralela é capaz de
fornecer!) e, consequentemente, ligar o equipamento conectado ao circuito do
relé.
Nesta estrutura foram utilizados diversos componentes eletrônicos todos eles estão
descritos no Apêndice B
36
A Figura 6 possibilita melhor entendimento de todo o processo e funcionamento
quando implementado. O funcionamento é simples, o computador recebe um comando de voz
através do microfone normal padrão, este comando de voz é processado no software de
automação e os sinais são transmitidos via porta paralela para a placa mãe. A mesma é ligada
em uma fonte de energia. Cada equipamento é interligado junto ao driver de acionamento
através do cabo de energia. O driver de acionamento é ligado a uma fonte de energia e
interligado à saída da placa mãe, identificada pela porta e pelos LEDs, na parte superior. Com
isso, quando o comando de voz for totalmente reconhecido, o sinal, após chegar à placa mãe,
já é capaz de identificar qual equipamento está relacionado ao comando de voz que está
cadastrado junto ao banco de dados do software de automação. Com isto, a placa mãe envia o
sinal ao driver de acionamento onde é feita a abertura ou fechamento do relé, permitindo
passagem da corrente elétrica até o equipamento.
Figura 6. Diagrama das fases do processo
37
3.3. Porta paralela
A utilização da porta paralela neste projeto foi atribuída pelo fato de ser uma
tecnologia que, apesar de não ser mais comercializada, permite acessibilidade e facilidade nos
estudos e pesquisas acadêmicas.
3.3.1. Introdução
A porta paralela é uma interface de comunicação entre o computador e um periférico.
Quando a IBM criou seu primeiro computador pessoal, nos meados de 1960, a ideia era
conectar a essa porta uma impressora, no entanto, são vários os periféricos que ainda
utilizam-se desta porta para enviar e receber dados para o computador (exemplos: Scanners,
Impressoras e outros) (ROGER.COM, 2009).
3.3.2. Modelos de porta paralela
Existem três tipos de modelos de porta paralela, a transmissão unidirecional,
transmissão bidirecional, e a porta avançada chamada de ECP.
a) Transmissão unidirecional - A porta paralela SPP (Standard Parallel Port) pode
chegar a uma taxa de transmissão de dados a 150KB/s. Comunica-se com a CPU
utilizando um barramento de dados de 8 bits. Para a transmissão de dados entre
periféricos são usado 4 bits por vez.
b) Transmissão bidirecional - A porta avançada EPP (Enhanced Parallel Port) chega a
atingir uma taxa de transferência de 2 MB/s. Para atingir essa velocidade, será
necessário um cabo especial. Comunica-se com a CPU utilizando um barramento de
dados de 32 bits. Para a transmissão de dados entre periféricos são usado 8 bits por
vez.
38
c) A porta avançada ECP (Enhanced Capabilities Port) - Tem as mesmas
características que a EPP, porém, utiliza DMA (acesso direto à memória), sem a
necessidade do uso do processador, para a transferência de dados. Utiliza também um
buffer FIFO de 16 bytes (ROGER.COM., 2009). O buffer FIFO armazena dados
temporários até que sejam transferidos pra outro lugar.
3.3.3. Endereços da porta paralela
O sistema operacional, Windows ou até mesmo o antigo DOS, nomeia as Portas
Paralelas chamando-as de LPT1, LPT2, LPT3, etc. Contudo, a porta física padrão do
computador geralmente é a LPT1 e os endereços de cada porta dependem da configuração de
seus registradores, ou seja, cada porta paralela é formada por 3 registradores. O registrador de
dados, o registrador de status e o registrador de controle. Cada um desses registradores possui
um endereço diferente. Por exemplo, o endereço 0x378 (também chamado de endereço base
da LPT1) é o endereço do registrador de dados da porta paralela LPT1. O endereço 0x379
(0x378 + 1) é o endereço do registrador de status da LPT1 e o endereço 0x37A (0x378+2) é o
endereço do registrador de controle da LPT1. Portanto, cada LPT tem o seu endereço base,
LPT1 = 0x378 e LPT2 = 0x278 e assim por diante.
O quadro abaixo mostra os endereços hexadecimais e decimais de cada porta.
Nome da Porta Endereço de memória
Endereço da Porta Descrição
LPT1 0000:0408 378
hexadecimal 888 decimal Endereço base
LPT2 0000:040A
278 hexadecimal
632 decimal Endereço base
QUADRO 1 – Endereços da porta paralela Fonte: RogerCom (2009).
3.3.4. Conector DB25
O DB25 é um conector no qual o cabo paralelo se conecta ao computador para o envio
e recebimento de dados. No DB25, um pino está em nível lógico 0 quando a tensão elétrica no
39
mesmo está entre 0 a 0,4v. Um pino se encontra em nível lógico 1 quando a tensão elétrica no
mesmo está acima de 3.1 e até 5v. A Figura 7 mostra o conector padrão DB25, com 25 pinos,
no qual cada pino tem um nome que o identifica:
Figura 7. DB25 que fica atrás do micro Fonte: RogerCom (2009).
A Figura 8 mostra o conector macho do cabo paralelo e suas referências para
interligação entre o DB25 fêmea. As conexões D0 até D7 são as conexões de saída,
justamente as usadas no sistema de automação, apresentadas na Figura 10.
Figura 8. Conector macho do cabo paralelo Fonte: RogerCom (2009).
40
Figura 9. Foto do conector DB25 macho do cabo paralelo Fonte: RogerCom (2009).
Todo este esquema é necessário para saber como enviar dados ou receber dados
através da porta paralela, portanto a Figura 10 mostra claramente os pinos referentes às
entradas e as saídas.
Figura 10. Esquema de funcionamento do DB25 no modo SPP Fonte: RogerCom (2009).
3.3.5. Conector macho Centronics 36 pinos
O conector macho Centronics 36 pinos faz parte do cabo da impressora e é através
deste que a impressora é conectada ao computador. Ao desenvolver um projeto que utilize
uma interface para conectar ao computador, pode-se utilizar um conector centronics 36 pinos
41
fêmea, isso faz com que a interface aproveite o cabo da impressora, encontrado facilmente em
lojas de informática. A Figura 11 abaixo mostra o conector Centronics 36 pinos e sua
descrição:
Figura 11. Conector centronics 36 pinos Fonte: RogerCom (2009).
O quadro abaixo mostra as descrições dos pinos do conector centronics, é a partir
desta tabela que é possível fazer as conexões necessárias para o projeto de automação.
Número do Pino Descrição
1 Strob
2 ao 9 Dados (D0...D7)
10 Ack
11 Busy
12 Paper End
13 Select Out
14 Auto Feed
15 ao 18 Não conectado
19 ao 30 GROUND
31 Init
32 Error
33 GROUND
34 a 35 Não conectado
36 Select In
QUADRO 2 - Significado de cada pino do conector Centronics Fonte: RogerCom (2009).
42
3.3.6. Ligando e desligando aparelhos externos através da porta paralela
Como já comentado, a porta paralela não é usada somente com uma impressora, é
possível desenvolver um circuito eletrônico e acoplá-lo a essa porta e, através de um
programa específico, enviar sinais digitais para controlá-lo. Estes foram os passos utilizados a
princípio para montar tanto o hardware quanto o software de automação.
Conforme o projeto de automação, é possível controlar até 8 equipamentos
simultâneos. Diante disto, a Figura 12 esboça um protótipo de hardware utilizando LEDs. O
mesmo será utilizado para entendimento dos pinos de saída do conector DB25.
Na Figura 12, observe que o terminal do catodo (K) dos LEDs está ligado aos
terminais dos resistores, que estão ligados através do cabo aos pinos do DB25. Se invertidos,
o circuito não funcionará. Observe a enumeração dos pinos do conector DB25.
Os pinos D0 a D7 são os pinos de saída, estes pinos são os responsáveis pelo envio de
dados ao equipamento. Sinais são enviados individualmente por cada pino, possibilitando o
total controle do hardware por meio do software (ROGER.COM., 2009).
Figura 12. Esboço da conexão do conector DB25 Fonte: RogerCom (2009).
O sistema de automação envia à Porta Paralela oito bits, um a cada vez que o usuário
pressionar o botão, ou através do comando de voz. No entanto a lógica do software atribui um
operador lógico “OU”, sendo possível também ligar e desligar vários equipamentos ao mesmo
tempo. A sequência de bits gerada é vista no quadro abaixo.
43
Decimal Hexadecimal Binário Pino/Fio ativo (5V) Comentário
128 80 10000000 9 - D7 Cada bit do byte enviado à Porta Paralela está
relacionado com um pino do DB5, e um fio
do cabo paralelo, fisicamente. Ao enviar um
byte, que o(s) bit(s) esteja(m) ligado(s) ou
desligado(s), os LEDs acende(rão) ou
apaga(rão) conforme os estados dos bits.
64 40 01000000 8 - D6
32 20 00100000 7 - D5
16 10 00010000 6 - D4
8 8 00001000 5 - D3
4 4 00000100 4 - D2
2 2 00000010 3 - D1
1 1 00000001 2 - D0
QUADRO 3 - Sequência de bits gerados pela porta paralela Fonte: RogerCom (2009).
44
4. DESENVOLVIMENTO DO SOFTWARE
4.1. Documentação
A documentação de software é extremamente necessária e auxilia na redução de horas
preciosas na correção de problemas. Para muitos desenvolvedores, a criação de documentação
técnica é a parte mais “aterrorizante” para se enfrentar em todo o processo de criação de um
software, seja pela necessidade de escrever várias e várias páginas de texto, gráficos e
desenhos ou ainda pela necessidade de largar aquilo que se aprendeu (programar) para fazer
aquilo que não sabe bem (redigir). Entretanto, a documentação é parte integrante de qualquer
sistema ou programa criado. Pode-se dizer que a documentação é tão importante quanto as
questões de segurança, pois sem a devida documentação, bug's e pontos vulneráveis no
sistema demoram a ser encontrados e corrigidos permitindo, assim, que os ataques continuem
levando a resultados indesejáveis do sistema e, consequentemente, insatisfação de seu
usuário.
O projeto aqui proposto utilizou algumas técnicas de documentação, como
documentação UML gerando os diagramas de caso de uso e classes.
4.1.2. UML
A Linguagem de Modelagem Unificada (UML) é uma linguagem visual para
especificar, construir e documentar os artefatos dos sistemas (LARMAN, 2007).
A palavra visual na definição é um ponto chave – a UML é a notação diagramática
padrão, de fato, para desenhar ou apresentar figuras (com algum texto) relacionadas a
software (CADSOFT ONLINE, 2009).
45
4.1.2.1. Diagramas de Casos de Uso
A UML fornece a notação de diagramas de casos de uso para ilustrar os nomes dos
casos de uso e dos atores, bem como os relacionamentos entre eles (LARMAN, 2007). Os
mesmos sugerem como os atores interagem com o sistema. A Figura 13 mostra o caso de uso
principal, em que o usuário pode cadastrar os aparelhos existentes na residência, e os usuários
que poderão acessar o sistema web. A descrição dos cenários existentes para cada caso de uso
encontra-se no Apêndice C.
Conforme diagrama representado pela Figura 13, todas as opções de cadastramento,
consultas e exclusões estão relacionadas ao usuário local. Existe uma dependência no
relacionamento entre as funcionalidades de cada caso de uso. Estas relações são utilizadas
para demonstrar cada processo do sistema. Cada caso de uso possui ações classificadas pelos
“includes” ou “extends” referindo-se aos atributos e dependências destinadas a cada caso de
uso. Através deste diagrama é possível entender praticamente todos os processos que poderão
ser incorporados durante o desenvolvimento.
46
Figura 13. Caso de uso principal do sistema
47
4.1.2.2. Diagrama de classes
É uma representação da estrutura e relações das classes que servem de modelo para os
objetos utilizados no desenvolvimento. Modelagem muito útil, define todas as classes que o
sistema necessita possuir e é a base para a construção de diversos outros diagramas.
Para a construção deste projeto foram utilizadas diversas classes, pois o intuito era
estabelecer uma estrutura relacionada ao desenvolvimento orientado a objetos, com isto
requer um melhor planejamento e boa estruturação dos diagramas. A Figura 14 ilustra os
diagramas referentes às classes principais que compõem o projeto web. Dentro de cada
diagrama é possível identificar quais atributos, métodos e classes serão compostos em todo
desenvolvimento. O diagrama de classe pode ser gerado através de uma tecnologia chamada
de engenharia reversa, que possibilita após o sistema pronto, gerar todo os diagramas para fins
de documentação.
Figura 14. Diagrama de classe do modulo Web
A Figura 15 ilustra cada classe utilizada no desenvolvimento do modulo desktop. Este,
no entanto, possui uma maior complexidade, pois realiza a integração com o componente
SDK para o reconhecimento da voz.
48
Figura 15. Diagrama de classe do modulo Desktop
49
O projeto é composto por uma DLL (Dynamic-link library), termo técnico utilizado as
bibliotecas de ligação dinâmicas, o mesmo pode ser desenvolvido separadamente da estrutura
geral de todo o código fonte, sendo possível atribuí-la a qualquer outro projeto
independentemente. Este é mais um dos diversos recursos sobre programação orientada a
objetos.
Esta DLL, chamada de IOAutomação, compõe toda a estrutura de dados que o sistema
necessita tais como: inclusão, exclusão, pesquisas e outros. A organização de toda a estrutura
foi planejada para futuras manutenções. Assim, os processos foram subdivididos conforme
demanda do projeto. A Figura 16 ilustra todas as classes, métodos e atributos que compõem a
estrutura relacionada aos aparelhos.
Figura 16. Diagrama da estrutura dos aparelhos
50
A Figura 17 ilustra também todas as classes, métodos e atributos utilizados na
estrutura de desenvolvimento referente aos usuários.
Figura 17. Diagrama da estrutura dos usuários.
51
4.2. Metodologias
Na parte de documentações a ferramenta utilizada foi o Enterprise Arquitect (E.A), o
mesmo é considerado um software ícone no desenvolvimento das documentações. Utilizado
por grandes empresas, o E.A possibilita uma utilização por 30 dias. No entanto, este tempo foi
o suficiente para criar toda a estrutura de documentação do projeto de automação.
A ferramenta utilizada na codificação de todo o código fonte, foi através da IDE de
desenvolvimento Microsoft Visual Studio 2008, com interpretação da linguagem C#.
A estrutura de dados foi atribuída ao MySql, que de fato se tornou pioneira tanto na
área acadêmica quanto profissional, pelo fato de ser uma ferramenta totalmente gratuita,
interativa e de fácil utilização. A Figura 18 ilustra o diagrama de entidade relacionamento de
toda a estrutura composta no banco de dados.
Figura 18. Diagrama entidade relacionamento do banco de dados
52
No Quadro 4, são ilustrados todos os scripts de criação da base de dados do sistema.
Todos estes scripts podem ser executados separadamente ou todos juntos.
CREATE DATABASE IF NOT EXISTS automacao; USE automacao;
Script de criação do banco de dados
DROP TABLE IF EXISTS `aparelho`; CREATE TABLE `aparelho` ( `Codigo` int(10) unsigned NOT NULL AUTO_INCREMENT, `NomeAparelho` varchar(45) NOT NULL, `Descricao` varchar(45) NOT NULL, `ComandoVoz` varchar(45) NOT NULL, `Flag` int(10) unsigned NOT NULL, `Porta` varchar(2) NOT NULL, `ComandoVozSaida` varchar(45) NOT NULL, PRIMARY KEY (`Codigo`) ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1;
Script de criação da tabela APARELHOS, e todos os seus atributos.
DROP TABLE IF EXISTS `porta`; CREATE TABLE `porta` ( `NomePorta` varchar(2) NOT NULL, `Bits` varchar(8) NOT NULL, PRIMARY KEY (`NomePorta`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Script de criação da tabela PORTA, e todos seus atributos
DROP TABLE IF EXISTS `usuario`; CREATE TABLE `usuario` ( `Codigo` int(10) unsigned NOT NULL AUTO_INCREMENT, `Nome` varchar(45) NOT NULL, `Usuario` varchar(45) NOT NULL, `Senha` varchar(45) NOT NULL, PRIMARY KEY (`Codigo`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
Script de criação da tabela USUARIO, e todos os seus atributos.
QUADRO 4 – Script para criação da base de dados
53
4.3. Processo de comunicação entre software e SDK 5.1
A comunicação acontece da forma descrita a seguir. Quando instalado o Microsoft
Speech Recognition SDK 5.1 ao Windows, ele cria diversos arquivos na pasta de sistemas.
No entanto, ao inicializar o processo de desenvolvimento na IDE Microsoft Visual Studio
2008, inicialmente é necessário adicionar a referência do componente MICROSOFT SPEECH
OBJECT LIBRARY 5.0, que pode ser encontrado seguindo os passos. Clique no menu
PROJECT->ADD REFERENCE, na janela que irá abrir, siga para a aba COM, e procure pela
referência citada, clique em OK e pronto. Feito isso já se consegue manipular e integrar o
componente junto ao projeto, mas para isto é necessário ter conhecimento de lógica de
programação, pois o componente é independente e, de certa forma, não consegue trabalhar
sozinho, ou seja, é necessário o manuseio do mesmo via código.
Quando se realiza uma referência de algum componente ou controle no projeto geral,
significa que é possível obter uma comunicação mais diretamente. Para isto, as técnicas de
programação orientada a objeto (POO), são extremamente viáveis e necessárias. Até o
momento, o software não realizou nenhuma comunicação com o componente. Para isso, é
necessário começar o processo de codificação no código fonte realizando a integração dos
mesmos.
Inicialmente, para realizar uma primeira comunicação, precisa-se inicializar o
componente de voz, o que é feito adicionando o controle SpeechListBox que é criado junto ao
toolbox da IDE. Posteriormente, através da propriedade “SpeechEnabled”, é possível habilitá-
lo. Contudo, agora se realiza a codificação do código para habilitar totalmente o componente,
deixando livre para o manuseio em todo o sistema. A Figura 19 ilustra o código utilizado no
projeto.
54
//Inicializa o componente de reconhecimento de voz private void InitializeSpeech() { Debug.WriteLine("Inicializando Reconhecimento de Voz.."); m_editMensagens.AppendText("Inicializando Reconhecimento de Voz.. (Aguardando comando inicial!!)"); try { objRecoContext = new SpeechLib.SpSharedRecoContext(); objRecoContext.Hypothesis += new _ISpeechRecoContextEvents_HypothesisEventHandler(RecoContext_Hypothesis); objRecoContext.Recognition += new _ISpeechRecoContextEvents_RecognitionEventHandler(RecoContext_Recognition); grammar = objRecoContext.CreateGrammar(grammarId); ruleTopLevel = grammar.Rules.Add("TopLevelRule", SpeechRuleAttributes.SRATopLevel | SpeechRuleAttributes.SRADynamic, 1); ruleListItems = grammar.Rules.Add("ListItemsRule", SpeechRuleAttributes.SRADynamic, 2); SpeechLib.ISpeechGrammarRuleState stateAfterSelect; stateAfterSelect = ruleTopLevel.AddState(); object PropValue = ""; ruleTopLevel.InitialState.AddWordTransition(stateAfterSelect, PreCommandString, " ", SpeechGrammarWordType.SGLexical, "", 0, ref PropValue, 1.0F); PropValue = ""; stateAfterSelect.AddRuleTransition(null, ruleListItems, "", 1, ref PropValue, 0F); RebuildGrammar(); grammar.CmdSetRuleState("TopLevelRule", SpeechRuleState.SGDSActive); speechInitialized = true; } catch (Exception e) { System.Windows.Forms.MessageBox.Show("Este aplicativo não pode executar corretamente. Exceção na inicialização do componente de voz.\r\n\r\n" + e.ToString(), "Error"); } }
Figura 19. Código fonte da habilitação do componente de voz
A execução dos comandos é feita pela classe que geralmente é chamada de Rebuild
Grammar, ou seja, execução das gramáticas. Este nome pode ser modificado de acordo com o
padrão de cada profissional. Nota-se também que nesta classe já é necessária a integração com
o banco de dados para realizar a conferência entre comando reconhecido e base de dados.
A Figura 20 ilustra os códigos que foram utilizados para executar os comandos
reconhecidos pelo sistema.
Este trabalho visa demonstrar o estudo e pesquisas tanto do reconhecimento de voz
quanto da automação residencial, não é, no entanto o foco relacionar todos os passos de
desenvolvimento. As ilustrações foram necessárias para que o leitor consiga entender o
paradigma do projeto, e através de estudos próprios relacionados a estes, consigam
estabelecer outros meios de desenvolvimento.
55
//Executa os comandos adicionados public bool RebuildGrammar() { if (!speechEnabled || this.DesignMode) { return false; } object propValue = ""; try { IOAutomacao.AparelhoBLL bll = new IOAutomacao.AparelhoBLL(); dstAparelho = bll.ObterAparelhoPesquisa(); ruleListItems.Clear(); int count = 0; if (dstAparelho.AparelhoPesquisa.Count > 0) { foreach (DataSetAparelho.AparelhoPesquisaRow linha in dstAparelho.AparelhoPesquisa) { ruleListItems.InitialState.AddWordTransition(null, linha.ComandoVoz, " ", SpeechGrammarWordType.SGLexical, linha.ComandoVoz, count, ref propValue, 1F); ruleListItems.InitialState.AddWordTransition(null, linha.ComandoVozSaida, " ", SpeechGrammarWordType.SGLexical, linha.ComandoVozSaida, count, ref propValue, 2F); count = +1; } grammar.Rules.Commit(); } } catch (Exception e) { System.Windows.Forms.MessageBox.Show("Exceção capturada quando reconstrução dinâmica na regra do listbox.\r\n\r\n" + e.ToString(), "Error"); } return true; }
Figura 20. Código fonte da execução dos comandos reconhecidos
4.4. Plano de testes
O RUP (Rational Unified Process) é uma metodologia para desenvolvimento de software
criada pela Rational Software, IBM, SofTeam, Unisys, Nihon Unisys, Alcatel e Q-Labs. O mesmo
se tornou mais do que um software para auxiliar no desenvolvimento é uma metodologia de
desenvolvimento, com uma estrutura formal e bem definida. Portanto, utilizando-o como base,
um Plano de testes foi desenvolvido a fim de garantir que os casos de uso e as funcionalidades
indicadas fossem implementados corretamente. Com sua execução foi gerado um relatório de
execução dos testes.
De acordo com os testes realizados, o funcionamento do software foi bem sucedido,
teve algumas falhas ou cancelamentos de alguns processos durante os testes, mas nada que
prejudicasse o funcionamento em geral. Falhas essas que são previstas durante o próprio
desenvolvimento. Com base no relatório verifica-se que o resultado foi satisfatório, mostrando
que o software está apto ao funcionamento.
O Plano de teste e o relatório de execução dos testes são encontrados no Apêndice D.
56
4.5. Apresentação do software
4.5.2. Introdução
O sistema Automação Residencial por comando de voz aqui proposto é destinado ao
controle de equipamentos domésticos de forma automática em uma residência. É possível
utilizá-lo pelas aplicações desktop ou web, e pode ser considerado um sistema em tempo real.
Sistemas de tempo real são sistemas de computação que monitoram, respondem ou
controlam um ambiente externo. Esse ambiente está conectado ao sistema de computação
através de sensores (microfone), atuadores e outras interfaces de entrada e saída. Podem
constituir-se de objetos físicos ou biológicos de qualquer forma e estrutura (SHAW, 2003). O
tempo de resposta aos estímulos externos geralmente está dentro dos limites estabelecidos
para seu funcionamento aceitável. Não importa o tamanho do intervalo de tempo, se é em
nanossegundos ou em minutos. Se o sistema tem um tempo limite para responder, então é um
sistema em tempo real.
Tais aplicações vêm, aparecendo como parte de nossas infraestruturas comerciais,
governamentais, militares, educacionais e culturais. Nesses, estão incluídos (SHAW, 2003):
a) Sistemas de controle de veículos para automóveis, metrôs, aeronaves, ferrovias
e navios;
b) Controle de tráfego para auto-estradas, espaço aéreo, trilhos de ferrovias e
corredores de navegação marítima;
c) Controle de processo para usinas de energia, indústrias químicas e para
produtos de consumo, como refrigerantes e cerveja;
d) Sistemas médicos para radioterapia, monitoramento de pacientes e
desfibrilamento;
e) Usos militares como controle de tiro, rastreamento e sistemas de comando e de
controle;
f) Sistemas de manufatura com robôs;
g) Telefone, rádio e comunicações por satélite;
h) Jogos por computador;
i) Sistemas de multimídia que provêm interfaces textuais, gráficas, de áudio e de
vídeo;
57
j) Sistemas domésticos para monitoramento e controle de eletrodomésticos;
k) Sistemas de automação predial que controlam temperatura ambiental,
iluminação portas e elevadores;
l) Sistemas de automação residencial que controlam equipamentos domésticos.
O sistema de automação residencial por comando de voz possibilita ligar e desligar
qualquer equipamento residencial, possibilitando o monitoramento de todo o status dos
equipamentos, informando a localidade do equipamento, e seu status (desligado ou ligado).
4.5.3. Requisitos funcionais
a) O usuário poderá ligar e desligar os equipamentos da residência pela aplicação
desktop através do comando de voz ou pela internet;
b) O usuário poderá visualizar todos os aparelhos que estão sendo controlados, tanto pela
aplicação desktop quanto pela internet.
4.5.4. Aplicação desktop
Na aplicação desktop os equipamentos são demonstrados na aba principal em
destaque, através de uma tabela com diversas informações, como:
1) ID (Número de identificação)
2) Nome do Aparelho
3) Descrição do Aparelho
4) Comando de Voz (Comando para ligar o equipamento)
5) Porta
6) Status (é alterada de acordo com o estado do dispositivo)
7) Comando Voz de Saída (Comando para desligar o equipamento)
A Figura 21 ilustra a aplicação desktop com alguns dispositivos ligados e outros
desligados.
58
Figura 21. Aplicação desktop
O sistema também possui um ambiente de cadastros, onde é através deste que o
usuário deverá cadastrar quais usuários poderão ter acesso via web, e quais os aparelhos
interligados ao sistema. A Figura 22 ilustra a área de cadastro de aparelhos.
Neste cadastro é necessário inserir todas as informações exigidas para que o sistema
tenha um funcionamento perfeito.
Figura 22. Cadastro de aparelhos na aplicação desktop
59
A Figura 23 ilustra a área do cadastramento dos usuários, que são utilizados no
momento do acesso ao sistema web, concretizando os passos mínimos de segurança que se
exige ao disponibilizar um sistema web.
Figura 23. Cadastro de usuários utilizados para acesso web
A Figura 24 ilustra uma visão geral da área representada com os cadastros de aparelhos e usuários.
Figura 24. Visão geral da área de cadastramentos.
60
4.5.5. Aplicação web
A aplicação web foi desenvolvida com o intuito de simplicidade, facilidade,
funcionalidade e praticidade, principalmente para que pessoas com necessidades especiais
possam operar o sistema. No entanto, nada de grandes interfaces, o foco realmente é a
funcionalidade.
Logo ao inicializar a aplicação, uma identificação de login é aberta, isso favorece o
mínimo de segurança ao sistema, uma vez que o mesmo é aberto à rede mundial de
computadores. Após a identificação, todos os equipamentos são listados juntamente com o
status de cada equipamento, com informações do status de ligado ou desligado possibilitando
assim, ligar ou desligá-lo manualmente.
Figura 25. Aplicação Web (login)
Todos os equipamentos são listados, conforme Figura 26. Os botões a esquerda são
utilizados para realizar as ações conforme explicação da legenda.
Figura 26. Aplicação Web
61
5. CONCLUSÃO
Pode-se verificar que o reconhecimento de voz é uma área que está cada vez mais em
expansão, com o intuito de melhorar e facilitar tarefas cotidianas. É certo que ainda está numa
fase de evolução, mas mesmo assim já consegue, e com algum grau de certeza, obter
resultados bastante promissores.
Este trabalho atingiu as metas propostas de desenvolvimento de um sistema que
engloba automação residencial por comando de voz. Foi possível, no entanto, verificar
algumas das características que tornou o SDK uma das novas alternativas para a utilização do
reconhecimento de voz em sistemas de automação. A família Microsoft realmente fez um
bom trabalho na criação e melhoramento do componente SDK, a mais de uma década eles
vêm aprimorando o componente para que sua integração a outros sistemas se torne cada vez
útil. O mesmo foi utilizado no projeto aqui proposto, se comportando perfeitamente e
alcançando o resultado esperado. Contudo, sempre há alguns escorregões, pois como sempre
falamos nada é perfeito, e tudo se ajusta e melhora conforme pesquisas e feedbacks realizados
por profissionais e alunos durante a utilização do componente. Por ser o SDK uma ferramenta
gratuita, a Microsoft conta com a participação de todos os que utilizam da mesma para expor
seus defeitos, para que possam corigi-los em novas versões.
Para a realização deste trabalho foram feitos estudos referentes a sinais enviados e
recebidos pela porta paralela LPT1, reconhecimento de voz utilizando componente Microsoft
Speech Recognition (SDK 5.1), sem os quais não seria possível desenvolver esse trabalho;
conceitos sobre as tecnologias existentes para automação residencial e sobre eletrônica.
O projeto demonstra uma viabilidade econômica satisfatória deste nível de
automação residencial com um custo bem acessível a todas as classes.
O projeto proposto mostra-se extremamente viável, pois atualmente é notável que uma
maior atenção deveria ser dispensada para o público portador de necessidades especiais.
Um projeto adaptado a uma residência real deverá trazer consigo elementos capazes
de controlar níveis superiores de reconhecimento de voz, através de microfones superiores aos
usados no protótipo do projeto. Ainda assim, a viabilidade econômica do projeto é justificada
frente aos valores exagerados cobrados por empresas que atuam nesse nicho de mercado.
Após a conclusão dos estudos e do desenvolvimento deste projeto, observou-se que o
mesmo é um sistema consideravelmente simples de ser implementado, possibilitando a
expansão da automação residencial por comando de voz de baixo custo, que ainda está em
62
grande crescimento e amadurecimento, apresentando ainda poucos produtos acessíveis no
mercado.
5.1. Trabalhos futuros
Como trabalhos futuros, deseja-se, diante das funcionalidades desempenhadas pelo
sistema, implementar os itens de:
Modificar o sistema de comunicação, passando a trabalhar com porta USB, ou
diretamente via Bluetooth ou Wifi.
Não limitar quantidades de aparelhos a serem controlados.
63
REFERÊNCIAS
ABREU, R. S. Automação residencial: um pouco de história. Ribeirão Preto, 2003. 46 eslaides, color. PowerPoint for Windows 10.26. Arquivo ppt baixado da Internet. Disponível em: <http://www.aureside.org.br/publicacoes/download/automacao_residencial.zip>. Acesso em: 28 set. 2009. AFONSO, R. Sistema de automação residencial com central de controle microcontrolada e independente de pc. 2006. 91 f. Monografia (Trabalho de Conclusão de Curso II do curso de Ciências da Computação) – Universidade Regional de Blumenau, Blumenau, 2006. BARONE, D. A. C.; YEPES, I. Inteligência artificial distribuída: uma abordagem ao comportamento social inteligente. Sociedades Artificiais. Porto Alegre: Bookman, 2002. BEIZER, B. Software Testing Techniques. New York:: Van Nostrand Reinhold Company, 1990. CADSOFT ONLINE. Eagle: version 5.6. Disponível em <http://www.cadsoftusa.com>. Acesso em: 07 out. 2009.
CATHEY, J. J. Dispositivos e circuitos eletrônicos. 2. ed. Porto Alegre: Bookman, 2003. ENDERLEIN, R. Microeletrônica: uma introdução ao universo dos microchips, seu funcionamento, fabricação e aplicações. São Paulo: EdUSP, 1994. GUILHOTO, P. Reconhecimento de voz. Portugal: Sistema Multimídia, 2002. p. 5.
GUILHOTO, P. J. S.; ROSA, S. P. C. S. Reconhecimento de voz: sistemas multimédia: 2001/2002. Coimbra: Universidade de Coimbra, Faculdade de Ciências e Tecnologias, Departamento de Engenharia Informática, 2001. IBM. Embedded ViaVoice. Disponível em: <http://www-01.ibm.com/software/pervasive/embedded_viavoice/>. Acesso em: 10 maio 2009.
IBM RESEARCH. Intelligent Agents Project at IBM T. J. Watson Research. Disponível: site IBM Corporation (1998). URL: http://www.research.ibm.com/iagents/. Consultado em 13 dez. 2009.
64
LARMAN, G. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development. Porto Alegre: Bookman, 2007. LONG, B. Speech Synthesis & Speech Recognition Using SAPI 4 High Level Interfaces. Embarcadero Technologies. 2003. Disponível em: <http://edn.embarcadero.com/print/29581>. Acesso em: 05 maio 2009 MEGATTS. SAPI. Disponível em: <http://www.megatts.com/2007/07/10/sapi-o-que-e/>. Acesso em: 2 out. 2009. MICROSOFT. Help Microsoft Speech SDK version 5.1. Microsoft Corporation, 2002. MICROSOFT. Speech SDK 5.1. Download. Disponível em: <http://www.microsoft.com/downloads/details.aspx?FamilyID=5e86ec97-40a7-453f-b0ee-6583171b4530&DisplayLang=en>. Acesso em: 02 jan 2009. MICROSOFT. Suporte. Voice pilot. Dicas sobre treinamento de voz piloto. 2003. Disponível em: <http://support.microsoft.com/kb/95089>. Acesso em: 10 maio 2009. MILCOMP PRODUTOS ELETRÔNICOS LTDA. Resistor. Disponível em: <http://www.milcomp.com.br/>. Acesso em: 20 jun.2009. NWANA, H. S. Software agents: an overview. Knowledge Engineering Review, Cambridge, v. 11, n. 3, p. 205-244, 1996. O & A PRODUCTIONS. Why Should I Use Speech in My Application. Disponível em: <http://www.o2a.com/framesPrimer.htm>. Acesso em: 4 out. 2009.
RABINER, L. R.; JUANG, B. H. Fundamentals of speech recognition. New York: Prentice Hall,1993. RAMOS, C. M. et al. Física fundamental: vol. único: 2º grau. São Paulo: FTD, 1993. RATIONAL UNIFIED PROCESS®. Rational Unified Process: visão geral. 2001. Disponível em: <http://www.wthreex.com/rup/portugues/index.htm>. Acesso em: abr. 2009.
65
ROBOTERNETZ. Hauptseite. [Transistor]. Disponível em: <http://www.rn-wissen.de/index.php/Hauptseite>. Acesso em: 20 jun. 2009. ROGER.COM. 2009. Disponível em:<http://www.roger.com>. Acesso em: 20 jun. 2009. RUSSEL, S.; NORVIG, P. Artificial Intelligence: A modern Approach. New York: Prentice Hall, 1995. SHAW, A. C. Sistemas e software de tempo real. Porto Alegre: Bookman, 2003.
WIKIPÉDIA. Component Object Model. 2009a. Disponível em: <http://pt.wikipedia.org/wiki/Component_Object_Model>. Acesso em: 3 out. 2009.
WIKIPÉDIA. Fast Fourier Transform. 2009b. Disponível em: <http://en.wikipedia.org/wiki/Fast_Fourier_transform>. Acesso em: 15 set. 2009. WIKIPÉDIA. LED. 2009c. Disponível em: <http://pt.wikipedia.org/wiki/LED>. Acesso em: 12 out. 2009. WIKIPÉDIA. OLE Automation. 2009d. Disponível em: <http://pt.wikipedia.org/wiki/OLE_Automation>. Acesso em: 3 out. 2009. WIKIPÉDIA. Pipeline. 2009e. Disponível em: <http://pt.wikipedia.org/wiki/Pipeline>. Acesso em: 7 set. 2009. WIKIPÉDIA. Pulse-code modulation. 2009f. Disponível em: <http://en.wikipedia.org/wiki/Pulse-code_modulation>. Acesso em: 7 set. 2009. WIKIPÉDIA. Stream. 2009g. Disponível em: <http://pt.wikipedia.org/wiki/Stream>. Acesso em: 10 set. 2009.
WOOLDRIDGE, M.; JENNINGS, N. R. Intelligent Agents: Theory and Practice. Knowledge Engineering Review, Cambridge, v. 100, n. 2, p. 115-152, 1994.
66
ANEXOS
Anexo 1 - Exemplo de Gramáticas
A descrição deste anexo serve como exemplo de uma gramática que é interpretada
internamente pelo SDK. (RABINER; JUANG, 1993)
[Grammar] langid=1033 type=cfg [Lists] =Ligar =Desligar =Abrir =Fechar [<Start>] <Start>= [opt] <Ligar> [opt] <Desligar> [opt] <Abrir>[opt]<Fechar> [Ligar] =TV =Ar =Ventilador =Computador [Desligar] =TV =Ar =Ventilador =Computador [Abrir] =Portão =Veneziana =Porta [Fechar] =Portão =Veneziana =Porta
67
APÊNDICE A - DESCREVENDO A CRIAÇÃO DA PLACA DE CIRCUITO
IMPRESSO (PCB)
Os passos para a criação de uma PCB é simples, mas requer bastante atenção em todos
os detalhes, pois qualquer erro de projeto o circuito pode não funcionar, ou até mesmo
danificar outros componentes junto à placa. É necessário bastante atenção nos produtos
utilizados, alguns deles são corrosivos e prejudiciais à saúde, caso venha ter algum contato
interno.
Antes de realizar a criação da PCB, é necessário realizar alguns testes dos
componentes eletrônicos, se possível junto a um protoboard, evitando constrangimentos e
desperdício de material.
Protoboard em inglês, ou melhor, matriz de contato é uma placa com milhares de
furos e conexões condutoras para montagem de circuitos elétricos experimentais. A grande
vantagem do protoboard na montagem de circuitos eletrônicos é a facilidade de inserção de
componentes, uma vez que não necessita soldagem. As placas variam de 800 furos até 6000
furos, tendo conexões verticais e horizontais. Na superfície de uma matriz de contato há uma
base de plástico na qual existem centenas de orifícios onde são encaixados os componentes.
Em sua parte inferior são instalados contatos metálicos que interliga eletricamente os
componentes inseridos na placa. Geralmente suportam correntes entre 1A e 3A. A Figura 27
mostra o teste realizado com o auxilio de um protoboard.
Figura 27. Teste em placa de Protoboard
68
Após os testes, é hora de verificar o projeto no computador, levá-lo até uma gráfica e
realizar o corte do adesivo. Qualquer operador de plotter entende como realizar este tipo de
serviço de recorte para adesivos com mascaras. Este processo seria uma simples impressão
em um papel A4, mas devido à corrosão necessária para criar as trilhas eletrônicas das placas,
o adesivo é indispensável e o método mais simples e acadêmico realmente torna-se este. Os
passos seguintes serão demonstrados conforme figuras abaixo.
A Figura 28 mostra o projeto no computador. Este será levado até uma gráfica para
fazer os recortes.
Figura 28. Projeto no computador
Na Figura 29 é demonstrado o adesivo plotado, ou seja, já no recorte, conforme
projeto.
Figura 29. Adesivo plotado sem mascara
69
Figura 30 mostra como é feita a retirada da máscara, para que seja introduzida no
adesivo. Esta mascara ajuda na retirada do adesivo, uma vez que não é possível fazer a
retirada manualmente devido às diversas trilhas eletrônicas criadas no projeto.
Figura 30. Retirando a mascara
A Figura 31 demonstra o adesivo já com mascara colada.
Figura 31. Colando a mascara no adesivo
Realiza-se uma fricção ao adesivo, até que a mascara esteja realmente fixada ao
adesivo.
70
Figura 32. Fixando bem a mascara ao adesivo
A Figura 33 mostra o momento da retirada do adesivo através da máscara, observe que
todo o adesivo sai junto a mascara, isso facilitará na colagem a placa metálica.
Figura 33. Retirando a mascara
O momento agora é de atenção, realizar a colagem do adesivo junto à placa metálica,
tendo o cuidado de não deixar bolhas, isso pode prejudicar no momento da corrosão da placa.
71
Figura 34. Colando o adesivo na PCB com a máscara
Agora é necessário retirar o excesso de adesivo, verifique que conforme a retirada vai
se formando as trilhas eletrônicas.
Figura 35. Retirando excesso de adesivos
A Figura 36 mostra uma comparação entre o projeto no computador e o projeto na
placa após a colagem dos adesivos, este momento é bom se atentar a todos os detalhes do
projeto, para possíveis correções antes de torná-lo físico.
72
Figura 36. Verificando projeto e placa
A Figura 37 mostra o momento da corrosão, necessária para retirar a parte metálica
que não contem os adesivos. A corrosão é feita com percloreto de ferro, produto químico e
necessita de cuidados como luvas e espátulas.
Figura 37. Corroendo as placas com percloreto de ferro
Após a corrosão é necessário realizar uma limpeza a placa, isso é feito com água
corrente.
73
Figura 38. Lavando as placas após corrosão
A Figura 39 mostra a placa após a lavagem, veja os detalhes das trilhas eletrônicas.
Figura 39. Corrosão finalizada
Todos os componentes são soldados, criando um conjunto de hardware, conforme
Figura 40.
74
Figura 40. Montagem dos componentes
Os hardwares são montados, formando todo o conjunto do projeto, conforme mostra a
Figura 41.
Figura 41. Montando projeto
Projeto de hardware pronto. A Figura 42 mostra o projeto já montado e finalizado,
pronto para interagir junto ao software de automação.
75
Figura 42. Projeto finalizado
APÊNDICE B - COMPONENTES ELETRÔNICOS UTILIZADOS
B.1 Transístor BC337
O transistor tem por princípio o poder de controle da corrente. Ele pode funcionar, no
circuito, com uma chave (liga/desliga) ou como um amplificador. A Figura 43 mostra o
transistor BC337 que é de uso geral e foi utilizado no projeto.
Figura 43. Transistor BC337.
Retirado de Roboternetz (ROBOTERNETZ, 2009).
76
O transistor permite tanto a amplificação de potência elétrica quando seu
chaveamento. Na microeletrônica o transistor desempenha primordialmente a função de uma
chave eletrônica por impulsos elétricos; para uma tensão alta na base, uma grande corrente
percorre o circuito Emissor-Coletor (chave ligada), enquanto, se a tensão da base for baixa, a
corrente será pequena (chave desligada) (ENDERLEIN, 1994).
A corrente de emissor é calculada com a taxa do fluxo de cargas positivas que entram
na região do emissor (CATHEY, 2003).
B.2 Diodo 1N4148
Um diodo é o tipo mais simples de semicondutor. De modo geral, um semicondutor é
um material com capacidade variável de conduzir corrente elétrica. Um diodo é um
dispositivo de estado sólido que permite o fluxo de corrente em apenas um sentido, um
processo conhecido como retificação. Díodos são um componente fundamental dos circuitos
elétricos. Eles também são usados para formar outros componentes, tais como o transistor
bipolar, que utiliza dois diodos em série.
Figura 44. Diodo 1N4148
B.3 Resistor
Resistores são componentes eletrônicos, caracterizados por uma grandeza física que
mede a oposição à passagem de corrente (RAMOS, 1993).
São utilizados para limitar a corrente elétrica em um circuito ou para criarem uma
queda de tensão em algum ponto do circuito. A Figura 44 mostra a imagem de um resistor.
77
Figura 45. Resistor (MILCOMP PRODUTOS ELETRÔNICOS LTDA., 2009).
De acordo com as cores apresentadas externamente, na cápsula que envolve o material
resistivo, pode-se determinar o valor de um resistor, ou utilizando um equipamento de
medição.
B.4 Relé de 5V
Os relés são dispositivos comutadores eletromecânicos. São utilizados basicamente
para ligar ou desligar dispositivos. É normal o relé estar ligado a dois circuitos. Existem
diversos tipos de relés, mas todos eles trabalham com a mesma finalidade.
No sistema de automação o relé é utilizado para abrir e fechar o circuito que envia
sinal elétrico aos aparelhos.
Figura 46. Relé de 5v
B.5 Led Verde / Led Vermelho 3mm
O LED é um diodo semicondutor que quando energizado emite luz visível, por isso
LED (Diodo Emissor de Luz). A luz não é monocromática (como em um laser), mas consiste
de uma banda espectral relativamente estreita e é produzida pelas interações energéticas do
elétron (WIKIPÉDIA, 2009c). 0
78
Figura 47. LED (Diodo semicondutor)
B.6 Circuito Integrado 74LS541
Circuito integrado, também conhecido por chip, é um dispositivo microeletrônico
que consiste de muitos transistores e outros componentes interligados capazes de
desempenhar muitas funções. Suas dimensões são extremamente reduzidas, os componentes
são formados em pastilhas de material semicondutor.
CI 74LS541 Circuito integrado Buffer, normalmente utilizado para proteger a porta
paralela do computador, quando se liga a porta paralela do computador a um circuito
eletrônico.
Figura 48. CI 74LS541
79
APÊNDICE C – CENÁRIOS DOS CASOS DE USO
C.1. UC1 - Cadastrar Aparelho
Este caso de uso realiza o cadastramento de novos equipamentos no sistema.
Cenário(s) Principal(is)
1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários".
2 - O usuário clica no botão Cadastrar Aparelho.
3 - O usuário insere o nome, descrição, comando de voz de entrada, comando de voz
de saída e a porta.
4 - O usuário clica no botão salvar
Cenário(s) Alternativo(s)
1 - O sistema verifica que o aparelho já é cadastrado.
2 - O sistema emite a mensagem "Equipamento já é cadastrado".
3 - O sistema verifica que a porta já está em uso.
4 - O sistema emite a mensagem "Porta já encontra em uso"
C.2. UC2 - Consultar Aparelho
Este caso de uso permite a consulta de equipamentos já cadastrados no sistema.
Cenário(s) Principal(is)
1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários".
2 - O usuário clica na lupa de pesquisa do setor de aparelhos.
3 - O usuário visualiza uma lista de todos os aparelhos cadastrados.
4 - O usuário seleciona o item desejado.
Cenário(s) Alternativo(s)
1 - Caso não tenha nenhum aparelho cadastrado, e emitido a seguinte mensagem "Não
existe aparelhos cadastrados”.
C.3. UC3 - Alterar Aparelho
Este caso de uso permite a alteração de um equipamento existente no sistema
Cenário(s) Principal(is)
80
1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários"
2 - O usuário clica na lupa de pesquisa do setor de aparelhos
3 - O usuário visualiza uma listagem de todos os aparelhos cadastrados
4 - O usuário escolhe o aparelho desejado
5 - O usuário clica no botão Editar
6 - O usuário faz as alterações necessárias
7 - O usuário clica no botão Gravar
C.4. UC4 - Excluir Aparelho
Este caso de uso permite a exclusão de um equipamento no sistema
Cenário(s) Principal(is)
1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários
2 - O usuário clica na lupa de pesquisa no setor de aparelhos
3 - O usuário visualiza uma lista de todos os aparelhos cadastrados
4 - O usuário escolhe o aparelho desejado
5 - O usuário clica no botão Deletar
6 - O usuário confirma a mensagem de exclusão
Cenário(s) Alternativo(s)
1 - O usuário cancela a exclusão
C.5. UC5 - Cadastrar Usuário
Caso de uso refere-se ao cadastramento de usuários que terão acesso ao sistema web
Cenário(s) Principal(is)
1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários"
2 - O usuário clica no botão Cadastrar Usuário
3 - O usuário insere o nome, login, senha e confirmar senha.
4 - O usuário clica no botão salvar
Cenário(s) Alternativo(s)
1 - O sistema verifica que o login já existe
1.1 - O sistema emite a mensagem "Este nome de usuário já está em uso".
2 - O sistema verifica se a senha é idêntica ao campo Confirmar senha
81
2.1 - O sistema emite a mensagem "Os valores do campo senha e confirmar
senha tem que ser iguais"
C.6. UC6 - Consultar Usuário
Caso de uso permite a consulta de usuários já cadastrados no sistema.
Cenário(s) Principal(is)
1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários".
2 - O usuário clica na lupa de pesquisa do setor de Cadastro de Usuários
3 - O usuário visualiza uma lista de todos os usuários cadastrados
4 - O usuário seleciona o item desejado
Cenário(s) Alternativo(s)
1 - Caso não tenha nenhum aparelho usuário cadastrado, e emitido a seguinte
mensagem "Não existe usuários cadastrados”.
C.7. UC7 - Alterar Usuário
Caso de uso permite a alteração de um usuário existente no sistema
Cenário(s) Principal(is)
1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários".
2 - O usuário clica na lupa de pesquisa do setor de Cadastro de Usuários
3 - O usuário visualiza uma listagem de todos os usuários cadastrados
4 - O usuário escolhe o item desejado
5 - O usuário clica no botão Editar
6 - O usuário faz as alterações necessárias
7 - O usuário clica no botão Gravar
C.8. UC8 - Excluir Usuário
Caso de uso permite a exclusão de um usuário no sistema
Cenário(s) Principal(is)
1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários
2 - O usuário clica na lupa de pesquisa do setor de Cadastro de Usuários
3 - O usuário visualiza uma lista de todos os aparelhos cadastrados
4 - O usuário escolhe o aparelho desejado
5 - O usuário clica no botão Deletar
6 - O usuário confirma a mensagem de exclusão
82
Cenário(s) Alternativo(s)
1 - O usuário cancela a exclusão
C.9. UC9 - Validar Comando de Voz
Este caso de uso faz a validação do comando de voz, junto à biblioteca SDK 5.1 da
Microsoft.
Cenário(s) Principal(is)
1 - O comando de voz é processado
2 - O sistema faz a verificação do comando voz, validando ou não através do banco de
dados que possui todas as informações necessárias.
3 - A verificação do sistema é feito através do componente Microsoft Speech SDK 5.1
de reconhecimento de voz.
4 - Se o comando de voz de entrada for valido, então o aparelho é ligado.
5 - Se o comando de voz de saída for valido, então o aparelho é desligado.
C.10. UC10 - Ligar Aparelho
Este caso de uso faz com que apos o reconhecimento de voz for aceito, o equipamento
ligue.
Cenário(s) Principal(is)
1 - Após conhecimento de voz for aceito pela validação o equipamento é ligado.
Cenário(s) Alternativo(s)
1 - Caso o comando executado pelo usuário for para Ligar o aparelho, isso será feito
através do WebService.
C.11. UC11 - Desligar Aparelho
Este caso de uso permanece com os equipamentos desligados caso o comando de voz
não for aceito.
Cenário(s) Principal(is)
1 - Se o reconhecimento de voz for aceito, o equipamento o sinal de desligamento do
aparelho é acionado.
2 - Caso o reconhecimento de voz não for validado e aceito, o equipamento permanece
como esta.
83
Cenário(s) Alternativo(s)
1 - Caso o comando executado pelo usuário for para desligar o aparelho, isso será feito
através do WebService.
C.12. UC12 - Aguardar Execução de Comando no Sistema
Caso de Uso permite aguardar a execução de algum comando do usuário Web.
Cenário(s) Principal(is)
1 - O sistema fica em “Stand By” aguardando algum comando ser executado
2 - O usuário executa algum comando através do sistema Web, para ligar ou desligar o
aparelho.
3 - O sistema processa o comando.
4 - O sistema liga ou desliga o aparelho de acordo com o comando recebido via Web
C.13. UC13 - Capturar informações do sistema Local
Caso de uso permite fazer a busca de dados do sistema local
Cenário(s) Principal(is)
1 - Caso o WebService estiver normalizado, quando o sistema atingir este ponto,
automaticamente ele busca todos os dados do sistema local, carregando no sistema
web.
C.14. UC14 - Validar Identificação
Caso de uso permite fazer a validação das credenciais do usuário Web.
Cenário(s) Principal(is)
1 - Sistema verifica se as credenciais "usuário" e "senha" são validos.
2 - Caso verdadeiro o sistema continua o processo.
3 - Caso contrario, volta para a tela de identificação, impedindo qualquer avanço do
usuário.
APÊNDICE D – PLANO DE TESTES E RELATÓRIOS DE EXECUÇÃO
84
Sistema de Automação Residencial por Comando de Voz
Plano de Testes
Versão 1.0
85
Histórico de Revisão
Data Versão Descrição Autor
23/07/2009 1.0 Criação do Plano de Testes Valmir Ferreira Rocha
86
Índice
1. INTRODUÇÃO .............................................................................................................. 87
1.1. Finalidade ................................................................................................................. 87
1.2. Informações Detalhadas ........................................................................................... 87
1.3. Escopo ...................................................................................................................... 87
1.4. Identificação do Projeto ............................................................................................ 87
2. REQUISITOS DE TESTE ............................................................................................. 88
2.1. Teste Funcional ........................................................................................................ 88
2.2. Teste de Interface do Usuário ................................................................................... 88
2.3. Teste de Configuração .............................................................................................. 88
2.4. Teste de Instalação ................................................................................................... 89
3. ESTRATÉGIA DE TESTE ........................................................................................... 89
3.1. Tipos de Teste ........................................................................................................... 89
4. RECURSOS .................................................................................................................... 92
4.1. Papéis ........................................................................................................................ 92
87
Plano de Testes
1. INTRODUÇÃO
1.1. Finalidade
Há um mito segundo o qual, se fôssemos realmente bons para programar, não haveria
'bugs' a ser procurados. Se pudéssemos realmente nos concentrar, se todos usassem
programação estruturada, projeto 'top-down’, tabelas de decisão, se tivéssemos as balas de
prata certas, então não haveria 'bugs (LARMAN, 2007)0.
Por melhores que sejam as técnicas e processos sempre estarão presentes os erros
humanos. Não se pode garantir que os programas funcionem corretamente, sem a presença de
erros, portanto, para ter um sistema mais confiável, com o mínimo de erros, são executados os
testes.
A principal finalidade do Teste é localizar e expor os pontos fracos do software
(SHAW, 2003)0.
1.2. Informações Detalhadas
O sistema de automação residencial por comando de voz permite ligar e desligar
aparelhos domésticos pela aplicação Web ou desktop.
1.3. Escopo
Foram feitos testes de funcionalidades do sistema para verificar se a operabilidade do
sistema atende aos requisitos solicitados, testes de interface do usuário, de configuração e de
instalação, gerando um sistema mais estável e seguro para utilização.
1.4. Identificação do Projeto
A tabela abaixo identifica a documentação e disponibilidade; ela é utilizada para
desenvolver o plano de teste:
88
Documento
(e versão / data)
Criado ou
Disponível
Recebido ou
Revisado
Autor ou
Recurso
Observações
Especificação de Requisitos Sim Não Sim Não
Relatórios de Caso de Uso Sim Não Sim Não
Plano de Projeto Sim Não Sim Não
Manual do Usuário Sim Não Sim Não
Manual de Instalação Sim Não Sim Não
2. REQUISITOS DE TESTE
A listagem a seguir identifica os itens (casos de uso, requisitos funcionais, requisitos
não funcionais) que foram identificados como objetivos de teste. A lista representa o que foi
testado.
2.1. Teste Funcional
Verificar se o usuário consegue ligar e desligar qualquer aparelho pela
aplicação Web
Verificar se o usuário consegue ligar e desligar qualquer aparelho pela
aplicação Desktop
Verificar se o usuário consegue ligar e desligar qualquer aparelho pela
aplicação Desktop e depois visualizar status pela aplicação Web
Verificar se todos os casos de uso estão implementados corretamente
2.2. Teste de Interface do Usuário
Verificar se todas as funcionalidades estão disponíveis
Verificar se todas as telas nas Aplicações Web e Desktop atendem os requisitos
de interface amigável
Verificar se o padrão visual é consistente em todas as telas
2.3. Teste de Configuração
89
Verificar se a aplicação Web funciona em diferentes browsers
2.4. Teste de Instalação
Verificar se um usuário seguindo apenas os passos descritos no manual de
instalação é capaz de instalar o sistema Automação Residencial.
3. ESTRATÉGIA DE TESTE
3.1. Tipos de Teste
3.1.1. Teste Funcional
Objetivo do Teste: Garantir a funcionalidade adequada de objetivo do teste, incluindo
navegação e processamento.
Técnica: Executar cada caso de uso, fluxo de caso de uso ou função a fim
de verificar o seguinte:
Os resultados esperados ocorrerão quando forem usados estados
válidos.
Cada regra de negócio será adequadamente aplicada.
Critérios de
Conclusão:
Todos os testes planejados foram executados.
Todos os defeitos identificados foram abordados.
Considerações
Especiais:
Nenhuma.
90
3.1.2. Teste da Interface do Usuário
Objetivo do Teste: Verificar se:
A navegação pelo sistema reflete adequadamente as funções e
os requisitos de negócio, incluindo os métodos de janela-a-janela,
de campo-a-campo e de uso de acesso (como, movimentos do
mouse).
Os objetos e as características da Web, como menus, tamanho,
posição, estado e enfoque, estão de acordo com os padrões.
Técnica: Criar/modificar testes de cada página para verificar a navegação.
Critérios de
Conclusão:
Cada janela foi completamente verificada para que permaneça
consistente com a versão de avaliação de desempenho ou esteja de
acordo com o padrão aceitável.
Considerações
Especiais:
Nenhuma.
3.1.3. Teste de Configuração
Objetivo do Teste: Verificar se o sistema funciona adequadamente nas
configurações de hardware/software necessárias.
Técnica: Abrir/fechar vários softwares não relacionados a objetivos
do teste, como os aplicativos da Microsoft, Excel e Word,
como parte do teste, ou antes, do início do teste.
Testar o sistema utilizando diversos computadores clientes
diferentes.
Critérios de Conclusão: O sistema funciona de forma satisfatória nas configurações
testadas.
Considerações
Especiais:
Nenhuma.
91
3.1.4. Teste de Instalação
Objetivo do Teste: Verificar se as instruções incluídas no manual de
instalação são suficientes para a correta instalação do
software:
Testar o sistema utilizando uma nova máquina.
Instalar uma mesma versão já instalada do Sistema
Automação residencial por comando de voz.
Técnica: Testar a instalação do Sistema Automoção Residencial
em cada cenário: em uma nova máquina e atualização de
uma máquina que já contenha a mesma versão instalada
Critérios de Conclusão: O Sistema Automação Residencial executa suas transações corretamente.
Considerações Especiais: Nenhuma.
3.1.5. Ferramentas
As seguintes ferramentas serão empregadas nesse projeto:
Ferramenta Fornecedor/Desenvolvimento Próprio Versão
Internet Explorer Navegador Web Microsoft 7.0.5750.13
Internet Explorer Navegador Web Microsoft 8.1.2.34
Internet Explorer Navegador Web Microsoft 7.0.5730.13
Firefox Navegador Web Mozilla 3.0.8
Chrome Navegador Web Google 2.0.172.30
92
4. RECURSOS
4.1. Papéis
O papel Testador é responsável pelas atividades centrais do esforço de teste, que
envolve conduzir os testes necessários e registrar os resultados desses testes (SHAW, 2003)0.
Isso inclui:
Configurar e executar os testes
Registrar os resultados e verificar a execução dos testes
Analisar erros de execução e recuperar-se deles
Documentar solicitações de alteração
93
Ordem Categoria Nome Caso de Uso Nome da Simulação Simulação Resultado Esperado Resultado dos testes
1 Testes Funcionais
UC1 - Cadastrar Aparelho Cadastrar Aparelho 1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários" 2 - O usuário clica no botão Cadastrar Aparelho 3 - O usuário insere o nome, descrição, comando de voz de entrada, comando de voz de saída e a porta 4 - O usuário clica no botão salvar 5 - O sistema emite mensagem de Aparelho Cadastrado com Sucesso.
Cadastramento efetuado na base de dados
O cadastro do aparelho foi realizado com sucesso
2 Testes Funcionais
UC1 - Cadastrar Aparelho Aparelho já cadastrado
1 - O sistema verifica se o aparelho já está cadastrado. 2 - O sistema emite a mensagem "Equipamento já é cadastrado".
Cadastramento não efetuado na base de dados
Verificação de cadastros já realizados foi efetuada com sucesso, impedindo o cadastramento de informações duplicadas.
3 Testes Funcionais
UC1 - Cadastrar Aparelho Porta já cadastrada 1 - O sistema verifica que a porta já está em uso 2 - O sistema emite a mensagem "Porta já encontra em uso"
Cadastramento não efetuado na base de dados
Verificação de cadastros já realizados foi efetuada com sucesso, impedindo o cadastramento de informações duplicadas.
Roteiro de Simulações de Testes Automação Residencial por Comando de Voz
Descrição do Ambiente Os testes foram realizados com o Internet Explorer 7 e 8, Firefox 3, utilizando-se do Microsoft Framework 3.5 com o banco de dados MySql Server, SO Window XP
Configuração da Máquina Configuração da Máquina: Windows XP com Service Pack 3, 2GB de RAM e 120 GB de Hard Disk
Ciclo de Testes: 1 a 19 Período de Execução: 23/06/2009 a 26/06/2009 Categoria Caso de Uso
94
4 Testes Funcionais
UC2 - Consultar Aparelho Consultar Aparelho 1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários" 2 - O usuário clica na lupa de pesquisa do setor de aparelhos 3 - O usuário visualiza uma lista de todos os aparelhos cadastrados 4 - O usuário seleciona o item desejado
Consulta de Aparelhos Realização da consulta de aparelhos foi realizada com sucesso.
5 Testes Funcionais
UC2 - Consultar Aparelho Consultar Aparelho 1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários" 2 - O usuário clica na lupa de pesquisa do setor de aparelhos 3 - O usuário visualiza uma lista de todos os aparelhos cadastrados 4 - O usuário não seleciona nenhum item 5 - O usuário clica no "X" para fechar a janela de pesquisa
Fechar a tela de pesquisa, e retornar a tela principal do sistema.
Teste ocasionou falha, pois ao fechar a tela de pesquisa através do botão X, o sistema fechou-se por completo. Não se comportando com o devido. Correções foram feitas e corrigidas.
6 Testes Funcionais
UC3 - Atualizar Aparelho Alterar Aparelho 1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários" 2 - O usuário clica na lupa de pesquisa do setor de aparelhos 3 - O usuário visualiza uma listagem de todos os aparelhos cadastrados 4 - O usuário escolhe o aparelho desejado 5 - O usuário clica no botão Editar 6 - O usuário faz as alterações necessárias 7 - O usuário clica no botão Gravar
Alterar cadastro já efetuado na base de dados
Processo de edição de aparelhos já cadastrados foi realizado com sucesso
7 Testes Funcionais
UC4 - Excluir Aparelho Excluir Aparelho 1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários 2 - O usuário clica na lupa de pesquisa no setor de aparelhos 3 - O usuário visualiza uma lista de todos os aparelhos cadastrados 4 - O usuário escolhe o aparelho desejado 5 - O usuário clica no botão Deletar 6 - O usuário confirma a mensagem de exclusão
Excluir Aparelho na base de dados
A exclusão do aparelho foi realizado com sucesso.
8 Testes Funcionais
UC4 - Excluir Aparelho Excluir Aparelho 1 - O usuário cancela a exclusão Excluir Aparelho na base de dados
A operação foi realizada com sucesso, no entanto a exclusão não foi realizada pois o usuário cancelou a operação.
95
9 Testes Funcionais
UC5 - Cadastrar Usuário Cadastrar Usuário 1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários" 2 - O usuário clica no botão Cadastrar Usuário 3 - O usuário insere o nome, login, senha e confirmar senha 4 - O usuário clica no botão salvar 5 - Sistema emite mensagem de cadastro de usuário realizada com sucesso.
Cadastrar usuário na base de dados
O cadastro do usuário foi realizado com sucesso
10 Testes Funcionais
UC5 - Cadastrar Usuário Cadastrar Usuário 1 - O sistema verifica se o login já existe 1.1 - O sistema emite a mensagem "Este nome de usuário já está em uso". 2 - O sistema verifica se a senha é idêntica ao campo Confirmar senha 2.1 - O sistema emite a mensagem "Os valores do campo senha e confirmar senha tem que ser iguais”.
Campos obrigatórios Sistema validou corretamente os dados já existentes, não deixando realizar duplicidade dos dados
11 Testes Funcionais
UC6 - Consultar Usuário Consultar Usuário 1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários" 2 - O usuário clica na lupa de pesquisa do setor de Cadastro de Usuários 3 - O usuário visualiza uma lista de todos os usuários cadastrados 4 - O usuário seleciona o item desejado
Consultar Usuários cadastrados na base de dados
A consulta retornou dados corretamente
12 Testes Funcionais
UC6 - Consultar Usuário Consultar Usuário 1 - Caso não tenha nenhum usuário cadastrado, e emitido a seguinte mensagem "Não existe usuários cadastrados”.
Consultar Usuários cadastrados na base de dados
Sistema se comportou perfeitamente, no entanto a consulta não foi realizada por não possui base de dados.
13 Testes Funcionais
UC6 - Consultar Usuário Consultar Usuário 1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários" 2 - O usuário clica na lupa de pesquisa do setor de Usuários 3 - O usuário visualiza uma lista de todos os usuários cadastrados 4 - O usuário não seleciona nenhum item 5 - O usuário clica no "X" para fechar a janela de pesquisa
Fechar a tela de pesquisa, e retornar a tela principal do sistema.
Teste ocasionou falha, pois ao fechar a tela de pesquisa através do botão X, o sistema fechou-se por completo. Não se comportando com o devido. Correções foram feitas e corrigidas.
96
14 Testes Funcionais
UC7 - Atualizar Usuário Alterar Usuário 1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários" 2 - O usuário clica na lupa de pesquisa do setor de Cadastro de Usuários 3 - O usuário visualiza uma listagem de todos os usuários cadastrados 4 - O usuário escolhe o item desejado 5 - O usuário clica no botão Editar 6 - O usuário faz as alterações necessárias 7 - O usuário clica no botão Gravar
Alterar cadastro já efetuado na base de dados
Sistema efetuou a alteração realizada pelo usuário corretamente.
15 Testes Funcionais
UC8 - Excluir Usuário Excluir Usuário 1 - O usuário clica na Aba "Cadastro de Aparelhos e Usuários 2 - O usuário clica na lupa de pesquisa do setor de Cadastro de Usuários 3 - O usuário visualiza uma lista de todos os aparelhos cadastrados 4 - O usuário escolhe o aparelho desejado 5 - O usuário clica no botão Deletar 6 - O usuário confirma a mensagem de exclusão
Cadastramento efetuado na base de dados
Sistema excluiu corretamente o registro solicitado pelo usuário.
16 Testes Funcionais
UC8 - Excluir Usuário Excluir Usuário 1 - O usuário cancela a exclusão Excluir Usuário na base de dados
A operação foi realizada com sucesso, no entanto a exclusão não foi realizada pois o usuário cancelou a operação.
17 Testes Funcionais
UC9 - Validar Comando de Voz Validar Comando de Voz
1 - O comando de voz é processado 2 - O sistema faz a verificação do comando voz, validando ou não através do banco de dados que possui todas as informações necessárias. 3 - A verificação do sistema é feito através do componente Microsoft Speech SDK 5.1 de reconhecimento de voz. 4 - Se o comando de voz de entrada for valido, então o aparelho é ligado. 5 - Se o comando de voz de saída for valido, então o aparelho é desligado.
Validação do comando de voz
O sistema realizou a validação do comando junto ao banco de dados perfeitamente.
97
18 Testes Funcionais
UC10 - Ligar Aparelho Ligar Aparelho 1 - Após o conhecimento de voz for aceito pela validação o equipamento é ligado.
Ligar Aparelho Sistema ligou o aparelho como previsto.
19 Testes Funcionais
UC11 - Desligar Aparelho Desligar Aparelho 1 - Após o conhecimento de voz for aceito pela validação o equipamento é desligado.
Desligar Aparelho Sistema desligou o aparelho perfeitamente como previsto.
20 Testes Funcionais
UC12 - Desligar Aparelho Desligar Aparelho 1 - Caso o reconhecimento de voz não for validado e nem aceito, o equipamento permanece como esta.
Desligar Aparelho Comportamento perfeito, pois caso o comando de voz não seja aceito, o sistema não executa nenhuma ação, apenas relata que o comando ainda não foi reconhecido.
21 Testes Funcionais
UC12 - Aguardar execução de comando do sistema Web
Aguardando execução
1 - O sistema fica em Stand By aguardando algum comando ser executado 2 - O usuário executa algum comando através do sistema Web, para ligar ou desligar o aparelho 3 - O sistema processa o comando 4 - O sistema liga ou desliga o aparelho de acordo com o comando recebido via Web.
Executar comandos via sistema web
Sistema web funcionou corretamente
22 Testes Funcionais
UC13 - Capturar sistema local Capturar informações do sistema local
1 - Caso o WebService estiver normalizado, quando o sistema atingir este ponto, automaticamente ele conecta com a base de dados local, carregando no sistema web.
Sincronizando informações locais e Web
A sincronização de dados entre web e desktop funcionou perfeitamente.
98
23 Testes Funcionais
UC14 - Validar Identificação Validar Identificação 1 - Sistema verifica se as credenciais "usuário" e "senha" são validos 2 - Caso verdadeiro o sistema continua o processo 3 - Caso contrario volta para a tela de identificação, impedindo qualquer avanço do usuário.
Validando Identificação do Usuário no acesso ao sistema Web
Validação de usuário no sistema web funcionou perfeitamente.
99
Ordem Categoria Nome do Teste Nome da Simulação Simulação Resultado Esperado Situação
1 Interface Mensagem Mensagem de Erro Após a inclusão de qualquer cadastro retornar mensagem amigável de erro para o usuário
Mensagem amigável Sistema emitiu corretamente as mensagens de erro ocorrido.
2 Interface Ícones Ícones nas telas Ao entrar na Aba "Cadastro de Aparelhos e Usuários" colocar ícones nos botões de consulta
Ícones visíveis Os ícones dos botões de consulta foram colocados corretamente.
3 Interface Botões Botões de ações Colocar hints nos botões de ações como "Cadastrar Aparelho”, "Cancelar", "Editar”, "excluir" etc...
Mensagem amigável nos botões As informações de hints foram adicionadas perfeitamente.
4 Interface Tabulação Simular Tabulação nas telas Passar por todas as telas e ir teclando no TAB para ver se passa de campo
Deverá passar por todos os campos e botões
O processo de tabulação funcionou corretamente.
5 Interface Fluxo das Abas Simular fluxo nas abas Clicar em todas as abas para verificar a exibição dos dados a serem mostrados ou ocultados
Deverá passar por todas as abas Em cada aba, as informações foram mostradas perfeitamente.
6 Execução Iniciar aplicação Desktop Iniciar aplicação Desktop O usuário clica para abrir a aplicação desktop, em seguida deverá habilitar o comando de voz.
Aplicação iniciada Inicialização desktop, e habilitação do comando de voz, funcionou corretamente.
Roteiro de Simulações de Testes Automação Residencial por Comando de Voz
Descrição do Ambiente Os testes foram realizados com o Internet Explorer 7 e 8, Firefox 3, utilizando-se do Microsoft Framework 3.5 com o banco de dados MySql Server, SO Windows XP
Configuração da Máquina Configuração da Máquina: Windows XP com Service Pack 3, 2GB de RAM e 120 GB de Hard Disk
Ciclo de Testes: 1 a 19 Período de Execução: 21-10-2009 a 30-10-2009 Categoria Interface
100
7 Execução Iniciar aplicação Web Iniciar aplicação Web Após a inicialização do aplicativo Desktop, já é possível inicializar a qualquer momento o aplicativo Web.
Aplicação iniciada Aplicativo web inicializado com sucesso.
8 Execução Iniciar Aplicação Web em diferentes Browsers
Iniciar aplicação Web Testar se a aplicação web funciona em diferentes browsers. Browsers testados: Internet Explorer, Firefox, Chrome.
Aplicação iniciada Sistema funcionou corretamente em todas as aplicações descritas.
top related