63
UNIVERSIDADE DE SÃO PAULO ESCOLA DE ENGENHARIA DE SÃO CARLOS IGOR JOVEDI BEGIDO PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO POR CÂMERA COMANDADA POR APLICAÇÃO EM AMBIENTE WEB São Carlos 2014

PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

Embed Size (px)

Citation preview

Page 1: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

UNIVERSIDADE DE SÃO PAULO

ESCOLA DE ENGENHARIA DE SÃO CARLOS

IGOR JOVEDI BEGIDO

PLATAFORMA MÓVEL PARA

MONITORAMENTO REMOTO POR

CÂMERA COMANDADA POR

APLICAÇÃO EM AMBIENTE WEB

São Carlos

2014

Page 2: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função
Page 3: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

IGOR JOVEDI BEGIDO

PLATAFORMA MÓVEL PARA

MONITORAMENTO REMOTO POR

CÂMERA COMANDADA POR

APLICAÇÃO EM AMBIENTE WEB

Trabalho de Conclusão de Curso apresentado à

Escola de Engenharia de São Carlos, da

Universidade de São Paulo

Curso de Engenharia Elétrica com ênfase em

Eletrônica

ORIENTADOR: Prof. Dr. Valdir Grassi Junior

São Carlos

2014

Page 4: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

AUTORIZO A REPRODUÇÃO TOTAL OU PARCIAL DESTE TRABALHO, POR QUALQUER MEIO CONVENCIONAL OU ELETRÔNICO, PARA FINS DE ESTUDO E PESQUISA, DESDE QUE CITADA A FONTE.

Begido, Igor Jovedi

B417p Plataforma móvel para monitoramento remoto por câmera comandada por aplicação em ambiente web. / Igor Jovedi Begido; orientador Valdir Grassi Jr. São Carlos, 2014.

Monografia (Graduação em Engenharia Elétrica com ênfase em Eletrônica) -- Escola de Engenharia de São Carlos da Universidade de São Paulo, 2014.

1. Monitoramento. 2. Tempo real. 3. Raspberry Pi.

4. RaspiCam. I. Título.

Page 5: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função
Page 6: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função
Page 7: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

vii

Dedicatória

Dedico esta monografia aos meus pais, João e Rosana, que sempre me apoiaram em

todos os momentos, se sacrificando inúmeras vezes para que eu pudesse estudar na

Universidade de São Paulo.

A todos os meus companheiros de turma que fizeram esses anos em São Carlos os

melhores possíveis e com certeza os mais engraçados. Uma menção honrosa a alguns destes

companheiros que também fizeram parte da saudosa República Tocaia, que sempre foi mais

que uma simples casa: Matheus (Meninão), Marcos (Ken), Felipe (Patrão), João (Jão), Renan

(Gzuz) e Cyro (Cyrão).

Page 8: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

viii

Page 9: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

ix

Agradecimentos

Agradeço primeiramente aos meus pais. Muito Obrigado.

Agradeço a todos os meus professores desde o ensino fundamental que contribuíram

para minha formação intelectual e moral, os conselhos e ensinamentos dados em aula foram de

extremo valor, em especial ao meu orientador Valdir pela paciência e motivação que começou

quando cursei a sua disciplina durante a graduação.

Finalmente agradeço a todos os alunos da turma Eletrônica 09, são muitos nomes para

citar, para não ser injusto com ninguém, me referirei a vocês como Amada 09. Tenho certeza

que foi a turma mais engraçada e diferenciada que passou pela EESC.

Page 10: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

x

Page 11: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

xi

Resumo

Esta monografia consiste no desenvolvimento de uma solução de baixo custo para o

monitoramento em tempo real de ambientes como casas e apartamentos. Sendo composta de

uma plataforma terrestre móvel controlada por uma aplicação Web que permite ao usuário se

mover pelo ambiente livremente sendo auxiliado por um stream de vídeo e alguns sistemas de

controle. O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um

processador de arquitetura ARM e tem a função de controlar todos os periféricos como os

motores, o sensor de distância e a câmera de RaspiCam. A solução visa uma aplicação Web

simples e intuitiva que permita ao usuário final, o monitoramento de modo eficiente.

Palavras-chave: Monitoramento, Tempo real, Raspberry Pi, RaspiCam

Page 12: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

xii

Page 13: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

xiii

Abstract

This text describes the development of a low cost solution for real-time monitoring of

houses and apartments. It is composed of a mobile terrestrial platform controlled by a web

application that allows the user to freely move around the environment being aided by a stream

of video and some control systems. The brain of the platform is a low-cost computer Raspberry

Pi that has ARM processor architecture responsible for controlling all peripherals such as

motors, the distance sensor and a camera RaspiCam. The solution proposed a simple and

intuitive web application that allows the end user, monitoring the environment efficiently.

Keywords: Monitoring, Real-Time, Raspberry Pi, RaspiCam

Page 14: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

xiv

Lista de Figuras

Figura 1 - Circuito fechado de TV ........................................................................................... 21

Figura 2 - Diagrama do sistema de monitoramento ............................................................. 23 Figura 3 - Composição da plataforma móvel ........................................................................ 24 Figura 4 - Descrição dos componentes da RPI .................................................................... 25

Figura 5 - RaspiCam ................................................................................................................. 26

Figura 6 - Kit DG012-ATV ........................................................................................................ 28

Figura 7 - Diagrama ponte H ................................................................................................... 29

Figura 8 - Ponte H - Modos de funcionamento ..................................................................... 29

Figura 9 - Controlador ponte H dupla com L298N ............................................................... 30 Figura 10 - Principio de funcionamento do sensor ultrassônico ........................................ 32 Figura 11 - Sensor HC-SR04 ................................................................................................... 32

Figura 12 - Diagrama de tempo do sensor HC-SR04 .......................................................... 33

Figura 13 - Adaptador Wifi ....................................................................................................... 33

Figura 14 - Diagrama Cliente - Servidor ................................................................................ 36

Figura 15 - Descrição GPIO RPI ............................................................................................. 38

Figura 16 - Esquema de conexões entre os componentes da plataforma ....................... 38

Figura 17 - Fluxo de execução da rotina de navegação ..................................................... 40

Figura 18 - Vídeo da aplicação MJPG-streamer – resolução 640x480 ............................ 43

Figura 19 - Diagrama da estrutura do website ...................................................................... 46 Figura 20 - Fluxograma da requisição de movimento da plataforma pelo website ........ 48

Figura 21 - Website página da aplicação .............................................................................. 49 Figura 22 - Plataforma móvel desenvolvida .......................................................................... 51

Figura 23 - Website - página de navegação ......................................................................... 52 Figura 24 – Página de Login e página de navegação ......................................................... 53

Page 15: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

xv

Lista de Tabelas

Tabela 1 - Descrição da ponte H dupla L298N 31

Tabela 2 - Tabela de nível de permissões para Linux 45 Tabela 3 - Cenários de custos dos componentes da plataforma móvel 55

Page 16: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

xvi

Lista de Gráficos

Gráfico 1 - Tempo de resposta de execução do movimento considerando a velocidade de conexão

....................................................................................................................................................... 52

Page 17: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

xvii

Lista de Siglas

GPIO General-Purpose Input-Output

RPI Raspberry Pi

JS Javascript

PWM Pulse Width Modulation

CPU Central Processing Unit

CSI Camera Serial Interface

DSI Display Serial Interface

XML eXtensible Markup Language

HDMI High-Definition Multimidia Interface

