SlideShare uma empresa Scribd logo
UNIVERSIDADE FEDERAL DE SANTA CATARINA
JUCEMAR DIMON
PROTÓTIPO DE UM SISTEMA DE SENSOR DE ESTACIONAMENTO
AUTOMOTIVO UTILIZANDO AS PLATAFORMAS ANDROID E ARDUÍNO
Florianópolis/SC
2016
JUCEMAR DIMON
PROTÓTIPO DE UM SISTEMA DE SENSOR DE ESTACIONAMENTO
AUTOMOTIVO UTILIZANDO AS PLATAFORMAS ANDROID E ARDUÍNO
Trabalho apresentado como exigência da
disciplina de Tópicos Avançados em
Sistemas de Informação II do curso de
Sistemas de Informação, sob orientação do
professor Joao Candido Lima Dovicchi.
Florianópolis/SC
2016
LISTA DE FIGURAS
Figura 1 - Características da placa.............................................................................9
Figura 2 - Placa Arduíno UNO ...................................................................................9
Figura 3 - Sensor ultrassônico de distância..............................................................10
Figura 4 - Shield bluetooth .......................................................................................11
Figura 5 - Leds utilizados .........................................................................................11
Figura 6 - Resistor....................................................................................................12
Figura 7 - Buzzer .....................................................................................................12
Figura 8 - Jumpers...................................................................................................13
Figura 9 - Smartphone .............................................................................................14
Figura 10 - Protoboard.............................................................................................14
Figura 11 - Projeto das conexões eletricas ..............................................................15
Figura 12 - Protótipo montado..................................................................................16
Figura 13 - Código fonte - parte 01 ..........................................................................17
Figura 14 - Código fonte - parte 02 ..........................................................................18
Figura 15 - Código fonte - parte 03 ..........................................................................19
Figura 16 - Tela inicial..............................................................................................21
Figura 17 - Tela inicial - Não conectado...................................................................21
Figura 18 - Busca por dispositivos ...........................................................................22
Figura 19 - Realizando baliza...................................................................................23
SUMÁRIO
INTRODUÇÃO...........................................................................................................4
1 VISÃO GERAL........................................................................................................5
2 MATERIAIS.............................................................................................................7
2.1 SOFTWARE.........................................................................................................7
2.1.1 IDE Arduíno ......................................................................................................7
2.1.2 Fritzing ..............................................................................................................7
2.1.3 IDE Android Stúdio............................................................................................7
2.1.4 Adobe Fireworks ...............................................................................................8
2.1.5 Sublime Text .....................................................................................................8
2.2 HARDWARE........................................................................................................8
2.2.1 Placa Arduíno UNO...........................................................................................8
2.2.2 Sensor ultrassônico de distância.....................................................................10
2.2.3 Bluetooth HC-06..............................................................................................10
2.2.4 Leds ................................................................................................................11
2.2.5 Resistores .......................................................................................................12
2.2.6 Buzzer.............................................................................................................12
2.2.7 Jumpers ..........................................................................................................13
2.2.8 Smarthphone...................................................................................................13
2.2.9 Placa protoboard.............................................................................................14
3 DESENVOLVIMENTO ..........................................................................................15
3.1 DESENVOLVIMENTO DO MÓDULO CENTRAL ...............................................15
3.2 DESENVOLVIMENTO DO APLICATIVO ...........................................................20
CONCLUSÃO ..........................................................................................................24
REFERÊNCIAS .......................................................................................................25
4
INTRODUÇÃO
Arduíno é uma plataforma de prototipagem eletrônica fabricada na Itália em
2005 com o objetivo educacional de ser integrada no sistema de ensino. Seu sucesso
foi tão grande devido as inúmeras possibilidades de desenvolvimento de protótipos de
robótica a simples desenvolvimento de soluções que resolvem pequenas questões do
dia a dia (SOARES, on-line, 2016). A conectividade da permite a conexão com o
computador possibilitando-o a interagir com a sua IDE própria a qual é utilizada para
desenvolvimento de programas nas linguagens C/C++ que serão após compilados e
enviados para a memória ROM da placa permitindo que o próprio micro controlador
da placa execute as instruções. Com sua popularização, diversas empresa iniciara a
produção de componentes eletrônicos como sensores, atuadores, entre outros com a
capacidade de comunicação com a placa e a plataforma Arduíno. Dessa forma, hoje
existe uma grama de componentes produzidos, chamados de shields, que podem ser
usados para enriquecer e facilitar o desenvolvimento de projetos para a plataforma.
Tudo isso somado a explosão do mercado Chinês de produção e venda de
componentes eletrônicos tornou possível a compra de componentes no Brasil por um
preço bem mais acessível. Baseando-se nisso optou-se por escolher tal plataforma
ao invés de escolher uma das outras disponibilizadas no laboratório pela disciplina:
Intel Galileo Geração 2 e Raspberry Pi.
Esse trabalho tem como objetivo principal o desenvolvimento de um protótipo
de um sistema para auxiliar veículos a realizarem o processo de baliza. Como
objetivos secundários, pode-se destacar: a aquisição de conhecimento na montagem
de circuitos para a plataforma Arduíno; aquisição de conhecimento sobre as Shields
para Arduíno disponíveis no mercado; aquisição de conhecimento em eletrônica
básica; aquisição de conhecimento na linguagem de programação C++; aquisição de
conhecimento na API de bluetooth da linguagem JAVA para a plataforma ANDROID;
O sistema é composto por sensores de distância que capturam a distância de
um objeto próximo a sua frente. Em um contexto real estariam instalados nos para-
choques dianteiro e traseiro de um veículo que fosse utilizar o sistema. Através desses
valores capturados pelos sensores o sistema emite sons e luzes indicando o risco de
colisão durante o processo de baliza. O sistema ainda conta com a possibilidade de
conectar um celular via bluetooth para monitorar a performance da baliza utilizando
um aplicativo especialmente desenvolvido.
5
1 VISÃO GERAL
A ideia para este projeto surgiu ao observar a grande quantidade de veículos
saindo de fábrica com sistemas conectáveis via bluetooth. Essa infinidade de
possibilidades aumenta quando o sistema operacional que vem por padrão no veículo
é o Android. Muitos desses veículos já possuem uma tela de display similar a um
tablet. Com a possibilidade de comunicação desses veículos pode-se adicionar alguns
adicionais ao veículo como aplicativos para gerenciar a funções deste veículo.
Baseando-se nessa visão pensou-se em desenvolver algo útil para veículos mais
antigos que não possuem todas essas possibilidades dos novos e mais modernos.
Pensou-se então em algo que auxiliasse o motorista a realizar uma das atividades que
alguns condutores têm grande dificuldade de realizar enquanto dirigem, a baliza.
Muitas vezes o condutor do veículo perde a noção de distância e acaba por colidir
com algum obstáculo. Sendo assim, pensou em desenvolver um sistema que auxilie
o usuário a realizar a baliza. Provavelmente já deve existir no mercado alguns vários
modelos, porém o que se pensa aqui é desenvolver um protótipo de baixíssimo custo
além é claro de adquirir conhecimento no desenvolvimento de projetos na plataforma
Arduíno.
O sistema proposto é composto por duas partes: uma central cujo núcleo é
uma placa Arduíno juntamente com os sensores de distância, leds, buzzer e módulo
bluetooth e outra composta de um aplicativo Android no qual o usuário utiliza para
controlar o sistema. Na parte central existe uma protoboard onde são conectados
todos os componentes e onde acontece o processamento dos dados pelo micro
controlador. Os dois sensores ultrassônicos de distância captam em tempo real os
valores das distâncias dos possíveis obstáculos em sua frente. Esses dados são
armazenados em memória e baseados em seus valores, ações são ativadas pelo
controlador. Existe um conjunto de 3 leds (verde, amarelo e vermelho) que estão
vinculados a cada um dos sensores. De acordo com o valor capturado por cada sensor
um dos leds de cada respectivo conjunto acenderá e a cor do led que será acionado
faz referência ao grau de possibilidade de colisão com algum objeto sendo: led verde
para nenhum risco de colisão; led amarelo para uma possibilidade pequena, mas
possível de uma colisão e led vermelho para uma possibilidade muito grande de uma
colisão. Existe um buzzer que está vinculado aos dois sensores e este buzzer
enquanto o sistema está operando emite um bip curto e suave a cada 1 segundo.
6
Caso algum risco alto de colisão seja percebido pelo sistema o som emitido troca para
um bip continuo indicando ao usuário uma situação de perigo. Durante todo o
processo de captura feito pelos sensores o micro controlador também envia os valores
de cada sensor para o módulo bluetooth e este por sua vez transmite esses dados de
forma serial a quem estiver conectado a ele. A parte composta pelo aplicativo possui
uma tela inicial que ao abrir o aplicativo, solicita ao usuário que ative a função
bluetooth do telefone caso ele esteja desligado. Nesta tela inicial há um botão onde o
usuário inicia a baliza, ou seja, inicia o processo de recebimento dos valores dos
sensores, porém este botão somente fica habilitado após o usuário configurar a
conexão com o modulo bluetooth do Arduíno. Após configurada a conexão o botão
central do aplicativo permite iniciar a balizar. Iniciando a balizar o aplicativo exibe na
tela do celular uma imagem do veículo juntamente com os valores das distancias
traseira e dianteira de cada um dos sensores e, de acordo com essa distância um
ícone indicativo sobre o risco de colisão é mostrado na tela do celular para que o
usuário possa agir e manobrar o veículo evitando colisões. Nesta tela existem dois
botões onde o usuário pode interagir ligando ou desligando os leds ou o som do
sistema e caso ele clique no botão voltar do celular o processo de baliza finaliza.
7
2 MATERIAIS
Para o desenvolvimento do projeto foram utilizados alguns componentes de
hardware e de software. Nas próximas seções serão detalhados cada um deles.
2.1 SOFTWARE
Quanto a relação de softwares utilizados destaca-se os listados a seguir.
2.1.1 IDE Arduíno
Software oficial1
para desenvolvimento na plataforma que é muito bem
recomendado pela comunidade especializada. Sua versão utilizada neste projeto foi
a de número 1.6.8. Esta IDE foi muito útil no desenvolvimento do programa que rodaria
na memória do micro controlador do Arduíno, pois trabalha de forma integrada com o
compilador da linguagem C++ além de possibilitar a facilitada transferência do código
compilado diretamente para a memória da placa Arduíno.
2.1.2 Fritzing
O software Fritzing2 possui várias funcionalidades para desenvolvimento de
projetos de engenharia elétrica e robótica. Neste projeto foi utilizada a sua versão beta
de número 0.9.3b.64.pc. A sua principal utilidade neste projeto foi na criação do projeto
do esquema elétrico das conexões entre os componentes do protótipo.
2.1.3 IDE Android Stúdio
Software repleto de utilitários e ferramentas para promover o rápido e
facilitado desenvolvimento de aplicativos para a plataforma Android3
. Neste projeto foi
utilizado a sua versão 1.2.1. Neste projeto a utilização desta IDE serviu para o
desenvolvimento do aplicativo que se conecta via bluetooth com a placa Arduíno para
receber os dados dos sensores.
1
https://www.arduino.cc/
2
http://fritzing.org/home/
3
https://developer.android.com/studio/index.html
8
2.1.4 Adobe Fireworks
Software de edição de imagens que foi utilizado neste projeto em sua versão
CS6 para ajustar alguns dos ícones utilizados no desenvolvimento do aplicativo.
Fireworks4
é comercializado pela empresa Adobe.
2.1.5 Sublime Text
Software editor de textos prático com algumas funcionalidades voltadas para
programadores como a função que auto completa as palavras que estão sendo
digitadas. Nesse projeto foi utilizada a sua versão 3. Sublime Text5
permite a
instalação de plug-ins para acrescentar funcionalidades e possui a capacidade de
integra-se com a IDE Arduíno para tornar a programação muito mais agradável graças
a sua interface gráfica cheia de atrativos.
2.2 HARDWARE
Os componentes de hardware utilizados neste projeto foram adquiridos no
mercado pelo autor para que o aprofundamento dos conhecimentos no
desenvolvimento de protótipos na plataforma Arduíno pudesse ser aprofundado.
Abaixo serão descritos detalhes de cada um dos itens.
2.2.1 Placa Arduíno UNO
Placa genérica adquirida no mercado compatível com Arduíno UNO. As
Figuras 1 e 2 abaixo mostram a principais características.
4
http://www.adobe.com/br/products/fireworks.html
5
https://www.sublimetext.com/
9
Figura 1 - Características da placa
Fonte: https://www.arduino.cc/en/Main/ArduinoBoardUnoSMD
Figura 2 - Placa Arduíno UNO
Fonte: http://produto.mercadolivre.com.br/MLB-742385752-arduino-uno-r3-rev3-atmega328-smd-cabo-usb-
tutoriais-_JM
10
2.2.2 Sensor ultrassônico de distância
Para o projeto foram adquiridos 02 sensores ultrassônicos de distância do
modelo Hc Sr05 Hy Srf05. Segundo ROBOT ELECTRONICS (on-line, 2016), SRF05
é uma evolução do sensor SRF04, e foi concebido para aumentar a flexibilidade.
Como tal, o SRF05 é totalmente compatível com o sensor SRF04. Intervalo é
aumentado de 3 metros a 4 metros. Um novo modo de operação (pino Mode
conectado no GND) permite que o SRF05 use somente um pino para gatilho e eco,
poupando assim os valiosos pinos do seu controlador. Quando o pinoMode é deixado
desconectado, o SRF05 opera com gatilho e eco separados, como o sensor SRF04.
A Figura 3 ilustra o sensor.
Figura 3 - Sensor ultrassônico de distância
Fonte: Desenvolvida pelo autor
2.2.3 Bluetooth HC-06
O módulo permite enviar e receber dados através da tecnologia Bluetooth sem
a necessidade de conectar um cabo serial. O módulo pode ser conectado a qualquer
dispositivo que possua comunicação serial, tais como mouse, teclado, joystick,
11
computadores, micro controladores, receptor GPS, controladores de equipamentos
industriais e muito outros (MERCADO LIVRE, on-line, 2016). A Figura 4 ilustra a
shield.
Figura 4 - Shield bluetooth
Fonte: Desenvolvida pelo autor
2.2.4 Leds
Neste projeto foram utilizados 06 Leds difusos de 5mm:
 02 leds vermelhos;
 02 leds verdes;
 02 leds amarelos.
