Escolar Documentos
Profissional Documentos
Cultura Documentos
AUTOMAO RESIDENCIAL POR COMANDO DE VOZ, UTILIZANDO MICROSOFT SPEECH RECOGNITION SDK 5.1
UBERLNDIA 2009
AUTOMAO RESIDENCIAL POR COMANDO DE VOZ, UTILIZANDO MICROSOFT SPEECH RECOGNITION SDK 5.1
Trabalho apresentado Universidade de Uberaba, como parte dos requisitos para concluso de graduao em Sistemas de Informao da Universidade de Uberaba. Orientador: Lilian R. Mendes Paiva. Ms
UBERLNDIA 2009
AUTOMAO RESIDENCIAL POR COMANDO DE VOZ, UTILIZANDO MICROSOFT SPEECH RECOGNITION SDK 5.1
Trabalho apresentado Universidade de Uberaba, como parte dos requisitos para concluso de graduao em Sistemas de Informao da Universidade de Uberaba. Orientador(a): Lilian R. Mendes Paiva. Ms rea de concentrao: Automao Residencial
Maria Fernanda Soares de Almeida Universidade de Uberaba Prof. Carlos Magno Medeiros Queiroz. Ms Universidade de Uberaba
A toda minha famlia. Aos meus pais. minha Esposa. A Deus, pela fora de sempre.
AGRADECIMENTOS
Primeiramente agradeo Deus por ter me dado fora de vontade para nunca desistir apesar das grandes dificuldades ocorridas. com muita satisfao que dedico este trabalho aos meus pais, meus irmos e a minha esposa Gercilene Cristina, que sempre apostaram em mim, me deram apoio, carinho e compreenso, sendo neste longo perodo 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 contriburam para esta conquista. Aos verdadeiros amigos, compadres e parceiros que ganhei no decorrer de todo o curso.
RESUMO
Atualmente, os sistemas automatizados so largamente utilizados devido busca pela qualidade de vida, segurana e controle de equipamentos. A automao surgiu para facilitar e reduzir trabalhos, tanto empresarias e industriais como domsticos, proporcionando aos usurios maior comodidade, conforto, praticidade, produtividade e reduo de custos. Alm disso, a automatizao de tarefas visa possibilitar a incluso digital dos usurios de necessidades especiais. Este trabalho apresenta o desenvolvimento de um sistema para automatizao de equipamentos residenciais atravs do reconhecimento de voz. O sistema utiliza uma estrutura de hardware prprio responsvel por realizar a conexo entre os equipamentos. O prottipo desenvolvido permite que o monitoramento dos equipamentos seja realizado em duas plataformas distintas sendo elas: Internet e aplicao desktop. O Microsoft Speech Recognition (SDK), integrado ao prottipo para execuo dos comandos por reconhecimento de voz, fundamenta-se em agentes inteligentes, que considerado como uma entidade que executa um conjunto de operaes que lhes foram incumbidas por um usurio ou outro programa, com algum grau de independncia ou autonomia e, executando estas operaes, emprega algum conhecimento dos objetivos ou desejos do usurio (IBM Research, 1998). A comunicao entre o computador pessoal (PC) e o hardware foi realizada atravs da porta paralela. Sendo assim, o projeto utiliza tecnologias acessveis, visando simplicidade e baixo custo ao simular uma soluo de pequeno porte. A criao da interface grfica prioriza um ambiente amigvel e de simples utilizao, j que seu objetivo permitir que portadores de necessidades especiais e pessoas sem grandes conhecimentos tcnicos possam interagir facilmente com o prottipo.
Palavras-chave: Agentes inteligentes, automao residencial, Microsoft Speech Recognition, segurana, baixo custo, porta paralela.
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.
LISTA DE FIGURAS
FIGURA 1. FIGURA 2. FIGURA 3. FIGURA 4. FIGURA 5. FIGURA 6. FIGURA 7. FIGURA 8. FIGURA 9. FIGURA 10. FIGURA 11. FIGURA 12. FIGURA 13. FIGURA 14. FIGURA 15. FIGURA 16. FIGURA 17. FIGURA 18. FIGURA 19. FIGURA 20. FIGURA 21. FIGURA 22. FIGURA 23. FIGURA 24. FIGURA 25. FIGURA 26. FIGURA 27. FIGURA 28. FIGURA 29.
ESQUEMA ELTRICO GERAL DO CIRCUITO.......................................... 30 PLACA DO LEDS ........................................................................................... 31 CIRCUITO DO DRIVER DE ACIONAMENTO ........................................... 32 CIRCUITO DO BUFFER PARA PROTEO DA PORTA PARALELA .... 34 CIRCUITO DA FONTE DE ALIMENTAO REGULADA (+5V) ............ 34 DIAGRAMA DAS FASES DO PROCESSO .................................................. 36 DB25 QUE FICA ATRS DO MICRO .......................................................... 39 CONECTOR MACHO DO CABO PARALELO. ........................................... 39 FOTO DO CONECTOR DB25 MACHO DO CABO PARALELO ............... 40 ESQUEMA DE FUNCIONAMENTO DO DB25 NO MODO SPP............ 40 CONECTOR CENTRONICS 36 PINOS ..................................................... 41 ESBOO DA CONEXO DO CONECTOR DB25 ................................... 42 CASO DE USO PRINCIPAL DO SISTEMA.............................................. 46 DIAGRAMA DE CLASSE DO MODULO WEB ....................................... 47 DIAGRAMA DE CLASSE DO MODULO DESKTOP.............................. 48 DIAGRAMA DA ESTRUTURA DOS APARELHOS ............................... 49 DIAGRAMA DA ESTRUTURA DOS USURIOS. .................................. 50 DIAGRAMA ENTIDADE RELACIONAMENTO DO BD ....................... 51 CDIGO FONTE DA HABILITAO DO COMPONENTE DE VOZ ... 54 CDIGO FONTE DA EXECUO DOS COMANDOS .......................... 55 APLICAO DESKTOP ............................................................................ 58 CADASTRO DE APARELHOS NA APLICAO DESKTOP ................ 58 CADASTRO DE USURIOS UTILIZADOS PARA ACESSO WEB....... 59 VISO GERAL DA REA DE CADASTRAMENTOS............................ 59 APLICAO WEB (LOGIN) ..................................................................... 60 APLICAO WEB ..................................................................................... 60 TESTE EM PLACA DE PROTOBOARD................................................... 67 PROJETO NO COMPUTADOR ................................................................. 68 ADESIVO PLOTADO SEM MASCARA ................................................... 68
FIGURA 30. FIGURA 31. FIGURA 32. FIGURA 33. FIGURA 34. FIGURA 35. FIGURA 36. FIGURA 37. FIGURA 38. FIGURA 39. FIGURA 40. FIGURA 41. FIGURA 42. FIGURA 43.
RETIRANDO A MASCARA ...................................................................... 69 COLANDO A MASCARA NO ADESIVO................................................. 69 FIXANDO BEM A MASCARA AO ADESIVO ........................................ 70 RETIRANDO A MASCARA ...................................................................... 70 COLANDO O ADESIVO NA PCB COM A MSCARA .......................... 71 RETIRANDO EXCESSO DE ADESIVOS ................................................. 71 VERIFICANDO PROJETO E PLACA ....................................................... 72 CORROENDO AS PLACAS COM PERCLORETO DE FERRO .............. 72 LAVANDO AS PLACAS APS CORROSO .......................................... 73 CORROSO FINALIZADA ....................................................................... 73 MONTAGEM DOS COMPONENTES ....................................................... 74 MONTANDO PROJETO ............................................................................. 74 PROJETO FINALIZADO ............................................................................ 75 TRANSISTOR BC337. ................................................................................ 75
RETIRADO DE ROBOTERNETZ (ROBOTERNETZ, 2009). .............................................. 75 FIGURA 44. FIGURA 45. FIGURA 46. FIGURA 47. FIGURA 48. DIODO 1N4148 ........................................................................................... 76 RESISTOR (MILCOMP PRODUTOS ELETRNICOS LTDA., 2009). ... 77 REL DE 5V ................................................................................................ 77 LED (DIODO SEMICONDUTOR) ............................................................. 78 CI 74LS541 .................................................................................................. 78
LISTA DE QUADROS
QUADRO 1 Endereos da porta paralela ..................................................................... QUADRO 2 - Significado de cada pino do conector Centronics 36 pinos...................... QUADRO 3 - Sequncia de bytes gerados pela porta paralela ....................................... QUADRO 4 - Script para criao da base de dados........................................................
38 41 43 52
10
LISTA DE SIGLAS
API Application Programming Interface AR Automao 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
SUMRIO 1. 1.1. 1.2. 1.3. 1.3.1. 1.3.2. 1.4. 2. 2.1. 2.2. 2.2.1. 2.2.2. 2.2.2.1. 2.2.2.2. 2.2.2.3. 2.3. 2.3.1. 2.3.2. 2.3.3. 2.3.4. 2.3.5. 2.4. 2.4.1. 3. 3.1. 3.2. 3.3. 3.3.1. 3.3.2. 3.3.3. 3.3.4. 3.3.5. 3.3.6. 4. 4.1. 4.1.2. 4.1.2.1. 4.1.2.2. INTRODUO .................................................................................................. 14 Justificativa ........................................................................................................... 14 Motivao ............................................................................................................. 14 Objetivos............................................................................................................... 15 Objetivo geral ....................................................................................................... 15 Objetivos especficos ............................................................................................ 15 Estrutura do trabalho ............................................................................................ 16 FUNDAMENTAO TERICA ..................................................................... 17 Agentes inteligentes.............................................................................................. 17 Reconhecimento de voz ........................................................................................ 18 O que o reconhecimento de voz? ....................................................................... 18 Como funciona?.................................................................................................... 19 Transformao PCM ............................................................................................ 19 Padres acsticos .................................................................................................. 21 Modelos lingusticos ............................................................................................. 22 Microsoft speech recognition SDK ...................................................................... 23 Introduo ............................................................................................................. 23 SAPI ..................................................................................................................... 24 Gramtica ............................................................................................................. 25 Regras ................................................................................................................... 26 Contexto livre de gramtica .................................................................................. 27 Automao residencial (domtica) ....................................................................... 27 Objetivos da automao residencial ..................................................................... 27 HARDWARE ...................................................................................................... 29 Eagle Layout Editor .............................................................................................. 29 Estrutura do Hardware .......................................................................................... 35 Porta paralela ........................................................................................................ 37 Introduo ............................................................................................................. 37 Modelos de porta paralela .................................................................................... 37 Endereos da porta paralela .................................................................................. 38 Conector DB25 ..................................................................................................... 38 Conector macho Centronics 36 pinos ................................................................... 40 Ligando e desligando aparelhos externos atravs da porta paralela ..................... 42 DESENVOLVIMENTO DO SOFTWARE ...................................................... 44 Documentao ...................................................................................................... 44 UML ..................................................................................................................... 44 Diagramas de casos de uso ................................................................................... 45 Diagrama de classes.............................................................................................. 47
12
Metodologias ........................................................................................................ 51 Processo de comunicao entre software e SDK 5.1............................................ 53 Plano de testes ...................................................................................................... 55 Apresentao do software..................................................................................... 56 Introduo ............................................................................................................. 56 Requisitos funcionais............................................................................................ 57 Aplicao desktop ................................................................................................ 57 Aplicao web ...................................................................................................... 60 CONCLUSO..................................................................................................... 61
5.1. Trabalhos futuros .............................................................................................................. 62 REFERNCIAS ..................................................................................................................... 63 ANEXOS ................................................................................................................................. 66 APNDICE A - DESCREVENDO A CRIAO DA PLACA DE CIRCUITO IMPRESSO (PCB).................................................................................................................. 67 APNDICE B - COMPONENTES ELETRNICOS UTILIZADOS ............................. 75 B.1 Transstor 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 APNDICE C CENRIOS 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 Usurio................................................................................................... 80 C.6. UC6 - Consultar Usurio .................................................................................................. 81 C.7. UC7 - Alterar Usurio....................................................................................................... 81 C.8. UC8 - Excluir Usurio ...................................................................................................... 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 Execuo de Comando no Sistema .................................................... 83 C.13. UC13 - Capturar informaes do sistema Local ............................................................. 83 C.14. UC14 - Validar Identificao .......................................................................................... 83 APNDICE D PLANO DE TESTES E RELATRIOS DE EXECUO ................... 83 1. 1.1. INTRODUO .................................................................................................. 87 Finalidade ............................................................................................................. 87
13
1.2. 1.3. 1.4. 2. 2.1. 2.2. 2.3. 2.4. 3. 3.1. 3.1.1. 3.1.2. 3.1.3. 3.1.4. 3.1.5. 4. 4.1.
Informaes Detalhadas ....................................................................................... 87 Escopo .................................................................................................................. 87 Identificao do Projeto ........................................................................................ 87 REQUISITOS DE TESTE ................................................................................. 88 Teste Funcional .................................................................................................... 88 Teste de Interface do Usurio ............................................................................... 88 Teste de Configurao .......................................................................................... 88 Teste de Instalao ............................................................................................... 89 ESTRATGIA DE TESTE ............................................................................... 89 Tipos de Teste....................................................................................................... 89 Teste Funcional .................................................................................................... 89 Teste da Interface do Usurio ............................................................................... 90 Teste de Configurao .......................................................................................... 90 Teste de Instalao ............................................................................................... 91 Ferramentas .......................................................................................................... 91 RECURSOS ........................................................................................................ 92 Papis .................................................................................................................... 92
14
1. INTRODUO
1.1.
Justificativa
A automao est cada dia mais presente em nosso cotidiano, tanto nas residncias quanto nas indstrias e shoppings. Isso se deve vrios fatores, tais como reduo do tempo disponvel das pessoas e a constante preocupao das mesmas com a segurana e economia dos recursos disponveis. A domtica (automao residencial) tem evoludo a cada dia. Atualmente, na maioria dos softwares existentes de automao, os usurios possuem pequenos confortos, como por exemplo, portes eletrnicos, alarmes, luzes com timer, entre outros. O grande objetivo a convergncia de tecnologias fazendo com que estejam conectadas entre si, e que os moradores de uma residncia automatizada tenham o mximo de conforto e segurana que a tecnologia possibilitar (AFONSO, 2006). O campo de pesquisa relacionado ao reconhecimento de voz muito grande, envolvendo vrias reas, tais como jogos, editores de texto, extenso de habilidades para deficientes fsicos, atividades domsticas simples, tais como ligar e desligar aparelhos, sistemas de reconhecimento de fala para possibilitar dilogos inteligentes com mquinas, uso em pesquisas mdicas sobre a voz e rgos relacionados a sistemas de segurana.
1.2.
Motivao
Aps levantamento de informaes sobre diversos produtos disponveis 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 espao e necessidade de criao de novos produtos nesta rea, pois os j existentes possuem alto custo, exigem hardware e software compatveis e fazem com que exista uma constante dependncia de fabricantes externos. O sistema de automao apresentado neste projeto independente de especificaes de hardware, possibilitando que qualquer computador domstico simples seja capaz de executar perfeitamente todo o sistema.
15
Existe uma ausncia de informaes mais especficas em produtos para a rea de reconhecimento de voz, principalmente no Brasil, sendo que a maioria das referncias encontradas so provenientes de pases da Europa e dos Estados Unidos. Diante destas informaes, este trabalho busca a utilizao e integrao com o componente Microsoft Speech Recognition SDK (LONG, 2003), uma biblioteca de recursos disponibilizada gratuitamente atravs do site da Microsoft (2009), que tem como objetivo auxiliar no desenvolvimento de solues com o reconhecimento de voz. Esta ferramenta foi integrada ao software de Automao Residencial disponibilizando meios para controlar equipamentos domsticos atravs do processamento computadorizado, com baixo custo e grande conforto. Alm disto, o trabalho tem como objetivo a contribuio para o processo de incluso digital dos portadores de necessidades especiais.
1.3.
Objetivos
Desenvolver um sistema de automao residencial para reconhecimento de voz, com comandos nicos que ativaro determinados pontos de energia conectados a aparelhos eletroeletrnicos e domsticos, atravs da porta paralela do computador.
Tm-se como objetivos especficos: a) Classificar e reconhecer palavras atravs do componente Microsoft Speech Recognition SDK 5.1; b) Ligar/Desligar o aparelho domstico atravs do reconhecimento de voz; c) Possibilitar que os aparelhos da residncia sejam controlados (Ligados ou Desligados) pelas aplicaes desktop ou web; d) Permitir que o usurio monitore os estados de todos os aparelhos que esto ao seu controle pelas aplicaes desktop e web.
16
1.4.
Estrutura do trabalho
O Captulo 2 (dois) apresenta o estado da arte quanto ao funcionamento do reconhecimento de voz, destacando a complexidade das tcnicas e sua evoluo. Conceitos sobre Agentes Inteligentes diante do componente utilizado, reconhecimento da voz e seu funcionamento. Descreve o Microsoft Speech Recognition, e uma breve descrio sobre automao residencial e seus objetivos. O Captulo 3 (trs) relata toda a modelagem do sistema de automao residencial por comando de voz, passando pela estrutura do hardware, softwares utilizados na construo do projeto, componentes eletrnicos utilizados, os casos de uso e os planos de teste. O Captulo 4 (quatro) apresenta o software que foi desenvolvido seguindo os conhecimentos adquiridos atravs da pesquisa bibliogrfica. O Captulo 5 (cinco) traz a concluso do trabalho e as propostas futuras para melhorias do sistema.
17
2. FUNDAMENTAO TERICA
2.1.
Agentes inteligentes
Basicamente um agente inteligente possui autonomia e executa tarefas, estando sempre vinculado a uma ao disparada automaticamente ou a uma ao externa manual a ser executada. A utilizao de agentes inteligentes cada vez mais difundida no meio computacional, principalmente nas reas de interfaces, gerenciamento de redes, recuperao de informao, sistemas distribudos e automao em geral (BARONE; YEPES, 2002). O termo agente inteligente refere-se a todo ente que possui habilidade, capacidade e permisso 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 indivduos em suas tarefas (BARONE; YEPES, 2002). Como ainda no possvel ter um consenso exato da definio sobre o termo agente inteligente, algumas definies mais relevantes so destacadas de acordo com alguns estudiosos: Segundo Wooldridge e Jennings (1994), so sistemas que apresentam um comportamento que determinado por um processo de raciocnio baseado na representao de suas atitudes, tais como crenas, 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 usurio. Tem-se ainda a definio de Russel e Norvig (1995), segundo o qual a inteligncia est intrinsecamente relacionada com as aes racionais. Agir racionalmente significa agir de forma a alcanar as metas definidas por algum, dadas s crenas deste. Assim, definem de forma genrica 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 atrs, o reconhecimento de voz era considerado por muitos como sendo apenas obra de fico cientfica. Contudo, desde o final da dcada de 50, instituies de pesquisa j estudavam meios de fazer com que a voz fosse processada pelo computador. De fato, muitas aplicaes esto sendo desenvolvidas atualmente no mercado. Um dos exemplos mais comuns, com os quais a maioria de ns certamente j tivemos contato, a tecnologia de chamada por voz, presente em alguns celulares, rdio comunicadores e outros, existentes no mercado (RABINER; JUANG, 1993).
Frequentemente, a expresso reconhecimento de voz utilizada com vrios 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, sntese de voz e autenticao 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 ao o sistema deve tomar. Este processamento torna-se simplificado, uma vez que o sistema j sabe de antemo quais os comandos disponveis para o utilizador. Este o caso de centrais de atendimento telefnico, onde o utilizador pode usar a voz em vez de pressionar botes (GUILHOTO, 2002). b) O reconhecimento de fala natural (ou fala contnua) envolve uma ou mais frases, isto , vrias palavras que tenham um sentido semntico. A fala reconhecida ento convertida em texto. O tipo de aplicao mais comum para essa tecnologia o ditado de documentos, para uso em processadores de texto, escrita de e-mails, etc. (GUILHOTO, 2002). c) A sntese de voz o processo contrrio 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 sntese de voz til nas situaes em que o utilizador no pode desviar a ateno para ler algo ou no tem
19
acesso ao texto escrito, seja porque a informao est distante ou porque o utilizador tem alguma deficincia visual (GUILHOTO, 2002). d) A autenticao de voz baseia-se, por sua vez, no fato de que a voz nica para cada pessoa e pode ser utilizada para identificar algum. Os sistemas de autenticao podem ser aplicados para permitir o acesso de uma pessoa a uma determinada funo. 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).
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 contnuos ao computador. Alm disso, o reconhecimento tambm se tornou mais inteligente, uma vez que possui um conjunto de regras gramaticais incorporadas permitindo, assim, uma melhor percepo do que est sendo ditado. Diferentes tcnicas so 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 so aplicados mtodos matemticos e estatsticos junto a sua gramtica de forma a tentar compreender o que est a ser ditado (WIKIPEDIA, 2009e).
2.2.2.1.
Transformao PCM
Quando o utilizador fornece um comando de voz pelo microfone, este transmitido para a placa de som, sendo o sinal analgico, possivelmente amostrado 16.000 vezes por segundo. Em seguida, este digitalizado atravs de uma tcnica 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 analgico. No entanto, o software de reconhecimento de voz no pode trabalhar diretamente com base nesta stream, dado que muito complicado procurar padres que possam ser relacionadas com a voz ditada atualmente. por este motivo que a voz transformada num conjunto de bandas de frequncia discreta atravs de uma tcnica chamada Fast Fourier Transform3 (FFT)
(WIKIPEDIA, 2009b). Esta consiste numa amostragem do sinal de udio em cada centsimo de segundo no domnio da frequncia. Assim, a stream de entrada agora representada por um conjunto de bandas de frequncia discretas, que podem ser facilmente identificadas pelos componentes de frequncia de um som. A partir destes componentes, possvel aproximarnos do que o ouvido humano consegue captar. O passo seguinte envolve o reconhecimento destas bandas de frequncia. Para isso, o software de reconhecimento de voz possui uma base de dados de milhares de frequncias ou fonemas. Um fonema a menor unidade de fala de um idioma ou dialeto. As dices dos fonemas so 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 frequncia de udio que foram amostradas. Se, por exemplo, a frequncia 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 atribudo ao sinal de entrada o nmero identificador do fonema na base de dados, tambm chamado de feature number4. Graas s transformadas de Fourier e base de dados de fonemas, tornou-se possvel 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.
Representao digital de um sinal analgico, onde a magnitude do sinal amostrado regularmente em intervalos uniformes, ento quantizados para uma srie de smbolos em um valor numrico (geralmente binrio) do cdigo (WIKIPEDIA, 2009e). 2 Pode ser definido como um fluxo de dados em um sistema computacional. Quando um arquivo aberto para edio, todo ele ou parte dele fica na memria, permitindo assim alteraes, 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 Nmero identificador de cada fonema ditado, na base de dados do componente reconhecedor de voz.
21
2.2.2.2.
Padres acsticos
O comando de voz composto por diversos padres acsticos e justamente com eles que so formados todos os fonemas para o reconhecimento da voz. Em primeira instncia o processo parece ser simples, a cada banda de frequncia 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 variaes no som, causadas pelo modo como as palavras so pronunciadas, que quase impossvel localizar a entrada na base de dados correspondente ao som. Se no bastasse, pessoas pronunciam a mesma palavra de formas diferentes e, para complicar ainda mais, o ambiente tambm adiciona componentes de rudo em situaes nas quais o utilizador encontra-se em ambientes ruidosos. Assim sendo, o reconhecedor de voz pode apresentar resultados diferentes dependendo da localizao do utilizador e da qualidade do microfone utilizado. Alm disso, o prprio som de um fonema varia conforme os fonemas que o rodeiam e o som produzido por um fonema altera-se desde o incio da sua pronncia at o seu fim. Sendo assim, o software precisa usar tcnicas complexas para aproximar o som de entrada e descobrir quais os fonemas que esto envolvidos. O rudo de fundo e os problemas de variao so solucionados com recurso de mtodos estatsticos, ao permitirmos que um feature number seja usado por mais do que um fonema. Isto apenas possvel porque a durao de um fonema longa se comparada com a frequncia de amostragem de um centsimo de segundo. Quer dizer que enquanto um fonema est a ser pronunciado, lhe so atribudos vrios feature numbers. Admitindo que o software j foi treinado, ou seja, j foram estabelecidas as probabilidades de ocorrncia 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 lingusticos
Consiste em reconhecer palavras, comparando as combinaes de fonemas com as palavras contidas no dicionrio utilizado pelo programa. Contudo, isto no assim to simples: o utilizador pode se atrapalhar ao pronunciar uma palavra que no faz parte do dicionrio; o software de reconhecimento de voz pode enganar-se ao reconhecer uma palavra; ainda no se sabe onde comea uma palavra e acaba a outra; o processamento de voz continua incomportvel no nvel de exigncias de CPU e de memria. por isto tudo que se torna necessrio para o reconhecedor de voz restringir as possibilidades do que est a ser ditado, atravs do recurso de modelos lingusticos e gramticas adequadas. Se o sistema for programado para fazer o reconhecimento de comandos, o modelo lingustico mais simples do que se fosse para reconhecimento da linguagem natural. Nesse caso, o dicionrio contm todas as formas possveis de pronunciar cada comando registrado no sistema. Para a fala contnua, preciso que o sistema utilize um dicionrio com todas as palavras da lngua ou pelo menos com todas as palavras usadas com maior frequncia. As condicionantes no ficam por aqui. O dicionrio deve tambm registrar as classes gramaticais de cada vocbulo. Alm disso, preciso construir um modelo gramatical com as construes possveis e a probabilidade de ocorrncia de cada tipo de construo. Com a ajuda destas informaes, o software de reconhecimento de voz tem condies para concluir que as frases foi trs anos e foi a trs anos no esto corretas, mas sim foi h trs anos. Mais uma vez, para o caso do ditado discreto (reconhecimento de comandos), as gramticas so muito mais simples, uma vez que o sistema sabe com antecedncia quais as palavras que esto espera. Antes disto, o software deve processar os fonemas para identificar corretamente o agrupamento de palavras. Os fonemas contidos em foi h trs anos sugerem termos como foia e trzanos, que no esto no dicionrio de vocbulos conhecidos e, assim, devem ser descartados. Por outro lado, ao ouvir a palavra comunicao, o reconhecedor de voz ter que decidir se ouviu comunica ao ou um nico termo. O modelo gramatical vai indicar qual a construo mais plausvel. Os programas mais recentemente implementados fazem a anlise de toda a frase para ampliar a preciso do reconhecimento tomando, assim, vantagem do fato da linguagem apresentar uma estrutura. Por exemplo, supondo que o reconhecedor de voz tem dvidas entre a escolha das palavras hora e ora, mas sabe que a palavra anterior uma, ento est na possibilidade de efetuar a escolha certa porque sabe que a sequncia uma hora faz mais sentido do que a
23
sequncia uma ora. A tcnica que est por detrs disto usa trigramas, baseados em modelos estatsticos, que calculam a probabilidade de uma determinada sequncia de palavras ocorrer. A maioria dos pacotes de reconhecimento da fala vem com dicionrios que contm cerca de 150 mil palavras do portugus. Os sistemas na lngua inglesa tambm trabalham com aproximadamente a mesma quantidade de termos no dicionrio (GUILHOTO; ROSA, 2001). .
2.3.
2.3.1. Introduo
A Microsoft est h mais de uma dcada realizando pesquisas sobre sistemas de reconhecimento de voz, inspirado a fico cientifica, e sendo atribudos a filmes, jogos, sistemas de automao e vrios outros (RABINER; JUANG, 1993). O Microsoft Speech SDK (SDK) um kit de desenvolvimento de software para construo de agentes de fala e aplicaes para o Microsoft Windows. A interface de programao de aplicaes de fala (SAPI (Speech Application Programming Interface)) (MEGATTS, 2009) reduz de forma substancial o cdigo requerido para que se possa utilizar em um projeto o reconhecimento de voz (para mais informaes sobre SAPI, ver seo dedicada no item 2.3.2). Desta forma tenta-se fazer com que a tecnologia de fala torne-se mais accessvel e robusta para as novas aplicaes que iro surgir (MICROSOFT, 2002). Este kit de desenvolvimento suporta OLE Automation5 (WIKIPDIA, 2009e) o que permite a portabilidade do kit para as linguagens ou ambientes de programao que possuem suporte a estas caractersticas, como Microsoft Visual Studio, Borland Delphi, C, C++. Existem dois tipos bsicos de mquinas SAPI que so o sistema de Texto para Fala (TF) e o Reconhecimento de Voz (RV). O sistema de TF sintetiza o texto e arquivos para serem
um mecanismo para a comunicao entre processos baseado em Component Object Model (COM) (MICROSOFT, 2002), introduzido pela Microsoft. Ele fornece uma infraestrutura na qual aplicaes (chamadas de controladores de automao) podem acessar e manipular dados compartilhados (chamados objetos de automao) que so exportados por outras aplicaes. Ela uma evoluo Dynamic Data Exchange (DDE) ( uma tecnologia para a comunicao entre mltiplas aplicaes executadas em Microsoft Windows e OS/2 introduzida pela Microsoft em 1987.), um mecanismo mais antigo para que aplicaes controlem umas as outras. Assim como em DDE, em OLE Automation o controlador de automao o cliente, e a aplicao exportando os objetos de automao, o servidor.
5
24
ouvidos usando vozes sintticas. O reconhecedor de fala converte a voz humana falada no udio para texto e arquivos. SAPI controla um grande nmero de aspectos de um sistema de fala, tais como: a) Controle de entrada de udio b) Carrega arquivos de gramtica (se foi criado dinamicamente ou criado a partir de dados que j existiam na memria); c) Compila padres SAPI XML em formato de gramtica, converso de formatos gramaticais; d) Compartilhamento de reconhecimento atravs de mltiplas aplicaes utilizando agentes compartilhados; e) Armazena dados e encaminha os resultados para anlises posteriores. O reconhecedor de voz realiza as seguintes tarefas: a) Utiliza a interface de gramtica do SAPI e carrega os comandos ditados; b) Realiza o reconhecimento; c) Retorna a partir do SAPI informaes sobre a gramtica e o estado das alteraes; d) Gera reconhecimento e outros eventos para retornar informaes a aplicao.
2.3.2. SAPI
A interface da programao das aplicaes de voz (Speech Application Programming Interface SAPI) uma API (Application Programming Interface) desenvolvida pela Microsoft que permite a utilizao do reconhecimento de voz (Speech Recognition) e sntese de voz (TTS Text To Speech) nas aplicaes do Windows. Em geral, todas as verses desta API foram projetadas para que os programas consigam comunicar de uma maneira fcil, acessvel e atravs de diversas linguagens de programao com o software que reconhece a voz ou que converte o texto para voz. Nas verses, de 1 a 4 as aplicaes comunicam diretamente com os sistemas de voz. Estas APIs incluam definies de interface abstratas com os diversos programas e no necessitavam de mais recursos. Entretanto, na famlia SAPI 5 as aplicaes e os sistemas no comunicam diretamente, associando a fala que est em execuo (sapi.dll) ao respectivo componente. Existe uma API que executa um destes
25
componentes para as aplicaes e outro para o conjunto das relaes entre os motores de voz. Normalmente em SAPI 5, os programas do a ordem para: a) Chamar atravs da API uma gramtica 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 execuo interpreta estes comandos e processa-os, momento no qual torna-se necessrio chamar o motor de voz que far a interface. Um exemplo o carregamento do arquivo de gramtica que feito em tempo real e, posteriormente, os seus dados so passados para o reconhecedor de voz, no qual so atualizados para serem utilizados. Os motores do reconhecimento e sntese de voz tambm geram eventos quando esto sendo processados (por exemplo, uma expresso vocal quando reconhecida ou o final de uma palavra sintetizada).
2.3.3. Gramtica
Para a Microsoft (2002), a gramtica define as palavras que uma aplicao pode reconhecer. O reconhecimento da fala (RF) baseado na gramtica. Uma aplicao pode realizar o RF usando trs diferentes tipos de gramtica. Cada gramtica utiliza-se de uma estratgia diferente para reduzir a possibilidade de sentena a ser reconhecida aumentando, assim, as chances de assertividade durante o processo de RF. a) Gramtica em formato arquivo texto - Este tipo de gramtica, que definido em arquivo texto, tem o seu formato similar a arquivos .ini. Este arquivo consiste de um nmero de sees. Cada seo identificada por uma nova linha com o nome da seo entre colchetes []. As sees tm um nmero de valores, identificadas pelo nome do valor, seguido do sinal de igual = e finalmente pelo valor. Comentrios podem ser acrescentados no arquivo. Para isto basta acrescentar ponto e virgula ; ou duas barras //no incio da linha. A vantagem do uso de listas consiste no fato das aplicaes poderem setar facilmente novos parmetros para a sua lista em tempo de execuo sem ter que recompilar a gramtica. O Anexo 1 possui um exemplo de uma gramtica. b) Gramtica livre - Aqui so utilizadas regras de uso, que predizem as prximas palavras, ou seja, reduz o nmero de candidatos para avaliar e para reconhecer a
26
prxima palavra. Para iniciar o uso deste tipo de gramtica no RF, a aplicao, primeiro deve ativar uma regra especfica dentro da gramtica. 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 padro requer uma lista de todas as regras que podem ser ativadas. Contudo, estas listas devem optar por ter sempre um nmero mnimo de regras, pois, desta forma, a eficincia da gramtica ser aumentada crescendo, assim, a preciso do reconhecimento. Esta ferramenta muito poderosa devido habilidade de recurso, mas tambm pode se tornar muito complexa. Gramtica de ditado - Uma gramtica 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 gramtica de ditado no contm informao sobre o modelo de idioma (a mquina tem aquela informao) nem especifica tudo das palavras que podem ser faladas. Especifica somente palavras incomuns ou grupos esperados de palavras. Existem algumas caractersticas que podem influenciar a gramtica durante o seu processamento. O peso da gramtica um destes fatores, utilizado a cada transao para alterar a semelhana dos mesmos j iniciados. Este peso uma probabilidade e a faixa de valores permitida est entre 0 e 1. Os com valores 0, sempre sero interpretados como transies impossveis de passarem a ser reconhecidos. Por definio, as gramticas no possuem pesos definidos, para cada transio o peso ser 1 dividido pelo nmero de transies fora do estado de precedncia (O&A PRODUCTIONS, 2009).
2.3.4. Regras
Cada gramtica pode conter uma ou mais regras. Podem ser de alto nvel, indicando que podem ser ativados para o reconhecimento. Cada uma tem um estado inicial, os quais so conectados por vrios tipos de transio: a) Uma palavra de transio indica uma palavra para ser reconhecida; b) Uma regra de transio indica uma referncia para uma sub-regra; c) Transies especiais que caracterizam ditados especiais dentro de um contexto
27
As referncias para sub-regras podem ser recursivas, podem referenciar a elas prprias, um ao outro de forma direta ou indiretamente. Notificaes de regras chamam o agente para informar quando regras so adicionadas, alteradas ou removidas. Existem cinco aes que so tomadas na realizao 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 atravs de uma aplicao e deste modo o agente precisa fazer uma leitura nova do contedo da regra.
2.4.
A domtica, como chamada a automao residencial, tem como principal objetivo a integrao de todos os equipamentos residenciais, vinculando-os em uma s tecnologia. Independentemente dos problemas, a domtica visa atender s necessidades de usurios domsticos em termos de conforto e segurana, e tambm apresenta algumas solues em termos de comunicao de dados.
A domtica visa solucionar uma srie de problemas usando eletrnica e conceitos muitas vezes vindos diretamente da fico cientfica.
O objetivo da automao residencial integrar iluminao, entretenimento, segurana, telecomunicaes, aquecimento, ar condicionado e muito mais
28
atravs de um sistema inteligente programvel e centralizado. Como consequncia fornece praticidade, segurana, conforto e economia para o dia a dia dos usurios (ABREU, 2003).
a) Sistemas autmatos (stand alone): so divididos mdulos entre os cmodos, onde cada um pode ser transmissor ou receptor e os mdulos (que podem controlar luzes) podem ser controlados atravs de uma central na cabeceira da cama. O sistema pode ser montado aos poucos; b) Sistemas integrados com controle centralizado: a central inteligente, as configuraes podem ser simples ou complexas, inclui aes ativadas por eventos, equipamento controlado via infravermelho podem ser programados pela central; c) Sistemas de automao complexos: integrao total dos sistemas domsticos, a residncia precisa ser projetada para essa automao com cabeamento estruturado. Segundo Abreu (2003), os equipamentos, acessrios e tcnicas comumente utilizadas na automao residencial so: Telefonia e transmisso de dados, Aquecimento e ar condicionado, Iluminao, Home theater e som ambiente, Vigilncia, alarme, iluminao de segurana, e circuito interno de TV, Aparelhos eletrodomsticos, Cortinas e portas automticas, Home offices.
29
3. HARDWARE
3.1.
O Eagle Layout Editor (CADSOFT ONLINE, 2009) uma ferramenta de fcil 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 verso freeware do EAGLE. Contudo, algumas funcionalidades mais profissionais encontram-se desativadas. O EAGLE permite o desenho de circuitos eltricos, possibilitando colocar os smbolos representativos dos componentes, o que facilita a visualizao do projeto em si. A Figura 1 mostra uma viso geral do circuito, desenvolvido no EAGLE, com todas as conexes entre os componentes. Foi definido a seguinte estrutura de conexes: SV9 Conexo com a porta paralela do computador CON_PM e CON_PF Conexes para interligar o Buffer de proteo da porta paralela com a placa dos LEDs SV1 a SV8 Conexo da placa dos LEDs com o driver de acionamento SV10 Conexo do driver de acionamento com a placa dos LEDs TRAFO Ligao do transformador a fonte
30
Figura 1.
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 conexo 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
padro, para que acenda com intensidade razovel, deve ser percorrido por uma corrente de +/- 10mA. Um led oferece uma queda de tenso 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 = tenso (que no caso 5V - 1.8V de queda no led) R = resistncia que queremos encontrar I = corrente que deve circular pelo led, que no nosso caso 10mA = 0.01A Ento temos: 5V-1.8V = R*0.01A R = 3.2V/0.01A R = 320ohms Portanto, o valor comercial mais prximo para os resistores de 320ohms 330ohms.
Figura 2.
Placa do Leds
O conjunto dos hardwares tambm 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 eltrica. No conector SV10 temos 3 sinais que so identificados da seguinte forma. 1=5V, 2=GND(terra), 3=Sinal para ligar/desligar o transstor e, por consequncia, o rel. Explicando mais a fundo, o driver de acionamento recebe a alimentao (5V e GND) e o sinal para ligar/desligar o equipamento. Antes de chegar ao transstor, 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 funo de prover um caminho para a corrente quando o rel desligado, protegendo o transstor contra uma alta tenso que gerada pela bobina do rel. geralmente chamado de "diodo de roda livre". A alta tenso acontece pelo fato da bobina do rel ser um indutor, que tem a caracterstica de manter a corrente que circula por ele constante, quando esta corrente interrompida bruscamente e, na tentativa de mant-la constante, uma alta tenso aparece nos terminais do indutor. Esta alta tenso, por sua vez, pode ser suficiente para danificar o transstor caso no 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 so nomeadas K1 e K2. Cada chave tem os terminais S, P e O (S1, P1, O1 e S2, P2, O2). Como no projeto necessria 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 so ligados no paralelo.
Figura 3.
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 so 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 necessrio 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 proteo da porta paralela mostrado na Figura 4. Este circuito possui a funo de proteger a porta paralela e, ao mesmo tempo, fornecer os nveis de corrente eltrica suficientes para ativar os Circuitos Integrados. Estes buffers de proteo esto acoplados junto ao circuito integrado (CI) com referncia (74LS244N). Dentro do CI existem 8 buffers, que tm, neste prottipo, a funcionalidade de proteger a porta paralela fornecendo mais corrente do que a mesma pode fornecer. Assim, os circuitos que esto 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 proteo 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 atravs do pino representado pela letra G na Figura 4. No desenho, apenas para fins de representao, parece ter 2 CI's, o que se deve ao fato da existncia dos dois grupos de buffers citados acima O jumper representado pela sigla JEN. Como dito acima, os buffers podem ser habilitados/desabilitados atravs do pino de enable 'G'. Quando o jumper est na posio 1-2, os buffers ficam sempre habilitados, quando o jumper est na posio 2-3, os buffers podem ser habilitados atravs do pino 1 da porta paralela, ou seja, podem ser habilitados via software, colocando o pino 1 em nvel baixo (0 volts). Habilitar o buffer significa que o sinal que estiver presente na entrada do buffer, tem sua corrente amplificada e aparece na sada do buffer. Desabilitar o buffer significa que suas sadas ficaro em alta impedncia independente do sinal que estiver na entrada (o buffer no deixa o sinal passar).
34
Figura 4.
Para finalizar a composio de todo o projeto de hardware a Figura 5 mostra o circuito da fonte de alimentao regulada, onde o nome j atribui funcionalidade, que alimentar todo o circuito com uma tenso de 5 volts regulada.
Figura 5.
Todos estes circuitos demonstrados acima foram desenvolvidos no programa EAGLE e, posteriormente, convertidos para outro formato para a criao dos adesivos realizao da plotagem em grfica. A descrio da criao da Placa de Circuito Impresso (PCI) ser apresentada no Apndice A.
35
3.2.
Estrutura do Hardware
A estrutura do hardware fundamental para entendimento do projeto, atravs desta estrutura possvel compreender detalhes tcnicos e funcionais do hardware. Primeiramente necessrio enfatizar que todo o circuito trabalha com baixa tenso de 5 Volts, sendo responsvel apenas por acionar o rel fechando o circuito da corrente eltrica 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 no envia nada de volta para a porta paralela, portanto no necessrio usar os sinais de entrada da porta paralela. O circuito recebe 8 sinais de controle (nvel 0 ou 1) para ativar ou desativar os equipamentos, estes sinais seguem o seguinte caminho: Paralela->Buffer Octal->Drivers dos rels->Rels. Para que o sinal eltrico proveniente da porta paralela do computador seja capaz de acionar o rel e, por consequncia, ligar o equipamento conectado ao mesmo, ele deve passar por alguns estgios de condicionamento. O primeiro estgio 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 acontea, a corrente ser drenada do buffer octal ao invs de ser drenada da porta paralela. O buffer funciona como um mini amplificador de corrente. O segundo estgio tambm um amplificador de corrente, mas, desta vez, com uma capacidade bem maior se comparado com o buffer octal. composto principalmente por um transstor operando como uma chave digital. Este transstor, quando acionado, fornece toda a corrente necessria 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 eletrnicos todos eles esto descritos no Apndice 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 atravs do microfone normal padro, este comando de voz processado no software de automao e os sinais so transmitidos via porta paralela para a placa me. A mesma ligada em uma fonte de energia. Cada equipamento interligado junto ao driver de acionamento atravs do cabo de energia. O driver de acionamento ligado a uma fonte de energia e interligado sada da placa me, identificada pela porta e pelos LEDs, na parte superior. Com isso, quando o comando de voz for totalmente reconhecido, o sinal, aps chegar placa me, j capaz de identificar qual equipamento est relacionado ao comando de voz que est cadastrado junto ao banco de dados do software de automao. Com isto, a placa me envia o sinal ao driver de acionamento onde feita a abertura ou fechamento do rel, permitindo passagem da corrente eltrica at o equipamento.
Figura 6.
37
3.3.
Porta paralela
A utilizao da porta paralela neste projeto foi atribuda pelo fato de ser uma tecnologia que, apesar de no ser mais comercializada, permite acessibilidade e facilidade nos estudos e pesquisas acadmicas.
3.3.1. Introduo
A porta paralela uma interface de comunicao entre o computador e um perifrico. Quando a IBM criou seu primeiro computador pessoal, nos meados de 1960, a ideia era conectar a essa porta uma impressora, no entanto, so vrios os perifricos que ainda
utilizam-se desta porta para enviar e receber dados para o computador (exemplos: Scanners, Impressoras e outros) (ROGER.COM, 2009).
Existem trs tipos de modelos de porta paralela, a transmisso unidirecional, transmisso bidirecional, e a porta avanada chamada de ECP. a) Transmisso unidirecional - A porta paralela SPP (Standard Parallel Port) pode chegar a uma taxa de transmisso de dados a 150KB/s. Comunica-se com a CPU utilizando um barramento de dados de 8 bits. Para a transmisso de dados entre perifricos so usado 4 bits por vez. b) Transmisso bidirecional - A porta avanada EPP (Enhanced Parallel Port) chega a atingir uma taxa de transferncia de 2 MB/s. Para atingir essa velocidade, ser necessrio um cabo especial. Comunica-se com a CPU utilizando um barramento de dados de 32 bits. Para a transmisso de dados entre perifricos so usado 8 bits por vez.
38
c) A porta avanada ECP (Enhanced Capabilities Port) - Tem as mesmas caractersticas que a EPP, porm, utiliza DMA (acesso direto memria), sem a necessidade do uso do processador, para a transferncia de dados. Utiliza tambm um buffer FIFO de 16 bytes (ROGER.COM., 2009). O buffer FIFO armazena dados temporrios at que sejam transferidos pra outro lugar.
O sistema operacional, Windows ou at mesmo o antigo DOS, nomeia as Portas Paralelas chamando-as de LPT1, LPT2, LPT3, etc. Contudo, a porta fsica padro do computador geralmente a LPT1 e os endereos de cada porta dependem da configurao 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 endereo diferente. Por exemplo, o endereo 0x378 (tambm chamado de endereo base da LPT1) o endereo do registrador de dados da porta paralela LPT1. O endereo 0x379 (0x378 + 1) o endereo do registrador de status da LPT1 e o endereo 0x37A (0x378+2) o endereo do registrador de controle da LPT1. Portanto, cada LPT tem o seu endereo base, LPT1 = 0x378 e LPT2 = 0x278 e assim por diante. O quadro abaixo mostra os endereos hexadecimais e decimais de cada porta. Nome da Porta LPT1 Endereo de memria 0000:0408 Endereo da Porta 888 decimal 632 decimal Descrio Endereo base Endereo base
378 hexadecimal LPT2 278 0000:040A hexadecimal QUADRO 1 Endereos da porta paralela Fonte: RogerCom (2009).
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 nvel lgico 0 quando a tenso eltrica no
39
mesmo est entre 0 a 0,4v. Um pino se encontra em nvel lgico 1 quando a tenso eltrica no mesmo est acima de 3.1 e at 5v. A Figura 7 mostra o conector padro DB25, com 25 pinos, no qual cada pino tem um nome que o identifica:
Figura 7.
A Figura 8 mostra o conector macho do cabo paralelo e suas referncias para interligao entre o DB25 fmea. As conexes D0 at D7 so as conexes de sada, justamente as usadas no sistema de automao, apresentadas na Figura 10.
Figura 8.
40
Figura 9.
Todo este esquema necessrio para saber como enviar dados ou receber dados atravs da porta paralela, portanto a Figura 10 mostra claramente os pinos referentes s entradas e as sadas.
Figura 10.
O conector macho Centronics 36 pinos faz parte do cabo da impressora e atravs 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
fmea, isso faz com que a interface aproveite o cabo da impressora, encontrado facilmente em lojas de informtica. A Figura 11 abaixo mostra o conector Centronics 36 pinos e sua descrio:
O quadro abaixo mostra as descries dos pinos do conector centronics, a partir desta tabela que possvel fazer as conexes necessrias para o projeto de automao. Nmero do Pino 1 2 ao 9 10 11 12 13 14 15 ao 18 19 ao 30 31 32 33 34 a 35 36 Descrio Strob Dados (D0...D7) Ack Busy Paper End Select Out Auto Feed No conectado GROUND Init Error GROUND No conectado Select In
42
Como j comentado, a porta paralela no usada somente com uma impressora, possvel desenvolver um circuito eletrnico e acopl-lo a essa porta e, atravs de um programa especfico, enviar sinais digitais para control-lo. Estes foram os passos utilizados a princpio para montar tanto o hardware quanto o software de automao. Conforme o projeto de automao, possvel controlar at 8 equipamentos simultneos. Diante disto, a Figura 12 esboa um prottipo de hardware utilizando LEDs. O mesmo ser utilizado para entendimento dos pinos de sada do conector DB25. Na Figura 12, observe que o terminal do catodo (K) dos LEDs est ligado aos terminais dos resistores, que esto ligados atravs do cabo aos pinos do DB25. Se invertidos, o circuito no funcionar. Observe a enumerao dos pinos do conector DB25. Os pinos D0 a D7 so os pinos de sada, estes pinos so os responsveis pelo envio de dados ao equipamento. Sinais so enviados individualmente por cada pino, possibilitando o total controle do hardware por meio do software (ROGER.COM., 2009).
Figura 12.
O sistema de automao envia Porta Paralela oito bits, um a cada vez que o usurio pressionar o boto, ou atravs do comando de voz. No entanto a lgica do software atribui um operador lgico OU, sendo possvel tambm ligar e desligar vrios equipamentos ao mesmo tempo. A sequncia de bits gerada vista no quadro abaixo.
43
Decimal 128 64 32 16 8 4 2 1
Hexadecimal 80 40 20 10 8 4 2 1
Comentrio 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(ro) ou apaga(ro) conforme os estados dos bits.
QUADRO 3 - Sequncia de bits gerados pela porta paralela Fonte: RogerCom (2009).
44
4. DESENVOLVIMENTO DO SOFTWARE
4.1.
Documentao
A documentao de software extremamente necessria e auxilia na reduo de horas preciosas na correo de problemas. Para muitos desenvolvedores, a criao de documentao tcnica a parte mais aterrorizante para se enfrentar em todo o processo de criao de um software, seja pela necessidade de escrever vrias e vrias pginas de texto, grficos e desenhos ou ainda pela necessidade de largar aquilo que se aprendeu (programar) para fazer aquilo que no sabe bem (redigir). Entretanto, a documentao parte integrante de qualquer sistema ou programa criado. Pode-se dizer que a documentao to importante quanto as questes de segurana, pois sem a devida documentao, bug's e pontos vulnerveis no sistema demoram a ser encontrados e corrigidos permitindo, assim, que os ataques continuem levando a resultados indesejveis do sistema e, consequentemente, insatisfao de seu usurio. O projeto aqui proposto utilizou algumas tcnicas de documentao, como documentao 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 definio um ponto chave a UML a notao diagramtica padro, de fato, para desenhar ou apresentar figuras (com algum texto) relacionadas a software (CADSOFT ONLINE, 2009).
45
A UML fornece a notao 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 usurio pode cadastrar os aparelhos existentes na residncia, e os usurios que podero acessar o sistema web. A descrio dos cenrios existentes para cada caso de uso encontra-se no Apndice C. Conforme diagrama representado pela Figura 13, todas as opes de cadastramento, consultas e excluses esto relacionadas ao usurio local. Existe uma dependncia no relacionamento entre as funcionalidades de cada caso de uso. Estas relaes so utilizadas para demonstrar cada processo do sistema. Cada caso de uso possui aes classificadas pelos includes ou extends referindo-se aos atributos e dependncias destinadas a cada caso de uso. Atravs deste diagrama possvel entender praticamente todos os processos que podero ser incorporados durante o desenvolvimento.
46
Figura 13.
47
uma representao da estrutura e relaes 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 construo de diversos outros diagramas. Para a construo 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 estruturao dos diagramas. A Figura 14 ilustra os diagramas referentes s classes principais que compem o projeto web. Dentro de cada diagrama possvel identificar quais atributos, mtodos e classes sero compostos em todo desenvolvimento. O diagrama de classe pode ser gerado atravs de uma tecnologia chamada de engenharia reversa, que possibilita aps o sistema pronto, gerar todo os diagramas para fins de documentao.
Figura 14.
A Figura 15 ilustra cada classe utilizada no desenvolvimento do modulo desktop. Este, no entanto, possui uma maior complexidade, pois realiza a integrao com o componente SDK para o reconhecimento da voz.
48
Figura 15.
49
O projeto composto por uma DLL (Dynamic-link library), termo tcnico utilizado as bibliotecas de ligao dinmicas, o mesmo pode ser desenvolvido separadamente da estrutura geral de todo o cdigo fonte, sendo possvel atribu-la a qualquer outro projeto independentemente. Este mais um dos diversos recursos sobre programao orientada a objetos. Esta DLL, chamada de IOAutomao, compe toda a estrutura de dados que o sistema necessita tais como: incluso, excluso, pesquisas e outros. A organizao de toda a estrutura foi planejada para futuras manutenes. Assim, os processos foram subdivididos conforme demanda do projeto. A Figura 16 ilustra todas as classes, mtodos e atributos que compem a estrutura relacionada aos aparelhos.
Figura 16.
50
A Figura 17 ilustra tambm todas as classes, mtodos e atributos utilizados na estrutura de desenvolvimento referente aos usurios.
Figura 17.
51
4.2. Metodologias
Na parte de documentaes a ferramenta utilizada foi o Enterprise Arquitect (E.A), o mesmo considerado um software cone no desenvolvimento das documentaes. Utilizado por grandes empresas, o E.A possibilita uma utilizao por 30 dias. No entanto, este tempo foi o suficiente para criar toda a estrutura de documentao do projeto de automao. A ferramenta utilizada na codificao de todo o cdigo fonte, foi atravs da IDE de desenvolvimento Microsoft Visual Studio 2008, com interpretao da linguagem C#. A estrutura de dados foi atribuda ao MySql, que de fato se tornou pioneira tanto na rea acadmica quanto profissional, pelo fato de ser uma ferramenta totalmente gratuita, interativa e de fcil utilizao. A Figura 18 ilustra o diagrama de entidade relacionamento de toda a estrutura composta no banco de dados.
Figura 18.
52
No Quadro 4, so ilustrados todos os scripts de criao da base de dados do sistema. Todos estes scripts podem ser executados separadamente ou todos juntos.
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;
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;
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;
53
A comunicao 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 necessrio adicionar a referncia 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 referncia citada, clique em OK e pronto. Feito isso j se consegue manipular e integrar o componente junto ao projeto, mas para isto necessrio ter conhecimento de lgica de programao, pois o componente independente e, de certa forma, no consegue trabalhar sozinho, ou seja, necessrio o manuseio do mesmo via cdigo. Quando se realiza uma referncia de algum componente ou controle no projeto geral, significa que possvel obter uma comunicao mais diretamente. Para isto, as tcnicas de programao orientada a objeto (POO), so extremamente viveis e necessrias. At o momento, o software no realizou nenhuma comunicao com o componente. Para isso, necessrio comear o processo de codificao no cdigo fonte realizando a integrao dos mesmos. Inicialmente, para realizar uma primeira comunicao, precisa-se inicializar o componente de voz, o que feito adicionando o controle SpeechListBox que criado junto ao toolbox da IDE. Posteriormente, atravs da propriedade SpeechEnabled, possvel habilitlo. Contudo, agora se realiza a codificao do cdigo para habilitar totalmente o componente, deixando livre para o manuseio em todo o sistema. A Figura 19 ilustra o cdigo 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 no pode executar corretamente. Exceo na inicializao do componente de voz.\r\n\r\n" + e.ToString(), "Error"); } }
Figura 19.
A execuo dos comandos feita pela classe que geralmente chamada de Rebuild Grammar, ou seja, execuo das gramticas. Este nome pode ser modificado de acordo com o padro de cada profissional. Nota-se tambm que nesta classe j necessria a integrao com o banco de dados para realizar a conferncia entre comando reconhecido e base de dados. A Figura 20 ilustra os cdigos 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 automao residencial, no , no entanto o foco relacionar todos os passos de desenvolvimento. As ilustraes foram necessrias para que o leitor consiga entender o paradigma do projeto, e atravs de estudos prprios 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("Exceo capturada quando reconstruo dinmica na regra do listbox.\r\n\r\n" + e.ToString(), "Error"); } return true; }
Figura 20.
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 execuo foi gerado um relatrio de execuo 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 so previstas durante o prprio desenvolvimento. Com base no relatrio verifica-se que o resultado foi satisfatrio, mostrando que o software est apto ao funcionamento. O Plano de teste e o relatrio de execuo dos testes so encontrados no Apndice D.
56
4.5.2. Introduo
O sistema Automao Residencial por comando de voz aqui proposto destinado ao controle de equipamentos domsticos de forma automtica em uma residncia. possvel utiliz-lo pelas aplicaes desktop ou web, e pode ser considerado um sistema em tempo real. Sistemas de tempo real so sistemas de computao que monitoram, respondem ou controlam um ambiente externo. Esse ambiente est conectado ao sistema de computao atravs de sensores (microfone), atuadores e outras interfaces de entrada e sada. Podem constituir-se de objetos fsicos ou biolgicos de qualquer forma e estrutura (SHAW, 2003). O tempo de resposta aos estmulos externos geralmente est dentro dos limites estabelecidos para seu funcionamento aceitvel. No importa o tamanho do intervalo de tempo, se em nanossegundos ou em minutos. Se o sistema tem um tempo limite para responder, ento um sistema em tempo real. Tais aplicaes vm, aparecendo como parte de nossas infraestruturas comerciais, governamentais, militares, educacionais e culturais. Nesses, esto includos (SHAW, 2003): a) Sistemas de controle de veculos para automveis, metrs, aeronaves, ferrovias e navios; b) Controle de trfego para auto-estradas, espao areo, trilhos de ferrovias e corredores de navegao martima; c) Controle de processo para usinas de energia, indstrias qumicas e para produtos de consumo, como refrigerantes e cerveja; d) Sistemas mdicos 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 robs; g) Telefone, rdio e comunicaes por satlite; h) Jogos por computador; i) Sistemas de multimdia que provm interfaces textuais, grficas, de udio e de vdeo;
57
j) Sistemas domsticos para monitoramento e controle de eletrodomsticos; k) Sistemas de automao predial que controlam temperatura ambiental, iluminao portas e elevadores; l) Sistemas de automao residencial que controlam equipamentos domsticos. O sistema de automao 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).
a) O usurio poder ligar e desligar os equipamentos da residncia pela aplicao desktop atravs do comando de voz ou pela internet; b) O usurio poder visualizar todos os aparelhos que esto sendo controlados, tanto pela aplicao desktop quanto pela internet.
Na aplicao desktop os equipamentos so demonstrados na aba principal em destaque, atravs de uma tabela com diversas informaes, como: 1) ID (Nmero de identificao) 2) Nome do Aparelho 3) Descrio 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 Sada (Comando para desligar o equipamento) A Figura 21 ilustra a aplicao desktop com alguns dispositivos ligados e outros desligados.
58
Figura 21.
Aplicao desktop
O sistema tambm possui um ambiente de cadastros, onde atravs deste que o usurio dever cadastrar quais usurios podero ter acesso via web, e quais os aparelhos interligados ao sistema. A Figura 22 ilustra a rea de cadastro de aparelhos. Neste cadastro necessrio inserir todas as informaes exigidas para que o sistema tenha um funcionamento perfeito.
Figura 22.
59
A Figura 23 ilustra a rea do cadastramento dos usurios, que so utilizados no momento do acesso ao sistema web, concretizando os passos mnimos de segurana que se exige ao disponibilizar um sistema web.
Figura 23.
A Figura 24 ilustra uma viso geral da rea representada com os cadastros de aparelhos e usurios.
Figura 24.
60
A aplicao 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 aplicao, uma identificao de login aberta, isso favorece o mnimo de segurana ao sistema, uma vez que o mesmo aberto rede mundial de computadores. Aps a identificao, todos os equipamentos so listados juntamente com o status de cada equipamento, com informaes do status de ligado ou desligado possibilitando assim, ligar ou deslig-lo manualmente.
Figura 25.
Todos os equipamentos so listados, conforme Figura 26. Os botes a esquerda so utilizados para realizar as aes conforme explicao da legenda.
Figura 26.
Aplicao Web
61
5. CONCLUSO
Pode-se verificar que o reconhecimento de voz uma rea que est cada vez mais em expanso, com o intuito de melhorar e facilitar tarefas cotidianas. certo que ainda est numa fase de evoluo, 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 automao residencial por comando de voz. Foi possvel, no entanto, verificar algumas das caractersticas que tornou o SDK uma das novas alternativas para a utilizao do reconhecimento de voz em sistemas de automao. A famlia Microsoft realmente fez um bom trabalho na criao e melhoramento do componente SDK, a mais de uma dcada eles vm aprimorando o componente para que sua integrao a outros sistemas se torne cada vez til. O mesmo foi utilizado no projeto aqui proposto, se comportando perfeitamente e alcanando o resultado esperado. Contudo, sempre h alguns escorreges, pois como sempre falamos nada perfeito, e tudo se ajusta e melhora conforme pesquisas e feedbacks realizados por profissionais e alunos durante a utilizao do componente. Por ser o SDK uma ferramenta gratuita, a Microsoft conta com a participao de todos os que utilizam da mesma para expor seus defeitos, para que possam corigi-los em novas verses. Para a realizao 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 no seria possvel desenvolver esse trabalho; conceitos sobre as tecnologias existentes para automao residencial e sobre eletrnica. O projeto demonstra uma viabilidade econmica satisfatria deste nvel de automao residencial com um custo bem acessvel a todas as classes. O projeto proposto mostra-se extremamente vivel, pois atualmente notvel que uma maior ateno deveria ser dispensada para o pblico portador de necessidades especiais. Um projeto adaptado a uma residncia real dever trazer consigo elementos capazes de controlar nveis superiores de reconhecimento de voz, atravs de microfones superiores aos usados no prottipo do projeto. Ainda assim, a viabilidade econmica do projeto justificada frente aos valores exagerados cobrados por empresas que atuam nesse nicho de mercado. Aps a concluso dos estudos e do desenvolvimento deste projeto, observou-se que o mesmo um sistema consideravelmente simples de ser implementado, possibilitando a expanso da automao residencial por comando de voz de baixo custo, que ainda est em
62
Como trabalhos futuros, deseja-se, diante das funcionalidades desempenhadas pelo sistema, implementar os itens de: Modificar o sistema de comunicao, passando a trabalhar com porta USB, ou
63
REFERNCIAS
ABREU, R. S. Automao residencial: um pouco de histria. Ribeiro Preto, 2003. 46 eslaides, color. PowerPoint for Windows 10.26. Arquivo ppt baixado da Internet. Disponvel em: <http://www.aureside.org.br/publicacoes/download/automacao_residencial.zip>. Acesso em: 28 set. 2009.
AFONSO, R. Sistema de automao residencial com central de controle microcontrolada e independente de pc. 2006. 91 f. Monografia (Trabalho de Concluso de Curso II do curso de Cincias da Computao) Universidade Regional de Blumenau, Blumenau, 2006.
BARONE, D. A. C.; YEPES, I. Inteligncia artificial distribuda: 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. Disponvel em <http://www.cadsoftusa.com>. Acesso em: 07 out. 2009.
ENDERLEIN, R. Microeletrnica: uma introduo ao universo dos microchips, seu funcionamento, fabricao e aplicaes. So Paulo: EdUSP, 1994.
GUILHOTO, P. J. S.; ROSA, S. P. C. S. Reconhecimento de voz: sistemas multimdia: 2001/2002. Coimbra: Universidade de Coimbra, Faculdade de Cincias e Tecnologias, Departamento de Engenharia Informtica, 2001.
IBM. Embedded ViaVoice. Disponvel 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. Disponvel: 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. Disponvel em: <http://edn.embarcadero.com/print/29581>. Acesso em: 05 maio 2009
MICROSOFT. Help Microsoft Speech SDK version 5.1. Microsoft Corporation, 2002.
MICROSOFT. Speech SDK 5.1. Download. Disponvel em: <http://www.microsoft.com/downloads/details.aspx?FamilyID=5e86ec97-40a7-453f-b0ee6583171b4530&DisplayLang=en>. Acesso em: 02 jan 2009.
MICROSOFT. Suporte. Voice pilot. Dicas sobre treinamento de voz piloto. Disponvel em: <http://support.microsoft.com/kb/95089>. Acesso em: 10 maio 2009.
2003.
Resistor.
Disponvel
em:
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. Disponvel 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. Fsica fundamental: vol. nico: 2 grau. So Paulo: FTD, 1993.
RATIONAL UNIFIED PROCESS. Rational Unified Process: viso geral. 2001. Disponvel em: <http://www.wthreex.com/rup/portugues/index.htm>. Acesso em: abr. 2009.
65
ROBOTERNETZ. Hauptseite. [Transistor]. Disponvel em: <http://www.rnwissen.de/index.php/Hauptseite>. Acesso em: 20 jun. 2009. ROGER.COM. 2009. Disponvel em:<http://www.roger.com>. Acesso em: 20 jun. 2009.
RUSSEL, S.; NORVIG, P. Artificial Intelligence: A modern Approach. New York: Prentice Hall, 1995.
WIKIPDIA. Component Object Model. 2009a. Disponvel <http://pt.wikipedia.org/wiki/Component_Object_Model>. Acesso em: 3 out. 2009.
em:
WIKIPDIA. Fast Fourier Transform. 2009b. Disponvel em: <http://en.wikipedia.org/wiki/Fast_Fourier_transform>. Acesso em: 15 set. 2009.
WIKIPDIA. LED. 2009c. Disponvel em: <http://pt.wikipedia.org/wiki/LED>. Acesso em: 12 out. 2009.
WIKIPDIA. OLE Automation. 2009d. Disponvel em: <http://pt.wikipedia.org/wiki/OLE_Automation>. Acesso em: 3 out. 2009.
WIKIPDIA. Pipeline. 2009e. Disponvel em: <http://pt.wikipedia.org/wiki/Pipeline>. Acesso em: 7 set. 2009.
WIKIPDIA. Pulse-code modulation. 2009f. Disponvel <http://en.wikipedia.org/wiki/Pulse-code_modulation>. Acesso em: 7 set. 2009.
em:
WIKIPDIA. Stream. 2009g. Disponvel 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
A descrio deste anexo serve como exemplo de uma gramtica 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] =Porto =Veneziana =Porta [Fechar] =Porto =Veneziana =Porta
67
Os passos para a criao de uma PCB simples, mas requer bastante ateno em todos os detalhes, pois qualquer erro de projeto o circuito pode no funcionar, ou at mesmo danificar outros componentes junto placa. necessrio bastante ateno nos produtos utilizados, alguns deles so corrosivos e prejudiciais sade, caso venha ter algum contato interno. Antes de realizar a criao da PCB, necessrio realizar alguns testes dos componentes eletrnicos, se possvel junto a um protoboard, evitando constrangimentos e desperdcio de material. Protoboard em ingls, ou melhor, matriz de contato uma placa com milhares de furos e conexes condutoras para montagem de circuitos eltricos experimentais. A grande vantagem do protoboard na montagem de circuitos eletrnicos a facilidade de insero de componentes, uma vez que no necessita soldagem. As placas variam de 800 furos at 6000 furos, tendo conexes verticais e horizontais. Na superfcie de uma matriz de contato h uma base de plstico na qual existem centenas de orifcios onde so encaixados os componentes. Em sua parte inferior so instalados contatos metlicos 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.
68
Aps os testes, hora de verificar o projeto no computador, lev-lo at uma grfica e realizar o corte do adesivo. Qualquer operador de plotter entende como realizar este tipo de servio de recorte para adesivos com mascaras. Este processo seria uma simples impresso em um papel A4, mas devido corroso necessria para criar as trilhas eletrnicas das placas, o adesivo indispensvel e o mtodo mais simples e acadmico realmente torna-se este. Os passos seguintes sero demonstrados conforme figuras abaixo. A Figura 28 mostra o projeto no computador. Este ser levado at uma grfica para fazer os recortes.
Figura 28.
Projeto no computador
Figura 29.
69
Figura 30 mostra como feita a retirada da mscara, para que seja introduzida no adesivo. Esta mascara ajuda na retirada do adesivo, uma vez que no possvel fazer a retirada manualmente devido s diversas trilhas eletrnicas criadas no projeto.
Figura 30.
Retirando a mascara
Figura 31.
Realiza-se uma frico ao adesivo, at que a mascara esteja realmente fixada ao adesivo.
70
Figura 32.
A Figura 33 mostra o momento da retirada do adesivo atravs da mscara, observe que todo o adesivo sai junto a mascara, isso facilitar na colagem a placa metlica.
Figura 33.
Retirando a mascara
O momento agora de ateno, realizar a colagem do adesivo junto placa metlica, tendo o cuidado de no deixar bolhas, isso pode prejudicar no momento da corroso da placa.
71
Figura 34.
Agora necessrio retirar o excesso de adesivo, verifique que conforme a retirada vai se formando as trilhas eletrnicas.
Figura 35.
A Figura 36 mostra uma comparao entre o projeto no computador e o projeto na placa aps a colagem dos adesivos, este momento bom se atentar a todos os detalhes do projeto, para possveis correes antes de torn-lo fsico.
72
Figura 36.
A Figura 37 mostra o momento da corroso, necessria para retirar a parte metlica que no contem os adesivos. A corroso feita com percloreto de ferro, produto qumico e necessita de cuidados como luvas e esptulas.
Figura 37.
Aps a corroso necessrio realizar uma limpeza a placa, isso feito com gua corrente.
73
Figura 38.
A Figura 39 mostra a placa aps a lavagem, veja os detalhes das trilhas eletrnicas.
Figura 39.
Corroso finalizada
74
Figura 40.
Os hardwares so 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 automao.
75
Figura 42.
Projeto finalizado
O transistor tem por princpio 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.
76
O transistor permite tanto a amplificao de potncia eltrica quando seu chaveamento. Na microeletrnica o transistor desempenha primordialmente a funo de uma chave eletrnica por impulsos eltricos; para uma tenso alta na base, uma grande corrente percorre o circuito Emissor-Coletor (chave ligada), enquanto, se a tenso 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 regio do emissor (CATHEY, 2003).
Um diodo o tipo mais simples de semicondutor. De modo geral, um semicondutor um material com capacidade varivel de conduzir corrente eltrica. Um diodo um dispositivo de estado slido que permite o fluxo de corrente em apenas um sentido, um processo conhecido como retificao. Dodos so um componente fundamental dos circuitos eltricos. Eles tambm so usados para formar outros componentes, tais como o transistor bipolar, que utiliza dois diodos em srie.
Figura 44.
Diodo 1N4148
B.3 Resistor
Resistores so componentes eletrnicos, caracterizados por uma grandeza fsica que mede a oposio passagem de corrente (RAMOS, 1993). So utilizados para limitar a corrente eltrica em um circuito ou para criarem uma queda de tenso em algum ponto do circuito. A Figura 44 mostra a imagem de um resistor.
77
Figura 45.
De acordo com as cores apresentadas externamente, na cpsula que envolve o material resistivo, pode-se determinar o valor de um resistor, ou utilizando um equipamento de medio.
B.4 Rel de 5V
Os rels so dispositivos comutadores eletromecnicos. So utilizados basicamente para ligar ou desligar dispositivos. normal o rel estar ligado a dois circuitos. Existem diversos tipos de rels, mas todos eles trabalham com a mesma finalidade. No sistema de automao o rel utilizado para abrir e fechar o circuito que envia sinal eltrico aos aparelhos.
Figura 46.
Rel de 5v
O LED um diodo semicondutor que quando energizado emite luz visvel, por isso LED (Diodo Emissor de Luz). A luz no monocromtica (como em um laser), mas consiste de uma banda espectral relativamente estreita e produzida pelas interaes energticas do eltron (WIKIPDIA, 2009c). 0
78
Figura 47.
Circuito integrado, tambm conhecido por chip, um dispositivo microeletrnico que consiste de muitos transistores e outros componentes interligados capazes de desempenhar muitas funes. Suas dimenses so extremamente reduzidas, os componentes so 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 eletrnico.
Figura 48.
CI 74LS541
79
C.1. UC1 - Cadastrar Aparelho Este caso de uso realiza o cadastramento de novos equipamentos no sistema. Cenrio(s) Principal(is) 1 - O usurio clica na Aba "Cadastro de Aparelhos e Usurios". 2 - O usurio clica no boto Cadastrar Aparelho. 3 - O usurio insere o nome, descrio, comando de voz de entrada, comando de voz de sada e a porta. 4 - O usurio clica no boto salvar
Cenrio(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. Cenrio(s) Principal(is) 1 - O usurio clica na Aba "Cadastro de Aparelhos e Usurios". 2 - O usurio clica na lupa de pesquisa do setor de aparelhos. 3 - O usurio visualiza uma lista de todos os aparelhos cadastrados. 4 - O usurio seleciona o item desejado.
Cenrio(s) Alternativo(s) 1 - Caso no tenha nenhum aparelho cadastrado, e emitido a seguinte mensagem "No existe aparelhos cadastrados.
C.3. UC3 - Alterar Aparelho Este caso de uso permite a alterao de um equipamento existente no sistema Cenrio(s) Principal(is)
80
1 - O usurio clica na Aba "Cadastro de Aparelhos e Usurios" 2 - O usurio clica na lupa de pesquisa do setor de aparelhos 3 - O usurio visualiza uma listagem de todos os aparelhos cadastrados 4 - O usurio escolhe o aparelho desejado 5 - O usurio clica no boto Editar 6 - O usurio faz as alteraes necessrias 7 - O usurio clica no boto Gravar
C.4. UC4 - Excluir Aparelho Este caso de uso permite a excluso de um equipamento no sistema Cenrio(s) Principal(is) 1 - O usurio clica na Aba "Cadastro de Aparelhos e Usurios 2 - O usurio clica na lupa de pesquisa no setor de aparelhos 3 - O usurio visualiza uma lista de todos os aparelhos cadastrados 4 - O usurio escolhe o aparelho desejado 5 - O usurio clica no boto Deletar 6 - O usurio confirma a mensagem de excluso
C.5. UC5 - Cadastrar Usurio Caso de uso refere-se ao cadastramento de usurios que tero acesso ao sistema web Cenrio(s) Principal(is) 1 - O usurio clica na Aba "Cadastro de Aparelhos e Usurios" 2 - O usurio clica no boto Cadastrar Usurio 3 - O usurio insere o nome, login, senha e confirmar senha. 4 - O usurio clica no boto salvar
Cenrio(s) Alternativo(s) 1 - O sistema verifica que o login j existe 1.1 - O sistema emite a mensagem "Este nome de usurio j est em uso". 2 - O sistema verifica se a senha idntica 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 Usurio Caso de uso permite a consulta de usurios j cadastrados no sistema. Cenrio(s) Principal(is) 1 - O usurio clica na Aba "Cadastro de Aparelhos e Usurios". 2 - O usurio clica na lupa de pesquisa do setor de Cadastro de Usurios 3 - O usurio visualiza uma lista de todos os usurios cadastrados 4 - O usurio seleciona o item desejado
Cenrio(s) Alternativo(s) 1 - Caso no tenha nenhum aparelho usurio cadastrado, e emitido a seguinte mensagem "No existe usurios cadastrados.
C.7. UC7 - Alterar Usurio Caso de uso permite a alterao de um usurio existente no sistema Cenrio(s) Principal(is) 1 - O usurio clica na Aba "Cadastro de Aparelhos e Usurios". 2 - O usurio clica na lupa de pesquisa do setor de Cadastro de Usurios 3 - O usurio visualiza uma listagem de todos os usurios cadastrados 4 - O usurio escolhe o item desejado 5 - O usurio clica no boto Editar 6 - O usurio faz as alteraes necessrias 7 - O usurio clica no boto Gravar
C.8. UC8 - Excluir Usurio Caso de uso permite a excluso de um usurio no sistema Cenrio(s) Principal(is) 1 - O usurio clica na Aba "Cadastro de Aparelhos e Usurios 2 - O usurio clica na lupa de pesquisa do setor de Cadastro de Usurios 3 - O usurio visualiza uma lista de todos os aparelhos cadastrados 4 - O usurio escolhe o aparelho desejado 5 - O usurio clica no boto Deletar 6 - O usurio confirma a mensagem de excluso
82
C.9. UC9 - Validar Comando de Voz Este caso de uso faz a validao do comando de voz, junto biblioteca SDK 5.1 da Microsoft. Cenrio(s) Principal(is) 1 - O comando de voz processado 2 - O sistema faz a verificao do comando voz, validando ou no atravs do banco de dados que possui todas as informaes necessrias. 3 - A verificao do sistema feito atravs do componente Microsoft Speech SDK 5.1 de reconhecimento de voz. 4 - Se o comando de voz de entrada for valido, ento o aparelho ligado. 5 - Se o comando de voz de sada for valido, ento 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. Cenrio(s) Principal(is) 1 - Aps conhecimento de voz for aceito pela validao o equipamento ligado. Cenrio(s) Alternativo(s) 1 - Caso o comando executado pelo usurio for para Ligar o aparelho, isso ser feito atravs do WebService.
C.11. UC11 - Desligar Aparelho Este caso de uso permanece com os equipamentos desligados caso o comando de voz no for aceito. Cenrio(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 no for validado e aceito, o equipamento permanece como esta.
83
Cenrio(s) Alternativo(s) 1 - Caso o comando executado pelo usurio for para desligar o aparelho, isso ser feito atravs do WebService.
C.12. UC12 - Aguardar Execuo de Comando no Sistema Caso de Uso permite aguardar a execuo de algum comando do usurio Web. Cenrio(s) Principal(is) 1 - O sistema fica em Stand By aguardando algum comando ser executado 2 - O usurio executa algum comando atravs 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 informaes do sistema Local Caso de uso permite fazer a busca de dados do sistema local Cenrio(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 Identificao Caso de uso permite fazer a validao das credenciais do usurio Web. Cenrio(s) Principal(is) 1 - Sistema verifica se as credenciais "usurio" e "senha" so validos. 2 - Caso verdadeiro o sistema continua o processo. 3 - Caso contrario, volta para a tela de identificao, impedindo qualquer avano do usurio.
84
Verso 1.0
85
Histrico de Reviso
Data 23/07/2009 Verso 1.0 Descrio Criao do Plano de Testes Autor Valmir Ferreira Rocha
86
ndice
1. 1.1. 1.2. 1.3. 1.4. 2. 2.1. 2.2. 2.3. 2.4. 3. 3.1. 4. 4.1.
INTRODUO .............................................................................................................. 87 Finalidade ................................................................................................................. 87 Informaes Detalhadas ........................................................................................... 87 Escopo ...................................................................................................................... 87 Identificao do Projeto ............................................................................................ 87 REQUISITOS DE TESTE ............................................................................................. 88 Teste Funcional ........................................................................................................ 88 Teste de Interface do Usurio ................................................................................... 88 Teste de Configurao .............................................................................................. 88 Teste de Instalao ................................................................................................... 89 ESTRATGIA DE TESTE ........................................................................................... 89 Tipos de Teste........................................................................................................... 89 RECURSOS .................................................................................................................... 92 Papis ........................................................................................................................ 92
87
Plano de Testes
1. INTRODUO
1.1.
Finalidade
H um mito segundo o qual, se fssemos realmente bons para programar, no haveria 'bugs' a ser procurados. Se pudssemos realmente nos concentrar, se todos usassem programao estruturada, projeto 'top-down, tabelas de deciso, se tivssemos as balas de prata certas, ento no haveria 'bugs (LARMAN, 2007)0. Por melhores que sejam as tcnicas e processos sempre estaro presentes os erros humanos. No se pode garantir que os programas funcionem corretamente, sem a presena de erros, portanto, para ter um sistema mais confivel, com o mnimo de erros, so executados os testes. A principal finalidade do Teste localizar e expor os pontos fracos do software (SHAW, 2003)0.
1.2.
Informaes Detalhadas
O sistema de automao residencial por comando de voz permite ligar e desligar aparelhos domsticos pela aplicao 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 usurio, de configurao e de instalao, gerando um sistema mais estvel e seguro para utilizao.
1.4.
Identificao do Projeto
A tabela abaixo identifica a documentao e disponibilidade; ela utilizada para desenvolver o plano de teste:
88
Documento (e verso / data) Especificao de Requisitos Relatrios de Caso de Uso Plano de Projeto Manual do Usurio Manual de Instalao
Autor ou Recurso
Observaes
2. REQUISITOS DE TESTE
A listagem a seguir identifica os itens (casos de uso, requisitos funcionais, requisitos no funcionais) que foram identificados como objetivos de teste. A lista representa o que foi testado.
2.1.
Teste Funcional
Verificar se o usurio consegue ligar e desligar qualquer aparelho pela aplicao Web Verificar se o usurio consegue ligar e desligar qualquer aparelho pela aplicao Desktop Verificar se o usurio consegue ligar e desligar qualquer aparelho pela aplicao Desktop e depois visualizar status pela aplicao Web Verificar se todos os casos de uso esto implementados corretamente
2.2.
Verificar se todas as funcionalidades esto disponveis Verificar se todas as telas nas Aplicaes Web e Desktop atendem os requisitos de interface amigvel Verificar se o padro visual consistente em todas as telas
2.3.
Teste de Configurao
89
2.4.
Teste de Instalao
Verificar se um usurio seguindo apenas os passos descritos no manual de instalao capaz de instalar o sistema Automao Residencial.
3. ESTRATGIA DE TESTE
3.1.
Tipos de Teste
3.1.1. Teste Funcional Objetivo do Teste: Garantir a funcionalidade adequada de objetivo do teste, incluindo navegao e processamento. Tcnica: Executar cada caso de uso, fluxo de caso de uso ou funo a fim de verificar o seguinte: Os resultados esperados ocorrero quando forem usados estados vlidos. Cada regra de negcio ser adequadamente aplicada. Critrios de Concluso: Consideraes Especiais: Todos os testes planejados foram executados. Todos os defeitos identificados foram abordados. Nenhuma.
90
Objetivo do Teste:
Verificar se: A navegao pelo sistema reflete adequadamente as funes e os requisitos de negcio, incluindo os mtodos de janela-a-janela, de campo-a-campo e de uso de acesso (como, movimentos do mouse). Os objetos e as caractersticas da Web, como menus, tamanho, posio, estado e enfoque, esto de acordo com os padres.
Criar/modificar testes de cada pgina para verificar a navegao. Cada janela foi completamente verificada para que permanea consistente com a verso de avaliao de desempenho ou esteja de acordo com o padro aceitvel.
Consideraes Especiais:
Nenhuma.
Objetivo do Teste:
Tcnica:
do teste, como os aplicativos da Microsoft, Excel e Word, como parte do teste, ou antes, do incio do teste. Testar o sistema utilizando diversos computadores clientes
diferentes. Critrios de Concluso: O sistema funciona de forma satisfatria nas configuraes testadas. Consideraes Especiais: Nenhuma.
91
Objetivo do Teste:
Verificar se as instrues includas no manual de instalao so suficientes para a correta instalao do software: Testar o sistema utilizando uma nova mquina. Instalar uma mesma verso j instalada do Sistema
Automao residencial por comando de voz. Tcnica: Testar a instalao do Sistema Automoo Residencial
em cada cenrio: em uma nova mquina e atualizao de uma mquina que j contenha a mesma verso instalada Critrios de Concluso: O Sistema Automao Residencial executa suas transaes corretamente. Nenhuma.
Consideraes Especiais:
3.1.5. Ferramentas
Ferramenta Internet Explorer Internet Explorer Internet Explorer Firefox Chrome Navegador Web Navegador Web Navegador Web Navegador Web Navegador Web
92
4. RECURSOS
4.1.
Papis
O papel Testador responsvel pelas atividades centrais do esforo de teste, que envolve conduzir os testes necessrios e registrar os resultados desses testes (SHAW, 2003)0. Isso inclui:
Configurar e executar os testes Registrar os resultados e verificar a execuo dos testes Analisar erros de execuo e recuperar-se deles Documentar solicitaes de alterao
93
Ordem 1
Simulao 1 - O usurio clica na Aba "Cadastro de Aparelhos e Usurios" 2 - O usurio clica no boto Cadastrar Aparelho 3 - O usurio insere o nome, descrio, comando de voz de entrada, comando de voz de sada e a porta 4 - O usurio clica no boto salvar 5 - O sistema emite mensagem de Aparelho Cadastrado com Sucesso.
Testes Funcionais
Aparelho j cadastrado
1 - O sistema verifica se o aparelho j est cadastrado. 2 - O sistema emite a mensagem "Equipamento j cadastrado". 1 - O sistema verifica que a porta j est em uso 2 - O sistema emite a mensagem "Porta j encontra em uso"
Verificao de cadastros j realizados foi efetuada com sucesso, impedindo o cadastramento de informaes duplicadas. Verificao de cadastros j realizados foi efetuada com sucesso, impedindo o cadastramento de informaes duplicadas.
Testes Funcionais
Porta j cadastrada
94
Testes Funcionais
Consultar Aparelho
1 - O usurio clica na Aba "Cadastro de Consulta de Aparelhos Aparelhos e Usurios" 2 - O usurio clica na lupa de pesquisa do setor de aparelhos 3 - O usurio visualiza uma lista de todos os aparelhos cadastrados 4 - O usurio seleciona o item desejado 1 - O usurio clica na Aba "Cadastro de Fechar a tela de pesquisa, Aparelhos e Usurios" e retornar a tela principal 2 - O usurio clica na lupa de pesquisa do do sistema. setor de aparelhos 3 - O usurio visualiza uma lista de todos os aparelhos cadastrados 4 - O usurio no seleciona nenhum item 5 - O usurio clica no "X" para fechar a janela de pesquisa 1 - O usurio clica na Aba "Cadastro de Aparelhos e Usurios" 2 - O usurio clica na lupa de pesquisa do setor de aparelhos 3 - O usurio visualiza uma listagem de todos os aparelhos cadastrados 4 - O usurio escolhe o aparelho desejado 5 - O usurio clica no boto Editar 6 - O usurio faz as alteraes necessrias 7 - O usurio clica no boto Gravar 1 - O usurio clica na Aba "Cadastro de Aparelhos e Usurios 2 - O usurio clica na lupa de pesquisa no setor de aparelhos 3 - O usurio visualiza uma lista de todos os aparelhos cadastrados 4 - O usurio escolhe o aparelho desejado 5 - O usurio clica no boto Deletar 6 - O usurio confirma a mensagem de excluso 1 - O usurio cancela a excluso Alterar cadastro j efetuado na base de dados
Testes Funcionais
Consultar Aparelho
Teste ocasionou falha, pois ao fechar a tela de pesquisa atravs do boto X, o sistema fechou-se por completo. No se comportando com o devido. Correes foram feitas e corrigidas.
Testes Funcionais
Alterar Aparelho
Testes Funcionais
Excluir Aparelho
Testes Funcionais
Excluir Aparelho
A operao foi realizada com sucesso, no entanto a excluso no foi realizada pois o usurio cancelou a operao.
95
Testes Funcionais
Cadastrar Usurio
10
Testes Funcionais
Cadastrar Usurio
11
Testes Funcionais
Consultar Usurio
1 - O usurio clica na Aba "Cadastro de Aparelhos e Usurios" 2 - O usurio clica no boto Cadastrar Usurio 3 - O usurio insere o nome, login, senha e confirmar senha 4 - O usurio clica no boto salvar 5 - Sistema emite mensagem de cadastro de usurio realizada com sucesso. 1 - O sistema verifica se o login j existe 1.1 - O sistema emite a mensagem "Este nome de usurio j est em uso". 2 - O sistema verifica se a senha idntica ao campo Confirmar senha 2.1 - O sistema emite a mensagem "Os valores do campo senha e confirmar senha tem que ser iguais. 1 - O usurio clica na Aba "Cadastro de Aparelhos e Usurios" 2 - O usurio clica na lupa de pesquisa do setor de Cadastro de Usurios 3 - O usurio visualiza uma lista de todos os usurios cadastrados 4 - O usurio seleciona o item desejado 1 - Caso no tenha nenhum usurio cadastrado, e emitido a seguinte mensagem "No existe usurios cadastrados.
Campos obrigatrios
Sistema validou corretamente os dados j existentes, no deixando realizar duplicidade dos dados
12
Testes Funcionais
Consultar Usurio
Sistema se comportou perfeitamente, no entanto a consulta no foi realizada por no possui base de dados.
13
Testes Funcionais
Consultar Usurio
1 - O usurio clica na Aba "Cadastro de Fechar a tela de pesquisa, Aparelhos e Usurios" e retornar a tela principal 2 - O usurio clica na lupa de pesquisa do do sistema. setor de Usurios 3 - O usurio visualiza uma lista de todos os usurios cadastrados 4 - O usurio no seleciona nenhum item 5 - O usurio clica no "X" para fechar a janela de pesquisa
Teste ocasionou falha, pois ao fechar a tela de pesquisa atravs do boto X, o sistema fechou-se por completo. No se comportando com o devido. Correes foram feitas e corrigidas.
96
14
Testes Funcionais
Alterar Usurio
1 - O usurio clica na Aba "Cadastro de Aparelhos e Usurios" 2 - O usurio clica na lupa de pesquisa do setor de Cadastro de Usurios 3 - O usurio visualiza uma listagem de todos os usurios cadastrados 4 - O usurio escolhe o item desejado 5 - O usurio clica no boto Editar 6 - O usurio faz as alteraes necessrias 7 - O usurio clica no boto Gravar
15
Testes Funcionais
Excluir Usurio
1 - O usurio clica na Aba "Cadastro de Cadastramento efetuado Aparelhos e Usurios na base de dados 2 - O usurio clica na lupa de pesquisa do setor de Cadastro de Usurios 3 - O usurio visualiza uma lista de todos os aparelhos cadastrados 4 - O usurio escolhe o aparelho desejado 5 - O usurio clica no boto Deletar 6 - O usurio confirma a mensagem de excluso 1 - O usurio cancela a excluso Excluir Usurio na base de dados
16
Testes Funcionais
Excluir Usurio
A operao foi realizada com sucesso, no entanto a excluso no foi realizada pois o usurio cancelou a operao.
17
Testes Funcionais
1 - O comando de voz processado 2 - O sistema faz a verificao do comando voz, validando ou no atravs do banco de dados que possui todas as informaes necessrias. 3 - A verificao do sistema feito atravs do componente Microsoft Speech SDK 5.1 de reconhecimento de voz. 4 - Se o comando de voz de entrada for valido, ento o aparelho ligado. 5 - Se o comando de voz de sada for valido, ento o aparelho desligado.
97
18
Testes Funcionais
Ligar Aparelho
Ligar Aparelho
19
Testes Funcionais
Desligar Aparelho
Desligar Aparelho
20
Testes Funcionais
Desligar Aparelho
1 - Caso o reconhecimento de voz no for validado e nem aceito, o equipamento permanece como esta.
Desligar Aparelho
21
Testes Funcionais
Aguardando execuo
1 - O sistema fica em Stand By aguardando algum comando ser executado 2 - O usurio executa algum comando atravs 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.
Comportamento perfeito, pois caso o comando de voz no seja aceito, o sistema no executa nenhuma ao, apenas relata que o comando ainda no foi reconhecido. Sistema web funcionou corretamente
22
Testes Funcionais
1 - Caso o WebService estiver normalizado, Sincronizando quando o sistema atingir este ponto, informaes locais e Web automaticamente ele conecta com a base de dados local, carregando no sistema web.
98
23
Testes Funcionais
Validar Identificao
1 - Sistema verifica se as credenciais "usurio" e "senha" so validos 2 - Caso verdadeiro o sistema continua o processo 3 - Caso contrario volta para a tela de identificao, impedindo qualquer avano do usurio.
99
Ordem 1
Categoria Interface
Simulao Aps a incluso de qualquer cadastro retornar mensagem amigvel de erro para o usurio
Interface
cones
Ao entrar na Aba "Cadastro de cones visveis Aparelhos e Usurios" colocar cones nos botes de consulta Colocar hints nos botes de aes como "Cadastrar Aparelho, "Cancelar", "Editar, "excluir" etc... Passar por todas as telas e ir teclando no TAB para ver se passa de campo Mensagem amigvel nos botes
Interface
Botes
Botes de aes
Interface
Tabulao
O processo de tabulao funcionou corretamente. Em cada aba, as informaes foram mostradas perfeitamente.
Interface
Clicar em todas as abas para verificar Dever passar por todas as abas a exibio dos dados a serem mostrados ou ocultados O usurio clica para abrir a aplicao desktop, em seguida dever habilitar o comando de voz. Aplicao iniciada
Execuo
100
Execuo
Aps a inicializao do aplicativo Desktop, j possvel inicializar a qualquer momento o aplicativo Web. Testar se a aplicao web funciona em diferentes browsers. Browsers testados: Internet Explorer, Firefox, Chrome.
Aplicao iniciada
Execuo
Aplicao iniciada