GPU Graphics Processing Unit

UWB Ultra-wideband

Page 18: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

xviii

Sumário

Dedicatória ........................................................................................................ vii

Agradecimentos ................................................................................................. ix

Resumo .............................................................................................................. xi

Abstract ........................................................................................................... xiii

Lista de Figuras ................................................................................................. xiv

Lista de Tabelas ................................................................................................. xv

Lista de Gráficos ............................................................................................... xvi

Lista de Siglas .................................................................................................. xvii

1 Introdução .................................................................................................. 21

1.1 Motivação ....................................................................................................................... 21

1.2 Objetivo .......................................................................................................................... 22

1.3 Organização da Monografia ........................................................................................... 22

2 Descrição do Projeto e Conceitos ................................................................ 23

2.1 Plataforma Móvel ................................................................................................... 24

2.1.1 Raspberry Pi ............................................................................................................. 24

2.1.2 RaspiCam .................................................................................................................. 26

2.1.3 Chassi e motores ..................................................................................................... 27

2.1.4 Sensor de Distância ................................................................................................. 31

2.1.5 Adaptador Wifi ........................................................................................................ 33

2.2 Website .......................................................................................................................... 33

2.2.1 HTML ....................................................................................................................... 34

2.2.2 CSS ........................................................................................................................... 34

2.2.3 Javascript e PHP ...................................................................................................... 34

3 Desenvolvimento do Projeto ...................................................................... 37

3.1 Plataforma Móvel ................................................................................................... 37

3.1.1 Navegação da Plataforma........................................................................................ 37

3.1.2 Stream de vídeo ....................................................................................................... 41

3.2 Website ...................................................................................................... 43

Page 19: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

xix

3.2.1 Instalação do servidor web ...................................................................................... 43

3.2.2 Gestão de Permissões de acesso a arquivos: .......................................................... 44

3.2.3 Estrutura do website ............................................................................................... 46

3.2.4 Design do website .................................................................................................... 49

4 Resultado e Análises ................................................................................... 51

4.1 Plataforma Móvel e Website ................................................................................... 51

4.2 Resultados .............................................................................................................. 52

4.3 Análise de custos .................................................................................................... 54

5 Conclusão ................................................................................................... 57

6 Considerações finais e projetos futuros ...................................................... 59

Referências Bibliográficas .................................................................................. 61

Page 20: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

xx

Page 21: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

21

1 Introdução

1.1 Motivação

O monitoramento de ambientes por câmeras de vigilância data da década de 60, com

início em grandes cidades dos Estados Unidos da América e também em algumas capitais

europeias, com o intuito de monitorar locais de grande fluxo de automóveis e pessoas.

Inicialmente a essência destes sistemas era o circuito fechado de televisão, que necessitava de

uma inspeção visual humana constante, pois não havia como armazenar as imagens como

mostra a figura 1. Na década de 70, com o surgimento do videocassete, o monitoramento

atingiu um novo patamar, se tornou acessível e assim diversos estabelecimentos que lidavam

com alto fluxo de dinheiro passaram a utilizar esta alternativa de segurança ([1] Sistemas de

Monitoramento – CFTV).

Figura 1 - Circuito fechado de TV

Avançando um pouco na linha temporal, um fato importante que impulsionou ainda mais

os sistemas de monitoramento foi o desenvolvimento do sensor digital CCD (Charged Couple

Device) composto por circuitos integrados de silício, que permitiu a criação de inúmeras

aplicações devido a matriz imagem gerada, como gravações com pouca luminosidade ([2] DE

SOUZA, J e CARDOZA, J.).

Com a constante evolução das câmeras, o baixo custo dos componentes eletrônicos e

acessibilidade desta tecnologia ao usuário comum, os sistemas de monitoramento se tornaram

uma realidade rotineira, há circuitos de vigilância em quase todos os locais imagináveis.

Page 22: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

22

Com essa ampliação de aplicações e a observação de fatos recorrentes, nos quais se

constata a dificuldade de confiar a segurança de entes queridos aos cuidados de outras

pessoas, seja de crianças que ficam em casa enquanto os pais trabalham, principalmente as

recém-nascidas, ou no outro extremo, de pessoas idosas que necessitam de cuidados

especiais, surgiu a ideia de desenvolver uma solução de monitoramento que fosse flexível.

Analisando as opções atuais, os sistemas de monitoramento para estes casos se

resumem na maioria das vezes a circuitos de vigilância compostos por câmeras de alto custo e

que podem apresentar pontos cegos além de não permitirem uma livre visualização do

ambiente a ser monitorado. Assim uma plataforma móvel que permita o livre deslocamento do

usuário, como se este estivesse presente fisicamente no ambiente ao alcance de poucos

comandos se torna uma opção mais do que interessante.

1.2 Objetivo

O objetivo deste trabalho é propor e desenvolver uma solução de baixo custo para o

monitoramento de ambientes ou de pessoas que necessitem de supervisão, utilizando uma

plataforma móvel terrestre controlada por uma aplicação via Web.

Esta plataforma é composta de um computador, Raspberry Pi, que analisa e executa

todos os comandos de controle, inclusive o armazenamento da página Web, quatro motores

independentes, uma câmera (RaspiCam) que permite ao mesmo tempo o monitoramento e

navegação, um sensor ultrassônico para evitar colisões com obstáculos que passem

despercebidamente pelo usuário quando este através do ambiente Web, assistido pela imagem

exibida em tempo real, enviar os comandos de navegação.

1.3 Organização da Monografia

Esta monografia está estruturada em 5 capítulos com o intuito de mostrar todas as

etapas da construção do projeto da plataforma de monitoramento móvel, sendo composta do

capítulo inicial que introduz os motivos e o objetivo do desenvolvimento deste projeto. No

capítulo 2 o projeto será descrito em sua totalidade juntamente como os conceitos envolvidos

no seu desenvolvimento. O capítulo 3 contempla o desenvolvimento do projeto mostrando as

etapas de construção da plataforma e do website. Já no capítulo 4 é feita uma análise dos

resultados obtidos além de uma consideração crítica sobre os custos do desenvolvimento do

projeto. Os capítulos finais 5 e 6 se referem à conclusão e a algumas considerações finais de

desenvolvimento futuro para este projeto.

Page 23: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

23

2 Descrição do Projeto e Conceitos

Neste capítulo é feita a descrição do projeto e de alguns conceitos envolvidos no

desenvolvimento. O projeto pode ser dividido em duas partes, a plataforma móvel, que tem

como componente principal e “cérebro do projeto” a RPI, principal responsável por controlar

todos os outros periféricos, e o website, que é a interface entre o usuário e a plataforma. Segue

um diagrama na figura 2 do funcionamento do sistema de monitoramento. O usuário através do

website requisita as ações que são passadas a Raspberry que designa o periférico responsável

para executar a os movimentos de navegação.

Figura 2 - Diagrama do sistema de monitoramento

Page 24: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

24

2.1 Plataforma Móvel

A plataforma móvel é composta pelo computador central, a Raspberry Pi além de todos

os outros componentes como indicado na figura 3, que será responsável por todo o controle

seja do acionamento dos motores, do sensor de distância ou da câmera como também por

hospedar todo o conteúdo e funções do website.

Figura 3 - Composição da plataforma móvel

2.1.1 Raspberry Pi

A placa Raspberry PI é um computador de baixo custo e de pequenas

dimensões. Criado pela Raspberry Pi Foundation com sede no Reino Unido, seu