A Figura 5 ilustra os leds.
Figura 5 - Leds utilizados
Fonte: Desenvolvida pelo autor
12
2.2.5 Resistores
No projeto foram utilizados 6 resistores de 330Ohm para reduzir a corrente de
alimentação da placa que é de 5V para que os leds pudessem ser ligados com
segurança. Foram utilizados 1 resistor para cada led. A Figura 6 ilustra o resistor.
Figura 6 - Resistor
Fonte: Desenvolvida pelo autor
2.2.6 Buzzer
Utilizou-se neste projeto um buzzer ativo continuo. Segundo USINAINFO (on-
line, 2016), este componente é um pequeno alto-falante destinado a emitir sinais
sonoros a partir do oferecimento de energia DC ao módulo, não variando a frequência
de emissão. A Figura 7 ilustra o componente. Sua principal finalidade é a emissão de
sinais sonoros como forma de alerta para que o operador fique informado que algo
está ocorrendo.
Figura 7 - Buzzer
Fonte: Desenvolvida pelo autor
13
2.2.7 Jumpers
Utilizou-se neste projeto Jumpers Machos em ambas as ponteiras para
permitir as ligações elétricas entre a protoboard e a placa Arduíno e entre os próprios
componentes do projeto. A Figura 8 ilustra os jumpers.
Figura 8 - Jumpers
Fonte: Desenvolvida pelo autor
2.2.8 Smarthphone
Antigo telefone celular com sistema operacional Android 2.3.6 com tela de
3.2”. Utilizado para rodar o aplicativo que se comunicará via bluetooth com o sistema
de estacionamento. A Figura 9 ilustra o aparelho.
14
Figura 9 - Smartphone
Fonte: Desenvolvido pelo autor
2.2.9 Placa protoboard
Placa com conexões especiais em diferentes sentidos para montagem de
circuitos elétricos experimentais. Neste projeto foi utilizada uma placa com 830 Pontos
E 2 Colunas como pode ser visto na Figura 10.
Figura 10 - Protoboard
Fonte: Desenvolvido pelo autor
15
3 DESENVOLVIMENTO
O Desenvolvimento do projeto foi dividido em duas etapas. Primeiramente foi
desenvolvido a central que contém a placa Arduíno e após a sua conclusão, partiu-se
para a criação do aplicativo.
3.1 DESENVOLVIMENTO DO MÓDULO CENTRAL
Após adquiridos todos os componentes de hardware para o projeto, foram
estudados o funcionamento de cada um deles e qual a melhor forma de conecta-los
para que pudessem interagir de forma correta. Na sequência foi utilizado o software
Fritzing para criar o esquema com as ligações entre os componentes. A Figura 11
detalha como ficou o projeto após pronto o esquema. Baseando-se no esquema feito,
seguiu-se com a etapa de montagem física dos componentes. O resultado desta fase
pode ser visualizado na figura 12.
Figura 11 - Projeto das conexões elétricas
Fonte: Desenvolvido pelo autor
16
Figura 12 - Protótipo montado
Fonte: Desenvolvido pelo autor
Finalizada a etapa de montagem dos componentes de hardware possou-se
para etapa para desenvolver o programa que vai rodar no micro controlador do
Arduíno. Para tal foi utilizada a IDE do Arduíno. A placa Arduíno UNO utilizada no
projeto possui um controlador de apenas um núcleo e a própria plataforma Arduíno
não oferece suporte para threads reais. Para projetos pequenos como este, esta
questão não influencia tanto ao ponto de o sistema rodar de forma lenta, porém a
lógica de programação torna-se um pouco mais complicada pois o gerenciamento de
todo o processamento a ser realizado fica a cargo do programador. Para facilitar um
pouco esta questão, foi utilizado no projeto uma das bibliotecas desenvolvidas por
Ivan Seidel (on-line, 2016), a ArduinoThread. Esta é uma biblioteca para gerir a
execução periódica de tarefas múltiplas. Ela permite ao programador criar um código
mais limpo pois ela baseia-se no agendamento da execução de métodos dando a
ilusão de um processamento em paralelo pois uma vez que o método que deverá ser
executado tem suas frequências de execução definidas, o programador não precisa
mais preocupar-se com sua execução. ArduinoThreads é projetado para simplificar
17
programas que precisam executar múltiplas tarefas periódicas. O usuário define um
objeto da classe Thread para cada uma dessas tarefas, em seguida, permite a
biblioteca gerir a sua execução programada.
Seguindo os padrões de programação em Arduíno, foram definidos os pinos
nos quais foram conectados os componentes. Logo após seguindo a lógica da
biblioteca foram criadas threads para cada conjunto de execuções de métodos, isso
pode ser percebido na Figura 13.
Figura 13 - Código fonte - parte 01
Fonte: Desenvolvido pelo autor
A Figura 14 descreve os métodos criados. Nas linhas 29 e 42 estão os
métodos que realizam a leitura dos dados dos sensores. Na linha 55 o método
“configurarSistema” foi criado para ligar ou desligar os leds ou o som e ligar ou desligar
o sistema de acordo com os comandos recebidos via bluetooth que foram enviados
pelo aplicativo Android. Os métodos das linhas 83 e 97, “toogleLeds” e “toogleSom”
são métodos auxiliares ao método “configurarSistema”. Os métodos das linhas 53 e
18
108, ligam e desligam o sistema de acordo com os comandos recebidos pelo
aplicativo. O método da linha 129 acende os respectivos leds baseando-se no nível
de risco de colisão capturados pelos sensores e o método tocar buzzer ativa o som
de acordo com o risco de colisão. O método da linha 174 “transmitirViaBluetooth” envia
os dados coletados nos sensores de forma serial através do modulo bluetooth.
Figura 14 - Código fonte - parte 02
Fonte: Desenvolvido pelo autor.
19
Na Figura 15 temos a definição dos métodos básicos para a execução do
programa. Na linha 181 foi definido o método que faz as configurações iniciais do
programa. São definidos todos os pinos de entrada e saída da placa para seus
respectivos componentes. Os as instâncias da classe thread são definidas, tanto os
seus intervalos de execução assim como os métodos que serão executados em cada
fatia de tempo. Após, todas os objetos threads são vinculados ao um controlador
central para as threads, pois será ele quem vai gerenciar os tempos de execução.
Pode-se perceber que todas os objetos threads foram definidos como inativos
inicialmente. Isto foi feito pois o sistema permanecerá em pausa até que o aplicativo
solicite sua execução. Percebe-se que a única thread que ficara ativa sempre é a
chamada “receptorBluetooth” pois esta é a responsável por escutar os comandos
vindos do aplicativo. Por fim na linha 216 é dado início a execução das threads.
Figura 15 - Código fonte - parte 03
Fonte: Desenvolvido pelo autor
20
3.2 DESENVOLVIMENTO DO APLICATIVO
O aplicativo desenvolvido é simples e serve apenas como interface de
comunicação entre o usuário e a central do Arduíno. Ele é composto por uma interface
gráfica bem leve e simples. Para o desenvolvimento desse app foi utilizado o SDK do
Android e a IDE Android Studio. O aplicativo foi intitulado como BalizApp, que faz
referência a Aplicativo de Baliza. No seu desenvolvimento foi utilizada a biblioteca
nativa de Bluetooth do SDK do Android para promover o gerenciamento das conexões
com a central do sistema proposto neste projeto.
O fluxo de execução do aplicativo é baseado nas lógicas de execução do
gerenciamento de conexões bluetooth promovido pela biblioteca do android. Não é
objetivo deste projeto detalhar minuciosamente a questão do desenvolvimento de para
plataforma Android pois este não é o foco desta disciplina, sendo assim, neste tópico
serão apenas detalhadas questões que da programação do aplicativo que fazem
referência a interação do mesmo com a placa Arduíno. Os passos que foram
realizados para promover interação entre os dois dispositivos via bluetooth foram:
procurar e descobrir dispositivos próximos, logo após fez-se o emparelhamento do
dispositivo com o qual pretende-se conectar com o aparelho que está sendo usado;
definiu-se a forma de conexão do dispositivo atual que pode ser como cliente ou como
servidor e por fim iniciou-se a transferência e o recebimento de dados entre os
dispositivos conectados.
A utilização do aplicativo pelo usuário segue um fluxo básico. Primeiramente
ao abrir o aplicativo, este verifica se o celular possui o serviço de bluetooth caso
afirmativo ele solicita autorização do usuário para ativa-lo. A Figura 16 ilustra esta
etapa. Após verificado e ativado o bluetooth do aparelho, o aplicativo leva o usuário a
tela inicial que é composta por um ícone central e dois botões para configurações da
conexão com o Arduíno, que ao tocado inicia o processo de baliza. Inicialmente este
ícone acende na cor vermelha indicando que ainda não possível realizar a baliza pois
não existe conexão entre os dispositivos. A Figura 17 demonstra esse fato.
21
Figura 16 - Tela inicial
Fonte: Desenvolvido pelo autor
Figura 17 - Tela inicial - Não conectado
Fonte: Desenvolvido pelo autor
22
Na sequência o usuário deverá buscar o dispositivo bluetooth do central do
Arduíno e seleciona-lo na lista retornada pela busca por dispositivos visto na Figura
18. Após a seleção e caso os dispositivos ainda não tiverem sido emparelhados o
aplicativo solicitará a senha para emparelhamento. Após esta autenticação o ícone
central que inicia a baliza fica verde e habilitado para o início do processo.
Figura 18 - Busca por dispositivos
Fonte: Desenvolvido pelo autor
Quando o ícone para início da baliza é tocado pelo usuário, uma nova tela é
apresentada. A figura 19 representa a tela. Neste momento o aplicativo envia ao
Arduíno a String “i” que força o sistema a ativar os sensores de distância e a enviar os
dados capturados via bluetooth para o aplicativo, além de fazer com que as funções
de acendimento e emissão de som do Arduíno iniciem-se. Os valores dos sensores
23
são apresentados na tela juntamente com uma animação indicando se existe risco de
colisão com algum objeto na parte traseira ou dianteira do veículo. Há também dois
botões que podem ser acionados pelo usuário para iniciar ou desligar a emissão de
som e os acendimentos dos leds. Caso o usuário opte por desligar o som e clique o
respectivo botão o a String “s” é enviada ao Arduíno ou caso o usuário decida desligar
os leds e clique no botão deligar leds, a String “l” é enviada ao Arduíno. O Arduíno
possui um método em sua programação que é executado repetidamente que identifica
o envio desses comando e os processa de forma rápida. A qualquer momento, caso
o usuário pressione o botão voltar para finalizar o processo de baliza e fazendo isso a
String “s” é enviada para ao Arduíno solicitando a ele para finalizar o processo de
captura dos sensores e o envido de dados ao aplicativo.
Figura 19 - Realizando baliza
Fonte: Desenvolvido pelo autor
24
CONCLUSÃO
O desenvolvimento deste projeto para a disciplina abriu novas possibilidades
ao autor. Um grande interesse surgiu ao descobrir a dimensão de possibilidade
disponibilizadas pela plataforma Arduíno. O desenvolvimento deste protótipo serviu
como experiência válida na aquisição de conhecimento em várias áreas: Eletrônica
básica; Desenvolvimento na plataforma Android; linguagem de programação C++;
desenvolvimento na plataforma Arduíno e programação de micro controladores com
poder de processamento reduzido. É possível afirmar que todos os objetivos pré-
definidos foram atingidos. Após os testes, percebeu-se que o sistema se comporta
muito bem. O aplicativo produzido para o projeto foi publicado na loja de aplicativos
oficial do Google6
e código fonte do programa que roda no controlador do Arduíno foi
disponibilizado no perfil do GitHub7
do autor.
O protótipo desenvolvido foi testado em um ambiente fictício. Uma questão
que seria útil para o melhoramento do protótipo seria seu teste em um ambiente real.
Poder-se-ia instalar os sensores em um veículo real e testar sua performance em um
ambiente real para verificar se os valores recebidos pelos sensores realmente
auxiliam o condutor na hora da baliza. Porém antes disso seria necessário a aplicação
de uma metodologia de filtragem dos dados recebidos dos sensores ultrassônicos. Na
atual situação do protótipo, esta técnica não foi implementada, sendo assim existem
alguns momentos que os dados recebidos são sujos, ou seja, algum dado coletado
pode ser muito discrepante dos valores reais.
Uma ação que poderia contribuir para a melhoria do protótipo seria a
substituição do modelo dos sensores ultrassônicos de distância, pois os modelos
utilizados neste projeto são de baixíssimo custo pelo fato de ser um protótipo. Por
serem de custo muito baixo o ângulo de cobertura de cada componente também é
baixo, nesse caso somente 15°, logo se o protótipo fosse posto em produção com este
modelo de sensor, seria necessária uma quantidade muito grande de componentes
deste modelo para cobrir toda área dianteira e traseira de um veículo.
6
https://play.google.com/store/apps/details?id=br.com.jucemar_dimon.balizapp&hl=pt-BR
7
https://github.com/Jucemar
25
REFERÊNCIAS
MERCADO LIVRE. Modulo Hc-06 Hc 06 Bluetooth Arduino. Disponível em:
<http://produto.mercadolivre.com.br/MLB-726211436-modulo-hc-06-hc-06-bluetooth-
arduino-raspberry-_JM>. Acesso em: 12 jul. 2016.
ROBOT ELECTRONICS. SRF05 - Ultra-Sonic Range: Technical Specification.
Disponível em: <https://www.robot-electronics.co.uk/htm/srf05tech.htm>. Acesso em:
12 jul. 2016.
SEIDEL, Ivan. ArduinoThread. Disponível em:
<https://github.com/ivanseidel/ArduinoThread>. Acesso em: 12 jul. 2016.
SOARES, Karla. O que é um Arduino e o que pode ser feito com ele?.
Disponível em: <http://www.techtudo.com.br/noticias/noticia/2013/10/o-que-e-um-
arduino-e-o-que-pode-ser-feito-com-ele.html>. Acesso em: 12 jul. 2016.
USINAINFO. Buzzer Ativo 5V Bip Contínuo - PCI 12mm. Disponível em:
<https://www.usinainfo.com.br/diversos/buzzer-ativo-5v-bip-continuo-pci-12mm-
2988.html>. Acesso em: 12 jul. 2016.

