Upload
trinhxuyen
View
225
Download
0
Embed Size (px)
Citation preview
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
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
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.
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).
viii
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.
x
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
xii
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
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
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
xvi
Lista de Gráficos
Gráfico 1 - Tempo de resposta de execução do movimento considerando a velocidade de conexão
....................................................................................................................................................... 52
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
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
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
xx
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.
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.
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
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.
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
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
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.
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).
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
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
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.
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
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
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
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).
36
Figura 14 - Diagrama Cliente - Servidor
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).
38
Figura 15 - Descrição GPIO RPI
Figura 16 - Esquema de conexões entre os componentes da plataforma
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.
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
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
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.
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).
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)
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
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
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.
48
Figura 20 - Fluxograma da requisição de movimento da plataforma pelo website
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.
50
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
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
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
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.
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.
56
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.
58
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.
60
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.
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.
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.