desenvolvimento faz parte de um projeto que tem como intuito promover o campo da

computação e o funcionamento dos computadores desde cedo para os jovens,

funcionando assim como um gerador de futuros profissionais a fim de garantir e

contribuir com o desenvolvimento deste campo científico ([3] About us | Raspberry Pi) e

([4] What is Raspberry Pi? | Raspberry Pi).

Seu pré-lançamento foi feito com apenas 50 unidades em agosto de 2011 sendo

disponibilizada para a venda em abril de 2012 e partir desta data as vendas decolaram

devido ao seu baixo custo e todo o poder que ela proporcionava. Rapidamente ela se

tornou referência na comunidade de desenvolvedores, muitas aplicações e projetos

apareceram como servidores web, automatização residencial e centrais de mídia ([5]

FAQS | Raspberry Pi).

Na figura 4 estão indicadas as principais características que fizeram da RPI um

sucesso, como a saída HDMI em alta definição e o processador ARM11.

Page 25: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

25

Figura 4 - Descrição dos componentes da RPI

Para seu funcionamento são necessários os mesmos periféricos de um

computador comum como mouse, teclado e monitor, ou seja, um computador que cabe

literalmente na palma da mão.

No que se refere ao projeto além das dimensões reduzidas da placa, os pontos

mais cruciais foram o processador ARM11 de 700MHz e a RAM de 512Mb que

possibilitaram a velocidade necessária para execução das aplicações, a saída USB que

recebeu o módulo de conexão Wifi, o conector CSI, onde foi conectada a RaspiCam e

sem dúvida as GPIO que foram conectadas ao controle da movimentação dos motores e

do sensor ultrassônico ([6]Raspberry Pi Datasheet).

O sistema operacional utilizado no projeto foi o Raspbian, que citando os próprios

criadores: “é uma versão não oficial do Whezzy Debian Linux que foi otimizada para o

Raspberry Pi”, sendo assim ele conta com as principais características do Debian, como

ser um software sem custos, com o melhor sistema de pacotes existente acessado

através do comando dpkg, permitindo o controle de arquivos antigos e a instalação de

novos programas de forma robusta, além de permitir que as atualizações sejam feitas

Page 26: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

26

facilmente através do comando apt-get ([7]FÓRUM norte americano de usuários de

Linux) e ([8]RaspbianFAQ – Raspbian).

Apresenta fácil instalação e um suporte muito grande da comunidade devido a

ser um software livre, recebendo assim atualizações constantes e correções de bugs.

2.1.2 RaspiCam

Há dois modos para se utilizar uma câmera na RPI, ou se usa uma câmera com

conexão USB, ou a câmera desenvolvida para a própria placa a RaspiCam mostrada na

figura 5, que apresenta conexão do tipo interface serial. É uma câmera com resolução

HD 1080p que permite foto e vídeo, desenvolvido para a RPI, que pode ser controlada

por programação, e apresenta as seguintes características ([9]RaspiCam

Documentation).

Figura 5 - RaspiCam

Dimensões da placa: 25 x 20 x 9 mm

Dimensões do sensor: 3,67 x 2,74 mm

Número de Pixels: 2592 x 1944

Dimensões dos Pixels: 1,4 x 1,4 um

Peso: 3g

Resolução: 5 megapixels

Modos de vídeo: 1080p a 30fps com o codec H.264

Page 27: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

27

O que chama a atenção além da alta resolução é o baixo custo e as dimensões

reduzidas tornando uma ferramenta de grande poder para inúmeras aplicações.

A conexão da câmera com a RPI é feita pela entrada CSI. Para efetuar a

instalação são necessárias algumas instruções na linha de comando para instalar e

atualizar a última versão do kernel, do firmware GPU, e das aplicações. São elas o apt-

get update e o apt-get upgrade, a primeira atualiza a lista de pacotes e a segunda

instala as atualizações dos pacotes que não se encontram na versão mais recente.

Depois basta habilitar o suporte a câmera usando o comando raspi-config e ativar a

opção Enable camera.

Para confirmar que a câmera está funcionando basta utilizar uma das funções já

presentes como a raspistill para tirar fotos ou raspivid para gravar vídeos. Um exemplo

de comando seria:

$ raspistill –o testeimagem.jpg

Que realiza a captura de uma imagem com formato de saída em .jpg.

2.1.3 Chassi e motores

Como base, a plataforma contará com o Kit DG012-ATV da DAGU Eletronic com

sua montagem indicada na figura 6, que é composto por um chassi de alumínio de alta

qualidade com disponibilidade para o encaixe da placa, do controlador e do sensor de

distância. São quatro motores de corrente contínua com caixa de redução com tensão

de alimentação de 6 a 9 Volts (V) e corrente nominal de 800 miliamperes. A alimentação

será fornecida por 5 pilhas de 1,5 V de tensão nominal. Como foi usado apenas um

controlador L298N, a ligação dos motores de cada lado da plataforma foi feita em

paralelo.

Page 28: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

28

Figura 6 - Kit DG012-ATV

2.1.4 Controlador Ponte-H

Como os motores utilizados no projeto são de corrente contínua, a corrente

elétrica flui em apenas uma direção na bobina, gerando um campo magnético

responsável pelo movimento mecânico do motor. Para controlar o sentido de rotação

dos motores que comandaram a plataforma é necessário que a corrente possa fluir nos

dois sentidos da bobina constituinte dos motores, possibilitando as inversões de

movimento.

Essa inversão de sentido de corrente pode ser obtida fazendo-se uso de uma

ponte H. Um circuito simples que permite além da inversão de movimento do motor, o

controle de potência através da tensão entregue a carga do motor.

A ponte H é composta basicamente de chaves que controlam o sentido da

corrente, as chaves podem ser construídas a partir de diferentes componentes como

transístores de junção bipolar, mosfets ou até mesmo relés, isso irá depender do tipo de

aplicação.

A figura 7 a seguir indica uma configuração básica de uma ponte H, na qual

temos um motor na posição central conectado a quatro chaves que neste projeto serão

controladas através de comandos enviados pela RPI ([10]INOUE, K e OSUKA, T 2004).

Page 29: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

29

Figura 7 - Diagrama ponte H

A ponte funciona de alguns modos, se todas as chaves estão abertas ou

fechadas, não há diferença de potencial entre as entradas do motor, assim ele

permanece parado. Já para os modos de movimento há dois casos indicados na figura

8. Um quando as chaves S1 e S4 estão fechadas e a corrente flui no sentido de S1 para

S4 e outro quando as chaves S2 e S3 estão fechadas e a corrente flui no sentido de S3

para S2.

Figura 8 - Ponte H - Modos de funcionamento

Page 30: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

30

Será utilizada uma placa de configuração de ponte H baseada no circuito

integrado L298N que pode ser adquirida facilmente e apresenta custo

consideravelmente baixo. Ela que já vem com os circuitos de proteção que evitam curto

circuito na ponte além de permitir o controle de velocidade.

A descrição dos pinos da placa pode ser vista na figura 9 e na tabela 1 ([11]L298

Ponte H Datasheet).

As chaves seletoras que fazem a conexão determinando o sentido de corrente

no motor nada mais são do que as entradas IN1 e IN2 que são ativadas pela entrada

ENA. Se o controle estiver ativado a corrente circulará pelo motor fazendo com que ele

se movimente.

Figura 9 - Controlador ponte H dupla com L298N

Page 31: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

31

Tabela 1 - Descrição da ponte H dupla L298N