Mais conteúdo relacionado

Semelhante a SISTEMA DE ESTACIONAMENTO AUTOMOTIVO UTILIZANDO AS PLATAFORMAS MOBILE ANDROID E ARDUÍNO

Douglasbentoscriptoretcc 130423092544-phpapp01 (1)
Douglasbentoscriptoretcc 130423092544-phpapp01 (1)Douglasbentoscriptoretcc 130423092544-phpapp01 (1)
Douglasbentoscriptoretcc 130423092544-phpapp01 (1)
Douglas Leandro Gross de Souza
 
Restaurante
RestauranteRestaurante
Restaurante
Denise Xavier
 
Trabalho do Semestre da Faculdade
Trabalho do Semestre da FaculdadeTrabalho do Semestre da Faculdade
Trabalho do Semestre da Faculdade
Carlos Henrique Carniatto
 
Patentes de Software
Patentes de SoftwarePatentes de Software
Patentes de Software
Antonio Abrantes
 
Gerenciador do atmega16
Gerenciador do atmega16Gerenciador do atmega16
Gerenciador do atmega16
Gabriel Lima
 
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2
Carlos Eugenio Torres
 
Automacao residencial, a casa inteligente
Automacao residencial, a casa inteligenteAutomacao residencial, a casa inteligente
Automacao residencial, a casa inteligente
Douglas Scriptore
 
