Tcc1 Felipe Machado Lucas Helion

download Tcc1 Felipe Machado Lucas Helion

of 81

description

Trabalho de conclusão de curso.Engenharia Eletrônica - UnB

Transcript of Tcc1 Felipe Machado Lucas Helion

  • Universidade de Braslia - UnBFaculdade UnB Gama - FGA

    Engenharia Eletrnica

    Prottipo de uma plataforma mvel baseadaem Android para monitoramento de parmetros

    de qualidade da gua do lago Parano

    Autor: Felipe Duarte Machado e Lucas Hlion Santana de SouzaOrientador: Dr. Daniel Mauricio Muoz Arboleda

    Braslia, DF2014

  • Felipe Duarte Machado e Lucas Hlion Santana de Souza

    Prottipo de uma plataforma mvel baseada em Androidpara monitoramento de parmetros de qualidade da gua

    do lago Parano

    Monografia submetida ao curso de graduaoem (Engenharia Eletrnica) da Universidadede Braslia, como requisito parcial para ob-teno do Ttulo de Bacharel em (EngenhariaEletrnica).

    Universidade de Braslia - UnB

    Faculdade UnB Gama - FGA

    Orientador: Dr. Daniel Mauricio Muoz ArboledaCoorientador: Dr. Manoel Fernando Tenrio

    Braslia, DF2014

  • Felipe Duarte Machado e Lucas Hlion Santana de SouzaProttipo de uma plataforma mvel baseada em Android para monitoramento

    de parmetros de qualidade da gua do lago Parano/ Felipe Duarte Machado eLucas Hlion Santana de Souza. Braslia, DF, 2014-

    80 p. : il. (algumas color.) ; 30 cm.

    Orientador: Dr. Daniel Mauricio Muoz Arboleda

    Trabalho de Concluso de Curso Universidade de Braslia - UnBFaculdade UnB Gama - FGA , 2014.1. Veiculo Autnomo de Superfcie. 2. Estimao de parmetros da qualidade

    da gua. I. Dr. Daniel Mauricio Muoz Arboleda. II. Universidade de Braslia.III. Faculdade UnB Gama. IV. Prottipo de uma plataforma mvel baseada emAndroid para monitoramento de parmetros de qualidade da gua do lago Parano

    CDU 02:141:005.6

  • Felipe Duarte Machado e Lucas Hlion Santana de Souza

    Prottipo de uma plataforma mvel baseada em Androidpara monitoramento de parmetros de qualidade da gua

    do lago Parano

    Monografia submetida ao curso de graduaoem (Engenharia Eletrnica) da Universidadede Braslia, como requisito parcial para ob-teno do Ttulo de Bacharel em (EngenhariaEletrnica).

    Trabalho aprovado. Braslia, DF, 27 de novembro de 2014:

    Dr. Daniel Mauricio Muoz ArboledaOrientador

    Dr. Andr Murilo de Almeida PintoConvidado 1

    Dr. Gerardo Antonio Idrobo PizoConvidado 2

    Braslia, DF2014

  • ResumoA gua do planeta sofre constantes transformaes, se renova e reutilizada. Uma dasprincipais transformaes que a gua sofreu no ltimo sculo a crescente contaminao,problema que afeta especialmente as grandes reas urbanas e zonas litorneas. Em razodo aumento da importncia da gua para a segurana de populaes e devido ao riscode contaminao decorrente das atividades humanas surge a necessidade de um controlemais rgido para o abastecimento pblico. Neste cenrio, destaca-se a importncia domonitoramento da qualidade da gua para a gesto dos recursos hdricos. O presentetrabalho apresenta uma proposta de desenvolvimento de um prottipo de uma plataformamvel aqutica controlada remotamente com o objetivo de obter parmetros relevantesna estimao da qualidade da gua. No desenvolvimento do trabalho so investigadosos parmetros para estimar a qualidade da gua, princpios de um ASV (AutonomousSurface Vehicle), utilizao de sensores embarcados em um dispositivo mvel com sistemaoperacional Android, filtragem de sinais atravs do filtro de Kalman e filtro media mvel,controlador PID, navegao por GPS e integrao de aplicaes utilizando um web service.Como resultados parciais foram obtidos aplicativos Android que acessam os sensores doaparelho smartphone e se comunicam com o servidor implementado em java. Alem disso,obteve-se o filtro de Kalman esttico e o filtro media mvel que foram implementadosem linguagem GNU Octave e fazem a filtragem das amostras provenientes dos sensoresembarcados no dispositivo Android. Foi implementado ainda a interface grfica do usurioque se comunica com o servidor.

    Palavras-chaves: ASV. Android. Arduino ADK. Web service. Sensoriamento Inercialcom Android.

  • AbstractDuring the last century the water in the planet has suffered of constant constamination.This problem affects especially the major urban areas and coastal zones. Because the in-creasing importance of water for the public safety as well as the risk of contamination dueto the human activities, some efforts are required to be done in order of controlling thepublic water supply. This scenario highlights the importance of water quality monitoringfor water resources management. This work proposes to develop an Autonomous SurfaceVehicle (ASV) prototype which is remotely controlled in order to obtain the estimationof the water quality. In this work several concepts are presented regarding parameter es-timation for the quality of water, ASVs principles, embedded sensors commonly used inmobile devices with Android operating system, signal filtering through the Kalman filterand moving average filter, PID controller, GPS navigation and integration of applicationsusing a web service. As partial results, Android applications that access the devices sen-sors and communicate with the server implemented in Java, were developed. In addition,the static Kalman filter and the moving average filter were implemented in GNU Octavelanguage in order to filter several samples acquired from the embedded sensors in theAndroid device. Finally, a graphical user interface that communicates with the server hasbeen also implemented.

    Key-words: ASV. Android. Arduino ADK. Web service. Inertial sensing with Android.

  • Lista de ilustraes

    Figura 1 Curvas medias dos valores de qualidade de cada parmetro (ANA, 2014). 20Figura 2 ASVs da tabela (4), Respectivamente (ALMEIDA, 2012). . . . . . . . 25Figura 3 Exemplo de sistema controlado com PID (FREITAS, 2014). . . . . . . 30Figura 4 Sistema de controle digital (FREITAS, 2014). . . . . . . . . . . . . . . 33Figura 5 Camadas da arquitetura do Android (ANDROID. . . , 2014a). . . . . . . 36Figura 6 Ciclo de vida de uma Activity no Android (BOEHMER, 2012). . . . . 38Figura 7 Hierarquia de Views e Viewsgroups no Android (ANDROID. . . , 2014a). 39Figura 8 Arduino ADK (ARDUINO, 2014). . . . . . . . . . . . . . . . . . . . . 40Figura 9 Esquemtico do sistema proposto. . . . . . . . . . . . . . . . . . . . . . 43Figura 10 Zonas de atuao da plataforma no lago Paranoa. . . . . . . . . . . . . 44Figura 11 Diagrama de comunicao do sistema proposto. . . . . . . . . . . . . . 45Figura 12 Diagrama de comunicao da interface do usurio. . . . . . . . . . . . . 46Figura 13 Diagrama de comunicao do servidor. . . . . . . . . . . . . . . . . . . 46Figura 14 Diagrama de comunicao do Android. . . . . . . . . . . . . . . . . . . 47Figura 15 Diagrama de comunicao do Arduino ADK. . . . . . . . . . . . . . . . 47Figura 16 Sensor de temperatura DS18B20. . . . . . . . . . . . . . . . . . . . . . 48Figura 17 Sensor de turbidez ENV-RGB. . . . . . . . . . . . . . . . . . . . . . . 48Figura 18 Diagrama de bloco controlador PID. . . . . . . . . . . . . . . . . . . . 49Figura 19 Pinagem sensor de temperatura. . . . . . . . . . . . . . . . . . . . . . . 54Figura 20 Pinagem sensor de turbidez. . . . . . . . . . . . . . . . . . . . . . . . . 55Figura 21 Protocolo de comunicao entre Arduino ADK e Android. . . . . . . . 56Figura 22 Protocolo de comunicao adaptado para mensagens de texto. . . . . . 56Figura 23 Modulo Driver Ponte H. . . . . . . . . . . . . . . . . . . . . . . . . . . 57Figura 24 Ponte H. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58Figura 25 Esquema interno do L298N. . . . . . . . . . . . . . . . . . . . . . . . . 59Figura 26 Diagrama de bloco simulado no Simulink. . . . . . . . . . . . . . . . . 61Figura 27 Aplicativo teste01_gps. . . . . . . . . . . . . . . . . . . . . . . . . . . 62Figura 28 Aplicativo gps1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63Figura 29 Aplicativo Lista_sensores. . . . . . . . . . . . . . . . . . . . . . . . . . 64Figura 30 Aplicativo Sensores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64Figura 31 Aplicativo TCC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65Figura 32 Interface Grfica do Usurio. . . . . . . . . . . . . . . . . . . . . . . . 66Figura 33 Retorno das coordenadas mais recentes. . . . . . . . . . . . . . . . . . 66Figura 34 Plotagem da coordenada atual no mapa. . . . . . . . . . . . . . . . . . 67Figura 35 Plotagem da trajetria. . . . . . . . . . . . . . . . . . . . . . . . . . . . 67Figura 36 Aplicao do filtro media mvel nas amostras obtidas da bssola. . . . 68

  • Figura 37 Aplicao do filtro media mvel nas amostras obtidas do acelermetro. 69Figura 38 Aplicao do filtro media mvel nas amostras obtidas do giroscpio. . . 69Figura 39 Aplicao do filtro de Kalman nas amostras obtidas da bussola. . . . . 69Figura 40 Aplicao do filtro de Kalman nas amostras obtidas do acelermetro . 70Figura 41 Aplicao do filtro de Kalman nas amostras obtidas do giroscpio. . . . 70Figura 42 Resposta ao degrau com controle proporcional. . . . . . . . . . . . . . 71Figura 43 Resposta ao degrau modificando os valores e . . . . . . . . . . . . 71Figura 44 Resposta ao degrau com controlador PID no Simulink. . . . . . . . . . 72Figura 45 Cronograma de atividades realizadas. . . . . . . . . . . . . . . . . . . . 72Figura 46 Cronograma de atividades a serem executadas. . . . . . . . . . . . . . 73Figura 47 Circuito equivalente de um motor DC genrico. . . . . . . . . . . . . . 79

  • Lista de tabelas

    Tabela 1 Pesos dos parmetros de qualidade da gua (ANA, 2014) . . . . . . . . 19Tabela 2 Classificao das faixas de valores do IQA seperados por estados (ANA,

    2014). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21Tabela 3 Classificao das faixas de valores do IQA (ANA, 2014). . . . . . . . . 24Tabela 4 ASVs: modelos e caractersticas (ALMEIDA, 2012). . . . . . . . . . . 24Tabela 5 Comparao de diferentes tipos de baterias (ALMEIDA, 2012). . . . . 27Tabela 6 Parmetros de um controlador PID (MICHIGAN., 2014). . . . . . . . . 32Tabela 7 Principais APIs do android. . . . . . . . . . . . . . . . . . . . . . . . . 37Tabela 8 Relao dos sensores utilizados e seus respectivos tipos. . . . . . . . . . 52Tabela 9 Parmetros do mtodo LocationManager.requestlocationUpdates . . . 52Tabela 10 Descrio dos terminais do driver do motor. . . . . . . . . . . . . . . . 58Tabela 11 Funcionamento do driver de motor. . . . . . . . . . . . . . . . . . . . . 59

  • Lista de abreviaturas e siglas

    ADK Acessory Development Kit

    ANA Agencia Nacional das guas

    API Application Programming Interface

    ASV Autonomous Surface Vehicles

    DBO5,20 Demanda Bioqumica de Oxignio

    GPS Global Positioning System

    HTTP Hypertext Transfer Protocol

    IAP ndice de Qualidade da gua Bruta para fins de Abastecimento Pblico

    IB ndice de Balneabilidade

    IET ndice de Estado Trfico

    IMU Inertial Measurement Unit

    IQA ndice de Qualidade da gua

    ISTO ndice de Substncias Txicas e Organolpticas

    IVA ndice de Qualidade da gua para a Proteo da Vida Aqutica

    NED North East Down

    pH potencial Hidrogeninico

    PID Proporcional Integral Derivativo

    SOAP Simple Object Access Protocol

    UDDI Universal Description Discovery and Integration

    URL Uniform Resource Locator

    XML Extensible Markup Language

    WSDL Web Services Description Language

  • Sumrio

    1 INTRODUO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.1 Descrio do Problema . . . . . . . . . . . . . . . . . . . . . . . . . . 131.2 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.3 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.3.1 Objetivos especficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.4 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.5 Organizao do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . 16

    2 FUNDAMENTAO TERICA . . . . . . . . . . . . . . . . . . . . 182.1 Estimao da qualidade da gua . . . . . . . . . . . . . . . . . . . . . 182.1.1 ndice de Qualidade da gua (IQA) . . . . . . . . . . . . . . . . . . . . . 182.1.2 Descrio dos Parmetros do IQA . . . . . . . . . . . . . . . . . . . . . . 212.1.3 ndice de Qualidade da gua Bruta para fins de Abastecimento Pblico . . 232.2 ASVs - Veculos Autnomos de Superfcie . . . . . . . . . . . . . . . 242.2.1 Levantamento de ASVs existentes . . . . . . . . . . . . . . . . . . . . . . 242.2.2 Estrutura mecnica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.2.3 Propulso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.2.4 Sistemas Embarcados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.2.5 Navegao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.2.5.1 Sistemas de Posicionamento . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.2.5.2 Sistemas Inerciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.2.5.3 Sistema de desvio de obstculos . . . . . . . . . . . . . . . . . . . . . . . . . . 262.2.6 Bateria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.3 Filtragem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.3.1 Media Mvel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.3.2 Filtro de Kalman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282.3.2.1 Filtro de Kalman simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282.3.2.2 Filtro de Kalman discreto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292.4 Controle PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302.4.1 PID numrico utilizando aproximao retangular . . . . . . . . . . . . . . . 322.5 Plataforma de Desenvolvimento Android . . . . . . . . . . . . . . . . 342.5.1 Arquitetura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342.5.2 Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372.5.3 Interface Grfica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382.6 Plataforma arduino ADK . . . . . . . . . . . . . . . . . . . . . . . . . 39

  • 2.6.1 ADK - Acessory Development Kit . . . . . . . . . . . . . . . . . . . . . . 392.6.2 Arduino ADK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402.7 Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402.7.1 Tecnologias Utilizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412.7.1.1 XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412.7.1.2 SOAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412.7.1.3 WSDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412.7.1.4 UDDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

    3 IMPLEMENTAO . . . . . . . . . . . . . . . . . . . . . . . . . . . 433.1 Soluo Proposta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433.1.1 Arquitetura do Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453.1.2 Interface Grfica do Usurio . . . . . . . . . . . . . . . . . . . . . . . . . 463.1.3 Servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463.1.4 Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463.1.5 Arduino ADK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473.1.6 Sensores escolhidos para medio da qualidade da gua . . . . . . . . . . . 473.1.7 Filtragem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483.1.8 Controlador PID de velocidade dos motores . . . . . . . . . . . . . . . . . 493.1.9 Navegao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493.2 Implementaes Parciais . . . . . . . . . . . . . . . . . . . . . . . . . 503.2.1 Implementao parcial da interface grfica . . . . . . . . . . . . . . . . . . 503.2.2 Implementao parcial do servidor . . . . . . . . . . . . . . . . . . . . . . 513.2.3 Implementaes parciais com o Android . . . . . . . . . . . . . . . . . . . 513.2.3.1 Sensores para Navegao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513.2.3.2 Comunicao com servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533.2.3.3 Comunicaao com Arduino ADK . . . . . . . . . . . . . . . . . . . . . . . . . 533.2.4 Implementaes parciais com o Arduino ADK . . . . . . . . . . . . . . . . 543.2.4.1 Medies dos sensores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543.2.4.2 Comunicao com Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553.2.4.3 Controle do driver do motor . . . . . . . . . . . . . . . . . . . . . . . . . . . 563.2.5 Implementao parcial dos Filtros . . . . . . . . . . . . . . . . . . . . . . 603.2.5.1 Mdia mvel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603.2.5.2 Filtro de Kalman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603.2.6 Implementao parcial do controlador PID . . . . . . . . . . . . . . . . . . 60

    4 RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624.1 Resultados Parciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624.1.1 Testes realizados utilizando a plataforma Android . . . . . . . . . . . . . . 624.1.1.1 Aplicativo teste01_gps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

  • 4.1.1.2 Aplicativo gps1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634.1.1.3 Aplicativo Listar_sensores . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634.1.1.4 Aplicativo Sensores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644.1.1.5 Aplicativo TCC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644.1.2 Interface Grfica do usurio . . . . . . . . . . . . . . . . . . . . . . . . . 654.1.3 Teste de filtragem com os sensores de navegao embarcados no Android . 684.1.3.1 Media Mvel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684.1.3.2 Filtro de Kalman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694.1.4 Simulaes com controlador PID . . . . . . . . . . . . . . . . . . . . . . . 704.1.5 Cronograma de atividades realizadas . . . . . . . . . . . . . . . . . . . . . 724.2 Resultados Esperados . . . . . . . . . . . . . . . . . . . . . . . . . . . 724.2.1 Cronograma de atividades a serem executadas . . . . . . . . . . . . . . . . 73

    5 CONCLUSO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

    Referncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

    APNDICES 76

    APNDICE A IMPLEMENTAO DE UM PID NUMRICO COMAPROXIMAO RETANGULAR . . . . . . . . . 77

    APNDICE B MODELAGEM DO SISTEMA DA VELOCIDADEDE UM MOTOR DC. . . . . . . . . . . . . . . . . 79

  • 13

    1 Introduo

    Neste capitulo introdutrio esto apresentados a descrio do problema a ser ata-cado, justificativa do trabalho, objetivos que almeja-se alcanar, metodologia utilizada nodesenvolvimento do trabalho e organizao do documento.

    A gua um recurso essencial para vrias atividades humanas, como consumodomstico, irrigao, transporte, lazer e uso industrial, e sua disponibilidade e qualidadeesto diretamente correlacionados com o bem estar da populao, a manuteno do meioambiente e uma srie de atividades econmicas como a agricultura e pecuria, industriaalimentcia, turismo entre outros. Sendo assim a degradao da gua traz uma srie deimpactos ambientais (perda da biodiversidade), sociais (racionamento e falta de guapara uso domstico, aumento de doenas de veiculao hdrica) e econmicos (aumentode custo de tratamento e abastecimento, perda de produtividade nas industrias) quetornam explcitos a relevncia da gua, em termos quantitativo e qualitativos.

    Segundo a Agncia Nacional de guas (ANA, 2014) o Brasil possui 12% da dispo-nibilidade de gua doce superficial do mundo. Apesar do aspecto quantitativo, o aspectoqualitativo representa um fator limitante para o aproveitamento da gua, uma vez os di-versos usos da gua requerem requisitos de qualidade que podem ou no serem atendidos,o que torna claro que conhecer a qualidade da gua um fator primordial para sua ges-to. Desse modo, o monitoramento e avaliao das guas superficiais so fatores essenciaispara uma gesto adequada dos recursos hdricos, permitindo a anlise e caracterizaodas bacias hidrogrficas.

    1.1 Descrio do ProblemaA avaliao da qualidade das guas superficiais brasileiras possui alguns fatores

    de dificuldade como: as propores continentais do Brasil, a ausncia de redes estaduaisde monitoramento em alguns Estados, alm da heterogeneidade dos mtodos de anlise eavaliao nas redes de monitoramento existentes (ANA, 2014).

    A avaliao da qualidade da gua incluem a anlise de parmetros fsicos (tur-bidez, temperatura, resduo total, condutividade eltrica), qumicos (oxignio dissolvido,pH, demanda bioqumica de oxignio, alcalinidade total), biolgicos (coliformes tolerantes,clorofila, fitoplncton) e nutricionais (fsforo total, nitrognio total). Essas anlises reque-rem expedies de corpo tcnico dotados de sondas e amostradores que coletam amostrase as avaliam em laboratrio (ANA, 2012). De modo geral, a avaliao de corpos dgua realizado com auxilio de ndices de qualidade da gua que, utilizando diversos parmetros

  • Captulo 1. Introduo 14

    citados, sintetizam em um nico nmero vrias informaes. Porm, neste processo desntese perde-se informao sobre o comportamento dos parmetros analisados.

    Cada tipo de utilizao da gua requer requisitos de qualidade distintos. A prticade esportes e atividades realizadas na gua como natao, remo, entre outros, requeremuma boa qualidade da gua no que diz repeito a poluentes que podem transmitir doenas.Em determinadas reas do lago Parano a pratica desses tipos de esportes e outras ati-vidades de lazer so bastante difundidas, como por exemplo, na Pennsula dos ministrose Ermida Dom Bosco, de modo que necessrio atender requisitos mnimos de qualidadenessas regies para que tais atividades possam ser realizadas com segurana.

    1.2 JustificativaO processo de avaliao de guas constitudo, geralmente por trs etapas: amos-

    tragem, armazenamento e anlise das amostras e estudo dos fatores intervenientes emsua gesto. Sendo assim, h diversas desvantagens nesse processo que o tornam relativa-mente lento e dispendioso, tais como: a necessidade de deslocamento de recursos humanospara os locais de coleta de amostras, amide distantes e de difcil acesso; no possibilitaa aquisio de um amplo conjunto de dados necessrio para a investigao da evoluotemporal dos parmetros desejados; durante a fase de armazenamento, a integridade daamostra pode no ser preservada devido a possveis atividades biolgicas e, no permite arealizao de anlises em condies reais, o que minimiza a representatividade dos valoresobtidos (ANA, 2012).

    A ideia da utilizao de uma plataforma mvel ajuda a superar diversas dificulda-des apresentadas. Todo o processo de coleta de dados automatizado. Alm de possibilitarmedies de alguns parmetros em tempo real de uma forma remota, a possibilidade deexpandir as funcionalidades dessa plataforma acrescentando outros tipos de tecnologiaspara atender a mais necessidades como monitoramento e mapeamento de regies, porexemplo. Dessa forma o uso de uma plataforma mvel com capacidade de comunicaoremota torna-se uma soluo apropriada para resolver o problema de monitoramento daqualidade da gua do lago Parano.

    1.3 ObjetivosO objetivo deste trabalho desenvolver um prottipo de uma plataforma mvel que

    faa uma estimativa de alguns parmetros da qualidade da gua de determinadas zonassuperficiais do Lago Parano. Essa plataforma deve movimentar-se de modo autnomona gua, sendo controlada por uma estao remota.

  • Captulo 1. Introduo 15

    1.3.1 Objetivos especficos

    Viabilizar a comunicao entre a plataforma mvel e a estao remota, de modoque o usurio na estao remota possa enviar comandos e receber informaes daplataforma mvel;

    Implementar filtros no processo de aquisio de dados na leitura dos sensores, demodo a obter uma medio mais prxima do valor real;

    Construir uma interface grfica do usurio que possa permitir a visualizao dalocalizao e trajetria da plataforma mvel, e o envio de comandos por parte dousurio;

    Projeto e desenvolvimento eletromecnico de um prottipo de plataforma mvel quepermita a sua navegao atravs de GPS e sensores inerciais;

    1.4 MetodologiaNo desenvolvimento deste trabalho foram utilizadas as metodologias top-down e

    bottom-up para fins de organizao das fases do projeto. No incio, utilizou-se a metodo-logia top-down para uma anlise do problema e modelagem da arquitetura do sistemaproposto.

    No desenvolvimento da arquitetura do sistema proposto, utilizou-se a metodologiabottom-up, que consiste no desenvolvimento, teste e validao da arquitetura final em seusmdulos menores que compem o sistema.

    As fases de desenvolvimento para a primeira parte do Trabalho de Concluso deCurso so as seguintes:

    Na primeira fase realizou-se o estudo do estado da arte do problema apresentado,estimao da qualidade da gua, tipos de ASVs (Veiculo Autnomo de Superfcie)existentes, aplicaes e tecnologias associadas aos ASVs, sistemas inerciais e orien-tao, filtragem utilizando filtro de Kalman e media mvel para amostras de sinais,controlador PID, plataforma e ambiente de desenvolvimento Android, microcontro-lador para comunicao com Android e Web Services;

    Na segunda fase foi realizado a configurao da IDE Eclipse para o desenvolvimentopara Android e Web service. Em seguida a configurao do Microsoft Visual Studio2013 para a implementao da interface grfica do usurio;

  • Captulo 1. Introduo 16

    Na terceira fase foi realizada a implementao do web service para se estabelecer acomunicao entre a interface grfica do usurio e o dispositivo Android. Estabe-lecida a comunicao, foi implementada a interface grfica do usurio e realizadasimplementaes no Android no que diz respeito a cada funcionalidade que ele exer-cer na arquitetura do sistema proposto;

    Na quarta fase foi implementado usando oMatlab o controlador PID e os filtro mediamvel e Kalman foram implementados usando linguagem GNU Octave. O filtro deKalman e o filtro media mvel sero usados para eliminar ruido dos sensores inerciais:acelermetro, giroscpio e bssola digital. A navegao do ASV ser feito atravs decontrole de posio usando GPS e sensores inerciais. Para isto, o controlador PIDser utilizado para controle de posio ou velocidade dos motores;

    Na quinta fase as medies de temperatura e turbidez obtidas na aquisio de dadossero analisadas sob duas ticas: a preciso das medidas obtidas e a correlao detais parmetros em uma estimativa da qualidade da gua. A preciso das medidasser avaliada a partir de medies em um ambiente controlado aplicando o erromdio quadrtico nas amostras obtidas em relao aos valores reais;

    Na sexta fase ser construdo o prottipo da plataforma mvel proposta. Para talser utilizado uma estrutura e motores de um modelo comercial de barco eltricode controle remoto onde sero instalados os sensores, o driver de motor, microcon-trolador e dispositivo Android;

    1.5 Organizao do TrabalhoDurante este documento ser apresentado todo o trabalho desenvolvido ate o mo-

    mento durante este projeto. Aps o capitulo introdutrio onde o projeto e seu enqua-dramento so descritos. No capitulo 2 so apresentados os levantamentos bibliogrficosrealizados. Inicialmente apresentado um estudo realizado sobre a estimao da qualidadeda gua. Em seguida apresentado os ndices e parmetros relevantes para a medio daqualidade da gua. Depois apresentado um levantamento realizado sobre ASVs j de-senvolvidos. Em seguida realizado um estudo sobre controlador PID, filtro media mvele filtro de Kalman e as plataformas que sero utilizadas no desenvolvimento do projetocomo o Android, plataforma Arduino-ADK e Web Services.

    No capitulo 3 apresentado o sistema proposto para obteno de parmetros dequalidade da gua e como esse sistema ser implementado no que diz respeito a mate-riais utilizados, plataformas de desenvolvimento, ferramentas necessrias para o desen-

  • Captulo 1. Introduo 17

    volvimento do projeto. Em um primeiro momento apresentado a soluo proposta e aarquitetura do sistema proposto e em seguida as implementaes parciais.

    No capitulo 4 so apresentados os resultados parciais obtidos, sendo apresentadosos testes realizados, e os resultados esperados. E por fim conclui-se o trabalho no capitulo5.

  • 18

    2 Fundamentao Terica

    Neste capitulo de levantamento do estudo da arte e reviso da literatura estoapresentados os resultados desta fase do projeto que constituiu em reunir informaes so-bre aspectos relevantes ao desenvolvimento do projeto. Foram estudados parmetros paramedio da qualidade de gua, alguns tipos de ASVs (Veiculo Autnomo de Superfcie),aplicaes e tecnologias associadas aos ASVs, sistemas inerciais e orientao, filtragemde sinais utilizando filtro de Kalman e media mvel, controlador PID, plataforma de de-senvolvimento open-source Android, microcontrolador para comunicao com Android eWeb Services.

    2.1 Estimao da qualidade da guaAs informaes sobre diversos parmetros fsicos-qumicos da gua podem ser sin-

    tetizados utilizando ndices de qualidade da gua, segundo a ANA (Agencia Nacional deguas). Tais ndices visam informar a populao e orientar as aes de planejamento egesto da qualidade da gua, pois permitem resumir vrias informaes em apenas umnmero. De acordo com a ANA, os principais ndices utilizados no Brasil so: ndicede Qualidade da gua (IQA), ndice de Qualidade da gua Bruta para fins de Abas-tecimento Pblico (IAP), ndice de Estado Trfico (IET), ndice de Contaminao porTxicos, ndice de Balneabilidade (IB) e ndice de Qualidade da gua para a Proteoda Vida Aqutica (IVA). A seguir so apresentados os indices IQA e IAP que so maisrelevantes para estimar a qualidade da gua (ANA, 2014).

    2.1.1 ndice de Qualidade da gua (IQA)

    O ndice da Qualidade da gua (IQA) visa avaliar a qualidade da gua bruta uti-lizada no abastecimento pblico. Ela foi desenvolvida em 1970, pela National SanitationFundation, nos Estados Unidos, e hoje o principal ndice de qualidade da gua utilizadono Brasil. O IQA utiliza nove parmetros: oxignio dissolvido, coliformes termotolerantes,potencial hidrogeninico (pH), demanda bioqumica de oxignio (DBO5,20), temperatura,nitrognio total, fsforo total, turbidez e resduo total. Tais parmetros so em sua mai-oria indicadores de contaminao causada pelo lanamento de esgotos domsticos (ANA,2014).

    O IQA um nmero de 0 a 100, calculado pelo produtrio ponderado dos novesparmetros, de acordo com a formula (2.1).

  • Captulo 2. Fundamentao Terica 19

    =

    =1

    (2.1)

    Onde:

    a qualidade do i-simo parmetro, isto , um nmero entre 0 e 100, obtidopelo respectivo grfico de qualidade, em funo de sua concentrao ou medida;

    o peso correspondente ao i-simo parmetro;

    n nmero total de parmetros.

    De acordo com a ANA, o peso de cada parmetro foi definido em funo dasua importncia para a conformao global da qualidade da gua. Estes parmetros estodispostos na tabela (1).

    Parmetro de qualidade da gua Peso

    Oxignio dissolvido 0.17Coliformes termotolerantes 0.15

    Potencial hidrogeninico (pH) 0.12Demanda bioqumica de Oxignio (DBO5,20) 0.10

    Temperatura 0.10Nitrognio total 0.10Fsforo total 0.10Turbidez 0.08

    Resduo total 0.08

    Tabela 1 Pesos dos parmetros de qualidade da gua (ANA, 2014)

    Segundo a ANA, cada parmetro possui um valor de qualidade, que extrado deseu grfico de qualidade em funo de sua medida ou concentrao como mostra a figura(1).

  • Captulo 2. Fundamentao Terica 20

    Figura 1 Curvas medias dos valores de qualidade de cada parmetro (ANA, 2014).

    De acordo com a ANA, as faixas de valores do IQA so classificadas de acordocom a tabela (2).

  • Captulo 2. Fundamentao Terica 21

    AL, MG, MT, PR, RJ, RN, RS BA, CE, ES, GO, MS, PB, PE, SP Classificao

    91 100 80 100 tima71 90 52 79 Boa51 70 37 51 Razovel26 50 20 36 Ruim0 25 0 19 Pssima

    Tabela 2 Classificao das faixas de valores do IQA seperados por estados (ANA, 2014).

    2.1.2 Descrio dos Parmetros do IQA

    Oxignio Dissolvido

    As guas poludas por esgotos apresentam baixa concentrao de oxignio. En-quanto que guas limpas apresentam concentraes de oxignio dissolvido mais elevadas,geralmente superiores a 5mg/L, exceto se houverem condies naturais que causem baixosvalores deste parmetro.

    As guas eutrofizadas (ricas em nutrientes) podem apresentar concentraes deoxignio superiores a 10 mg/L, situao conhecida como supersaturao.

    Coliformes termotolerantes

    As bactrias coliformes termotolerantes ocorrem no trato intestinal de animais desangue quente e so indicadoras de poluio por esgotos domsticos. Sua presena emgrandes nmeros indicam a possibilidade da existncia de microrganismos patognicosque so responsveis pela transmisso de doenas de veiculao hdrica.

    Potencial Hidrogeninico

    A Resoluo CONAMA 357 estabelece que para a proteo da vida aqutica o pHdeve estar entre 6 e 9. Alteraes nos valores de pH tambm podem aumentar o efeito desubstncias qumicas que so txicas para os organismos aquticos, tais como os metaispesados.

    Demanda Bioqumica de Oxignio (DBO5,20)

    A Demanda Bioqumica de Oxignio representa a quantidade de oxignio necess-ria para oxidar a matria orgnica presente na gua atravs da decomposio microbiana

  • Captulo 2. Fundamentao Terica 22

    aerbia. A DBO5,20 a quantidade de oxignio consumido durante 5 dias em uma tem-peratura de 20 oC. A ocorrncia de altos valores deste parmetro causa uma diminuiodos valores de oxignio dissolvido na gua, o que pode provocar mortandades de peixes eeliminao de outros organismos aquticos.

    Temperatura

    A temperatura influncia parmetros fsico-qumicos da gua como a tenso super-ficial e a viscosidade. Alm disso, os organismos aquticos so afetados por temperaturasfora de seus limites de tolerncia trmica, causando impactos sobre seu crescimento eprocesso de reproduo.

    Nitrogenio Total

    O nitrognio pode ocorrer nas formas de nitrognio orgnico, amoniacal, nitritoe nitrato, nos corpos dgua. Os nitratos so txicos aos seres humanos, e em altas con-centraes causa uma doena chamada metahemoglobinemia infantil, que letal paracrianas.

    As fontes de nitrognio para os corpos dgua so diversos, sendo o lanamento deesgotos sanitrios e efluentes industriais uma das principais fontes. A drenagem pluvial,em reas agrcolas, da gua das chuvas em solos que receberam fertilizantes uma fontede nitrognio, tal como a drenagem de guas pluviais em reas urbanas.

    Fsforo Total

    O fsforo um importante nutriente para os processos biolgicos e seu excessopode causar a eutrofizao das guas.

    Os esgotos domsticos, pela presena dos detergentes super fosfatados e da prpriamatria fecal, destacam-se entre as fontes de fsforo. Alm disso, os efluentes industriaisdas indstrias de fertilizantes, alimentcias, laticnios, frigorficos e abatedouros so fontessignificativas de fsforo.

    Turbidez

    A turbidez indica o grau de atenuao que um feixe de luz sofre ao atravessara gua, devido absoro e espalhamento da luz causada pelos slidos em suspensona gua. A eroso dos solos e o escoamento pluvial esto entre as principais fontes deturbidez.

  • Captulo 2. Fundamentao Terica 23

    A alta turbidez afeta a preservao dos organismos aquticos, o uso industrialda gua e as atividades de lazer. Alm disso, o aumento da turbidez faz com que umaquantidade maior de produtos qumicos sejam usados nas estaes de tratamento de guas,aumentando os custos de tratamento.

    Resduo Total

    O resduo total a matria que permanece aps a evaporao, secagem ou calci-nao da amostra de gua dado um determinado perodo, sob certa temperatura.

    Resduos slidos depositados nas guas podem causar danos visa aqutica, umavez que destroem os organismos que vivem nos sedimentos e servem de alimento paraoutros organismos, alm de danificar os locais de desova de peixes. Alm disso, podemcausar o assoreamento das guas, que gera problemas para a navegao e aumenta o riscode enchentes.

    2.1.3 ndice de Qualidade da gua Bruta para fins de Abastecimento Pblico

    O ndice de Qualidade da gua Bruta para fins de Abastecimento Pblico (IAP)foi desenvolvido por um grupo tcnico formado por integrantes da CETESB, SABESP,institutos de pesquisas e universidades, e composto, basicamente, por dois ndices: ondice de Qualidade da gua (IQA) e o ndice de Substncias Txicas e Organolpticas(ISTO).

    O ISTO um ndice composto por parmetros que avaliam a presena de substn-cias txicas (teste de mutagenicidade, potencial de formao de trihalometanos, cdmio,chumbo, cromo total, mercrio e nquel) e por parmetros que avaliam a qualidade or-ganolptica da gua (fenis, ferro, mangans, alumnio, cobre e zinco). De acordo com aANA, so estabelecidas curvas de qualidade, representadas atravs das variveis poten-cial de formao de trihalometanos e metais, que atribuem ponderaes que variam de0 a 1, para cada parmetro pertencente a ISTO. Tais curvas foram construdas usandodois nveis de qualidade, associam o valores numricos 1 e 0.5, respectivamente ao limiteinferior e ao limite superior. Uma vez medidos os valores para o potencial de formao detrihalometanos, se o valor for menor que o limite inferior, as guas atendem aos padres depotabilidade da Portaria 518/04 do Ministrio da Sade e so adequadas para o consumohumano. Caso o valor seja maior que o limite inferior e menor limite superior, as guasatendem aos padres de qualidade da classe 3 da Resoluo CONAMA 357/05 e so ade-quadas para o tratamento convencional. Caso o valor seja maior que o limite superior, asguas no atendem aos padres de qualidade da classe 3 da Resoluo CONAMA 357/05e no devem ser submetidas apenas ao tratamento convencional (ANA, 2014)

    O IAP um nmero entre 0 e 100, calculado atravs da equao (2.2).

  • Captulo 2. Fundamentao Terica 24

    = (2.2)

    De acordo com a ANA, as faixas de valores do IAP so classificadas de acordo coma tabela (3)

    Valor do IAP Qualificao

    80 100 tima52 79 Boa37 51 Regular20 36 Ruim< 19 Pssima

    Tabela 3 Classificao das faixas de valores do IQA (ANA, 2014).

    2.2 ASVs - Veculos Autnomos de SuperfcieVeculos Autnomos de Superfcie (ASV) so veculos que operam na superfcie de

    gua sem tripulao. A utilizao deste tipo de veiculo possibilita a execuo de tarefascompletamente autnoma e independente. Dentre suas aplicaes pode-se listar operaesde segurana, monitoramento, explorao de oceanos, aquisio de dados marinhos, entreoutros.

    2.2.1 Levantamento de ASVs existentes

    Na tabela (4) e na figura (2) so apresentados alguns ASVs levantados ao longodesta fase. Com base neste levantamento foi realizada uma analise sobre os ASVs querecaiu sobre as aplicaes, estrutura mecnica, propulso, navegao, sistema embarcadose baterias.

    Modelo/Fabricante Aplicao

    1 UMV-H / Yamaha Busca e Resgate2 Spartan / US Navy Militar3 Ocean Explorer / UOS (Verginia - USA) Oceanografia e Vigilncia4 ROAZ II / LSA - ISEP (INESC) Oceanografia e Vigilncia5 Springer / University of Plymouth (UK) Recolha de dados ambientais

    Tabela 4 ASVs: modelos e caractersticas (ALMEIDA, 2012).

  • Captulo 2. Fundamentao Terica 25

    Figura 2 ASVs da tabela (4), Respectivamente (ALMEIDA, 2012).

    2.2.2 Estrutura mecnica

    Segundo (ALMEIDA, 2012) alguns ASVs analisados nesta etapa foram imple-mentados modificando ou adaptando embarcaes j existentes, tais adaptaes foramrealizadas no intuito de equipar os ASVs conforme a sua aplicao. No entanto a maioriados ASVs estudos etapa foram criados e no adaptados, criando assim uma necessidadede definir o tipo de estrutura mecnica ou casco mais adequado para determinada aplica-o levando em considerao ambiente externo, funcionalidades e tecnologias envolvidas.A partir disso possvel destacar duas estruturas bsicas de casco: casco de deslocamentoe casco planantes.

    Cascos de deslocamento so comuns em embarcaes que no tm que navegar avelocidades elevadas, so sustentados pelo peso da gua que fazem deslocar. J os cascosplanantes geralmente so mais estveis em relao a embarcaes de casco de deslocamentoe possuem uma navegao mais suave em ambientes mais agitados.

    2.2.3 Propulso

    Em relao propulso, nota-se que os tipos mais comuns so os propulsores comhlices e jato hbrido (Water-jet). Geralmente os propulsores com hlices quando compara-dos aos propulsores a jato hibrido, so usados quando no deseja-se velocidades elevadas,so mais eficientes e mais econmicos no entanto mais lentos e permitem menor mano-brabilidade e tambm tem uma menor densidade de potncia (relao potncia/volume). importantes ressaltar que estes propulsores esto associados a motores que podem serde combusto ou eltricos (ALMEIDA, 2012).

    2.2.4 Sistemas Embarcados

    Um sistema embarcado um sistema microprocessado no qual o computador completamente encapsulado ou dedicado ao dispositivo ou sistema que ele controla, pordefinio um sistema embarcado recebe entradas de sensores as processa e gera uma sada.

    Um sistema embarcado realiza um conjunto de tarefas predefinidas, geralmentecom requisitos especficos. J que o sistema dedicado a tarefas especficas, atravs deengenharia pode-se otimizar o projeto reduzindo tamanho, recursos computacionais ecusto do produto.

  • Captulo 2. Fundamentao Terica 26

    O sistema embarcado um dos pontos mais cruciais no desenvolvimento de umASV, neste sistema que temos todo sistema de controle e navegao do ASV, aquisi-o de dados dependendo da aplicao e todo os restantes sistemas tecnolgicos estoimplementados.

    2.2.5 Navegao

    A navegao de um ASV normalmente efetuada complementando sistemas de po-sicionamento como sistemas GPS, sistemas inerciais e sistemas para desvio de obstculos.(ALMEIDA, 2012)

    2.2.5.1 Sistemas de Posicionamento

    Em meio aqutico os sistemas de posicionamento so normalmente baseados emGPS. A preciso dessa localizao depende do tipo de sistema GPS implementado. Com oGPS simples, economicamente mais acessveis, possvel obter preciso na ordem dos 3 a4 metros. Utilizando sistemas de GPS diferenciais, mais caros mas com nveis de precisomais elevados normalmente na ordem dos centmetros.

    2.2.5.2 Sistemas Inerciais

    Os sistemas inerciais tambm conhecidos como IMU (Inertial Measurement Unit),tm como finalidade estimar a posio, orientao, velocidade e acelerao do veculoatravs de sensores como giroscpios, acelermetros, bssolas e inclinmetros. Obtendo osdados sobre a velocidade e localizaes anteriores possvel integrar e estimar a localizaoatual.

    2.2.5.3 Sistema de desvio de obstculos

    O sistema de desvio de obstculos so baseados em sensores que permitem a de-teco de um objeto e auxilie no sistema de controle do ASV, tais como cmeras, lasers,radares e etc. A partir desses sensores complementados com tcnicas de desvio de obs-tculos, obtm-se uma ampla variedade de algoritmos de navegao e controle, podendoapenas realizar o contorno do obstaculo ou podem realizar uma analise mais complexa dasituao e identificar formas mais eficientes de efetuar o desvio.

    2.2.6 Bateria

    Normalmente as baterias utilizadas para este tipo de aplicao so baterias de onsde ltio ou baterias de polmeros de ltio. A tabela (5) mostra uma comparao entre essestipos de baterias e outras baterias comumente usadas tais como baterias de cido chumboe baterias de nquel.

  • Captulo 2. Fundamentao Terica 27

    Tipo de Bateria Potncia especfica (W/Kg) Eficincia (%) Ciclos de vida

    cido chumbo 120 - 180 70 - 92 500 - 800Ni-MH 150 - 400 66 1000

    ons de ltio 1800 - 3000 94 1200Polmeros de ltio 3000+ 97 500 - 1000

    Tabela 5 Comparao de diferentes tipos de baterias (ALMEIDA, 2012).

    2.3 FiltragemOs sistemas prticos esto sujeitos a rudos e perturbaes aleatrias que podem

    dificultar os procedimentos da anlise e da identificao. Para contornar estes problemastem-se recorrido a utilizao de filtros, a fim de se capturar somente os sinais com asdinmicas de interesse presentes no sistema.

    Filtrar um sinal deixar passar pelo sistema a informao de interesse e bloquear ainformao indesejada. Filtros podem ser aplicados no somente para diminuir a influnciado rudo do processo, mas tambm para suavizar o resultado de no homogeneidade demisturas, turbulncias ou fluxos no uniformes.

    A seguir so apresentados os filtros que sero utilizados na navegao e no controleda plataforma robtica. Sendo eles filtro de Kalman e filtro media mvel.

    2.3.1 Media Mvel

    O filtro de mdia mvel obtido calculando-se a mdia de um conjunto de valores,sempre se adicionando um novo valor ao conjunto e se descartando o mais velho. No apenas uma mdia de um conjunto isolado de valores (NOGUEIRA, 2014). O filtro demdia mvel representado pela equao (2.3).

    [] = 1

    1=0

    [ ] (2.3)

    Onde:

    o tempo atual ou ndice dos vetores utilizados;

    o numero de amostras;

    [ ] representa o conjunto dos valores a serem somados;

    [] o sinal de filtrado;

  • Captulo 2. Fundamentao Terica 28

    2.3.2 Filtro de Kalman

    O Filtro de Kalman uma soluo recursiva para filtragem linear de dados dis-cretos, utilizando equaes matemticas para estimar o estado de um processo de modoa minimizar do erro quadrtico mdio. Trata-se de um algoritmo recursivo de proces-samento de dados, que incorpora todas as informaes disponveis, processando todasas entradas independentemente da preciso das medidas a fim de estimar as variveisdesejadas usando o conhecimento da dinmica do processo e das medidas, da descrioestatstica dos rudos, erros de medidas e incertezas dos modelos dinmicos e tambm dequalquer informao sobre as condies iniciais (MAYBECK, 1979).

    O filtro de Kalman utilizado em fuso de sensores e fuso de dados. Tipica-mente, sistemas de tempo real realizam mltiplas medies sequenciais ao invs de umanica medio para obter o estado do sistema. Essas mltiplas medies so combinadasmatematicamente para gerar o estado no sistema naquele instante.

    2.3.2.1 Filtro de Kalman simples

    O algoritmo do filtro de Kalman simples pode ser dividido em 5 passos (KIM,2011):

    Primeiro passo se da pela configurao dos valores iniciais, 0 e 0. Sendo que 0representa a estimativa inicial da varivel de estado e 0 representa o erro de covarinciainicial da estimativa.

    O passo seguinte o estado de predio e erro de covarincia, ele responsvelpor prever qual valor as estimativas e tero no prximo intervalo de tempo. Nestaetapa so consideradas as matrizes e que so as matrizes associadas transio davarivel de estado, conforme equaes (2.4) e (2.5).

    = 1 (2.4)

    = 1 + (2.5)

    O prximo passo computar o ganho de Kalman, conforme equao (2.6).

    = ( + )1 (2.6)

    Considerando as matrizes e do modelamento do sistema, bem como o erro decovarincia predito, que ter o papel de ajustar a diferena entre a medida instrumental() e a medida computada ( ) usando a predio, somado prpria medida computada,como descrito no passo 4 e na equao (2.7).

  • Captulo 2. Fundamentao Terica 29

    = ( ) (2.7)

    O passo 5 que computar o erro de covarincia, por sua vez, atualiza a estimativado erro de covarincia a ser usado na prxima iterao . Esse erro importante paraindicar a diferena entre a estimativa do filtro de Kalman e o valor real da medida atento desconhecido, conforme equao (2.8).

    = (2.8)

    2.3.2.2 Filtro de Kalman discreto

    De acordo com (ALMEIDA, 2014) filtro de Kalman discreto utilizado para esti-mar o estado R que obedece a equao linear estocstica (2.9).

    = (1) + (1) + 1 (2.9)

    Com uma medio R obedecendo(2.10).

    = () + (2.10)

    Onde representa a perturbao no processo e os rudos na medida, sendoambos considerados rudos brancos, independentes e com distribuio normal.

    () (0, ) (2.11)

    () (0, ) (2.12)

    Com a matriz de covarincia do rudo do processo e a matriz de covarinciado rudo da medida. A matriz relaciona o estado no tempo anterior com o estado atual,o vetor relaciona a entrada de controle com o estado atual e a matriz relaciona oestado atual com a medida .

    O algoritmo segue nas equaes (2.13) a (2.17).

    = () + (1) (2.13)

    = (1)( ) + (2.14)

  • Captulo 2. Fundamentao Terica 30

    = ( )( + )1 (2.15)

    = + ( ) (2.16)

    = (1) (2.17)

    Nessas equaes a estimativa a priori com a matriz de covarincia a priori,ento estes so recalculados com base no ganho de Kalman, , levando em consideraeso quanto essas estimativas divergem do modelo de observao, obtendo e .

    2.4 Controle PIDNo mundo moderno as palavras estabilidade e preciso so pr-requisitos para mui-

    tos sistemas e equipamentos, para alcanar os avanos tecnolgicos necessrios para supriressas e outras necessidades. Como uma das tcnicas mais importantes do setor de controlee automao, pode-se encontrar o controle PID (Proporcional Integral Derivativo).

    Figura 3 Exemplo de sistema controlado com PID (FREITAS, 2014).

    O controle PID uma das tcnicas mais empregadas no que diz respeito a sistemasde controle, essa tcnica consiste em um algoritmo matemtico, que tem por funo ocontrole preciso de uma varivel em um sistema, permitindo ao sistema operar de formaestvel no ponto de ajuste desejado, mesmo que ocorram variaes ou distrbios queafetariam sua estabilidade. Ele pode ser descrito pela equao (2.18):

    = + 0

    + 0

    (2.18)

    Onde:

    : Varivel manipulada;

    : Ganho proporcional;

  • Captulo 2. Fundamentao Terica 31

    : Ganho integral;

    : Ganho derivativo;

    : Erro ou desvio;

    0: Sada inicial do controlador;

    O erro a diferena entre o valor desejado e o valor real da varivel.

    No controlador PID cada ao tem sua funo:

    Ao Proporcional

    A ao proporcional elimina as oscilaes da varivel, tornando o sistema estvel,mas no garante que a mesma esteja no valor desejado, esse desvio denominado off-set. A ao proporcional trabalha corrigindo o erro do sistema, multiplicando o ganhoproporcional pelo erro, dessa forma agindo com uma maior amplitude de correo a fimde manter a estabilidade da varivel.

    Ao Integral

    A ao integral elimina o desvio de off-set, fazendo com que a varivel permaneaprximo ao valor desejado para o sistema mesmo aps um distrbio. A ao integral realizaa integrao do erro no tempo, portanto quanto maior for o tempo de permanncia doerro no sistema, maior ser a amplitude da ao integral.

    Ao Derivativa

    A ao derivativa fornece ao sistema uma ao antecipativa evitando previamenteque o desvio se torne maior quando o processo se caracteriza por ter uma correo lentacomparada com a velocidade do desvio, ou seja, possui um efeito de antecipao da corre-o do valor de sada do sistema de forma que ela tambm melhora a rapidez de respostado sistema e reduz o valor de sobre-sinal (valor que refere se quantidade em que osinal de sada est acima do desejado).

    Desta forma, um controlador proporcional () ter o efeito de reduzir o tempode subida, mas nunca eliminar o erro de estado estacionrio. Um controle integrador() ter o efeito de eliminar o erro de estado estacionrio para um entrada constanteou passo, mas pode fazer a resposta transitria mais lenta. Um controle derivativo ()ter o efeito de aumentar a estabilidade do sistema, reduzindo o excesso, e melhorando aresposta transiente.

    Os efeitos de cada um dos parametros do controlador, , e em um sistemade malha fechada so resumidos na tabela(6).

  • Captulo 2. Fundamentao Terica 32

    Parmetro Tempo de subida Off-Set Tempo de deposio Erro estado estacionrio

    Diminui Aumenta Mudana pequena Diminui

    Diminui Aumenta Aumenta Elimina

    Pequena Mudana Diminui Diminui Sem interferir

    Tabela 6 Parmetros de um controlador PID (MICHIGAN., 2014).

    importante ressaltar que essas correes podem no ser exatamente precisa,pois , e so dependentes uns dos outros. Na verdade, a alterao de umas destasvariveis podem alterar o efeito dos outros dois. Por este motivo, a tabela deve ser usadasomente como referencia quando esta determinando os valores de , e .

    A combinao da quantidade de cada uma dessas trs aes ir fazer com que ocontrolador em conjunto com o sistema de controle forneam uma resposta adequada auma determinada variao na entrada. Dessa forma podemos escrever o estado de sadado controlador PID em funo de sua entrada pela equao (2.19).

    () = (()) + 0

    () + ()

    (2.19)

    Onde:

    (): Sinal de sada do sistema no instante ;

    : Coeficiente de ao diferencial;

    : Coeficiente de ao integral;

    : Coeficiente de ao derivativa;

    (): Sinal de erro na entrada do controlador no instante ;

    : Instante do estado a ser processado;

    A funo de transferncia de um controlador PID encontrado tomando a trans-formada de Laplace da equao (2.19).

    ++ =

    2 + +

    (2.20)

    2.4.1 PID numrico utilizando aproximao retangular

    Na figura (4) ilustra um sistema de controle onde um processador ou microcon-trolador tem a funo de realizar a compensao e atuar sobre o sistema de controle(planta).

  • Captulo 2. Fundamentao Terica 33

    Figura 4 Sistema de controle digital (FREITAS, 2014).

    Desprezando os demais sinais que apareceram e apenas analisando o controlador,vimos que ele toma a forma de um processador de uso geral, onde o sinal de erro chegaa ele atravs de uma converso A/D. O valor numrico ento processado gerando outroque passado a um conversor D/A (pode ser um mtodo de modulao como PWM)onde retoma sua forma analgica e controla o sistema de controle. Assim percebe-se quepara modelar um PID digital precisaremos trabalhar com processamento numrico.

    Passando a equao (2.19) do domnio do tempo para o domnio discreto possvelcomputar um PID de forma digital atravs da equao (2.21).

    [] = ([]) + ([] [ 1]) + ( [] + [ 1]) (2.21)

    Onde:

    =/

    (2.22)

    =

    /(2.23)

    Sendo, o tempo de integrao e o tempo de diferenciao

    Apesar do algoritmo por aproximao retangular do termo integral ser verstil,alguns problemas comeam a surgir a medida que a complexidade do sistema a ser con-trolado aumenta.

    Um dos maiores problema trata-se da convergncia da integral da funo de erropara o valor correto quando o valor prvio dessa funo erro igual a zero, ou quandoa diferena entre o erro corrente e o anterior passa a ser muito grande. Esse problemapode ser corrigido aumentandose o nmero de iteraes para clculo do termo integral,no entanto as custas de eficincia de execuo.

  • Captulo 2. Fundamentao Terica 34

    Uma outra soluo seria aproximar a integral apenas acumulando seu valor, a cadavez que o PID processado, isso mantm a eficincia da execuo de cdigo, e causa omesmo efeito do aumento de iteraes, entretanto a acumulao s ocorreria uma nicavez a cada valor do PID computado, retornando o problema de convergncia lenta nosresultados da integral nos primeiros valores calculados pelo PID, a medida que o processoavana esse efeito vai sendo minimizado.

    O outro grande problema desse algoritmo pode ser demonstrado atravs de umexemplo prtico, considerando um sistema onde o ganho proporcional algo elevado, e oerro acumulado comea a crescer ou decrescer por longos perodos de tempo, isso podelevar fatalmente o sistema em controle a ter sobre sinal (overshoot) com valores elevados,e nos casos mais graves, levar o sistema a uma oscilao permanente. Esse fenmeno conhecido pelo nome de wind-up , e pode ser minimizado utilizando valores baixos parao ganho integral, somadas a tcnicas de saturao do integrador (acumulador no casoda aproximao integral), mas assim, voltamos ao problema de demora de convergncia,uma vez que a saturao pode ser entendida como zerar o integrador (ou acumulador)(FREITAS, 2014).

    2.5 Plataforma de Desenvolvimento AndroidO Android uma plataforma de desenvolvimento para aplicativos mveis como

    smarthphones uma interface rica e repleta de diversas aplicaes j instaladas e ainda umambiente de desenvolvimento bastante poderoso, inovador e flexvel (LECHETA, 2013)

    Sua arquitetura muito flexvel e pode integrar aplicaes nativas com aplicaesdesenvolvidas. Um aspecto relevante do Android que seu sistema operacional foi baseadono kernel 2.6 do Linux, que responsvel por gerenciar a memria, os processos, threadse a segurana dos arquivos e pastas, alem de redes e drivers.

    O Android a primeira plataforma para aplicaes mveis completamente livre ede cdigo aberto (open-source), o que representa uma grande vantagem para sua evolu-o, uma vez que diversos programadores do mundo podem contribuir para melhorar aplataforma.

    2.5.1 Arquitetura

    A arquitetura da plataforma Android dividida em vrias camadas: Applications,Application Framework, Libraries e Android Runtime e por fim Linux Kernel.

    Na camada Applications, est localizada uma lista de aplicaes padres que in-cluem um cliente de e-mail, programa de SMS, calendrio, mapas, navegador, gerenciadorde contatos, e outros que sero desenvolvidos pela comunidade, sendo todas essas aplica-

  • Captulo 2. Fundamentao Terica 35

    es escritas na linguagem Java.

    J na camada Application Framework esto os componentes que permitiro comque novas estruturas sejam utilizadas para futuras aplicaes, enfatizando a reutilizaode cdigo. Os seguintes componentes fazem parte desta camada:

    Um rico e extensvel conjunto de componentes grficos que pode ser utilizado paraconstruir uma aplicao, bem como listas, grids, caixas de textos, botes, e at umnavegador web embutido;

    Provedores de contedo que habilitam s aplicaes acessar dados de outras aplica-es (como os Contatos, por exemplo) ou compartilhar seus prprios dados;

    Gerenciador de recursos que proveem acesso a recursos no-codificados como strings,grficos, e arquivos de layout;

    Um gerenciador de notificao que permite que todas as aplicaes exibam mensa-gens de alerta personalizveis na barra de status;

    Um gerenciador de atividade que gerencia o ciclo de vida das aplicaes e permitecontrolar os recursos previamente alocados, sendo que caso eles no estejam sendomais utilizados, os mesmos so desalocados para liberar memria;

    A camada logo abaixo subdivida no grupo das bibliotecas (libraries) e o ambi-ente de execuo (runtime) da plataforma Android, composto pelas bibliotecas padro epela mquina virtual denominada Dalvik. No primeiro grupo esto as bibliotecas escritasem C/C++, que so compostas por uma coleo de bibliotecas que so utilizadas pelaplataforma Android. Estas bibliotecas so:

    Biblioteca de sistema C: uma implementao da biblioteca C padro (libc), oti-mizada para dispositivos que suportam a plataforma Linux (embbeded- linux);

    Bibliotecas de Mdias: as bibliotecas suportam execuo e gravao da maioria dosformatos de udio e vdeo, bem como exibio de imagens, incluindo MPEG4, H.264,MP3, AAC, AMR, JPG, e PNG;

    Gerenciador de Superfcie: gerencia o acesso ao display do dispositivo e camadas degrficos 2D e 3D de mltiplas aplicaes;

    LibWebCore: uma moderna engine de navegador web que turbina tanto o navegadorda plataforma Android e um outro navegador qualquer desenvolvido;

    SGL: uma engine de grficos 2D;

  • Captulo 2. Fundamentao Terica 36

    3D libraries: uma implementao baseada na especificao OpenGL ES 1.0, a qualutiliza tanto acelerao de hardware 3D e um avanado e otimizado software pararenderizao de modelos tridimensionais;

    FreeType: renderizao em formatos bitmaps e vetoriais de fontes;

    SQLite: uma ponderosa e leve engine de banco de dados relacional disponvel paratodas as aplicaes;

    Na base, est localizado o kernel Linux, que para a Android ser a verso 2.6,fornecendo servios do ncleo do sistema como segurana, gerenciamento de memria,gerenciamento de processos, pilhas de redes, etc. A Figura (5) mostra os principais com-ponentes da arquitetura do Android e a Tabela (7) apresenta as principais APIs (Appli-cation Programming Interface).

    Figura 5 Camadas da arquitetura do Android (ANDROID. . . , 2014a).

  • Captulo 2. Fundamentao Terica 37

    Pacote Descrio

    android.util Contm varias classes utilitriasandroid.os Contm servios referentes ao sistema operacional

    android.graphics Pacote principal dos recursos grficosandroid.text Suporte para ferramentas de processamento de texto

    android.database APIs para comunicao com banco de dados SQLiteandroid.content APIs de acesso a dados no dispositivosandroid.view O pacote com os principais componentes da interface grficaandroid.widget Contem widgets prontos (gerenciadores de layout)android.app APIs de alto nivel referentes ao modelo de aplicao

    android.provider APIs para padres de provedores de contedoandroid.telephony APIs para interagir com funcionalidades de telefoniaandroid.webkit APIs para conteudos de context box

    Tabela 7 Principais APIs do android.

    2.5.2 Activity

    As peas que compem (no necessariamente todas ao mesmo tempo) uma aplica-o em Android so: Activity, IntentReceiver, Service e ContentProvider. Uma Activity(ou Atividade) representa uma simples tela em branco e pode ser criada estendendo aclasse Activity. As aplicaes reais, como por exemplo, uma lista de contatos, um organi-zador pessoal, um localizador geogrfico, etc, sero compostas de vrias Actividades. Ouseja, cada tela seria um Activity.

    Para melhorar entendimento de como funciona uma Activity no Android a figura(6) mostra o ciclo de vida de uma Activity no Android.

  • Captulo 2. Fundamentao Terica 38

    Figura 6 Ciclo de vida de uma Activity no Android (BOEHMER, 2012).

    2.5.3 Interface Grfica

    Os principais componentes que fazem parte da interface grfica com o usurio(GUI) da plataforma Android foram denominados de Views e Viewgroups.

    Um View representado pela classe android.view.View. Este componente nadamais do que uma estrutura de dados que representa uma rea retangular limitada datela do dispositivo. A plataforma vem equipada com vrios widgets j implementadosprontos para o desenvolvedor utilizar em suas aplicaes.

    O outro componente representado pela classe android.view.Viewgroup. Um Vi-ewgroup pode ser considerado um layout, isto , um container de Views (e tambm deViewgroups) que pode ser utilizado para criar estruturas mais complexas, ricas e robus-tas. Um Viewgroup a classe base para outros layouts (LinearLayout, RelativeLayout,AbsoluteLayout, etc). No momento em que o mtodo setContentView() chamado, omesmo recebe uma referncia para o n raiz da rvore que representa o layout a ser mos-

  • Captulo 2. Fundamentao Terica 39

    trado. Sendo assim, o mesmo informa a seus filhos para que eles possam se desenhar,validar, etc. A Figura (7) mostra a rvore que representa a hierarquia formada por Viewse Viewgroups.

    Figura 7 Hierarquia de Views e Viewsgroups no Android (ANDROID. . . , 2014a).

    2.6 Plataforma arduino ADK

    2.6.1 ADK - Acessory Development Kit

    O Accessory Development Kit (ADK) jundo com protocolo Open Accessory sopadres de implementao criados pela Google Inc. que visam padronizar a comunicaode dispositivos Android com hardware externo. Especificamente, o ADK uma implemen-tao de referncia do protocolo padro Open Accessory de uma placa de desenvolvimentomicro-controladora (ANDROID. . . , 2014b).

    Para que a comunicao entre um dispositivo externo e o Android ocorra algunsrequisitos devem ser atendidos. O primeiro requisito que o dispositivo externo devepossuir um controlador USB adequado. Este controlador permite a funcionalidade geraldo USB, mas tambm permite o chamado modo acessrio. O modo acessrio permite queum dispositivo Android que no possui recursos de hospedeiro USB para comunicaocom dispositivos externos, passe a atuar como parte de um hospedeiro USB. Alm disso,a especificao do padro Open Accessory estipula que o hospedeiro USB deve fornecerenergia para o barramento USB e poder enumerar os dispositivos conectados. Atendendoas especificaes USB 2.0, o dispositivo externo deve fornecer uma alimentao de 5 e500 para o dispositivo Android (BOEHMER, 2012).

    O ADK fornece firmware para uma placa de desenvolvimento, que vem na formade um conjunto de cdigos fonte, bibliotecas e um sketch de modelo na sintaxe do ar-duino. O firmware fornecido utilizado na enumerao do barramento USB e para que aplaca de desenvolvimento seja reconhecida pelo dispositivo Android como um dispositivocompatvel com o modo acessrio.

  • Captulo 2. Fundamentao Terica 40

    2.6.2 Arduino ADK

    O Arduino ADK (figura (8)) uma placa de desenvolvimento microcontroladorabaseada no AtMega2560, da srie Arduino compatvel com o padro de referncia ADK.A placa Arduino ADK possui um conector de alimentao de corrente contnua e umconector USB (tipo A) utilizado para conectar um dispositivo Android. Alm disso, h umconector USB (tipo B) utilizado na programao e depurao da placa ADK (ARDUINO,2014).

    Figura 8 Arduino ADK (ARDUINO, 2014).

    No arduino ADK, o circuito intergrado MAX3421e utilizado no interfaceamentoUSB entre a placa ADK e o dispositivo Android. Ele modelo do Arduino tem possui 54pinos digitais (dos quais 15 pinos podem ser utilizados no modo pwm), 16 pinos de entradaanalgica, 4 UARTS e um oscilador de 16MHz.

    2.7 Web ServicesOWeb service uma soluo utilizada na integrao de sistemas e na comunicao

    entre aplicaes diferentes. Com esta tecnologia possvel que novas aplicaes possam in-teragir com aquelas que j existem e que sistemas desenvolvidos em plataformas diferentessejam compatveis.

    Os Web services so componentes que permitem s aplicaes enviar e receber da-dos em formato XML. Cada aplicao pode ter a sua prpria "linguagem", que traduzidapara uma linguagem universal, o formato XML (eXtensible Markup Language).

  • Captulo 2. Fundamentao Terica 41

    2.7.1 Tecnologias Utilizadas

    Para a representao e estruturao dos dados nas mensagens recebidas/enviadas utilizado o XML. As chamadas s operaes, incluindo os parmetros de entrada/sada,so codificadas no protocolo SOAP. Os servios (operaes, mensagens, parmetros, etc.)so descritos usando a linguagemWSDL (Web Services Description Language). O processode publicao, pesquisa e descoberta de Web Services utiliza o protocolo UDDI (UniversalDescription, Discovery and Integration).

    2.7.1.1 XML

    Extensible Markup Language (XML) a base em que os Web Services so cons-trudos. O XML fornece a descrio, o armazenamento, o formato da transmisso paratrocar os dados atravs dos Web Services e tambm para criar tecnologias Web Servicespara a troca dos dados.

    A sintaxe de XML usada nas tecnologias dos Web Services especifica como osdados so representados genericamente, define como e com que qualidades de servio osdados so transmitidos, pormenoriza como os servios so publicados e descobertos. OsWeb Services decodificam as vrias partes de XML para interagir com as vrias aplicaes.

    2.7.1.2 SOAP

    O SOAP (Simple Object Access Protocol) baseia-se numa invocao remota de ummtodo e para tal necessita especificar o endereo do componente, o nome do mtodo eos argumentos para esse mtodo. Estes dados so formatados em XML com determinadasregras e enviados normalmente por HTTP para esse componente. No define ou impequalquer semntica, quer seja o modelo de programao, quer seja a semntica especficada implementao.

    2.7.1.3 WSDL

    O WSDL descreve os servios disponibilizados rede atravs de uma semnticaXML, este providencia a documentao necessria para se chamar um sistema distribudoe o procedimento necessrio para que esta comunicao se estabelea. Enquanto que oSOAP especifica a comunicao entre um cliente e um servidor, o WSDL descreve osservios oferecidos.

    2.7.1.4 UDDI

    Protocolo desenvolvido para a organizao e registro de Web Services. O UDDI(Universal Description Discovery and Integration) tem como objetivo acelerar a intero-perabilidade e utilizao dos Web Services. UDDI nada mais do que um servio de

  • Captulo 2. Fundamentao Terica 42

    diretrio onde empresas podem registrar (publicar) e buscar (descobrir) por servios Web(Web Services).

    Um registro UDDI contm trs tipos de informao:

    Informaes gerais de cada organizao, tais como o nome, endereo e contatos;

    Informaes de organizaes e servios por categorias de negcios;

    Informaes tcnicas sobre os servios providenciados pelas organizaes;

    O UDDI providencia trs funes principais, conhecidas como publicao, desco-berta e ligao:

    Publicao: permite que uma organizao divulgue o(s) seu(s) servio(s);

    Descoberta: permite que o cliente do servio, procure e encontre um determinadoservio;

    Ligao: permite que o cliente do servio, possa estabelecer a ligao e interagircom o servio.

  • 43

    3 Implementao

    3.1 Soluo PropostaDe forma geral, a soluo proposta um veculo autnomo de superfcie (ASV)

    dotado de sensores para navegao e aquisio de dados de parmetros da gua que secomunica e recebe comandos de uma estao remota controlada por um usurio, atravsde um dispositivo mvel com sistema operacional Android.

    A figura (9) mostra um esquemtico da soluo geral proposta.

    Figura 9 Esquemtico do sistema proposto.

    A plataforma ASV conta com os seguintes componentes de hardware: (a) Um apa-relho smartphone Android que usa comunicao 3G e faz a leitura dos seguintes sensoresembarcados: GPS, bussola digital, acelermetro e giroscpio, pois tais sensores so inte-ressantes para navegao em robtica; (b) Kit Arduino ADK para controle dos motores daplataforma e coleta e processamento dos dados dos parmetros da gua, alm de processaros dados dos sensores inerciais provenientes do aparelho smartphone; (c) Bateria de onLtio e uma fonte de alimentao alternativa baseada em placa solar de 25 . A interfacede usurio ser implementada em um PC comercial e permite indicar o ponto de destinodesejado e visualizar os dados de qualidade da gua. O Servidor realiza a integrao via

  • Captulo 3. Implementao 44

    HTTP com o ASV e o PC de forma a armazenar os dados referentes ao tempo de coleta,coordenada e valores das medies do parmetros da gua.

    Como caso de estudo neste trabalho de concluso de curso foram escolhidas asvariveis de turbidez e temperatura como parmetros de estimao da qualidade da gua.Esta escolha se justifica considerando o alto custo de aquisio das sondas de medio depH e oxignio dissolvido, os quais requerem de um processo de calibrao constante.

    Como ambiente de estudo escolheu-se estimar os parmetros de qualidade da guado lago Parano, delimitando a rea de atuao da plataforma nas seguintes reas: Pe-nnsula dos Ministros, Ermida Dom Bosco e Ponto do Lago Sul conforme apresentadona figura (10).

    Figura 10 Zonas de atuao da plataforma no lago Paranoa.

    Neste trabalho o foco ser viabilizar a comunicao entre a plataforma mvel eum usurio na estao remota, de modo que este usurio possa ter uma estimativa daqualidade da gua a partir dos parmetros da gua medidos e enviar comandos paraplataforma mvel.

    A implementao da comunicao atravs de um web service ser feita apenas paraintegrar as aplicaes Android e a interface grfica do usurio e para armazenar dadosrelevantes ao escopo de trabalho. importante salientar que neste trabalho no seroimplementado os aspectos de segurana da informao referente a essa comunicao.

    O sistema de navegao da plataforma ser simplificado, de maneira que no seroimplementados algoritmos de navegao sofisticados como: desvio de obstculos, deteco

  • Captulo 3. Implementao 45

    de tombamento, deteco de baixa profundidade e encalhamento, anlise da trajetriatima e estabilizao espacial completa da plataforma. A plataforma ficar limitada aatuar dentro das zonas escolhidas do lago Parano a pelo menos 20 metros de distncia(considerando erros de medio e estimao do GPS) das margens do lago.

    3.1.1 Arquitetura do Sistema

    Na figura (11) apresentado uma arquitetura geral da proposta de soluo. Ocontrolador escolhido foi o Arduino ADK. Tal escolha se justifica principalmente porqueo Arduino ADK implementa o padro de referncia ADK criado pela Google, e por issopermite a comunicao com dispositivos Android.

    Como dispositivo de comunicao, escolheu-se um aparelho smartphone. Tal es-colha justifica-se principalmente por trs motivos. O primeiro motivo pelo fato dossmartphones j possurem uma srie de sensores tais como GPS, acelermetro, magnet-metro, giroscpio e entre outros que podem ser utilizados na navegao e eliminam anecessidade de aquisio de sensores externos. O segundo motivo pela possibilidadede comunicao entre dispositivos Androids e dispositivos externos atravs do protocoloOpen Accessory. O terceiro motivo possibilidade da utilizao da cobertura de rede 3Gna comunicao com um servidor remoto, o que dispensa a utilizao de transcetores deradio-frequncia externos.

    Figura 11 Diagrama de comunicao do sistema proposto.

  • Captulo 3. Implementao 46

    3.1.2 Interface Grfica do Usurio

    A interface Grfica do Usurio a responsvel por permitir que o usurio enviecomandos remotamente a plataforma mvel e que o usurio acesse as informaes contidasno servidor referentes a leitura realizadas pelos sensores conectados a plataforma ADK,conforme figura (12).

    Figura 12 Diagrama de comunicao da interface do usurio.

    3.1.3 Servidor

    O servidor responsvel por permitir a comunicao entre o aparelho mvel quepossui o Android e o usurio em uma estao remota, tal como mostra a figura (13). Alemde realizar a comunicao, o servidor salva os dados recebidos da plataforma ASV.

    Figura 13 Diagrama de comunicao do servidor.

    3.1.4 Android

    O Android responsvel pela comunicao com servidor, leitura dos sensores uti-lizados para navegao que esto embarcados no aparelho (GPS, acelermetro, giroscpioe bussola) e pela comunicao com a plataforma ADK, conforme figura (14).

  • Captulo 3. Implementao 47

    Figura 14 Diagrama de comunicao do Android.

    3.1.5 Arduino ADK

    O Arduino ADK o responsvel por fazer o controle do driver dos motores daplataforma, fazer a leitura dos sensores de parmetros da gua e enviar as medies dossensores para o dispositivo Android, conforme figura (15) onde mostra um esquemticoda comunicao que o Arduino ADK realiza.

    Figura 15 Diagrama de comunicao do Arduino ADK.

    3.1.6 Sensores escolhidos para medio da qualidade da gua

    Foram escolhidos dois parmetros da gua a serem monitorados pela plataformamvel: a temperatura e a turbidez.

    O sensor DS18B20 (figura (16)) foi o escolhido para fazer a medio da tempe-ratura da gua. O DS18B20 um sensor de temperatura digital que opera na faixa detemperatura de -55oC at +125oC e com preciso de 0, 5oC (na faxa de -10oC a 85oC).Alm disso, ele oferece resoluo de 9 bits a 12 bits, configurveis.

  • Captulo 3. Implementao 48

    Figura 16 Sensor de temperatura DS18B20.

    O sensor ENV-RGB (figura 20) foi o escolhido para fazer a medio da turbidez dagua. O ENV-RGB um sensor detector de luz que mede tanto nvel RGB (em formatoRGB de 8 bits) quanto a intensidade luz (em lux). No ENV-RGB o sensor de luz estincorporado em uma caixa robusta abaixo de uma camada transparente de epxi queprotege o sensor da umidade, enquanto ainda permite a entrada de luz, resultando emum sensor prova de gua, poeira, granizo e gelo.

    Figura 17 Sensor de turbidez ENV-RGB.

    3.1.7 Filtragem

    importante salientar que o ambiente de aplicao do ASV possui rudo devido variao de velocidade do vento, ao arrasto produzido pelo fluxo de gua. No intuitode contornar este problema foi escolhido implementar o filtro de mdia mvel e o filtrode Kalman para filtrar o rudo nos sensores. Adicionalmente, neste trabalho admite-seque cada sensor tem um rudo associado. Desta forma, o filtro Kalman ser usado paraeliminar o rudo proveniente do processo de leitura dos sensores assim como dos distrbiosproduzidos pelo ambiente de trabalho.

  • Captulo 3. Implementao 49

    3.1.8 Controlador PID de velocidade dos motores

    O controlador PID ser responsvel por controlar o sinal de PWM na ativao dodriver de motor (ponte H L298), que consequentemente controla a velocidade dos motores,e rotao dos mesmos. O diagrama de blocos da figura (18) mostra de forma genrica comoo controlador PID ir atuar.

    Figura 18 Diagrama de bloco controlador PID.

    3.1.9 Navegao

    Este mdulo o responsvel por processar os dados de GPS e da bussola. OGPS recebe a posio ou coordenada (latitude e longitude) associada a uma constante detempo. A bussola fornece a orientao em 3D: Azimuth (rotao no plano horizontal),Pitch(rotao segundo o eixo lateral) e Roll (rotao segundo o eixo longitudinal).

    Dado os dados obtidos da bussola sabe-se o a orientao da plataforma mvel emrelao ao referencial inercial (fixo) definidos como referncia (Azimuth, Pitch, Roll) e apartir desses ngulos possvel calcular a velocidade angular da plataforma segundo ostrs eixos (, e ) onde:

    = ()

    sin()(()

    ) (3.1)

    = cos()(()

    ) + cos() sin()()

    (3.2)

    = sin()(()

    ) + cos() cos()()

    (3.3)

    No entanto como a plataforma apenas ir se movimentar na superfcie pode sesimplificar seu movimento apenas bidimensional fazendo com que os ngulos Pitch e Rollconstantes com valores de referncia nulo portanto e tambm so nulos.

    A partir da informao recolhida dos sensores este mdulo constri o estado daplataforma. Para isso calculada a posio da plataforma em metros, em relao a umreferencial solidrio com a Terra. A partir da derivao dessa posio possvel obter avelocidade da plataforma decomposta em velocidade para norte e velocidade para este.Associado ao valor da posio existe tambm o valor do erro mximo dessa posio.

  • Captulo 3. Implementao 50

    Estado da plataforma:

    Latitude (rad)

    Longitude (rad)

    Velocidade para Norte (m/s)

    Velocidade para Este (m/s)

    Azimuth (rad)

    Pitch (rad)

    Roll (rad)

    p (rad/s)

    q (rad/s)

    r (rad/s)

    Erro da posio (m)

    O estado da plataforma ento enviado periodicamente para o microcontroladorque a partir desse estado e do estado anterior, ele processa essas informaes e controlaadequadamente atuao dos motores atravs do driver de motor.

    3.2 Implementaes Parciais

    3.2.1 Implementao parcial da interface grfica

    A interface foi implementada utilizando um notebook da Samsung modelo NP275E4Eprocessador AMD E1-1500 APU 1.48GHz, Memoria RAM 4GB e sistema operacionalWindows 8.1 e ambiente de desenvolvimento Microsoft Visual Studio 2013 utilizando lin-guagem C#.

    O programa desenvolvido possui basicamente trs funes: Apresentar as coor-denadas atuais da plataforma mvel, definir a coordenada de destino da plataforma eapresentar as medies realizadas ao usurio. A apresentao das coordenadas atuais edefinio das coordenadas de destino foram implementadas atravs do GMapControl dalibrary GMap.NET que uma plataforma de desenvolvimento open-source feita paraASP.NET para utilizao de mapas dentro de um forms (formulrio). Alm disso, asrequisies ao servidor o envio de comandos foram implementadas atravs de eventosButtons.

  • Captulo 3. Implementao 51

    3.2.2 Implementao parcial do servidor

    Para criar o servidor web foi utilizado um NetBook da Acer modelo KAV10 pro-cessador 2x Intel(R) Atom(TM) CPU N80 1.66GHZ, Memoria RAM 1GB, sistema ope-racional Ubuntu 14.04.1 LTS e plataforma de desenvolvimento Eclipse IDE for Java EEDevelopers.

    No que tange a implementao do servidor foi utilizado o Apache Tomcat que um servidor web Java e implementou-se um web service utilizando o framework Xfire que um framework open-source escrito em Java que facilita a construo de webservices.

    Utilizando o Xfire a implementao do web service bastante simplificada. Emum primeiro momento configura-se o arquivo web.xml da aplicao web para adicionaro servlet do Xfire. Em seguida basta apenas definir uma interface e uma classe que aimplementa e por fim declarar essas classes no arquivo de configurao services.xml. Apartir disso possvel publicar o web services utilizando o Apache Tomcat.

    3.2.3 Implementaes parciais com o Android

    Para criar o projeto do Android foi utilizado o ADT Bundle que um ambiente dedesenvolvimento voltado para plataforma Android fornecido pela Google. Esse ambientenada mais do que um Eclipse totalmente configurado para o desenvolvido no Android.Para a realizao dos testes de comunicao, leitura de dados de sensores de navegaoe comunicao com o microcontrolador foi utilizado um aparelho da Samsung Galaxy S4Active modelo GT-I9295 com a verso 4.4.2 do Android.

    3.2.3.1 Sensores para Navegao

    O Android possui sensores de movimento (acelermetro e giroscpio), posio (ori-entao, geomagnetismo, proximidade) e ambiente (luminosidade, presso e temperatura).Para a navegao sero utilizados os sensores: acelermetro, giroscpio, bssola digital eo GPS.

    Para obter dados de um sensor no Android necessrio utilizar uma instncia doSensorManager e depois chamar o mtodo sensorManager.getDefaultSensor(tipo), infor-mando o tipo do sensor. Por exemplo, ao acessar o tipo TYPE_ACCELEROMETER, osensor padro do acelermetro ser retornado, pois possvel que mais de um sensor domesmo tipo no aparelho. Os sensores utilizados e seus respectivos tipos esto descritos natabela (8).

  • Captulo 3. Implementao 52

    Sensor Tipo

    Acelermetro TYPE_ACCELEROMETERGiroscpio TYPE_GYROSCOPEBussola TYPE_ORIENTATION

    Tabela 8 Relao dos sensores utilizados e seus respectivos tipos.

    Depois de obter o objeto sensor possvel iniciar o monitoramento chamando omtodo registerListener e para receber os valores gerados pelos sensores, a classe precisaimplementar a interface SensorEventListener que possui dois mtodos: onAccuracyChan-ged e onSensorChanged.

    onAccuracyChanged: chamado para informar que a preciso do sensor mudou;

    onSensorChanged: chamado toda vez que tiver uma informao no sensor paraque a aplicao leia os valores do sensor;

    No caso do GPS para a utilizao do hardware do GPS necessrio criar uma classeque implementa a interface android.location.LocationListener. Nessa interface foi utilizadoo metodo onLocationChanged(location) que chamado automaticamente pelo Androidsempre que a localizao do GPS for alterada. Depois que a interface LocationListener implementada, basta chamar o mtodo requestlocationUpdates(provedor, tempoMinimo,distanciaMinima, LocationListener). Os parmetros desse mtodos esto na tabela (9),para iniciar o monitoramento do GPS.

    Parmetro Descrio

    String provedor GPS_PROVIDER ou NETWORK_PROVIDERlong tempoMinimo Tempo em milissegundos para receber novas coordenadas

    float distanciaMinima Distncia mnima em metros para receber novas coordenadasLocationListener listener Implementao da interface LocationListener

    Tabela 9 Parmetros do mtodo LocationManager.requestlocationUpdates

    Em relao aos provedores de GPS existentes no Android, pode-se utilizar dois:

    GPS_PROVIDER: provedor para obter dados do hardware do GPS;

    NETWORK_PROVIDER: provedor para obter dados por triangulao de an-tenas;

  • Captulo 3. Implementao 53

    O NETWORK_PROVIDER retorna o primeiro resultado de forma mais rpidaque o GPS_PROVIDER. Este provedor utiliza a triangulao de antenas da operadorapara descobrir a localizao do usurio, esse mtodo no possui uma boa preciso e aposio retornada pode ter vrios metros de diferena.

    O GPS_PROVIDER possui uma otina preciso, mas pode demorar para retornaro primeiro resultado, que pode variar de 30 segundos a alguns minutos, no entanto esseprovedor consome mais bateria que o NETWORK_PROVIDER alm disso para se obtermelhores resultados melhor estar em um ambiente aberto visto que lugares cobertosafetam o sinal.

    3.2.3.2 Comunicao com servidor

    O Android no possui nenhuma API nativa para acessar um web services, noentanto pode-se usar qualquer outra biblioteca e incorpora-la a seu projeto. Vale ressaltarque essa biblioteca para consumir o web services tem que ser leve e compacta, pois aaplicao vai executar em um dispositivo mvel, que tem seu poder de processamentoreduzido comparado a um computador normal.

    A partir disso foi escolhido o framework ksoap2, que uma biblioteca leve paraconsumir webservices, especialmente construda para dispositivos mveis com menor ca-pacidade de processamento. Esse framework gera um arquivo XML que o envelope damensagem SOAP. Com o envelope criado possvel criar um objeto do tipo HttpTransportpara realizar a requisio HTTP ao web service. E para ler a resposta dessa requisioutiliza-se o mtodo getReponse().

    Utilizando o framework ksoap2 criou-se um envelope de informaes que enviadopara o servidor. Nesse pacote de informaes esto os seguintes dados: Coordenada de GPSatual e dados recebidos pela plataforma ADK. Sempre que realizada uma requisio aoservidor para envio de dados o mesmo envia como resposta um envelope de informaescontendo uma coordenada.

    3.2.3.3 Comunicaao com Arduino ADK

    O sistema Android disponibiliza duas bibliotecas que auxiliam no reconhecimentode dispositivos externos: UsbAccessory e UsbManager. A biblioteca UsbAccessory define aclasse BroadcastReceiver que um receptor de transmisso, que auxilia no comunicao doAndoird com dispossitivos externos, utlizando os mtodos openAccessory e closeAccessorypara abrir e fechar a comunicao.

    No mtodo openAccessory o mtodo do servio USB delegado, de modo, a ob-ter um FileDescriptor para o dispozitivo externo. O FileDescriptor gerencia os canais deentrada e sada que sero utilizados na comunicao com o dispositivo. J o mtodo close-

  • Captulo 3. Implementao 54

    Accessory responsvel por fechar todas as conexes abertas restantes para o dispositivoexterno.

    Atravs da comunicao USB o aplicativo Android recebe uma string (protocoloGoogle adaptado, figura (21)) que contm os valores do parmetros lido pela placa ADK.Ao receber tais informaes, o aplicativo envia como resposta um pacote de informaesem uma string (protocolo Google adaptado) que contm os valores dos sensores de na-vegao (GPS, acelermetro, giroscpio e bssola) e a coordenada da posio final daplataforma mvel.

    3.2.4 Implementaes parciais com o Arduino ADK

    3.2.4.1 Medies dos sensores

    O sensor de temperatura DS18B20 possui trs terminais: um terminal de alimen-tao, um terminal de referncia e um terminal de dados (figura (19)).

    Figura 19 Pinagem sensor de temperatura.

    Fisicamente, a leitura desse sensor pelo Arduino ADK foi viabilizada conectando-se o terminal de referncia ao pino GND, conectando o terminal de alimentao ao pino5V, e conectando o terminal de dados ao pino 10. Alm disso, conectou-se um resistor depull-up de 4,7 kohm entre os terminais de alimentao e de dados.

    Via software, a leitura do sensor DS18B20 foi implementada com o auxlio dabiblioteca OneWire, que permite, atravs de um pino digital do Arduino a leitura, modoserial, de uma palavra binria.

    O sensor detector de cor ENV-RGB (20) comunica-se atravs do protocolo RS-232, viabilizado por quatro terminais: terminal de referncia, terminal de alimentao,terminal de transmisso e terminal de recepo.

  • Captulo 3. Implementao 55

    Figura 20 Pinagem sensor de turbidez.

    Fisicamente, a leitura desse sensor foi viabilizada conectando-se o terminal dealimentao ao pino 5V, conectando o terminal de referncia ao pino GND, conectandoo terminal de transmisso ao pino digital 2 e conectando o terminal de recepo ao pinodigital 3.

    Via software, a leitura do sensor ENV-RGB foi implementada com o auxlio da bi-blioteca SerialSoftware, que permite o estabelecimento de uma conexo RS-232 utilizandodois pinos digitais do Arduino.

    3.2.4.2 Comunicao com Android

    A comunicao com o Android realizada com a implementao de duas biblio-tecas na programao do Arduino ADK: a biblioteca USB_Host_Shield e a bibliotecaAndroidAccessory.

    A biblioteca USB_Host_Shield foi, originalmente, criada Oleg Mazurov, com ob-jetivo inicial de criar um padro do comunicao USB da placa Arduino com outros dispo-sitivos, mas que com algumas modificaes que a tornou compatvel com o padro ADK,viabilizando a comunicao entre o Arduino dotado do circuito integrado MAX3421E e odispositivo Android.

    A biblioteca AndroidAccessory a responsvel por implementar o protocolo OpenAccessory. Essa implementao realizada atravs da classe AndroidAccessory. Essa classepossui seis atributos: manufacturer, model, description, version, URI e