Nome da Porta Entrada/Saída Descrição Alimentação e GND

Entrada Conexão para alimentação externa (5 a 35V)

ENA Entrada Controle da Saída do motor A (5V – Ativado)

ENB Entrada Controle da Saída do motor B (5V – Ativado)

IN1 Entrada Controle de direção do motor A

IN2 Entrada Controle de direção do motor A

IN3 Entrada Controle de direção do motor B

IN4 Entrada Controle de direção do motor B

MotorA Saída Saída para o motor A

MotorB Saída Saída para o motor B

+5V Saída Saída de 5V

5V Enable Entrada Controle do nível de tensão

2.1.4 Sensor de Distância

Mesmo com a navegação sendo assistida pela imagem da RaspiCam, fez-se

necessária a inclusão de um dispositivo que evitasse colisões frontais quando algum

obstáculo passasse de forma despercebida pelo usuário a fim de garantir a integridade

da plataforma e funcionamento da aplicação. A alternativa escolhida foi a de um sensor

ultrassônico, no caso o HC-SR04, que é capaz de medir distâncias entre 2 centímetros e

4 metros, possibilitando uma solução simples e eficaz.

Os sensores ultrassônicos funcionam através de um emissor e um receptor para

medir a distância do objeto. Um pulso modulado é emitido e ao colidir com o obstáculo,

uma parte é refletida para o receptor como indicado na figura 10. Sabendo a velocidade

do som quando se propaga no ar, é possível calcular a distância do obstáculo.

Page 32: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

32

Figura 10 - Principio de funcionamento do sensor ultrassônico

A figura 11 traz a descrição da pinagem do sensor HC-SR04, sua tensão de

alimentação é de 5V e sua corrente de 15mA. Como citado anteriormente a frequência

de trabalho é de 40kHz e a tensão de saída do pino Echo também é de 5V ([12] HC-

SR04 Datasheet).

Figura 11 - Sensor HC-SR04

O sensor HC-SR04 é composto de um transmissor ultrassônico, um receptor e

um circuito responsável pelo controle. Seu funcionamento começa através de um pulso

de pelo menos 10us enviado ao pino trigger, o módulo de controle então enviará uma

série de 8 pulsos com uma frequência de 40kHz. Se estes pulsos forem refletidos, serão

captados pelo receptor e o pino Echo terá como saída um pulso com duração de tempo

iniciando no envio da série de pulsos até o retorno registrado pelo receptor, em outras

palavras o pino Echo ficará em alta durante o tempo que o pulso levou para ir e voltar ao

Page 33: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

33

sensor como mostra a figura 12.Esse tempo será usado para estimar a distância do

sensor até o obstáculo mais próximo.

Figura 12 - Diagrama de tempo do sensor HC-SR04

2.1.5 Adaptador Wifi

Para suprir a falta de um módulo Wifi na RPI foi utilizado um adaptador do tipo

wireless USB, mostrado na figura 13, que utiliza o sistema UWB para a transmissão de

dados a curtas distâncias e tem velocidade de 150Mbps. Sua função é garantir a

conexão entre a RPI e o roteador sem a necessidade de cabos, assim a plataforma fica

conectada a internet e livre de cabos, permitindo seu deslocamento pelo ambiente.

Figura 13 - Adaptador Wifi

2.2 Website

Para o desenvolvimento do website foram necessárias diferentes linguagens de

programação e de marcação. Elas são descritas durante este capítulo bem como sua

Page 34: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

34

participação e importância em cada parte do projeto. A estrutura é composta de uma página

com login e senha para confirmação do usuário, uma página de erro caso algum dos dados

esteja incorreto, uma página com um resumo do funcionamento da aplicação, e por fim, a

página contendo a aplicação.

2.2.1 HTML

HTML é uma linguagem criada com a finalidade de desenvolver páginas web.

Apresenta fácil aprendizado apesar de ser uma ferramenta poderosa. Está em constante

desenvolvimento e evolução para atender as demandas do público crescente da

internet, hoje existem cerca de um trilhão de endereços exclusivos. Sua manutenção e

desenvolvimento são feitos pela W3C um consórcio internacional que tem como um de

seus fundadores Tim Berners-Lee, desenvolvedor do HTML e da World Wide Web

([13]GUIAS Html, Css, Javascript e Ajax).

Ela é usada em conjunto com outras linguagens como a CSS que permite

controlar o layout das páginas, e com a Javascript que permite alguns efeitos especiais

e interação com o usuário. O HTML será a base da estrutura visual do website.

2.2.2 CSS

O CSS (Cascade Style Sheets) é uma linguagem de folha de estilos que tem

como propósito principal estilizar as páginas HTML. Como o website será controlado

diretamente pelo usuário se faz necessário que a página tenha uma boa apresentação e

seja agradável aos olhos.

Seu surgimento foi impulsionado pela dificuldade de apresentação do conteúdo

das páginas, não havia como definir padrões de cabeçalhos e estruturas, essas

alterações eram feitas manualmente, gerando páginas com inúmeras linhas de código.

O CSS permitiu a separação entre conteúdo e formato da apresentação dos elementos,

possibilitando uma maior flexibilidade e controle de exibição.

Há alguns modos de inserção de regras CSS em páginas HTML. O que foi

utilizado neste projeto é o link com o arquivo externo .css que permite alocar todo o

código fora da página principal ([13]GUIAS Html, Css, Javascript e Ajax).

2.2.3 Javascript e PHP

Essas duas linguagens de programação web foram usadas no projeto para

atender necessidades distintas. Uma foi integrada para tratar as requisições do usuário e

Page 35: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

35

a outra foi utilizada para executar as rotinas no servidor que se resumem a navegação

da plataforma. Criando assim uma página dinâmica para a visualização do usuário

permitindo que ela seja atualizada sem que exista a necessidade de recarregar.

Para entender a diferença entre essas duas linguagens, primeiro é necessário

entender um conceito importante, o navegador. Ele é um programa responsável pela

comunicação com o servidor que hospeda a página web e processamento dos dados

contidos nesta página. Sua ação principal é interpretar as tags (HTML), classificando

cada uma de acordo com sua estrutura, seja ela um botão, uma caixa de texto,

monitoramento de eventos como clique do mouse ou pressionamento de uma tecla.

A fim de manipular esses tipos de eventos e métodos surgiu a linguagem de

programação web Javascript, que permite o controle de objetos criados a partir do

HTML, possibilitando inúmera ações para criação de páginas dinâmicas.

De um outro lado temos a linguagem PHP que é uma linguagem interpretada

usada para programação web do mesmo modo que o JS, porém com uma diferença

muito importante, o PHP é executado do lado do servidor. O cliente requisita um pedido,

este por sua vez é enviado ao servidor onde o código é executado gerando estruturas

HTML que retornam ao cliente. Um ponto importante é que para execução de PHP se

faz necessário além do navegador um servidor web que interprete PHP.

Em resumo a principal diferença entre as duas linguagens e o que também

justifica o uso das duas neste projeto é o seu tipo de execução. O javascript do lado do

cliente, permitindo que o servidor não se sobrecarregue com inúmeros processos e

também que a página web retorne as respostas mais rapidamente. Já o PHP é

importante para realização de tarefas no servidor como a movimentação da plataforma,

que é feita através de rotinas executados pela RPI como mostra o diagrama cliente-

servidor na figura 14 ([13]GUIAS Html, Css, Javascript e Ajax e [14]GUIA PHP em

diversas línguas).

Page 36: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

36