Relatório de estágio
Relatório de estágioRelatório de estágio
Relatório de estágio
Marcos Bispo de Oliveira
 
Documento Projeto Bafômetro Arduino - André Eduardo, Daniela Maria, Wendell A...
Documento Projeto Bafômetro Arduino - André Eduardo, Daniela Maria, Wendell A...Documento Projeto Bafômetro Arduino - André Eduardo, Daniela Maria, Wendell A...
Documento Projeto Bafômetro Arduino - André Eduardo, Daniela Maria, Wendell A...
AndreGomes129
 
Que tal Hackear seu carro e plugá-lo na nuvem ?!
Que tal Hackear seu carro e plugá-lo na nuvem ?!Que tal Hackear seu carro e plugá-lo na nuvem ?!
Que tal Hackear seu carro e plugá-lo na nuvem ?!
Ricardo Rufino
 
O mercado atual e as tecnologias relacionadas a desenvolvimento para disposit...
O mercado atual e as tecnologias relacionadas a desenvolvimento para disposit...O mercado atual e as tecnologias relacionadas a desenvolvimento para disposit...
O mercado atual e as tecnologias relacionadas a desenvolvimento para disposit...
Eteg
 
Arduino
ArduinoArduino
Internet das Coisas com Android things e Machine Learning
Internet das Coisas com Android things e Machine LearningInternet das Coisas com Android things e Machine Learning
Internet das Coisas com Android things e Machine Learning
Alvaro Viebrantz
 
TDCSP2019 - Trilha: Inteligência Artificial - Palestra: AI at the Edge - Plat...
TDCSP2019 - Trilha: Inteligência Artificial - Palestra: AI at the Edge - Plat...TDCSP2019 - Trilha: Inteligência Artificial - Palestra: AI at the Edge - Plat...
TDCSP2019 - Trilha: Inteligência Artificial - Palestra: AI at the Edge - Plat...
Fulvio Mascara
 
Apostila passo a passo como programar em android edição03
Apostila passo a passo como programar em android edição03Apostila passo a passo como programar em android edição03
Apostila passo a passo como programar em android edição03
Horacio Diamante Mondlane
 
Projeto asteris para controle remoto
Projeto   asteris para controle remotoProjeto   asteris para controle remoto
Projeto asteris para controle remoto
Wellington Neves
 
MyHome - Sistema de Automação Residencial para Dispositivos Móveis.
MyHome - Sistema de Automação Residencial para Dispositivos Móveis.MyHome - Sistema de Automação Residencial para Dispositivos Móveis.
MyHome - Sistema de Automação Residencial para Dispositivos Móveis.
Douglas Scriptore
 
Computacao Movel e Sem Fio
Computacao Movel e Sem FioComputacao Movel e Sem Fio
Computacao Movel e Sem Fio
Douglas Frari
 