Figura 14 - Diagrama Cliente - Servidor

Page 37: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

37

3 Desenvolvimento do Projeto

Neste capítulo são descritas as etapas do desenvolvimento do projeto que contemplam

a estrutura da plataforma robótica com as funções de navegação e o stream de vídeo, as

ligações entre as partes constituintes e os programas usados para o desenvolvimento da

aplicação.

No que se refere ao desenvolvimento do website será mostrada sua estrutura e o fluxo

das informações desde a requisição feita pelo usuário até a execução da rotina de navegação.

Por fim será mostrado o layout da página indicando suas funções .

3.1 Plataforma Móvel

3.1.1 Navegação da Plataforma

A RPI apresenta 26 pinos de GPIO, 17 são programáveis como portas digitais e

podem ser usados como entrada ou saída, desde que sejam usadas algumas funções

especiais de alguns pinos que são definidas pelo sistema operacional, a descrição de

cada pino pode ser vista na figura 15.

Os 9 pinos que não são programáveis tem a função de distribuir alimentação

para as fontes externas sendo eles: 2 e 4 que fornecem 5V, 1 e 17 que fornecem 3,3V

de um regulador de tensão interno, e os pinos 6, 9, 14, 20 e 25 são pinos de terra.

Os pinos nomeados com a descrição GPIO são pinos de entrada e saída sem

nenhuma função especial. Já os pinos SDA e SDL são de barramento I2C, os pinos TX

e RX de comunicação serial, e os pinos MOSI, MISO, SCLK, CE0 e CE1 são pinos de

barramento SPI ([15]FÓRUM da Raspberry Pi Foundation).

Para implementar o sistema de navegação da plataforma serão utilizados

programas criados com a linguagem Python que já apresenta uma biblioteca (RPIO) que

permite a manipulação das GPIO da RPI de modo simples, como definição de entradas

e saídas e PWM, essa biblioteca foi desenvolvida por Chris Hager e é um software livre.

As implementações do acionamento dos motores serão feitas de forma simples

através da atribuição primeiramente do pino utilizado como saída e posteriormente

alterando seus estados como Alto e Baixo. Segue o esquema das ligações dos pinos

aos motores e ao sensor ultrassônico na figura 16 ([16]GUIA GPIO RPI e Python).

Page 38: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

38

Figura 15 - Descrição GPIO RPI

Figura 16 - Esquema de conexões entre os componentes da plataforma

Page 39: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

39

As rotinas de movimento foram definidas visando um controle melhor da

navegação, de modo intuitivo ao usuário. São cinco rotinas distintas sem relação de

prioridade, ou seja, a execução é cancelada a partir do momento que outra rotina de

movimento é solicitada.

Avançar: A plataforma se desloca indefinidamente até que um dos dois eventos

ocorra, outro movimento é requisitado ou o sensor indica a iminência de colisão

com algum obstáculo e desliga os motores.

Retroceder (recuo): Os motores são acionados no sentido reverso durante meio

segundo permitindo um leve recuo da plataforma.

Virar a direita: Os motores do lado esquerdo são acionados durante um curto

espaço de tempo fazendo com que a plataforma gire 15 graus no sentido horário.

Virar a esquerda: Mesmo funcionamento do movimento acima porém os

motores do lado direito são acionados provocando um giro anti-horário de 15

graus.

Parar: Cessa todos os movimentos da plataforma, desligando todos os motores.

Cada movimento tem um arquivo específico em Python que o executa através de

uma chamada de execução pela linha de comando ([17]GUIA Python):

$ sudo python movimento.py

O diagrama da figura 17 a seguir mostra como é a execução de uma rotina de

navegação: o movimento é solicitado através da aplicação pelo usuário e sua execução

se inicia, caso durante a execução de uma rotina, outra seja solicitada, a execução da

rotina anterior é interrompida a e inicia-se a nova rotina.

Page 40: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

40

Figura 17 - Fluxo de execução da rotina de navegação

As rotinas de navegação funcionam com mesmo princípio, os motores são

acionados durante um período de tempo e depois desligados, com exceção da rotina

“avançar”, pois há a atuação do sensor ultrassônico durante este movimento para

impedir colisões.

Considerando o esquema de conexões mostrado anteriormente na figura 15, há

um detalhe importante na conexão do pino de Echo do sensor de distância com a RPI. .

A máxima tensão que pode ser aplicada as GPIOs é de 3,3V enquanto que a tensão de

saída do pino Echo é de 5V. Foi necessária então a utilização de um divisor resistivo

para garantir tanto a integridade da placa quanto a eficiência na leitura.

Como citado na descrição do sensor ultrassônico, para obter a distância do

obstáculo é necessário primeiro medir o tempo de duração do pulso Echo. Isso pode ser

feito através da função time.time(), da biblioteca time, que registra o tempo do sistema.

Depois de obter a duração da saída do Echo em segundos, é necessário multiplicar esse

valor pela velocidade de propagação do som no ar e dividi-lo por 2, pois o tempo de

pulso considerado pelo sensor é o tempo que o sinal leva para sair do transmissor,

colidir com o obstáculo, ser refletido e finalmente ser captado novamente. Considerando

a velocidade de propagação do som no ar como 340m/s, a equação para a distância

captada pelo sensor em centímetros é:

𝑑𝑖𝑠𝑡(𝑐𝑚) =𝑡(𝑒𝑐ℎ𝑜) × 34000

2

Page 41: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

41

Para garantir que não ocorram colisões devido a atrasos nos tempos de resposta

da página web e da rotina de leitura do sensor, será adotada como distância de

segurança o valor de 10 cm na rotina do sensor. Permitindo assim uma margem de

segurança suficiente para execução da parada dos motores.

3.1.2 Stream de vídeo

Para a criação do stream de vídeo, foi utilizado o programa MJPG-Streamer que

é uma aplicação executada pela linha de comando que obtém as imagens JPG

capturadas por uma câmera e as transmite como M-JPEG (sequencia de imagens)

através do protocolo HTTP que pode ser visualizado em navegadores ou outras

aplicações. Ela foi desenvolvida por em especial para dispositivos embarcados com

recursos limitados no que se refere a RAM e CPU ([18]FÓRUM da aplicação Mjpg-

streamer).

Essa aplicação está estruturada em duas partes: a função input_uvc.so

responsável pela captura das imagens através da RaspiCam e a função output_http.so,

que funciona como um servidor web HTTP 1.0 fornecendo as imagens de acordo com o

padrão fps estabelecido.

A instalação do MJPG-streamer começa através da atualização de algumas

dependências necessárias, lembrando que o comando tem que ser realizado como

usuário root.

$ sudo apt-get install subversion libjpeg8-dev imagemagick libv4l-dev

Download do MJPG-streamer.

$ sudo svn co https://mjpg-streamer.svn.sourceforge.net/svnroot/mjpg-streamer mjpg-streamer

Compilação dos arquivos:

$ cd mjpg-streamer

$ make mjpg-streamer

Page 42: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

42

Inicializando o programa:

$ mjpgstreamer -i “./input.uvc.so” -f 20 -r 640x480 -o “ ./output.http.so -w ./diretório_página”

Como foi citado anteriormente a opção do comando –i utiliza o input.uvc.so

como entrada (RaspiCam), opção –o designa a saída e a opção –w indica o diretório que

contém os arquivos HTML, CSS e JS para execução da página web, a opção –f designa

o número de frames por segundo, e a –r as dimensões do stream ([19]SAMELA, J)

Para cancelar o stream é necessário apenas pressionar Ctrl+C. Entretanto é

necessário que a aplicação funcione enquanto a plataforma se movimenta, para isso

usa-se a opção –b para que ela funcione em background. Para parar a execução do

programa pode-se usar o comando killall “nome do processo”, ou kill “PID” onde PID é o

código que identifica o processo. O comando top foi usado para listar todos os

processos em execução.

Para visualizar no navegador a aplicação do MJPG-Streamer mostrada na figura

18 basta digitar a seguinte URL:

http://192.168.1.16:9000 - localmente na RPI, onde 9000 foi a porta definida para o mjpg-streamer

http://192.168.1.16:9000 - acesso por outro dispositivo conectado a rede

Para incorporar o stream a uma página HTML é necessário apenas incluir a

estrutura de imagem indicada abaixo:

<img alt="" src="http:// 192.168.1.16:9000/?action=stream" width="640" height="480" />

A definição das dimensões da imagem na tag html é importante para evitar que a

página tenha que ajustar o tamanho aumentando o tempo de carregamento.

Page 43: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

43

Figura 18 - Vídeo da aplicação MJPG-streamer – resolução 640x480

3.2 Website

3.2.1 Instalação do servidor web

A interface entre cliente e servidor foi construída utilizando a linguagem PHP.

Porém essa linguagem não é interpretada pelos navegadores e necessita de um

servidor que a interprete e forneça o arquivo ou as linhas no formato HTML, que é o

formato interpretado pelo navegador.

O servidor utilizado neste projeto foi o Apache desenvolvido pela Apache

Software Foundation que é uma organização sem fins lucrativos que tem como missão

prover o suporte financeiro, legal e organizacional a mais de 150 projetos de softwares

de código aberto, sendo um deles o Apache que é o servidor popular da internet desde

1996. Essas características somadas a fácil instalação e desempenho deste software

justificam seu emprego nesta aplicação ([20]FAQ Apache e [21]Raspberry Pi Web

Server).

Page 44: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

44

A instalação do PHP com o servidor Apache será detalhada em todas suas

etapas. Primeiro executando a instalação dos programas e dependências necessárias:

$ sudo apt-get install apache2 php5 libapache2-mod-php5

O Apache necessita da criação de um grupo dentro da cadeia de hierarquia do

Linux para que possa ser executado.

$ sudo groupadd www-data : cadastra o grupo www-data no linux

$ sudo usermod -g www-data www-data : define o grupo www-data como grupo primário

Basta executá-lo, para conferir se ele está funcionando corretamente basta

digitar o IP na URL do navegador. Se aparecer a mensagem “It works” a instalação

ocorreu com sucesso. O Apache precisa ser executado durante o boot para garantir seu

funcionamento assim que a RPI for ligada, para isso adiciona-se uma chamada de

inicialização aos arquivos de boot do sistema.

3.2.2 Gestão de Permissões de acesso a arquivos:

Para que os programas de navegação desenvolvidos em Python sejam

executados, eles necessitam de permissão de usuário root pois controlam a GPIO.

Para que a página web possa executar estes arquivos a permissão de usuário

root precisa ser estendida ao grupo www-data (Apache). Para isso foi usado o comando

chmod, responsável por alterar as permissões ([22]FÓRUM brasileiro de usuários de

Linux).

O conceito de permissões no Linux, funciona seguindo a tabela 2, que indica em

binário a permissão para o dígito 1 e não permissão para digita 0, onde:

r = read (leitura)

w = write (escrita)

x = execute (execução)

Page 45: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

45

Tabela 2 - Tabela de nível de permissões para Linux

Dono Grupo Outros

Decimal r w x r w X r w x

0 0 0 0 0 0 0 0 0 0

1 0 0 1 0 0 0 1 0 1

2 0 1 0 0 1 0 0 1 0

3 0 1 1 0 1 1 0 1 1

4 1 0 0 1 0 0 1 0 0

5 1 0 1 1 0 1 1 0 1

6 1 1 0 1 1 0 1 1 0

7 1 1 1 1 1 1 1 1 1

Assim, analisando o comando abaixo, temos que o dono do programa tem

acesso total para ler, escrever e executar, o grupo tem acesso apenas a leitura e os

outros não tem acesso nenhum.

Como os programas precisam ser executados pelo Apache através do grupo

www-data é necessário que seja estendida a permissão 7 a todos os arquivo que serão

executados pela aplicação web.

$ chmod 740 avancar.py

Page 46: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

46

3.2.3 Estrutura do website

O website foi estruturado como mostra o esquema na figura 19.

Figura 19 - Diagrama da estrutura do website

Há uma página inicial, que contém links para duas páginas de informação e um

campo para confirmação de acesso a aplicação que requer login e senha.

Como o ponto principal da aplicação é o sistema de navegação, para evitar uma

carga maior de processamento tanto da RPI quanto da página web, não foi usado um

banco de dados como o mysql para controlar o numero usuários e suas respectivas

senhas, assim a estrutura utilizada foi a de comparação com valores previamente

definidos em uma página php que compara os dados inseridos pelo usuário.

As páginas de informação apresentam apenas estruturas HTML e CSS, pois são

constituídas basicamente de textos e links para as outras páginas.

Para a página da aplicação, uma estrutura foi construída utilizando as linguagens

de programação Javascript e PHP, para que a informação saia da página web e chegue

até a plataforma, fosse interpretada e a ação requisitada, realizada.

O script criado em JS tem a função de monitorar quando um botão é acionado

através da evento .click(função), que toda vez que ocorrer o clique do mouse em algum

Page 47: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

47

botão, a “função” será acionada, ela por sua vez alterará uma variável de controle de

acordo com o botão que foi pressionado.

Para que o movimento seja executado é necessário o intercâmbio de

informações do cliente para o servidor, a primeira etapa deste processo já foi concluída

com a aquisição e processamento dos dados feitos pelo JS, a próxima etapa é a

transmissão dessas informações através do AJAX ( acrônimo da língua inglesa para

Asynchronous Javascript and XML) que se resume a um uso metodológico de JS e XML,

permitindo o intercâmbio de informações com o servidor sem que seja necessário o

recarregamento da página.

A chamada em AJAX que será efetuada está descrita abaixo, sempre quando

ocorrer um evento on click ela será executada, o campo method define qual tipo de

requisição será feita, get ou post, o campo url define a página do servidor que será

requisitada e o campo data, as variáveis que serão transmitidas.

$.ajax({

method: "post",

url: "pagina.php",

data: {variaveldecontroleJS: variaveldecontrolePHP },

});

Para recuperar as variáveis na página PHP basta apenas usar o mesmo método

para qualquer requisição do tipo POST:

<?php variavel =$_POST[“variaveldecontrolePHP”]; ?>

Quando a página em PHP receber a requisição da página HTML, ela analisará a

variável de controle e através de uma estrutura lógica de escolha, enviará o comando a

RPI de execução do programa em Pyhton através da função exec que executa ações na

linha de comando como por exemplo abrir programas em Python.

Deste modo o ciclo é encerrado quando termina a execução do movimento, a

não ser que enquanto o movimento esteja sendo executado uma nova rotina seja

acionada repetindo o processo. O fluxograma que resume o ciclo está indicado na figura

20.

Page 48: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

48

Figura 20 - Fluxograma da requisição de movimento da plataforma pelo website

Page 49: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

49

3.2.4 Design do website

O layout da página de aplicação é mostrado na figura 21 com as indicações das

estruturas.