Aula 19 tecnologia do futura
Aula 19   tecnologia do futuraAula 19   tecnologia do futura
Aula 19 tecnologia do futura
Renaldo Adriano
 
Ciclo de palestras da JFRJ - Aplicativos Móveis
Ciclo de palestras da JFRJ - Aplicativos MóveisCiclo de palestras da JFRJ - Aplicativos Móveis
Ciclo de palestras da JFRJ - Aplicativos Móveis
Iasmin Cristina Oliveira da Silva
 

Semelhante a SISTEMA DE ESTACIONAMENTO AUTOMOTIVO UTILIZANDO AS PLATAFORMAS MOBILE ANDROID E ARDUÍNO (20)

Douglasbentoscriptoretcc 130423092544-phpapp01 (1)
Douglasbentoscriptoretcc 130423092544-phpapp01 (1)Douglasbentoscriptoretcc 130423092544-phpapp01 (1)
Douglasbentoscriptoretcc 130423092544-phpapp01 (1)
 
Restaurante
RestauranteRestaurante
Restaurante
 
Trabalho do Semestre da Faculdade
Trabalho do Semestre da FaculdadeTrabalho do Semestre da Faculdade
Trabalho do Semestre da Faculdade
 
Patentes de Software
Patentes de SoftwarePatentes de Software
Patentes de Software
 
Gerenciador do atmega16
Gerenciador do atmega16Gerenciador do atmega16
Gerenciador do atmega16
 
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2
 
Automacao residencial, a casa inteligente
Automacao residencial, a casa inteligenteAutomacao residencial, a casa inteligente
Automacao residencial, a casa inteligente
 
Relatório de estágio
Relatório de estágioRelatório de estágio
Relatório de estágio
 
Documento Projeto Bafômetro Arduino - André Eduardo, Daniela Maria, Wendell A...
Documento Projeto Bafômetro Arduino - André Eduardo, Daniela Maria, Wendell A...Documento Projeto Bafômetro Arduino - André Eduardo, Daniela Maria, Wendell A...
Documento Projeto Bafômetro Arduino - André Eduardo, Daniela Maria, Wendell A...
 
Que tal Hackear seu carro e plugá-lo na nuvem ?!
Que tal Hackear seu carro e plugá-lo na nuvem ?!Que tal Hackear seu carro e plugá-lo na nuvem ?!
Que tal Hackear seu carro e plugá-lo na nuvem ?!
 
O mercado atual e as tecnologias relacionadas a desenvolvimento para disposit...
O mercado atual e as tecnologias relacionadas a desenvolvimento para disposit...O mercado atual e as tecnologias relacionadas a desenvolvimento para disposit...
O mercado atual e as tecnologias relacionadas a desenvolvimento para disposit...
 
Arduino
ArduinoArduino
Arduino
 
Internet das Coisas com Android things e Machine Learning
Internet das Coisas com Android things e Machine LearningInternet das Coisas com Android things e Machine Learning
Internet das Coisas com Android things e Machine Learning
 
TDCSP2019 - Trilha: Inteligência Artificial - Palestra: AI at the Edge - Plat...
TDCSP2019 - Trilha: Inteligência Artificial - Palestra: AI at the Edge - Plat...TDCSP2019 - Trilha: Inteligência Artificial - Palestra: AI at the Edge - Plat...
TDCSP2019 - Trilha: Inteligência Artificial - Palestra: AI at the Edge - Plat...
 
Apostila passo a passo como programar em android edição03
Apostila passo a passo como programar em android edição03Apostila passo a passo como programar em android edição03
Apostila passo a passo como programar em android edição03
 
Projeto asteris para controle remoto
Projeto   asteris para controle remotoProjeto   asteris para controle remoto
Projeto asteris para controle remoto
 
MyHome - Sistema de Automação Residencial para Dispositivos Móveis.
MyHome - Sistema de Automação Residencial para Dispositivos Móveis.MyHome - Sistema de Automação Residencial para Dispositivos Móveis.
MyHome - Sistema de Automação Residencial para Dispositivos Móveis.
 
Computacao Movel e Sem Fio
Computacao Movel e Sem FioComputacao Movel e Sem Fio
Computacao Movel e Sem Fio
 
Aula 19 tecnologia do futura
Aula 19   tecnologia do futuraAula 19   tecnologia do futura
Aula 19 tecnologia do futura
 
Ciclo de palestras da JFRJ - Aplicativos Móveis
Ciclo de palestras da JFRJ - Aplicativos MóveisCiclo de palestras da JFRJ - Aplicativos Móveis
Ciclo de palestras da JFRJ - Aplicativos Móveis
 