Figura 21 - Website página da aplicação

As estruturas principais são os links que redirecionam para páginas com o

mesmo formato de apresentação, contendo textos formatados em HTML, indicando

como a plataforma funciona e como utilizar os comandos de navegação para guiá-la.

Como informado anteriormente, a requisição de movimentos é feita através do

clique do mouse nos botões.

O layout foi desenvolvido de modo a simplificar a interação do usuário com a

plataforma e permitir um controle intuitivo.

Page 50: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

50

Page 51: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

51

4 Resultado e Análises

Neste capítulo são avaliadas as etapas constituintes do projeto, a estrutura da

plataforma e do website e alguns indicadores como o tempo de resposta dos comandos de

execução e o atraso da transmissão do vídeo. É feita uma análise quantitativa e qualitativa dos

custos envolvidos no desenvolvimento da plataforma móvel e uma discussão sobre os impactos

destes custos em projetos de desenvolvimento tecnológico.

4.1 Plataforma Móvel e Website

O resultado final da plataforma móvel desenvolvida é mostrado em algumas imagens na figura 22 e o website na figura 23.

Figura 22 - Plataforma móvel desenvolvida

Page 52: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

52

Figura 23 - Website - página de navegação

4.2 Resultados

O tempo de resposta dos comandos de navegação a partir do instante que é feita a

solicitação até o movimento se iniciar, e do atraso na transmissão do vídeo é mostrado no

gráfico 1, considerando diferentes velocidades de conexão.

Gráfico 1 - Tempo de resposta de execução do movimento considerando a velocidade de conexão

0,25 s

0,20 s 0,20 s

0,15 s

0,50 s

0,30 s

0,25 s

0,20 s

0,00 s

0,10 s

0,20 s

0,30 s

0,40 s

0,50 s

0,60 s

1 Mbps 4 Mbps 10Mbps 30Mbps

Movimento

Transmissão de Vídeo

Page 53: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

53

Os tempos de resposta de movimento foram medidos através de funções que retornam

o tempo do sistema, tanto na página web quanto na função em python. Foram feitas 10

medidas e calculada a média para cada velocidade de conexão. Já para o tempo de

transmissão as medidas foram aferidas com o auxílio de um cronômetro, foram feitas 15

medidas para cada velocidade de conexão e também foi calculada a média destes tempos.

Nota-se que a diferença entre o tempo de resposta de uma conexão de 1 Mbps e de

uma conexão de 30 Mbps é de apenas 0,1 segundos não apresentando um impacto

significativo no controle de navegação. No entanto, a transmissão de vídeo com um atraso de

meio segundo já provoca a sensação par quem a visualiza de um “travamento” da imagem, por

isso uma conexão de pelo menos 4 Mbps é necessária para a transmissão.

Outro ponto importante é que o navegador que apresentou melhores tempos de

respostas tanto para requisições de movimento quanto para transmissão de vídeo foi o

Firefox32.0.1 quando comparado com o Chrome39.0.2171.65 e o Opera 25, ressaltando que o

Internet Explorer não suporta o formato MJPEG por isso não foi considerado nos testes.

A página web mostrada na figura 24 foi desenvolvida considerando opiniões de pessoas

totalmente leigas quanto a programação e sistemas eletrônicos pois seriam os usuários

potenciais deste sistema de monitoramento tornando-a simples mas ao mesmo tempo objetiva

quanto a informações e funcionamento.

Figura 24 – Página de Login e página de navegação

Page 54: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

54

4.3 Análise de custos

Neste capítulo foi feita uma análise quantitativa e qualitativa dos custos envolvidos no

projeto, que são definidos pelos componentes principais da plataforma móvel, sendo eles: a

placa de controle RPI, o chassi com os motores (kit DG012-ATV), o controlador em ponte H, a

câmera RaspiCam, o cartão SD utilizado para armazenamento do sistema operacional na RPI e

o adaptador Wifi.

A análise feita considera uma comparação dos valores de uma compra no exterior em

dólares, uma compra com este valor convertido em reais desconsiderando quaisquer outros

custos de impostos e por fim uma compra realizada diretamente no Brasil. Foram

desconsiderados custos relacionados a fretes dos componentes.

A placa RPI (modelos B e B+ com mais saídas USB e menor consumo de energia) e a

Raspicam tem como valores oficiais US$35,00 e US$25,00 respectivamente considerando

valores do fornecedor oficial Farnell Newark nos Estados Unidos, já aqui no Brasil esses

mesmos componentes considerando o mesmo fornecedor custam R$180,00 e R$99,000 e não

apresentam um valor fixo pois dependem do custo da importação.

O kit DG012-ATV considerando a média de alguns sites como o robotshop.com e

hobbyking.com tem o valor de US$45,00 nos EUA e no site projetoarduino.com.br apresenta

valor de R$180,00. Quanto ao controlador ponte h, considerando uma média de valores do site

amazon.com tem como custo US5,00 enquanto que o custo em território nacional sai em torno

de R$25,00 considerando sites de anúncios como o mercadolivre.com.

Quanto ao cartão SD de 8Gb e o adaptador Wifi considerando sites de busca de preço

como mysimon.com (EUA) e buscapé.com (Brasil), o dispositivo de armazenamento tem os

custos médios de US$8,00 e R$25,00, e o adaptador tem uma média de US$10,00 e R$45,00.

A tabela 3 traz o comparativo de cada componente e as soma totais, considerando os

três cenários distintos, uma compra nos Estados Unidos, essa compra convertida em reais

considerando o valor de cotação do dólar comercial do dia primeiro de outubro de 2014, R$2,48

e o último de uma compra realizada no Brasil.

Há algumas considerações que devem ser feitas. A primeira é comparando apenas os

valores em reais, a compra dos componentes para construção da plataforma móvel Brasil é 1,7

vezes mais cara que a compra efetuada nos EUA, mostrando o quanto é pago de impostos no

país e também quanto o produto final cresce em valor devido a intermediários até o consumidor

final.

Page 55: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

55

Tabela 3 - Cenários de custos dos componentes da plataforma móvel

Componentes Compra nos EUA Compra EUA (R$) Compra no Brasil

RPI US$ 35,00 R$ 86,80 R$ 180,00

RaspiCam US$ 25,00 R$ 62,00 R$ 99,00

kit DG012-ATV US$ 45,00 R$ 111,60 R$ 170,00

Controlador US$ 5,00 R$ 12,40 R$ 25,00

Cartão SD US$ 8,00 R$ 19,84 R$ 25,00

Adaptador Wifi US$ 10,00 R$ 24,80 R$ 45,00

Total US$ 128,00 R$ 317,44 R$ 544,00

Segundo é quanto este valor impacta no salário mínimo, agora considerando o valor em

dólares para os EUA e em reais para o Brasil. O salário mínimo americano é definido de estado

para estado, mas tem um valor padrão de U$ 7,25 por hora, assim para comprar todos os

componentes são necessárias 17,66 horas de um trabalhador americano. Enquanto que no

Brasil o salário mínimo definido no decreto 8.1667/2013 é de R$ 724,00 o que corresponde a

R$4,12 por hora considerando 22 dias de trabalho e uma jornada laboral de 8 horas por dia([23]

Mínimo Vage Lãs in lhe Status e [24]Salário Mínimo Brasileiro). Para o cenário de uma compra

nos EUA convertida em reais são necessárias 77 horas de um trabalhador brasileiro enquanto

que para uma compra realizada totalmente no Brasil esse número de horas sobe