SISTEMA DE ESTACIONAMENTO AUTOMOTIVO UTILIZANDO AS PLATAFORMAS MOBILE ANDROID E ARDUÍNO

  • 1. UNIVERSIDADE FEDERAL DE SANTA CATARINA JUCEMAR DIMON PROTÓTIPO DE UM SISTEMA DE SENSOR DE ESTACIONAMENTO AUTOMOTIVO UTILIZANDO AS PLATAFORMAS ANDROID E ARDUÍNO Florianópolis/SC 2016
  • 2. JUCEMAR DIMON PROTÓTIPO DE UM SISTEMA DE SENSOR DE ESTACIONAMENTO AUTOMOTIVO UTILIZANDO AS PLATAFORMAS ANDROID E ARDUÍNO Trabalho apresentado como exigência da disciplina de Tópicos Avançados em Sistemas de Informação II do curso de Sistemas de Informação, sob orientação do professor Joao Candido Lima Dovicchi. Florianópolis/SC 2016
  • 3. LISTA DE FIGURAS Figura 1 - Características da placa.............................................................................9 Figura 2 - Placa Arduíno UNO ...................................................................................9 Figura 3 - Sensor ultrassônico de distância..............................................................10 Figura 4 - Shield bluetooth .......................................................................................11 Figura 5 - Leds utilizados .........................................................................................11 Figura 6 - Resistor....................................................................................................12 Figura 7 - Buzzer .....................................................................................................12 Figura 8 - Jumpers...................................................................................................13 Figura 9 - Smartphone .............................................................................................14 Figura 10 - Protoboard.............................................................................................14 Figura 11 - Projeto das conexões eletricas ..............................................................15 Figura 12 - Protótipo montado..................................................................................16 Figura 13 - Código fonte - parte 01 ..........................................................................17 Figura 14 - Código fonte - parte 02 ..........................................................................18 Figura 15 - Código fonte - parte 03 ..........................................................................19 Figura 16 - Tela inicial..............................................................................................21 Figura 17 - Tela inicial - Não conectado...................................................................21 Figura 18 - Busca por dispositivos ...........................................................................22 Figura 19 - Realizando baliza...................................................................................23
  • 4. SUMÁRIO INTRODUÇÃO...........................................................................................................4 1 VISÃO GERAL........................................................................................................5 2 MATERIAIS.............................................................................................................7 2.1 SOFTWARE.........................................................................................................7 2.1.1 IDE Arduíno ......................................................................................................7 2.1.2 Fritzing ..............................................................................................................7 2.1.3 IDE Android Stúdio............................................................................................7 2.1.4 Adobe Fireworks ...............................................................................................8 2.1.5 Sublime Text .....................................................................................................8 2.2 HARDWARE........................................................................................................8 2.2.1 Placa Arduíno UNO...........................................................................................8 2.2.2 Sensor ultrassônico de distância.....................................................................10 2.2.3 Bluetooth HC-06..............................................................................................10 2.2.4 Leds ................................................................................................................11 2.2.5 Resistores .......................................................................................................12 2.2.6 Buzzer.............................................................................................................12 2.2.7 Jumpers ..........................................................................................................13 2.2.8 Smarthphone...................................................................................................13 2.2.9 Placa protoboard.............................................................................................14 3 DESENVOLVIMENTO ..........................................................................................15 3.1 DESENVOLVIMENTO DO MÓDULO CENTRAL ...............................................15 3.2 DESENVOLVIMENTO DO APLICATIVO ...........................................................20 CONCLUSÃO ..........................................................................................................24 REFERÊNCIAS .......................................................................................................25
  • 5. 4 INTRODUÇÃO Arduíno é uma plataforma de prototipagem eletrônica fabricada na Itália em 2005 com o objetivo educacional de ser integrada no sistema de ensino. Seu sucesso foi tão grande devido as inúmeras possibilidades de desenvolvimento de protótipos de robótica a simples desenvolvimento de soluções que resolvem pequenas questões do dia a dia (SOARES, on-line, 2016). A conectividade da permite a conexão com o computador possibilitando-o a interagir com a sua IDE própria a qual é utilizada para desenvolvimento de programas nas linguagens C/C++ que serão após compilados e enviados para a memória ROM da placa permitindo que o próprio micro controlador da placa execute as instruções. Com sua popularização, diversas empresa iniciara a produção de componentes eletrônicos como sensores, atuadores, entre outros com a capacidade de comunicação com a placa e a plataforma Arduíno. Dessa forma, hoje existe uma grama de componentes produzidos, chamados de shields, que podem ser usados para enriquecer e facilitar o desenvolvimento de projetos para a plataforma. Tudo isso somado a explosão do mercado Chinês de produção e venda de componentes eletrônicos tornou possível a compra de componentes no Brasil por um preço bem mais acessível. Baseando-se nisso optou-se por escolher tal plataforma ao invés de escolher uma das outras disponibilizadas no laboratório pela disciplina: Intel Galileo Geração 2 e Raspberry Pi. Esse trabalho tem como objetivo principal o desenvolvimento de um protótipo de um sistema para auxiliar veículos a realizarem o processo de baliza. Como objetivos secundários, pode-se destacar: a aquisição de conhecimento na montagem de circuitos para a plataforma Arduíno; aquisição de conhecimento sobre as Shields para Arduíno disponíveis no mercado; aquisição de conhecimento em eletrônica básica; aquisição de conhecimento na linguagem de programação C++; aquisição de conhecimento na API de bluetooth da linguagem JAVA para a plataforma ANDROID; O sistema é composto por sensores de distância que capturam a distância de um objeto próximo a sua frente. Em um contexto real estariam instalados nos para- choques dianteiro e traseiro de um veículo que fosse utilizar o sistema. Através desses valores capturados pelos sensores o sistema emite sons e luzes indicando o risco de colisão durante o processo de baliza. O sistema ainda conta com a possibilidade de conectar um celular via bluetooth para monitorar a performance da baliza utilizando um aplicativo especialmente desenvolvido.
  • 6. 5 1 VISÃO GERAL A ideia para este projeto surgiu ao observar a grande quantidade de veículos saindo de fábrica com sistemas conectáveis via bluetooth. Essa infinidade de possibilidades aumenta quando o sistema operacional que vem por padrão no veículo é o Android. Muitos desses veículos já possuem uma tela de display similar a um tablet. Com a possibilidade de comunicação desses veículos pode-se adicionar alguns adicionais ao veículo como aplicativos para gerenciar a funções deste veículo. Baseando-se nessa visão pensou-se em desenvolver algo útil para veículos mais antigos que não possuem todas essas possibilidades dos novos e mais modernos. Pensou-se então em algo que auxiliasse o motorista a realizar uma das atividades que alguns condutores têm grande dificuldade de realizar enquanto dirigem, a baliza. Muitas vezes o condutor do veículo perde a noção de distância e acaba por colidir com algum obstáculo. Sendo assim, pensou em desenvolver um sistema que auxilie o usuário a realizar a baliza. Provavelmente já deve existir no mercado alguns vários modelos, porém o que se pensa aqui é desenvolver um protótipo de baixíssimo custo além é claro de adquirir conhecimento no desenvolvimento de projetos na plataforma Arduíno. O sistema proposto é composto por duas partes: uma central cujo núcleo é uma placa Arduíno juntamente com os sensores de distância, leds, buzzer e módulo bluetooth e outra composta de um aplicativo Android no qual o usuário utiliza para controlar o sistema. Na parte central existe uma protoboard onde são conectados todos os componentes e onde acontece o processamento dos dados pelo micro controlador. Os dois sensores ultrassônicos de distância captam em tempo real os valores das distâncias dos possíveis obstáculos em sua frente. Esses dados são armazenados em memória e baseados em seus valores, ações são ativadas pelo controlador. Existe um conjunto de 3 leds (verde, amarelo e vermelho) que estão vinculados a cada um dos sensores. De acordo com o valor capturado por cada sensor um dos leds de cada respectivo conjunto acenderá e a cor do led que será acionado faz referência ao grau de possibilidade de colisão com algum objeto sendo: led verde para nenhum risco de colisão; led amarelo para uma possibilidade pequena, mas possível de uma colisão e led vermelho para uma possibilidade muito grande de uma colisão. Existe um buzzer que está vinculado aos dois sensores e este buzzer enquanto o sistema está operando emite um bip curto e suave a cada 1 segundo.
  • 7. 6 Caso algum risco alto de colisão seja percebido pelo sistema o som emitido troca para um bip continuo indicando ao usuário uma situação de perigo. Durante todo o processo de captura feito pelos sensores o micro controlador também envia os valores de cada sensor para o módulo bluetooth e este por sua vez transmite esses dados de forma serial a quem estiver conectado a ele. A parte composta pelo aplicativo possui uma tela inicial que ao abrir o aplicativo, solicita ao usuário que ative a função bluetooth do telefone caso ele esteja desligado. Nesta tela inicial há um botão onde o usuário inicia a baliza, ou seja, inicia o processo de recebimento dos valores dos sensores, porém este botão somente fica habilitado após o usuário configurar a conexão com o modulo bluetooth do Arduíno. Após configurada a conexão o botão central do aplicativo permite iniciar a balizar. Iniciando a balizar o aplicativo exibe na tela do celular uma imagem do veículo juntamente com os valores das distancias traseira e dianteira de cada um dos sensores e, de acordo com essa distância um ícone indicativo sobre o risco de colisão é mostrado na tela do celular para que o usuário possa agir e manobrar o veículo evitando colisões. Nesta tela existem dois botões onde o usuário pode interagir ligando ou desligando os leds ou o som do sistema e caso ele clique no botão voltar do celular o processo de baliza finaliza.
  • 8. 7 2 MATERIAIS Para o desenvolvimento do projeto foram utilizados alguns componentes de hardware e de software. Nas próximas seções serão detalhados cada um deles. 2.1 SOFTWARE Quanto a relação de softwares utilizados destaca-se os listados a seguir. 2.1.1 IDE Arduíno Software oficial1 para desenvolvimento na plataforma que é muito bem recomendado pela comunidade especializada. Sua versão utilizada neste projeto foi a de número 1.6.8. Esta IDE foi muito útil no desenvolvimento do programa que rodaria na memória do micro controlador do Arduíno, pois trabalha de forma integrada com o compilador da linguagem C++ além de possibilitar a facilitada transferência do código compilado diretamente para a memória da placa Arduíno. 2.1.2 Fritzing O software Fritzing2 possui várias funcionalidades para desenvolvimento de projetos de engenharia elétrica e robótica. Neste projeto foi utilizada a sua versão beta de número 0.9.3b.64.pc. A sua principal utilidade neste projeto foi na criação do projeto do esquema elétrico das conexões entre os componentes do protótipo. 2.1.3 IDE Android Stúdio Software repleto de utilitários e ferramentas para promover o rápido e facilitado desenvolvimento de aplicativos para a plataforma Android3 . Neste projeto foi utilizado a sua versão 1.2.1. Neste projeto a utilização desta IDE serviu para o desenvolvimento do aplicativo que se conecta via bluetooth com a placa Arduíno para receber os dados dos sensores. 1 https://www.arduino.cc/ 2 http://fritzing.org/home/ 3 https://developer.android.com/studio/index.html
  • 9. 8 2.1.4 Adobe Fireworks Software de edição de imagens que foi utilizado neste projeto em sua versão CS6 para ajustar alguns dos ícones utilizados no desenvolvimento do aplicativo. Fireworks4 é comercializado pela empresa Adobe. 2.1.5 Sublime Text Software editor de textos prático com algumas funcionalidades voltadas para programadores como a função que auto completa as palavras que estão sendo digitadas. Nesse projeto foi utilizada a sua versão 3. Sublime Text5 permite a instalação de plug-ins para acrescentar funcionalidades e possui a capacidade de integra-se com a IDE Arduíno para tornar a programação muito mais agradável graças a sua interface gráfica cheia de atrativos. 2.2 HARDWARE Os componentes de hardware utilizados neste projeto foram adquiridos no mercado pelo autor para que o aprofundamento dos conhecimentos no desenvolvimento de protótipos na plataforma Arduíno pudesse ser aprofundado. Abaixo serão descritos detalhes de cada um dos itens. 2.2.1 Placa Arduíno UNO Placa genérica adquirida no mercado compatível com Arduíno UNO. As Figuras 1 e 2 abaixo mostram a principais características. 4 http://www.adobe.com/br/products/fireworks.html 5 https://www.sublimetext.com/
  • 10. 9 Figura 1 - Características da placa Fonte: https://www.arduino.cc/en/Main/ArduinoBoardUnoSMD Figura 2 - Placa Arduíno UNO Fonte: http://produto.mercadolivre.com.br/MLB-742385752-arduino-uno-r3-rev3-atmega328-smd-cabo-usb- tutoriais-_JM
  • 11. 10 2.2.2 Sensor ultrassônico de distância Para o projeto foram adquiridos 02 sensores ultrassônicos de distância do modelo Hc Sr05 Hy Srf05. Segundo ROBOT ELECTRONICS (on-line, 2016), SRF05 é uma evolução do sensor SRF04, e foi concebido para aumentar a flexibilidade. Como tal, o SRF05 é totalmente compatível com o sensor SRF04. Intervalo é aumentado de 3 metros a 4 metros. Um novo modo de operação (pino Mode conectado no GND) permite que o SRF05 use somente um pino para gatilho e eco, poupando assim os valiosos pinos do seu controlador. Quando o pinoMode é deixado desconectado, o SRF05 opera com gatilho e eco separados, como o sensor SRF04. A Figura 3 ilustra o sensor. Figura 3 - Sensor ultrassônico de distância Fonte: Desenvolvida pelo autor 2.2.3 Bluetooth HC-06 O módulo permite enviar e receber dados através da tecnologia Bluetooth sem a necessidade de conectar um cabo serial. O módulo pode ser conectado a qualquer dispositivo que possua comunicação serial, tais como mouse, teclado, joystick,
  • 12. 11 computadores, micro controladores, receptor GPS, controladores de equipamentos industriais e muito outros (MERCADO LIVRE, on-line, 2016). A Figura 4 ilustra a shield. Figura 4 - Shield bluetooth Fonte: Desenvolvida pelo autor 2.2.4 Leds Neste projeto foram utilizados 06 Leds difusos de 5mm:  02 leds vermelhos;  02 leds verdes;  02 leds amarelos. A Figura 5 ilustra os leds. Figura 5 - Leds utilizados Fonte: Desenvolvida pelo autor
  • 13. 12 2.2.5 Resistores No projeto foram utilizados 6 resistores de 330Ohm para reduzir a corrente de alimentação da placa que é de 5V para que os leds pudessem ser ligados com segurança. Foram utilizados 1 resistor para cada led. A Figura 6 ilustra o resistor. Figura 6 - Resistor Fonte: Desenvolvida pelo autor 2.2.6 Buzzer Utilizou-se neste projeto um buzzer ativo continuo. Segundo USINAINFO (on- line, 2016), este componente é um pequeno alto-falante destinado a emitir sinais sonoros a partir do oferecimento de energia DC ao módulo, não variando a frequência de emissão. A Figura 7 ilustra o componente. Sua principal finalidade é a emissão de sinais sonoros como forma de alerta para que o operador fique informado que algo está ocorrendo. Figura 7 - Buzzer Fonte: Desenvolvida pelo autor
  • 14. 13 2.2.7 Jumpers Utilizou-se neste projeto Jumpers Machos em ambas as ponteiras para permitir as ligações elétricas entre a protoboard e a placa Arduíno e entre os próprios componentes do projeto. A Figura 8 ilustra os jumpers. Figura 8 - Jumpers Fonte: Desenvolvida pelo autor 2.2.8 Smarthphone Antigo telefone celular com sistema operacional Android 2.3.6 com tela de 3.2”. Utilizado para rodar o aplicativo que se comunicará via bluetooth com o sistema de estacionamento. A Figura 9 ilustra o aparelho.
  • 15. 14 Figura 9 - Smartphone Fonte: Desenvolvido pelo autor 2.2.9 Placa protoboard Placa com conexões especiais em diferentes sentidos para montagem de circuitos elétricos experimentais. Neste projeto foi utilizada uma placa com 830 Pontos E 2 Colunas como pode ser visto na Figura 10. Figura 10 - Protoboard Fonte: Desenvolvido pelo autor
  • 16. 15 3 DESENVOLVIMENTO O Desenvolvimento do projeto foi dividido em duas etapas. Primeiramente foi desenvolvido a central que contém a placa Arduíno e após a sua conclusão, partiu-se para a criação do aplicativo. 3.1 DESENVOLVIMENTO DO MÓDULO CENTRAL Após adquiridos todos os componentes de hardware para o projeto, foram estudados o funcionamento de cada um deles e qual a melhor forma de conecta-los para que pudessem interagir de forma correta. Na sequência foi utilizado o software Fritzing para criar o esquema com as ligações entre os componentes. A Figura 11 detalha como ficou o projeto após pronto o esquema. Baseando-se no esquema feito, seguiu-se com a etapa de montagem física dos componentes. O resultado desta fase pode ser visualizado na figura 12. Figura 11 - Projeto das conexões elétricas Fonte: Desenvolvido pelo autor
  • 17. 16 Figura 12 - Protótipo montado Fonte: Desenvolvido pelo autor Finalizada a etapa de montagem dos componentes de hardware possou-se para etapa para desenvolver o programa que vai rodar no micro controlador do Arduíno. Para tal foi utilizada a IDE do Arduíno. A placa Arduíno UNO utilizada no projeto possui um controlador de apenas um núcleo e a própria plataforma Arduíno não oferece suporte para threads reais. Para projetos pequenos como este, esta questão não influencia tanto ao ponto de o sistema rodar de forma lenta, porém a lógica de programação torna-se um pouco mais complicada pois o gerenciamento de todo o processamento a ser realizado fica a cargo do programador. Para facilitar um pouco esta questão, foi utilizado no projeto uma das bibliotecas desenvolvidas por Ivan Seidel (on-line, 2016), a ArduinoThread. Esta é uma biblioteca para gerir a execução periódica de tarefas múltiplas. Ela permite ao programador criar um código mais limpo pois ela baseia-se no agendamento da execução de métodos dando a ilusão de um processamento em paralelo pois uma vez que o método que deverá ser executado tem suas frequências de execução definidas, o programador não precisa mais preocupar-se com sua execução. ArduinoThreads é projetado para simplificar
  • 18. 17 programas que precisam executar múltiplas tarefas periódicas. O usuário define um objeto da classe Thread para cada uma dessas tarefas, em seguida, permite a biblioteca gerir a sua execução programada. Seguindo os padrões de programação em Arduíno, foram definidos os pinos nos quais foram conectados os componentes. Logo após seguindo a lógica da biblioteca foram criadas threads para cada conjunto de execuções de métodos, isso pode ser percebido na Figura 13. Figura 13 - Código fonte - parte 01 Fonte: Desenvolvido pelo autor A Figura 14 descreve os métodos criados. Nas linhas 29 e 42 estão os métodos que realizam a leitura dos dados dos sensores. Na linha 55 o método “configurarSistema” foi criado para ligar ou desligar os leds ou o som e ligar ou desligar o sistema de acordo com os comandos recebidos via bluetooth que foram enviados pelo aplicativo Android. Os métodos das linhas 83 e 97, “toogleLeds” e “toogleSom” são métodos auxiliares ao método “configurarSistema”. Os métodos das linhas 53 e
  • 19. 18 108, ligam e desligam o sistema de acordo com os comandos recebidos pelo aplicativo. O método da linha 129 acende os respectivos leds baseando-se no nível de risco de colisão capturados pelos sensores e o método tocar buzzer ativa o som de acordo com o risco de colisão. O método da linha 174 “transmitirViaBluetooth” envia os dados coletados nos sensores de forma serial através do modulo bluetooth. Figura 14 - Código fonte - parte 02 Fonte: Desenvolvido pelo autor.
  • 20. 19 Na Figura 15 temos a definição dos métodos básicos para a execução do programa. Na linha 181 foi definido o método que faz as configurações iniciais do programa. São definidos todos os pinos de entrada e saída da placa para seus respectivos componentes. Os as instâncias da classe thread são definidas, tanto os seus intervalos de execução assim como os métodos que serão executados em cada fatia de tempo. Após, todas os objetos threads são vinculados ao um controlador central para as threads, pois será ele quem vai gerenciar os tempos de execução. Pode-se perceber que todas os objetos threads foram definidos como inativos inicialmente. Isto foi feito pois o sistema permanecerá em pausa até que o aplicativo solicite sua execução. Percebe-se que a única thread que ficara ativa sempre é a chamada “receptorBluetooth” pois esta é a responsável por escutar os comandos vindos do aplicativo. Por fim na linha 216 é dado início a execução das threads. Figura 15 - Código fonte - parte 03 Fonte: Desenvolvido pelo autor
  • 21. 20 3.2 DESENVOLVIMENTO DO APLICATIVO O aplicativo desenvolvido é simples e serve apenas como interface de comunicação entre o usuário e a central do Arduíno. Ele é composto por uma interface gráfica bem leve e simples. Para o desenvolvimento desse app foi utilizado o SDK do Android e a IDE Android Studio. O aplicativo foi intitulado como BalizApp, que faz referência a Aplicativo de Baliza. No seu desenvolvimento foi utilizada a biblioteca nativa de Bluetooth do SDK do Android para promover o gerenciamento das conexões com a central do sistema proposto neste projeto. O fluxo de execução do aplicativo é baseado nas lógicas de execução do gerenciamento de conexões bluetooth promovido pela biblioteca do android. Não é objetivo deste projeto detalhar minuciosamente a questão do desenvolvimento de para plataforma Android pois este não é o foco desta disciplina, sendo assim, neste tópico serão apenas detalhadas questões que da programação do aplicativo que fazem referência a interação do mesmo com a placa Arduíno. Os passos que foram realizados para promover interação entre os dois dispositivos via bluetooth foram: procurar e descobrir dispositivos próximos, logo após fez-se o emparelhamento do dispositivo com o qual pretende-se conectar com o aparelho que está sendo usado; definiu-se a forma de conexão do dispositivo atual que pode ser como cliente ou como servidor e por fim iniciou-se a transferência e o recebimento de dados entre os dispositivos conectados. A utilização do aplicativo pelo usuário segue um fluxo básico. Primeiramente ao abrir o aplicativo, este verifica se o celular possui o serviço de bluetooth caso afirmativo ele solicita autorização do usuário para ativa-lo. A Figura 16 ilustra esta etapa. Após verificado e ativado o bluetooth do aparelho, o aplicativo leva o usuário a tela inicial que é composta por um ícone central e dois botões para configurações da conexão com o Arduíno, que ao tocado inicia o processo de baliza. Inicialmente este ícone acende na cor vermelha indicando que ainda não possível realizar a baliza pois não existe conexão entre os dispositivos. A Figura 17 demonstra esse fato.
  • 22. 21 Figura 16 - Tela inicial Fonte: Desenvolvido pelo autor Figura 17 - Tela inicial - Não conectado Fonte: Desenvolvido pelo autor
  • 23. 22 Na sequência o usuário deverá buscar o dispositivo bluetooth do central do Arduíno e seleciona-lo na lista retornada pela busca por dispositivos visto na Figura 18. Após a seleção e caso os dispositivos ainda não tiverem sido emparelhados o aplicativo solicitará a senha para emparelhamento. Após esta autenticação o ícone central que inicia a baliza fica verde e habilitado para o início do processo. Figura 18 - Busca por dispositivos Fonte: Desenvolvido pelo autor Quando o ícone para início da baliza é tocado pelo usuário, uma nova tela é apresentada. A figura 19 representa a tela. Neste momento o aplicativo envia ao Arduíno a String “i” que força o sistema a ativar os sensores de distância e a enviar os dados capturados via bluetooth para o aplicativo, além de fazer com que as funções de acendimento e emissão de som do Arduíno iniciem-se. Os valores dos sensores
  • 24. 23 são apresentados na tela juntamente com uma animação indicando se existe risco de colisão com algum objeto na parte traseira ou dianteira do veículo. Há também dois botões que podem ser acionados pelo usuário para iniciar ou desligar a emissão de som e os acendimentos dos leds. Caso o usuário opte por desligar o som e clique o respectivo botão o a String “s” é enviada ao Arduíno ou caso o usuário decida desligar os leds e clique no botão deligar leds, a String “l” é enviada ao Arduíno. O Arduíno possui um método em sua programação que é executado repetidamente que identifica o envio desses comando e os processa de forma rápida. A qualquer momento, caso o usuário pressione o botão voltar para finalizar o processo de baliza e fazendo isso a String “s” é enviada para ao Arduíno solicitando a ele para finalizar o processo de captura dos sensores e o envido de dados ao aplicativo. Figura 19 - Realizando baliza Fonte: Desenvolvido pelo autor
  • 25. 24 CONCLUSÃO O desenvolvimento deste projeto para a disciplina abriu novas possibilidades ao autor. Um grande interesse surgiu ao descobrir a dimensão de possibilidade disponibilizadas pela plataforma Arduíno. O desenvolvimento deste protótipo serviu como experiência válida na aquisição de conhecimento em várias áreas: Eletrônica básica; Desenvolvimento na plataforma Android; linguagem de programação C++; desenvolvimento na plataforma Arduíno e programação de micro controladores com poder de processamento reduzido. É possível afirmar que todos os objetivos pré- definidos foram atingidos. Após os testes, percebeu-se que o sistema se comporta muito bem. O aplicativo produzido para o projeto foi publicado na loja de aplicativos oficial do Google6 e código fonte do programa que roda no controlador do Arduíno foi disponibilizado no perfil do GitHub7 do autor. O protótipo desenvolvido foi testado em um ambiente fictício. Uma questão que seria útil para o melhoramento do protótipo seria seu teste em um ambiente real. Poder-se-ia instalar os sensores em um veículo real e testar sua performance em um ambiente real para verificar se os valores recebidos pelos sensores realmente auxiliam o condutor na hora da baliza. Porém antes disso seria necessário a aplicação de uma metodologia de filtragem dos dados recebidos dos sensores ultrassônicos. Na atual situação do protótipo, esta técnica não foi implementada, sendo assim existem alguns momentos que os dados recebidos são sujos, ou seja, algum dado coletado pode ser muito discrepante dos valores reais. Uma ação que poderia contribuir para a melhoria do protótipo seria a substituição do modelo dos sensores ultrassônicos de distância, pois os modelos utilizados neste projeto são de baixíssimo custo pelo fato de ser um protótipo. Por serem de custo muito baixo o ângulo de cobertura de cada componente também é baixo, nesse caso somente 15°, logo se o protótipo fosse posto em produção com este modelo de sensor, seria necessária uma quantidade muito grande de componentes deste modelo para cobrir toda área dianteira e traseira de um veículo. 6 https://play.google.com/store/apps/details?id=br.com.jucemar_dimon.balizapp&hl=pt-BR 7 https://github.com/Jucemar
  • 26. 25 REFERÊNCIAS MERCADO LIVRE. Modulo Hc-06 Hc 06 Bluetooth Arduino. Disponível em: <http://produto.mercadolivre.com.br/MLB-726211436-modulo-hc-06-hc-06-bluetooth- arduino-raspberry-_JM>. Acesso em: 12 jul. 2016. ROBOT ELECTRONICS. SRF05 - Ultra-Sonic Range: Technical Specification. Disponível em: <https://www.robot-electronics.co.uk/htm/srf05tech.htm>. Acesso em: 12 jul. 2016. SEIDEL, Ivan. ArduinoThread. Disponível em: <https://github.com/ivanseidel/ArduinoThread>. Acesso em: 12 jul. 2016. SOARES, Karla. O que é um Arduino e o que pode ser feito com ele?. Disponível em: <http://www.techtudo.com.br/noticias/noticia/2013/10/o-que-e-um- arduino-e-o-que-pode-ser-feito-com-ele.html>. Acesso em: 12 jul. 2016. USINAINFO. Buzzer Ativo 5V Bip Contínuo - PCI 12mm. Disponível em: <https://www.usinainfo.com.br/diversos/buzzer-ativo-5v-bip-continuo-pci-12mm- 2988.html>. Acesso em: 12 jul. 2016.