assustadoramente para 132 horas. Em resumo no Brasil são necessárias pelo menos 4,3 vezes

mais horas de trabalho para comprar os mesmo componentes.

Essa análise mostra porque é tão difícil e questionável o desenvolvimento do país em

muitos campos tecnológicos, principalmente quanto ao campo da computação e da eletrônica.

O acesso só é possível muitas vezes dentro da universidade que também conta com problemas

para obtenção de verbas e consequentemente disponibilização aos seus graduandos.

Considerando que o intuito da Raspberry Foundation é provocar a busca de conhecimento no

campo da computação principalmente em jovens e crianças, nota-se que no Brasil isto não tem

muito efeito devido aos altos preços e baixo valor aquisitivo do trabalhador brasileiro.

Page 56: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

56

Page 57: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

57

5 Conclusão

No projeto foi desenvolvido o sistema de monitoramento por completo contando tanto

com a aplicação web e a plataforma de navegação. Analisando os resultados ficou claro que

para eficiência do sistema é necessária uma boa velocidade de conexão, para que as rotinas de

navegação e a transmissão de vídeo fluam com o mínimo de atraso possível.

Por fim, ficaram claras duas vertentes importantes, a primeira quanto a estruturação de

uma aplicação que envolveu conhecimento técnico e análise crítica para definir um sistema que

atendesse todos os requisitos necessários ao usuário final, além de raciocínio quanto a

definição de componentes e rotinas que aperfeiçoasse o resultado do projeto. Já a outra

vertente diz respeito à dificuldade de desenvolvimento do campo da eletrônica e computação no

Brasil principalmente no que se refere a custos, mostrando um grave problema do país que é a

falta de interesse em provocar e instigar a busca por conhecimento nessas áreas.

Quanto ao desenvolvimento de projetos com computadores de baixo custo como a

Raspberry Pi, nota-se o constante crescimento do número de projetos e aplicações muito em

virtude da comunidade de desenvolvedores espalhada pelo mundo que compartilham muitas

informações, e também o alto número de softwares de código aberto.

Page 58: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

58

Page 59: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

59

6 Considerações finais e projetos futuros

O projeto envolveu conhecimentos adquiridos durante toda a graduação como

linguagens de programação, conhecimentos de bancada de laboratório e máquinas elétricas.

Outro ponto importante muito instigado pelos professores, o pensamento racional e crítico, foi

extremamente necessário para definir em quais pontos valia a pena um maior esforço de

trabalho e recursos e em quais não, conduzindo assim o projeto para um ponto de equilíbrio

entre custo e eficiência.

Quanto a projetos futuros, o ponto de partida seria a inserção de um dispositivo para

transmissão de som em tempo real, possibilitando a comunicação entre as pessoas

monitoradas e o usuário. Elevando assim as possibilidades do sistema de monitoramento como

comandos por voz ou reconhecimento de sons específicos, que designariam eventos de

emergência como ligação para atendimento médico.

Page 60: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

60

Page 61: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

61

Referências Bibliográficas

[1]Sistemas de Monitoramento – CFTV. Disponível em:

<http://www.lcti.com.br/servicos/sistema-de-monitoramento-cftv-seguranca-avigilon>. Acesso

em: 30 ago.2014.

[2]DE SOUZA, J.; CARDOZA, J.; Sensores Digitais CCD e CMOS, VII Connepi, 2012.

Disponível em:

<http://propi.ifto.edu.br/ocs/index.php/connepi/vii/paper/viewFile/1667/2517>.

Acesso em: 02 set.2014.

[3]About us | Raspberry Pi. Raspberry Pi, Disponível em <http://www.raspberrypi.org/about>.

Acesso em: 15 jul.2014.

[4]What is Raspberry Pi? | Raspberry Pi. Raspberry Pi, Disponível em

<http://www.raspberrypi.org/help/what-is-a-raspberry-pi>. Acesso em: 15 jul.2014.

[5]FAQS | Raspberry Pi. Raspberry Pi, Disponível em: <http://www.raspberrypi.org/help/faqs>.

Acesso em: 15 jul.2014.

[6]Raspberry Pi Datasheet. Disponível em: <http://www.element14.com/community/docs/DOC-

65470/l/raspberry-pi-technical-data-sheet>. Acesso em: 23 jul.2014.

[7]FÓRUM norte americano de usuários de Linux. Disponível em <http://linuxforums.org>.

Acesso em: 17 ago.2014.

[8]RaspbianFAQ – Raspbian, Raspbian. Disponível, em:

<http://www.raspbian.org/RaspbianFAQ> Acesso em: 25 jul.2014.

[9]RaspiCam Documentation. Disponível em: <http://www.raspberrypi.org/wp-

content/uploads/2013/07/RaspiCam-Documentation.pdf>. Acesso em: 30 jul.2014.

[10]INOUE, K; OSUKA, T. H-bridge . 22 Junho 2004.

Page 62: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

62

[11]L298 Ponte H Datasheet. Disponível em:

<https://www.sparkfun.com/datasheets/Robotics/L298_H_Bridge.pdf>. Acesso em: 22 set 2014

[12]HC-SR04 Datasheet. Disponível em: <http://www.micropik.com/PDF/HCSR04.pdf>. Acesso

em: 20 set.2014.

[13]GUIAS Html, Css, Javascript e Ajax. Disponíveis em < http://www.w3schools.com>. Acesso

em: 20 set.2014.

[14]GUIA PHP em diversas línguas. Disponível em <http://php.net/docs.php>. Acesso em: 20

set.2014.

[15]FÓRUM da Raspberry Pi Foundation para usuários da plataforma. Disponível em:

<http://www.raspberrypi.org/forums>. Acesso em: 28 jul.2014.

[16]GUIA GPIO RPI e Python. Disponível em: <http://makezine.com/projects/tutorial-raspberry-

pi-gpio-pins-and-python/>. Acesso em: 18 ago.2014.

[17]GUIA Python. Disponível em <http://www.python.org.br>. Acesso em: 18 set.2014

[18]FÓRUM da aplicação Mjpg-streamer. Disponível em: <http://sourceforge.net/p/mjpg-

streamer/discussion/739917>. Acesso em: 21 ago.2014.

[19]SAMELA, J. Raspberry Pi Webcam Over the Internet Using MJPG-Streamer. Disponível em. http://jacobsalmela.com/raspberry-pi-webcam-using-mjpg-streamer-over-internet/. Acesso em: 20.ago.2014

[20]FAQ Apache: Disponível em: <http://wiki.apache.org/httpd/FAQ>. Acesso em: 01 out.2014.

[21]Raspberry Pi Web Server. Disponível em: <http://www.instructables.com/id/Raspberry-Pi-

Web-Server>. Acesso em: 20 set.2014 .

[22]FÓRUM brasileiro de usuários de Linux. Disponível em: <http://www.vivaolinux.com.br>.

Acesso em: 15 ago.2014.

Page 63: PLATAFORMA MÓVEL PARA MONITORAMENTO REMOTO … · O cérebro da plataforma é o computador de baixo custo Raspberry Pi que possui um processador de arquitetura ARM e tem a função

63

[23]Minimum Wage Laws in the States - Wage and Hour Division (WHD) - U.S. Department of

Labor. Disponível em: <http//www.dol.gov/whd/minwage/america.htm>. Acesso em: 05 out.2014

[24]Salário Mínimo Brasileiro. Disponível em: <http://www.portalbrasil.net/salariominimo.htm>.

Acesso em: 05. out.2014.