Вы находитесь на странице: 1из 71

Faculdades Santo Agostinho - FASA

Faculdade de Cincias Exatas e Tecnolgicas FACET


Curso de Sistemas de Informao

UTILIZAO DE APLICATIVO ANDROID PARA CONTROLE DE


MECANISMO VIA ARDUINO

Montes Claros - MG
2015

Faculdades Santo Agostinho - FASA


Faculdade de Cincias Exatas e Tecnolgicas FACET
Curso de Sistemas de Informao

ALOSIO TADEU DE SOUZA JNIOR


GILZAN JUNEO LEAL E SILVA

UTILIZAO DE APLICATIVO ANDROID PARA CONTROLE DE


MECANISMO VIA ARDUINO

Monografia apresentada a banca examinadora,


como requisito parcial para a concluso do
curso de graduao e obteno de ttulo de
Bacharel em Sistemas de Informao nas
Faculdades Santo Agostinho.
Orientador(a):
Prof. Ms. Eduardo Diniz Amaral

Montes Claros - MG
2015

Faculdades Santo Agostinho - FASA


Faculdade de Cincias Exatas e Tecnolgicas FACET
Curso de Sistemas de Informao

Monografia intitulada Tema, de autoria do(s) acadmico(s) Nome Completo,


aprovada pela banca examinadora constituda pelo(as) seguintes professore(s)(as):

__________________________________________
Prof. Ms. Eduardo Diniz Amaral (Orientador)

__________________________________________
Prof. Jaime Gomes da Silva Neto

__________________________________________
Prof. Geraldo Herystarley Veloso Cruz

Montes Claros, 07 de novembro de 2015

Dedicamos a Deus e nossos pais

AGRADECIMENTOS
Agradecemos primeiro a Deus por nos protegerem em todos os
momentos da nossa vida e aos nossos pais por sempre nos aconselharem dando
foras tanto nos momentos felizes quanto nos momentos triste.

Quando se percebe que tudo uma


piada, ser O Comediante a nica
coisa que faz sentido.(Alan Moore)

RESUMO

A comunicao entre dispositivos eletrnicos vem desenvolvendo-se de forma cada


vez mais objetiva e diversificada.
A crescente popularizao dos aplicativos android somado com a capacidade do
arduino de prototipar novas ideias foram fundamentais para motivao deste
trabalho.
O objetivo geral foi a produo e a avaliao do aplicativo android que controle
remotamente mecanismo arduino e que receba informaes do mesmo.
Este trabalho um estudo de natureza exploratria, pois utiliza de aes prticas
para estudar e avaliar a utilizao de aplicativo android para controlar mecanismo via
arduino, ocorrendo processos preliminares antes da montagem final do mecanismo.
Inicialmente os componentes que constituram o veculo foram testados e avaliados
separadamente. Foi montado um veiculo em miniatura para comportar a estrutura
final do mecanismo arduino. Por fim foi desenvolvido um aplicativo android para
poder enviar e receber informaes da placa arduino.

Palavras-chave: Android, Arduino, Aplicativo, Sensor de Ultrassom, Sensor de


Luminosidade, Sensor Bluetooth, Shield Motor.

LISTA DE FIGURAS

FIGURA 1: Quantidade de pesquisas realizadas ...................................................... 11


FIGURA 2: Componentes da Plataforma arduino ..................................................... 15
FIGURA 3: Principais smbolos usados em fluxogramas .......................................... 21
FIGURA 4: Encaixe do led diretamente no arduino................................................... 33
FIGURA 5: Montagem do circuito para led na protoboard ........................................ 34
FIGURA 6: Fluxograma que descreve o algoritmo do ultrassom .............................. 35
FIGURA 7: Fluxograma que descreve o algoritmo do ultrassom alterado ................ 36
FIGURA 8: Calculo para encontrar o valor necessrio para converso das ondas
sonoras em centmetros ............................................................................................ 37
FIGURA 9: Montagem do circuito para o sensor de ultrassom ................................. 38
FIGURA 10: Montagem do circuito para o sensor de LDR ........................................ 39
FIGURA 11: Fluxograma que descreve o algoritmo do sensor de luminosidade ...... 40
FIGURA 12: Montagem do circuito para o sensor de ultrassom e de LDR Juntos .... 41
FIGURA 13: Montagem do circuito para o sensor bluetooth ..................................... 42
FIGURA 14: Montagem dos motores na shield motor ............................................... 43
FIGURA 15: Diagrama que descreve todas interaes envolvendo o arduino.......... 44
FIGURA 16: Montagem da dianteira do veculo ........................................................ 45
FIGURA 17: Montagem da dianteira do veculo finalizado ........................................ 45
FIGURA 18: Eixo de rodas com engrenagem ........................................................... 46
FIGURA 19: Montagem da parte traseira finalizada .................................................. 46
FIGURA 20: Estrutura de veculo com arduino, viso area ..................................... 47
FIGURA 21: Estrutura de veculo com arduino, viso dianteira ................................ 47
FIGURA 22: Estrutura de veculo com arduino, viso traseira .................................. 48
FIGURA 23: Estrutura de veculo com arduino, viso lateral direita.......................... 48
FIGURA 24:Estrutura de veculo com arduino, viso latera esquerda ...................... 49
FIGURA 25: Tela do aplicativo desenvolvido ............................................................ 50
FIGURA 26: Fluxograma do algoritmo que descreve o funcionamento do aplicativo
android ...................................................................................................................... 51
FIGURA 27: Arduino com led .................................................................................... 52

FIGURA 28: Funcionamento do led na protoboard com o arduino............................ 52


FIGURA 29: Funcionamento do ultrassom na distncia de 10 cm ............................ 53
FIGURA 30: Ampliao dos resultado da figura 29 ................................................... 54
FIGURA 31: Funcionamento do ultrassom na distncia de 5 cm .............................. 55
FIGURA 32: Funcionamento do ultrassom na distncia de 12 cm ............................ 55
FIGURA 33: Ampliao da figura 32 ......................................................................... 56
FIGURA 34: Estrutura do circuito LDR ...................................................................... 57
FIGURA 35: Funcionamento do LDR em ambiente claro .......................................... 57
FIGURA 36: Funcionamento do LDR em ambiente escuro ....................................... 58
FIGURA 37: Estrutura do circuito dos dois sensores juntos ...................................... 59
FIGURA 38: Funcionamento dos dois sensores em conjunto ................................... 59
FIGURA 39: Resultados da figura 38 ........................................................................ 60

LISTA DE ABREVIATURAS E SIGLAS

3D: 3 Dimenses.
AC: Alternating Current (Corrente Alternada).
ADT: Android Development Tools (Ferramenta de Desenvolvimento Android).
AOSP: Android Open Source Project (Projeto Android de Software Livre).
API: Application Programming Interface (Interface de Programao de Aplicativos).
CSS: Cascading Style Sheets (Folhas de Estilo em Cascata).
DC: Direct Current (Corrente Direta).
DIP: Dual In-line Package (Pacote em Linha Dupla)
EEPROM: Electrically-Erasable Programmable Read-Only Memory (Memria
Eltrica Apagvel e Programvel Somente de Leitura).
GND: Ground (Terra).
GPS: Global Positioning System (Sistema de Posicionamento Global).
HTC: High Tech Computer corporation.
HTML: Hyper Text Markup Language (Linguagem de Marcao de Hipertexto)
IDE:

Integrated

Development

Environment

(Ambiente

Desenvolvimento).
IBM: International Business Machines.
IOREF: Input Output References (Referencia de Entrada e Sada).
IOS: iPhone Operating System.
IT: Information Technology (Tecnologia da Informao)
JVM: Java Virtual Machine (Mquina Virtual Java)
KB: KiloByte
LDRs: Light Dependent Resistors
LED: Ligth Emitting Diode (Diodo Emissor de Luz)
mA: Miliampere.
MHZ: Megahertz.
NG: Nuova Generazione (Nova Gerao).
RAM: Random Access Memory (Memria de Acesso Aleatrio)

Integrado

de

RISC: Reduced Instruction Set Computing (Conjunto de Instures Reduzidas de


Computador)
RX: Receptor
SDK: Software Development Kit (Kit de Desenvolvimento de Software).
SPI: Serial Peripheral Interface (Interface Perifrica Serial).
SQL: Structured Query Language (Linguagem de Consulta Estruturada).
SWT: Standard Widget Toolkit.
TX: Transmitter (Transmissor).
URL: Uniform Resource Locator.
USB: Universal Serial Bus.
V: Volt.
VIN: Input Voltage..

SUMRIO
1 INTRODUO ......................................................................................................... 9
2 FUNDAMENTAO TERICA ............................................................................. 13
2.1 Definio sobre arduino ................................................................................... 13
2.2 Estrutura do arduino ........................................................................................ 14
2.2.1 Atmega 328 ............................................................................................... 15
2.2.2 USB plug ................................................................................................... 15
2.2.3 Conector DC ............................................................................................. 16
2.2.4 Conectores de Alimentao ...................................................................... 16
2.2.5 Entradas e Sadas ..................................................................................... 17
2.2.6 Sensores e Shield ..................................................................................... 17
2.3 Modelos de arduino ......................................................................................... 18
2.3.1 Arduino USB ............................................................................................. 19
2.3.2 Arduino Extreme ....................................................................................... 19
2.3.3 Arduino NG ............................................................................................... 19
2.3.4 Arduino Diecimila ...................................................................................... 19
2.3.5 Duemilanove ............................................................................................ 20
2.3.6 Arduino Uno .............................................................................................. 20
2.4 Lgica e Programao ..................................................................................... 20
2.4.1 Expresses ............................................................................................... 22
2.4.2 Declaraes .............................................................................................. 22
2.4.3 Bloco de declaraes ................................................................................ 23
2.4.4 Bloco de funes ....................................................................................... 23
2.4.5 Linguagem de programao C .................................................................. 23
2.4.6 Linguagem de programao java .............................................................. 24
2.5 Ambiente de desenvolvimento para arduino .................................................... 26
2.6 Ambiente de desenvolvimento para android .................................................... 27
2.6.1 Eclipse....................................................................................................... 27
2.6.2 SDK android .............................................................................................. 28
2.7 Histria do android ........................................................................................... 28
2.8 Arquitetura do android ..................................................................................... 29

3 TRABALHO REALIZADO ..................................................................................... 32


3.1 Viso Geral do Estudo de Caso ....................................................................... 32
3.2 Ferramentas Utilizadas .................................................................................... 32
3.3 Misso do Estudo ............................................................................................ 32
3.4 Limites e Dificuldades ...................................................................................... 32
3.5 Avaliao do dispositivo arduino e da placa protoboard .................................. 33
3.6 Configurao dos sensores ............................................................................. 34
3.7 Configurando o Bluetooth e a Shield Motor ..................................................... 41
3.8 Montagem do Veiculo em Miniatura................................................................. 44
3.9 Desenvolvimento do aplicativo android............................................................ 49
4 RESULTADOS OBTIDOS ..................................................................................... 52
5 CONCLUSO ........................................................................................................ 61
REFERNCIAS ......................................................................................................... 64

1 INTRODUO

Com o avano da tecnologia juntamente com o surgimento da mobilidade


os celulares deixaram de ser simplesmente um artefato exclusivo para ligaes e
passaram a possuir vrios recursos adicionais como cmeras, msicas, bluetooth,
gps, jogos, acesso a internet, interface visual e outras aplicaes. O sistema
operacional android surgiu com a proposta de integrar e operar todos esses
recursos. Os aplicativos para o android so flexveis, pois permitem que o seu
acesso seja feito por qualquer pessoa, em qualquer momento e em qualquer lugar
do mundo desde que possua um dispositivo compatvel: smartphones, tablets,
wearables, televisores etc. Isso implica em alcance global, til e de baixo custo, j
que se trata de um sistema operacional gratuito. Segundo Lecheta (2013), estudos
mostram que atualmente mais de 3 bilhes de pessoas possuem um aparelho
celular. Isso equivale aproximadamente a metade da populao do planeta.
Um dos efeitos gerados pelos novos modelos de celulares a
possibilidade de interligar outros objetos a ele. O arduino uma plataforma que se
destaca por facilitar a criao de objetos inteligentes, capazes de interagir com
muitos outros dispositivos, assim como um aparelho portador de aplicativos android.
O arduino uma plataforma de prottipos eletrnicos de cdigo e
hardware aberto sendo ambos baseados em flexibilidade. Um dos fatores que
influenciaram na escolha desta placa o seu valor acessvel em montar ou adquirir
uma placa pronta. Isto permite que os desenvolvedores ingressem nessa rea sem
precisar desembolsar valores exorbitantes.
Apesar do arduino ser um dispositivo que pode ser conectado a varias
outras plataformas, um problema notoriamente observado a maneira na qual essa
comunicao ser realizada. A escolha da linguagem de programao para o
desenvolvimento do aplicativo android para melhor realizar essa interao tambm
um fator importante, pois, a plataforma arduino utiliza a linguagem C.
As plataforma arduino lanada em 2005 e o android fundado em 2003 e
lanado em 2008, esto em grande ascenso no meio tecnolgico. Impulsionado
pelo crescimento de ambos, este trabalho realiza estudos sobre a integrao da
plataforma arduino com o sistema operacional android remotamente.

10
Utiliza-se o sistema operacional android por ser uma plataforma para
aplicaes mveis completamente livre e de cdigo aberto. Seus recursos visuais
possuem timas funcionalidades, permitindo ao usurio navegar por telas por meio
de touch screen.
Segundo Lecheta (2013) possvel desenvolver uma aplicao para o
android utilizando a linguagem java em ambiente de desenvolvimento eclipse, basta
adicionar um plug-in chamado Android Development Tools (ADT). Utilizando o ADT
possvel emular um dispositivo android diretamente do eclipse. Consequentemente
a linguagem java a mais indicada para esse trabalho.
Ainda existem outras duas razes pela escolha da linguagem java.
Primeiro a linguagem de computador mais usada no mundo (Schild e Skrien,
2013). Em segundo lugar, seus recursos so projetados e implementados de uma
maneira mais clara para avaliar o cdigo de programao.

QUADRO 1
Linguagens de programao mais usadas entre os profissionais de informtica
Colocao

Linguagem de programao

1
2
3
4
5

JavaScript
Java
PHP
Python
C#, C++, Ruby

Fonte: Adaptado de RedMonk, 14/01/2015

Outro objeto de estudo deste trabalho a plataforma arduino. destinada


a artistas, designers, hobbistas e qualquer pessoa interessada em criar objetos ou
ambientes interativos. Alm da placa, o arduino conta com uma IDE que pode ser
baixada gratuitamente da internet e permite a programao do dispositivo utilizando
a linguagem C. O arduino conta ainda com uma intensa e ampla comunidade ao
redor do mundo que troca informaes e permite a popularizao da plataforma.
A escolha pelo arduino se deu por sua crescente popularizao e pelo
aumento das pesquisas no site do Google.

11

FIGURA 1: Quantidade de pesquisas realizadas no google pela plataforma arduino.


Fonte: Google Trends, 2015

O arduino pode sentir o estado do ambiente que o cerca por meio da


recepo de sinais de sensores e pode interagir com os seus arredores, controlando
luzes, motores e outros atuadores. Segundo o site oficial Arduino.cc (2015) a
plataforma rendeu um documentrio em 2010 por alcanar uma marca de vendas de
50 mil unidades em apenas 5 anos.
Estudos sobre android e arduino so bem recentes e as matrias
publicados ainda so poucos. Este trabalho pretende com os resultados dos estudos
incentivar novas pesquisas de interao entre os dois e instigar a ideia de novos
produtos que podem ser gerados com essa combinao.
O trabalho visou o estudo e construo de um veculo em miniatura
movido a motor eltrico e constitudo da plataforma arduino, juntamente com os
sensores de ultrassom e luminosidade. Esse veculo foi controlado por um aplicativo
android. A comunicao entre o dispositivo android e a plataforma arduino foi feito
por intermdio de um sensor bluetooth. Os sensores acoplados no veculo enviavam
informaes, que eram apresentados pelo aplicativo android.
O presente trabalho possui como objetivo geral produo e avaliao de
um aplicativo android que controle remotamente mecanismo arduino e que receba
informaes do mesmo.
Assim, buscando compreender tais problemticas, bem como propor e
esclarecer possibilidades, esse trabalho visa construir um veculo em miniatura para
avaliar e descrever a interao entre o aplicativo android e a plataforma arduino.
Para atingir o objetivo geral foram considerados os seguintes objetivos
especficos:

12
Estudar a programao e as funcionalidades da plataforma arduino;
Desenvolver cdigos de programao para operar sensores conectados ao
arduino;
Desenvolver aplicativo android;
Realizar a comunicao entre a plataforma arduino e o aplicativo android;
Explorar e conectar veculo motorizado em miniatura com placa arduino.
Este foi um trabalho de natureza exploratria, pois envolve pesquisa
prtica com o problema levantado. Tambm ocorrem anlises dos processos
executados para compreender os objetivos.
No primeiro capitulo apresentado uma introduo sobre o projeto,
fazendo uma descrio geral do trabalho, juntamente com a justificativa,
identificando o problema, os objetivos gerais e especficos a serem alcanados. O
terceiro capitulo apresenta a fundamentao terica onde so abordados conceitos
bsicos sobre arduino, android, eletrnica e programao.
O quarto capitulo remete aos trabalhos realizados que explica toda a
metodologia e os processos utilizados no trabalho.
O quinto capitulo apresenta os resultados obtidos coletados a partir dos
trabalhos realizados. Por ultimo o quinto captulo apresenta as concluses finais
desse trabalho.

13

2 FUNDAMENTAO TERICA

Para a elucidao dos conhecimentos necessrios para a realizao


deste trabalho foram feitos estudos fundamentados na definio sobre arduino,
estrutura do arduino, modelos de arduino, linguagem de programao para arduino,
ambiente de desenvolvimento para arduino, histria do sistema operacional android,
arquitetura do sistema operacional android, linguagem de programao java e
ambiente de desenvolvimento de aplicativos android.

2.1 Definio sobre arduino

Observa-se uma predisposio cada vez maior da insero de inteligncia


computacional nos equipamentos do dia a dia. Esses dispositivos possuem
microprocessadores no qual o computador completamente encapsulado ou
dedicado ao equipamento que est inserido (CUNHA, 2015).
Os sistemas embarcados so dispositivos que possuem memria,
processador e interface de entrada e sada, sendo responsveis em gerar
inteligncia computacional a equipamentos (EMBEDDED, 2015).
O micro controlador o principal componente do sistema embarcado, pois
segundo a ROBTICA LIVRE (2015), so circuitos integrados programveis que
possui arquitetura de um microcomputador, porm baseado numa arquitetura RISC
(Reduced Instruction Set Computing), ou seja conjunto de instrues de computao
reduzida.
Arduino um micro controlador de computao fsica com cdigo aberto
baseado em uma simples placa com entradas e sadas. Foi desenvolvida na Itlia
com intuito educacional. Tambm possui um ambiente de desenvolvimento que
implementa a linguagem C. Esse ambiente de desenvolvimento multiplataforma
podendo criar as rotinas para Windows, Linux e Mac OS X. Sua linguagem de
programao desenvolvida sobre uma biblioteca que simplifica a escrita da
programao em C/C++ (ARDUINO, 2015).

14
O hardware livre, ou seja, est disponvel para todos, legalmente,
baixarem o esquemtico da internet e fazer a sua prpria placa, sem ter que pagar
direitos autorais (THOMPSOM, 2008).
A plataforma arduino permite que qualquer pessoa possa trabalhar com
microcontroladores de forma simples. Os detalhes confusos e complexos de
programao desses componentes ficam alocados em um pacote chamado easy-touse (fcil de utilizar), oferecendo grande vantagem a professores, estudantes e at
pessoas que no possuem conhecimentos, mas que so interessados em sistemas
eletrnicos (ARDUINO, 2015). Outro ponto forte do arduino em relao ao fcil
acesso, pois so relativamente baratos em comparao com outras plataformas de
microcontroladores (ARDUINO BR, 2015).

2.2 Estrutura do arduino

Segundo Gomes e Tavares (2015), o arduino consiste, por definio, em


um micro controlador de placa nica e um conjunto de software para program-lo. O
hardware composto de um processador Atmel AVR, um cristal oscilador e um
regulador linear de 5 volts. A placa expe os pinos de entrada e sada em um
encaixe padro para que se possa conectar circuitos externos que agregam novas
funcionalidades.

15

FIGURA 2: Componentes da plataforma arduino


Fonte: Arduino, 2015

2.2.1 Atmega 328

O componente principal da placa arduino o componente ATMEL atmega


328, um dispositivo de 8 bits da famlia AVR com arquitetura RISC avanada e com
encapsulamento DIP28. Ele conta com 32 KB de Flash (mas 512 Bytes so
utilizados pro bootloader), 2 KB de RAM e 1 KB de EEPROM. Pode operar a at 20
MHz, porm a placa arduino opera em 16 MHz, valor do cristal externo que est
conectado aos pinos 9 e 10 do micro controlador (ARDUINO, 2015).

2.2.2 USB plug

A placa pode ser alimentada pela conexo USB e com o micro controlador
ATMEL que faz a comunicao com o computador (ARDUINO, 2015).

16
2.2.3 Conector DC

A alimentao externa feita atravs do conector DC com regulador de


tenso, onde o valor de tenso da fonte externa deve estar entre os limites 6 V a 20
V (ARDUINO, 2015).

2.2.4 Conectores de Alimentao

O arduino pode ser alimentado pela conexo USB ou com uma fonte
externa. A entrada de alimentao selecionada automaticamente. A alimentao
externa (no USB) pode vir de um adaptador AC-DC ou de uma bateria. O
adaptador pode ser conectado atravs de um plug de 2,1 milmetros de centro
positivo, no conector de energia da placa. A alimentao feita atravs de uma
bateria ou por meio de pinos (ARDUINO, 2015). Os pinos so os seguintes:
IOREF: Fornece uma tenso de referncia para que shields possam
selecionar o tipo de interface apropriada, dessa forma shields que funcionam
com a placas arduino que so alimentadas com 3,3 V. podem se adaptar para
ser utilizados em 5 V. e vice-versa (ARDUINO, 2015);
Reset: Pino conectado a pino de Reset do micro controlador. Pode ser
utilizado para um reset externo da placa arduino (ARDUINO, 2015);
3,3 V: Fornece tenso de 3,3 V. para alimentao de shield e mdulos
externos. Corrente mxima de 50 mA (ARDUINO, 2015);

5 V: Fornece tenso de 5 V para alimentao de shields e circuitos externos.

GND: Estes dois pinos so conhecidos como terra, responsveis por fechar o
circuito (ARDUINO, 2015);
VIN : Pino para alimentar a placa atravs de shield ou bateria externa.
Quando a placa alimentada atravs do conector, a tenso da fonte estar
nesse pino (ARDUINO, 2015).

17
2.2.5 Entradas e Sadas

A placa arduino possui pinos de entrada e sadas digitais, assim como


pinos de entradas e sadas analgicas (ARDUINO, 2015).

2.2.6 Sensores e Shield

A placa arduino pode ser incrementado com acessrios inteligentes,


denominados sensores ou shields. Esses acessrios ampliam as funcionalidades da
placa, assim se adaptando a vrios projetos diferentes (BR-ARDUINO, 2015).

2.2.6.1 Sensor de Ultrassom

Sensores de ultrassom so sensores que utilizam ondas sonoras para


medir a distncia entre o sensor e algum objeto. So uma boa opo para medir
distncias sem entrar em contato direto com o objeto e so largamente utilizados na
robtica e tambm na indstria (ROBTICA LIVRE, 2015).

2.2.6.2 Sensor de Luminosidade LDR

Segundo o INSTITUTO NEWTON C BRAGA (2014) Os LDRs ou Light


Dependent Resistors, tambm conhecidos como foto-resistores e clulas de sulfeto
de cdmio so sensores do tipo foto condutivo. Neles, a resistncia apresentada
passagem de uma corrente eltrica depende da quantidade de luz que incide numa
superfcie sensvel base de Sulfeto de Cdmio ou CdS. Resumindo o LDR um
componente eletrnico, sensvel a luz, que tem por finalidade limitar a corrente

18
eltrica que passa sobre ele, como um resistor comum, s que o grande diferencial
que ele um resistor varivel que interage com a luz.

2.2.6.3 Sensor Bluetooth

Bluetooth o nome dado a um protocolo de rdio, baseado em saltos em


frequncia de curto alcance, que visa substituir os cabos de conexo existentes por
uma conexo universal, sem fio, de maneira robusta, barata e de baixo consumo
(PETERS, 2015).

2.2.6.4 Shield Motor

Segundo ARDUINO (2015), a shield motor possui dois chips L293D, cada
um composto por 2 pontes H, alm de um CI 74HC595. Tudo isso para controlar at
4 motores DC, 2 Servos (alimentados por 5v) ou 2 motores de passo. Lembrando
que a corrente mxima suportada por cada L293D de 600 mA, com picos de 1.2A.

2.3 Modelos de arduino

Existem vrias placas arduino no mercado e sendo possvel at mesmo


constru-las domesticamente. Posteriormente ser apresentado a linha de evoluo
da plataforma arduino uno, a qual ser utilizada neste trabalho (ARDUINO 2015).

19

2.3.1 Arduino USB

O Arduino USB foi a primeira placa rotulado como "Arduino". Estes foram
muito vendidos separadamente como kits. A primeira verso tinha uma pinagem
incorreta para o conector USB (ARDUINO 2015).

2.3.2 Arduino Extreme

O Arduino Extreme possui uma maior quantidade de superfcie de


ligaes de componentes do que as placas Arduino USB e vem com pinagem
headers do sexo feminino. Ele tambm tem RX e TX LEDs que indicam quando os
dados esto sendo enviados para ou a partir da placa (ARDUINO 2015).

2.3.3 Arduino NG

O Arduino NG usa o USB-to-Serial conversor FTDI FT232RL, que exige


menos componentes externos que o FT232BM. Ele tambm tem um built-in LED no
pino 13 (que pode interferir com a comunicao SPI) (ARDUINO 2015).

2.3.4 Arduino Diecimila

A principal mudana no Arduino Diecimila que ele pode ser reposto a


partir do computador, sem a necessidade de pressionar fisicamente o boto de reset
na placa. O Diecimila usa um regulador de tenso de abandono baixa, o que reduz o

20
consumo de energia da placa quando alimentado por uma fonte externa (adaptador
AC / DC ou bateria) (ARDUINO 2015).

2.3.5 Duemilanove

O Duemilanove seleciona automaticamente a fonte de alimentao


adequada (USB ou fonte de alimentao externa), eliminando a necessidade do
jumper de seleo de energia (ARDUINO 2015).

2.3.6 Arduino Uno

"Uno", significa o numeral um em italiano e nomeado para marcar o


lanamento do Arduino 1.0. O Uno e verso 1.0 so as verses de referncia do
arduino. O Uno o mais recente de uma srie de placas Arduino USB. Esta a mais
recente reviso da placa USB bsico Arduino. Ele se conecta ao computador com
um cabo USB padro e contm tudo que necessrio para programar e usar a
placa. Ele pode ser estendido com uma variedade de shields, extenses
personalizadas de placas com caractersticas especficas (ARDUINO 2015).

2.4 Lgica e Programao

O processo de definir as instrues que o computador deve executar


conhecido como programao (JAMSA, 1998). Toda linguagem de programao
construda a partir das expresses, declaraes, bloco de declaraes e bloco de
funes (PURDUM, 2012).
Algoritmo o procedimento para resolver um problema, definido por uma
sequncia finita e ordenada de etapas executveis (PEREIRA, 2010).

21
Para descrever as etapas que precisam ser efetuadas para que o
programa execute as tarefas que lhe so designadas utiliza-se algoritmos
(TECMUNDO, 2015).
Os fluxogramas apresentam os algoritmos de forma grfica. A
representao de algoritmo por meio de fluxograma possuem uma srie de
vantagens sendo a mais importante a facilidade gerada para a compreenso do
funcionamento do algoritmo, mesmo para os leigos (MEDINA e FERTIG, 2006).
Num fluxograma as etapas da programao so representados por
smbolos e a ordem de execuo dessas etapas so representadas por setas
conectando os smbolos. Cada smbolo pode possuir uma anotao indicando sua
finalidade especfica (PEREIRA, 2010).

FIGURA 3: Principais simbolos usados em fluxogramas


Fonte: Pereira, 2010

22
2.4.1 Expresses

Conjunto de variveis e constantes numricas que se relacionam por meio de


operadores compondo uma frmula que, uma vez avaliada, resulta em um valor
(SOUZA, 2013). Varivel uma posio de memria cujo contedo pode ser
modificado durante a execuo de um programa (ACTIVE INFO, 2015). A referncia
a uma varivel no programa feita atravs do seu identificador; os valores que
podem ser nela armazenados dependem do seu tipo de dado (EVARISTO, 2001).
Constante numrica uma posio na memria que armazena um valor que no
alterado. Os operadores so aes matemticas ou lgicas que esto presentes no
mnimo uma ou vrias vezes na expresso (PURDUM, 2012). Segue exemplos:
A + b (varivel, operador matemtico, varivel);
5 + b - 3 (constante numrica, operador matemtico, varivel, operador
matemtico, constante numrica);
a > d > 4 (varivel, operador lgico, varivel, operador lgico, constante
numrica);
w > c + 5 (varivel, operador lgico, varivel, operador lgico, constante
numrica).

2.4.2 Declaraes

So valores ou expresses atribudos a uma determinada varivel. Utilizase o smbolo de igualdade ( = ) para representar o operador de atribuio
(PURDUM, 2012). Possui a funo de armazenamento de dados gerados pelo
prprio programa, alteraes no contedo de variveis e determinaes de
resultados finais de um processamento so realizados atravs do comando de
declarao, que deve ser escrito com a seguinte sintaxe (EVARISTO, 2001).
Identificador de varivel = expresso.

23
2.4.3 Bloco de declaraes

So aglomerados de declaraes agrupadas para serem vistas pelo


compilador como se fossem uma nica instruo (KUTTI, 2002).
Os blocos de declaraes comeam com uma chave de abertura ( { ) e
finaliza com uma chave de fechamento ( } ). Todas as declaraes entre a abertura e
fechamento de chaves formam o corpo do bloco de declarao (PURDUM, 2012).

2.4.4 Bloco de funes

Desde que as primeiras linguagens de programao foram desenvolvidas,


houve um considervel avano em termos de facilitao para que os programadores
pudessem escrever mais rapidamente o programa (SOUZA, 2013). Todo programa
basicamente um conjunto de funes. Uma funo tem um nome e argumentos
associados, e composta por declaraes de variveis e blocos de comandos,
incluindo possivelmente chamadas a outras funes (KUTTI, 2002).
Um bloco de funo um conjunto de funes que projetado para
realizar as tarefas da programao. Normalmente so desenvolvidos para criar
"caixas-pretas", em que os detalhes da escrita so enterrados na funo. (PURDUM,
2012).

2.4.5 Linguagem de programao C

A linguagem C foi criada em 1972 e implementada em um computador


DEC PDP-11 por Dennis Ritchie no Bell Laboratories (CASAVELLA, 2015). C o
resultado de um processo de desenvolvimento entre as linguagens Algol 68 e BCPL.
O BCPL tambm influenciou a linguagem B que por sua vez tambm contribuiu para
a linguagem C (JAMSA e KLANDER, 1998).

24
Considerada como uma linguagem de mdio nvel pois combina
elementos de alto nvel com a funcionalidade das linguagens de baixo nvel. A
caracterstica

principal

da

linguagem

ser

estruturada,

ou

seja,

compartimentalizao do cdigo e dos dados (JAMSA e KLANDER, 1998).


Um programa tpico no arduino consiste basicamente em duas funes, o
void setup() e a funo void loop(), tambm existem inmeras outras funes que
executam a leitura/escrita dos pinos digitais e analgicos (EVANS, 2007).
A funo setup marca o ponto de partida para todos os programas em C
para arduino. Enquanto o programao C padro inicia a execuo do programa
pela funo denominada main() j na programao C para arduino utiliza-se o
setup() (PURDUM, 2012). No arduino a funo setup() chamada no momento em
que o programa comea. usada para inicializar variveis, definir os modos de
entrada ou sada dos pinos e indicar bibliotecas. Essa funo executada somente
uma vez, quando o arduino iniciado ou quando reinicializado (ARDUINO, 2015).
Se for preciso usar o setup() uma segunda vez, ento ser necessrio
pressionar o boto de reset na placa arduino. O boto reset suspende a execuo
atual do programa e o reinicia chamando o setup() (PURDUM, 2012).
A funo loop() faz precisamente o que seu nome indica: ela repete-se
continuamente permitindo que o programa funcione dinamicamente. utilizada para
controlar de forma ativa a placa (ARDUINO, 2015).

2.4.6 Linguagem de programao java

Desenvolvida pela Sun Microsystems em 1991 com o nome de Oak sendo


em 1995 renomeada para Java. Ela herda sua sintaxe da linguagem C e seu modelo
de objetos adaptado do C++ (SCHILDT e SKRIEN, 2013).
Java uma linguagem de programao orientada a objetos e portvel
entre diferentes plataformas e sistemas operacionais (DEITEL e DEITEL, 2003).
Esta portabilidade obtida pelo fato da linguagem ser interpretada, ou
seja, o compilador gera um cdigo independente de mquina chamado byte-code.

25
No momento da execuo este bytecode interpretado por uma mquina virtual
instalada no dispositivo (SCHILDT e SKRIEN, 2013).
Aplicao o software mais geral escrito na linguagem Java. No requer
um browser para sua execuo (CAELUM, 2015).
O sistema operacional android no possui uma mquina virtual java (JVM)
e sim uma mquina virtual chamada Dalvik que otimizada para a execuo de
dispositivos mveis (LECHETA, 2013).
No android os bytecodes so convertidos para o formato Dalvik
Executable (.dex), em seguida os demais recursos so compactados chamado
Android Package File (.apk), que representa a aplicao final (LECHETA, 2013).

2.4.6.1 Activities do java android

Forma visvel e proeminente de uma aplicao android. Uma activity


apresenta os elementos da interface com o usurio. Uma aplicao pode conter uma
ou varias activities. No entanto elas trabalham juntas para gerar uma experincia
coesa ao usurio (ANDROID, 2015).

2.4.6.2 Services do java android

Entende-se como service a parte da aplicao que no possui interao


com o usurio (IBM, 2015). Um service um componente que roda em segundo
plano para executar operaes de longa execuo ou executar trabalhos para
processos remotos (ANDROID, 2015).

26
2.4.6.3 Content providers do java android

O Content Provider o mecanismo android para a abstrao do


armazenamento de dados, agindo como servidor de banco de dados (IBM, 2015).
Ele gera um conjunto compartilhado de dados de aplicativos (ANDROID, 2015). As
operaes para ler e gravar contedo de um armazenamento de dados especfico
deve ser passado atravs de um Content Provider apropriado, em vez de acessar
um arquivo ou um banco de dados diretamente (IBM, 2015). Atravs do Content
Provider, outros aplicativos podem consultar ou mesmo modificar os dados, caso
possuam as informaes adequadas (ANDROID, 2015).

2.4.6.4 Broadcast receivers do java android

O broadcast receiver um componente da aplicao que recebe pedido


para processar intentos, normalmente no possui interao com o usurio (IBM,
2015). Possui a funo de responder s mensagens de transmisso de todo o
sistema. Podem criar uma notificao visvel ao usurio para informar um evento de
transmisso (ANDROID, 2015).

2.5 Ambiente de desenvolvimento para arduino

Originrio do ingls Integrated Development Environment (IDE), um


software que rene caractersticas e ferramentas de apoio ao desenvolvimento de
software com o objetivo de agilizar este processo (JAMSA e KLANDER, 1998).
O IDE para arduino possui um cdigo aberto e faz com que seja fcil de escrever
instrues e envi-los para a placa arduino. Ele roda em Windows, Mac OS X e
Linux. O ambiente escrito em Java e baseado em processamento e em outros
softwares de cdigo aberto (ARDUINO, 2015).

27
O Conjunto de instrues para arduino conhecido como sketch. Os
sketchs criados so salvos pela IDE com extenso .pde (WARREN, ADAMS e
MOLLE, 2011).
A parte superior da IDE possui uma barra de ferramenta com cones para
tarefas comuns. Nesta barra esto os botes de compilar, parar, novo, abrir, salvar,
enviar e monitor (ARDUINO,2015).
O ambiente arduino pode ser alargado atravs da utilizao de
bibliotecas, assim como a maioria das plataformas de programao. Bibliotecas
oferecem funcionalidade extra para uso dos sketches. Um nmero de bibliotecas j
natural da IDE, mas pode-se fazer o download ou criar a prpria biblioteca
(WARREN, ADAMS e MOLLE, 2011).

2.6 Ambiente de desenvolvimento para android

2.6.1 Eclipse

Desenvolvido pela empresa IBM (International Business Machines), em


novembro de 2001 A empresa investiu cerca de 40 milhes de dlares para o
desenvolvimento de uma IDE de cdigo aberto e de grande usabilidade. Ao longo do
tempo, o Eclipse tornou-se uns dos IDEs mais utilizados no mundo, especialmente
por utilizar SWT (The Standard Widget Toolkit) como biblioteca grfica. (IBM, 2015).
Uma das grandes propriedades do Eclipse o desenvolvimento baseado
em plugins. O projeto Eclipse foi e continua sendo um projeto to grandioso que em
janeiro de 2004 foi criado uma fundao sem fins lucrativos com membros que
fazem o suporte do projeto Eclipse, a The Eclipse Fundation, e fornece em geral
quatro servios comunidade Eclipse: IT (Information Technology) Infrastructure que fornece aos usurios e projetistas do Eclipse uma tecnologia evolutiva e segura;
Intellectual Property Management - que coordena a propriedade intelectual do
software, gerencia os servios e a comercializao do mesmo; Development
Community Support - que contribui de maneira direta com melhorias no
desenvolvimento do software; e Ecosystem Development - onde a Fundao

28
promove reunies, conferncias e afins para promover toda a comunidade Eclipse
(ECLIPSE, 2015).
De acordo com Schildt e Skrien (2013) o eclipse uma ferramenta IDE
(integrated development environment) que compreende vrios tipos de linguagem e
que aceita a instalao de plugins para emular o desenvolvimento da plataforma.
Objetivo do Eclipse desenvolver o mais rpido possvel atravs do
arrastar-e-soltar do mouse, onde montanhas de cdigo so gerados em background
e uma IDE auxiliando no desenvolvimento. (CAELUM, 2015).

2.6.2 SDK android

O SDK uma sigla usada para o termo Software Development Kit, um


pacote de ferramentas, cabealhos e bibliotecas que possibilita aos programadores
desenvolverem aplicaes para sistema android, IOS, Iphone tambm muito
utilizado para complemento de Sistemas operacionais e alguns programas dentre
eles o Netbeans, Windows (LECHETA, 2013).
De acordo com Stark e Jepson (2012) o SDK contm ferramentas e
cdigos para desenvolver aplicaes nativas, o que significa que a SDK permite o
desenvolvimento, instalao, execuo e testes das aplicaes no simulador android
e tambm nos aparelhos. As duas foras que movem as aplicaes nativas so o
Objective-C.
Segundo Lecheta (2013), o android SDK e o software utilizado para
desenvolver aplicaes no android que tem um emulador para simular o celular.
Ferramentas utilitrias e uma API completa para a linguagem java. Com todas as
classes necessrias para desenvolver aplicaes.

2.7 Histria do android

Segundo a Maia (2013) o android foi fundado por Andy Rubin, Rich Miner,
Nick Sears e Chis White em 2000. Foi totalmente baseado no sistema Linux tendo

29
cdigo livre para alteraes. Depois de dois anos o android se tornou um sistema da
Google, adquirida em 2005 e conduzida por Andy Rubin. O mesmo desenvolveu
uma plataforma para telefones moveis que poderia ser utilizada em celulares e
tablets. O primeiro Android Beta SDK foi liberado em 2007 sendo todos os softwares
para desenvolvimento e as aplicaes, gratuitas.
O primeiro aparelho com o sistema android foi o HTC Dream lanado em
22 de outubro de 2008 com o android 1.0 nativo, sua primeira atualizao foi
lanada apenas para o aparelho T-Mobile G1 em 2009 aos poucos o android foi se
aprimorando e ganhando novas verses e ganhando cada vez mais mercado
(ANDROID, 2015). O sistema android tem atualmente 9 verses que so o Donut
1.6, Eclair 2.0, Froyo 2.2, Gingerbread 2.3, Honeycomb 3.0, Ice Cream Sandwich
4.0, Jelly Bean 4.1, Kit Kat 4.4 e a verso atual Lollipo 5.0 (MERCATO, 2014).
O android um software open-source criado para os celulares e outros
dispositivos. O android Open Source Project (AOSP), liderado pelo Google, est
encarregado da manuteno e desenvolvimento do android. Muitos fabricantes de
dispositivos trouxeram ao mercado de dispositivos rodando o android, e eles so
disponveis ao redor do mundo. O objetivo principal foi construir uma plataforma de
software excelente para usurios de todos os dias. Uma srie de empresas
juntamente com engenheiros desempenharam para atingir esse objetivo, e o
resultado foi uma produo total de produtos de consumo de qualidade, cuja fonte
aberta para customizao e portabilidade (LECHETA, 2013).

2.8 Arquitetura do android

A arquitetura do sistema operacional android e dividida em camadas,


onde cada parte e responsvel por gerenciar os seus respectivos processos.
(LECHETA, 2013). Sua arquitetura e dvida em vrias camadas que so vrios
programas agrupados sendo eles Applications, Application Framework, Libraries e
Android Runtime; e Linux Kernel (ANDROID, 2015).
Na camada Linux Kernel est localizado o sistema operacional da
plataforma, que baseado no Linux. Ela responsvel por servios de mais baixo

30
nvel da plataforma, como gerenciamento de memria e processos, segurana, etc.
(TOSIN, 2011).
Na camada Libraries esto as bibliotecas nativas escritas em C/C++ que
fazem parte da plataforma. Esto nesta camada APIs como o OpenGL ES (para
renderizao 3D), SQLite (gerenciador de bancos de dados) e suporte a diversos
formatos de udio e vdeo. (TOSIN, 2011).
A camada Android Runtime d condies para que as aplicaes
baseadas na plataforma sejam executadas. Um dos componentes desta camada so
as core libraries, que disponibilizam uma API Java utilizada para programao
(grande parte das funcionalidades encontradas no Java SE esto disponveis para o
Android). J o outro componente a Dalvik Virtual Machine, que uma mquina
virtual para suporte execuo de aplicaes. (ANDROID, 2011).
Na camada Application Framework ficam as APIs do android que so
normalmente utilizadas pelas aplicaes que executam sobre a plataforma. Os
gerenciadores de servios de telefonia, localizao e notificao so alguns
exemplos do que este framework disponibiliza. (TOSIN, 2011).
Por fim, a camada Applications representa as aplicaes que executam
sobre a plataforma. Elas podem ser tanto aplicaes nativas - como o gerenciador
de contatos, navegador, calendrio, etc. - como aplicaes criadas por terceiros.
Alis, para o android no existe distino entre aplicaes nativas e aplicaes
desenvolvidas por outras pessoas, e esta caracterstica que garante a ela o alto
grau de flexibilidade e extensibilidade da plataforma. (ANDROID, 2011).
A arquitetura web mobile android consiste basicamente em uma aplicao
web (hospedada em um servidor) que ser acessada atravs do navegador
(browser) dos dispositivos mveis. Seguindo esta abordagem, h as arquiteturas
distribuda e centralizada (BUDEL, BARBARA e MOLOSS, 2011).
Em seguida a arquitetura nativa consiste em aplicaes elaboradas para
executar no ambiente do dispositivo mvel. Sendo assim precisam respeitar as
regras desse ambiente. Executando nativamente, dentro do dispositivo, as
aplicaes conseguem acessar todos os recursos desses aparelhos, como por
exemplo: GPS, cmera, acelermetro, lista de contatos, etc. Consequentemente
abre-se um leque muito grande de possibilidades para o desenvolvimento de
aplicaes, muito mais ricos e dentro desta linha so abordadas as arquiteturas para

31
os ambientes dos sistemas operacionais android e iOS. Tambm apresentada a
arquitetura PhoneGap, uma alternativa para simplificar o desenvolvimento nesses
ambientes (BUDEL, BARBARA e MOLOSS, 2011).
O termo arquitetura hbrida propem um aplicativo que desenvolvido em
sua maior parte utilizando tecnologias web como HTML5, CSS3 e Javascript mas
que acessado como um aplicativo nativo, podendo ou no utilizar recursos vindos
da internet ou dispositivo. J o aplicativo nativo utiliza a tecnologia de suporte do
framework da plataforma, no caso do android, Java (MENDES, GARBAZZA e
TERRA, 2014).

32

3 TRABALHO REALIZADO

3.1 Viso Geral do Estudo de Caso

O estudo realizado tem por finalidade estudar a interao da placa


arduino com aplicativo android, assim como analisar o uso de sensores na placa.

3.2 Ferramentas Utilizadas

As ferramentas utilizadas tm a funo de construir o veculo em


miniatura e produzir o aplicativo para dispositivo android.
As ferramentas utilizadas so: arduino uno R3, sensor ultrassom HCSRO4, sensor ldr, protoboard de 830 furos, jumpers, cabo usb, sensor bluetooth,
shield motor, dois motores de passo, leds, plataforma de desenvolvimento eclipse e
plataforma de desenvolvimento arduino sketch. Todo o equipamento previamente
testado e funcionando corretamente.

3.3 Misso do Estudo

Analisar os processos executados para a construo de um veculo em


miniatura utilizando arduino. Desenvolver aplicativo android que possa interagir com
o mecanismo montado.

3.4 Limites e Dificuldades

Os equipamentos utilizados possuem limitaes observadas durante todo


o processo. O bluetooth usado para a comunicao possui um alcance muito curto,

33
de acordo com o observado durante o trabalho seria algo em torno de um raio de 5
metros.
O sensor de ultrassom possui um alcance entre 2cm e 400cm e
revestimentos acsticos podem atrapalhar o funcionamento do sensor.
Dificuldade de encontrar o material para o desenvolvimento do trabalho
na regio, sendo necessrio fazer o pedido para fornecedores distantes ou
reaproveitando peas de aparelhos inutilizados.
A bateria de alimentao, 9 volts, utilizado para fornecer energia ao
veiculo em miniatura possui curta durao, gerando alimentao para o correto
funcionamento por um curto perodo de tempo.

3.5 Avaliao do dispositivo arduino e da placa protoboard

Utilizando da linguagem de programao C no Arduino Sketch configurouse o pino digital 13 do dispositivo arduino para receber um led que ascende por um
segundo e apaga por um segundo continuamente. Um led foi ligado a placa com o
catodo no pino terra (GND) e o anodo no pino digital 13, figura 4.

FIGURA 4: Encaixe do led diretamente no arduino


Fonte : Prpria

34
Posteriormente conectou-se dois jumpers em uma protoboard ao arduino
(ligou-se um jumper ao GND do arduino com a primeira coluna da linha B do
protoboard e o outro jumper ao pino digital 13 do arduino com a segunda coluna da
linha B, conforme) e transferindo o led que estava no arduino para a protoboard
(catodo na primeira coluna da linha D e o anodo na segunda coluna da linha D),
conforme a figura 4 e verificou-se o funcionamento do mesmo.

FIGURA 5: Montagem do circuito para led na protoboard


Fonte : Prpria

3.6 Configurao dos sensores

Inicialmente foram avaliados os sensores separadamente. O primeiro


sensor a ser testado foi o de ultrassom. No Android Sketch configurou-se a porta
digital 12 para o trig do sensor (onde ocorrer a sada do sinal), a porta digital 13

35
para o echo (onde ocorrer a leitura do sinal) e por fim o calculo para transformar o
sinal em centmetro que. O resultado final do calculo foi impresso pela placa. Em
seguida modificou-se a programao para imprimir somente valores menores que
20cm.

FIGURA 6: Fluxograma que descreve o algoritmo do ultrassom


Fonte : Prpria

36

FIGURA 7: Fluxograma que descreve o algoritmo do ultrassom alterado


Fonte : Prpria

Para desenvolver o calculo de transformao do sinal para distancia,


primeiro calculou a velocidade do som no ar em centmetros que foi de 34000 cm/s.
Depois calculou-se quantos milissegundos o som leva para percorrer um centmetro
chegando ao resultado de 29,4 ms, ento multiplicou-se o resultado por dois devido
o sinal fazer o percurso de ida e de volta obtendo um valor de 58,8 ms conforme a
figura 8.

37

FIGURA 8: Calculo para encontrar o valor necessario para conveso das ondas sonoras em
centmetro
Fonte : Prpria

Em seguida conectou-se o sensor na placa protoboard, com auxlio de


jumpers ligou-se o vcc, o trig, o echo e o ground do sensor respectivamente ao 5v,
pino digital 12, pino digital 13 e gnd analgico da placa arduino, conforme figura 9.

38

FIGURA 9: Montagem do circuito para o sensor de ultrassom


Fonte : Prpria

Posteriormente posicionou-se o sensor a 10cm, 5cm e 12cm de distancia


do obstculo.
Aps desmontar o sistema do sensor de ultrassom, iniciou-se a
montagem do sistema para avaliar o sensor de luminosidade usando um LDR.
Energizou-se a protoboard com 5V e com o ground atravs da placa arduino com o
auxlio de jumpers, que tambm conectou o 0 analgico em srie com o LDR
seguido por um resistor de 10K, figura 10. Configurou-se a programao da placa
arduino para o LDR conectar a porta analgica 0 e informar quando o ambiente est
claro ou escuro. Essa informao obtida devido aos valores da resistncia serem
armazenados em uma varivel e se o valor for maior que 800 ohms indicar que o
ambiente est escuro, caso contrrio estar claro, como demonstra a figura 11.

39

FIGURA 10: Montagem do circuito para o sensor de LDR


Fonte : Prpria

40

FIGURA 11: Fluxograma que descreve o algoritmo do sensor de luminosidade


Fonte : Prpria

Em seguida montou-se as duas estruturas juntas, seguindo os mesmo


procedimentos descritos anteriormente, figura 12. Na programao, cada uma das
instrues anteriores foram transformadas em funes para melhor organizar o
cdigo.

41

FIGURA 12: Montagem do circuito para o sensor de ultrassom e de LDR juntos


Fonte : Prpria

3.7 Configurando o Bluetooth e a Shield Motor

Utilizando a protoboard ligou-se o RX, TX, Gnd e VCC do bluetooth


respectivamente ao TX, RX, Gnd e 5V da placa arduino.

42

FIGURA 13: Montagem do circuito para o sensor bluetooth


Fonte : Prpria

Os motores foram ligados a shield motor, sendo o primeiro conectado ao


M1A e M1B e o segundo conectado ao M4A e M4B, figura 14.
Para melhor identificao no momento da montagem do sistema completo
na placa protoboard utilizou-se jumpers de cores iguais para funes iguais.

43

FIGURA 14: Montagem dos motores na shield motor


Fonte : Prpria

A shield motor ir se encaixar totalmente na placa arduino ocupando


todos os pinos. A partir desse momento os sensores ligados ao arduino passaram a
ser ligados a shield juntamente com os motores, conforme figura 15.

44

FIGURA 15: Diagrama que descreve todas interaes envolvendo o arduino


Fonte : Prpria

3.8 Montagem do Veiculo em Miniatura

Para a montagem do veculo em miniatura foi utilizado a estrutura de com


carrinho de brinquedo. A estrutura j estava toda montada sendo necessrio
somente realizar algumas modificaes para fixar os exios motores e a estrutura
montada anteriormente.
Na parte da frente foi encaixado uma engrenagem meia lua fixada por um
pino, o qual permite a movimentao do veculo pelas laterais. A engrenagem meia
lua possui um limitador de curso de 180 para cada lado. Acima da engrenagem
apoiou-se o motor de passo frontal, figura 16. E por fim o apoio para o eixo e motor
foi conectado com a finalidade de proteger a estrutura montada, figura 17.

45

FIGURA 16: Montagem da dianteira do veiculo


Fonte : Prpria

FIGURA 17: Montagem da dianteira do veiculo finalizado


Fonte : Prpria

Terminando a parte frontal deu inicio a parte traseira do veiculo. Utilizouse um eixo com rodas nas pontas e com engrenagem de tracionamento no meio,
como mostra a figura 18. Em seguida foi posicionado um motor para girar a
engrenagem e assim movimentar o veiculo para frente e para trs, figura 19.

46

FIGURA 18: Eixo de rodas com engrenagem


Fonte : Prpria

FIGURA 19: Montagem da parte traseira finalizada


Fonte : Prpria

Por fim montou-se toda a estrutura do arduino anteriormente descrita na


superfcie do veiculo construdo. Devido ao centro do veculo est localizado a 15 cm
da sua frente, utilizou-se uma segunda placa protoboard de 170 furos para
posicionar o sensor ultrassom na frente do veculo. Foram seguidas os mesmos
processos de montagem anteriormente descritos.

47

FIGURA 20: Estrutura de veiculo com arduino , viso area


Fonte : Prpria

FIGURA 21: Estrutura de veiculo com arduino , viso dianteira


Fonte : Prpria

48

FIGURA 22: Estrutura de veiculo com arduino , viso traseira


Fonte : Prpria

FIGURA 23: Estrutura de veiculo com arduino , viso lateral direita


Fonte : Prpria

49

FIGURA 24: Estrutura de veiculo com arduino , viso lateral esquerda


Fonte : Prpria

3.9 Desenvolvimento do aplicativo android

Inicialmente para desenvolver o aplicativo android utilizou-se de uma


tecnologia chamada Amarino, o qual composta por duas partes: bibliotecas e
aplicativo. O aplicativo presente no Amarino foi utilizado para localizar, conectar e
identificar o ID do bluetooth. J as bibliotecas, uma foi utilizada na programao do
arduino e a outra na programao do aplicativo android.
O ID do bluetooth adicionado ao cdigo do aplicativo para fazer a
comunicao entre o android e o arduino.
Para receber as informaes captadas pelos sensores, criou-se duas
caixas de texto para receber as informaes e assim exib-las.
Em seguida configurou-se quatro botes para o controle dos motores do
veculo. Os botes de direita e esquerda enviam comandos para o motor de passo
mover para a direita e esquerda. Os botes acima e abaixo em viam o comando
para acelerar e dar r no veiculo.
O layout do aplicativo pode ser visto na figura 25 e o funcionamento na
figura 26.

50

FIGURA 25: Tela do aplicativo desenvolvido


Fonte : Prpria

51

FIGURA 26: Fluxograma do algoritmo que descreve o funcionamento do aplicativo android


Fonte : Prpria

52

4 RESULTADOS OBTIDOS

Os resultados obtidos neste trabalho sero mostrados neste captulo


esto todos vinculados aos procedimentos descritos no captulo anterior.
Ao realizar a comparao entre o led ligado diretamente a placa arduino e
ao led ligado a protoboard, foi observado que o led se comporta perfeitamente
conforme a programao nas duas situaes, no havendo nenhuma diferena entre
os dois testes. No entanto ao utilizar a placa protoboard pode-se nota a sua
importncia para serem ligados mais de um dispositivo.

FIGURA 27: Arduino com led


Fonte : Prpria

FIGURA 28: Funcionamento do led na protoboard com o arduino


Fonte : Prpria

53
Observou-se muita preciso nos resultados obtidos com os testes
utilizando o sensor de ultrassom. Foi trabalhado com valores inteiros na medio das
distncias e foi conferido que nas trs medies o sensor retornou valores precisos.

FIGURA 29: Funcionamento do ultrassom na distancia de 10 cm


Fonte : Prpria

54

FIGURA 30: Ampliao dos resultados da figura 29


Fonte : Prpria

55

FIGURA 31: Funcionamento do ultrassom na distancia de 5 cm


Fonte : Prpria

FIGURA 32: Funcionamento do ultrassom na distancia de 12 cm


Fonte : Prpria

56

FIGURA 33: Ampliao da figura 32


Fonte : Prpria

O experimento com o sensor LDR tambm demonstrou resultados


positivos com a variao de luminosidade com bastante exatido.

57

FIGURA 34: Estrutura do circuito do LDR


Fonte : Prpria

FIGURA 35: Funcionamento do LDR em ambiente claro


Fonte : Prpria

58

FIGURA 36: Funcionamento do LDR em ambiente escuro


Fonte : Prpria

59
No momento em que os dois sensores forma montados juntos, pode-se
perceber que no houve interferncia entre os sensores e que o desempenho dos
sensores continuaram o mesmo.

FIGURA 37: Estrutura do circuito dos dois sensores juntos


Fonte : Prpria

FIGURA 38: Funcionamento dos dois sensores em conjunto


Fonte : Prpria

60

FIGURA 39: Resultados da figura 39 ampliada


Fonte : Prpria

Finalmente depois de toda a estrutura do arduino, mecnica e do


aplicativo prontos, observou-se que o bluetooth um excelente meio de
comunicao entre a placa arduino e o aplicativo android. Mais uma vez os valores
obtidos pelos sensores foram colhidos com exatido e enviados sem percas para o
aplicativo, utilizando o bluetooth.
A movimentao tambm responderam perfeitamente aos comandos do
aplicativo. A estrutura dianteira do veiculo comandava o direcionamento esquerda e
direita, sendo necessrio manter o boto pressionado para realizar a converso,
caso contrrio as rodas voltam para o estado de repouso. A parte traseira estava
responsvel pelo tracionamento do veiculo, mantendo-se pressionado o boto
superior o veculo movia-se para frente e mantendo-se pressionado o boto inferior o
veiculo movia-se para trs.
Os valores captados pelo sensor de ultrassom e tratado pelo arduino
foram enviados pelo bluetooth ate o dispositivo android com a mesma qualidade dos
testes anteriores. Tambm foram obtidos resultados positivos com sensor LDR. Os
valores captados por ele foram tratados pelo arduino e enviados via blutooth at o
dispositivo android no qual aparecia escrito claro ou escuro de acordo com a
luminosidade do ambiente.

61

5 CONCLUSO

Esse trabalho apresentou por meio de uma pesquisa prtica a anlise da


utilizao do aplicativo android para controlar um veculo em miniatura estruturado
com placa arduino, sensor de ultrassom e sensor de luminosidade. Demonstrou-se
no estudo uma compatibilidade muito grande entre a placa arduino e o dispositivo
android possibilitando a troca de informao entre as duas tecnologias.
Usualmente as funes dos smartphones esto relacionados aos seus
dispositivos. O bluetooth um desses dispositivos que atualmente est presente na
maioria dos smartphones, principalmente os portadores do sistema operacional
android. Por realizar a comunicao entre dispositivos atravs de ondas de rdios e
com baixo consumo de energia escolheu-se o bluetooth como o intermediador entre
o android e o arduino, apesar de possuir limitao de distancia de 5 metros de raio.
O uso da amarino teve uma grande importncia no trabalho para
possibilitar uma troca de informao entre as tecnologias utilizadas por intermdio do
bluetooth. O uso do aplicativo amarino possibilitou identificar o bluetooth usado no
trabalho as bibliotecas inseridas aos cdigos de programao do arduino e do
android, possibilitaram a troca de informao entre eles.
Ao iniciar a pesquisa com a anlise separa de cada componente utilizado,
possibilitou um melhor aprofundamento sobre cada pea. Pode-se tambm
desenvolver os cdigos de programao com maior especificao. A forma de
programao utilizada foi estruturada e utilizou-se de recursos da linguagem de
programao C.
O primeiro teste com a placa arduino e o led mostrou a importncia do
uso da protoboard que tornou-se a base para a montagem de todos os testes
posteriores. Vale ressaltar a importncia do rigor nos mtodos de montagem dos
sensores para a obteno de resultados precisos. A padronizao de cores dos
jumpers utilizados facilitou-se para identificar as conexes feitas na protoboard entre
o arduino e os demais componentes.
Para obter resultados satisfatrios o processo de montagem mostrou-se
muito importante para todo o trabalho. Fez-se necessrio seguir os processos
rigorosamente e seguindo padronizaes para fazer as ligaes com os jumpers. A

62
ligao de jumpers iguais para funes iguais facilita a montagem e o diagnstico de
problemas e erros.
A dificuldade para encontrar as peas necessrias na montagem do
veculos em miniaturas possibilitou-se a reutilizao de uma estrutura j existente.
Essa reutilizao gerou uma mudana no planejamento inicial na montagem do
veculo. Em primeira instncia os dois motores seriam instalados cada um em uma
roda traseira do veiculo e as rodas dianteiras serem livres para facilitar as
converses para direita e para a esquerda. A movimentao do veiculo era baseada
na potencia e direcionamento de rotao individual de cada motor. No havendo a
possibilidade da montagem dessa estrutura alterou-se para um motor se conectar
com as rodas da frente e serem responsveis pelas converses e o segundo motor
foi ligado as rodas traseiras com a finalidade de tracionar o veiculo para frente e para
trs.
O aplicativo android desenvolvido, possui somente uma tela. Essa tela
auto explicativa. Os botes de movimentao conseguem enviar perfeitamente as
instrues para o deslocamento do veiculo em miniatura. As reas para exibio dos
alertas esto em destaque para melhor visualizao.
Uma outra dificuldade apresentada por esse trabalho, foi o processo de
alimentao de todo o mecanismo montado. Foi utilizada uma bateria de 9 volts para
a alimentao, inicialmente o mecanismo funcionou muito bem, mas com pouco
tempo de uso a bateria j mostrava desgastes. Em poucas horas de uso o motor
frontal responsvel pela direo do veculo j no possua fora e em seguida
somente possuindo energia para manter o dispositivo de bluetooth. Estudos futuros
podem analisar mtodos para manter o veculo em miniatura em funcionamento por
mais tempo.
Este trabalho contribui com o meio de pesquisa abrindo caminho para
novos trabalhos relacionados, pois a combinao arduino e android possibilita a
criao de novos dispositivos, assim como o estudo dos sensores podem ser
aproveitados em outros tipos de trabalhos.
Por fim pode-se avaliar que o aplicativo android juntamente com o arduino
se completam abrindo portas para futuros estudos. Em prximos estudos o veiculo
em miniatura pode ser aperfeioado com outros sensores ou ate mesmo sendo
melhorado para explorar locais perigosos ou inacessveis. Tambm para estudos

63
futuros podem ser experimentados outras vias de comunicao entre o android e o
arduino para poder ter o controle a maiores distancias.

64

REFERNCIAS

ACTIVE INFO. Curso de Lgica de Programao. Disponvel em:


<http://www.activeinfo.com.br/curso_programacao/constantes.html>. Acesso em: 22
abr. 2015.
ANDROID, Site Oficial. Application Fundamentals. Disponvel em: <
http://developer.android.com/guide/components/fundamentals.html>. Acesso em: 05
mai. 2015.
ANDROID, Site Oficial. Histria do Android. <https://www.android.com/history/>.
Acesso em: 23 abr. 2015.
ARDUINO, Site Oficial. Disponvel em:
<http://playground.arduino.cc/Referencia/Loop >. Acesso em: 19 abr. 2015.
ARDUINO, Site Oficial. Disponvel em:
<http://playground.arduino.cc/Referencia/Setup>. Acesso em: 19 abr. 2015.
ARDUINO. Site Oficial. Disponvel em: < http://www.arduino.cc/en/Main/Products >.
Acesso em: 19 abr. 2015.
ARDUINO. Site Oficial. Disponvel em: < http://www.arduino.cc/en/main/Software >.
Acesso em: 19 abr. 2015.
ARDUINO. Site Oficial. Disponvel em: <http://www.arduino.cc/>. Acesso em: 19 abr.
2015.
BR-ARDUINO. Do LED ao Arduino: aprendendo eletrnica no sculo 21. Disponvel
em: <http://br-arduino.org/> Acesso em: 10 abr. 2015.
BUDEL, Cleverson; BARBARA, Giuliano; MOLOSS, Ramon. Arquiteturas para
aplicaes mveis. Paran: Celepar, 2011.
CAELUM. Eclipse IDE. Disponvel em: <http://www.caelum.com.br/apostila-javaorientacao-objetos/eclipse-ide/>. Acesso em: 20 abr. 2015.
CAELUM. O que Java. Disponvel em: < http://www.caelum.com.br/apostila-javaorientacao-objetos/o-que-e-java/>. Acesso em: 20 abr. 2015.
CUNHA, Alessandro F. O que so sistemas embarcados?. Disponvel em:
<http://www.techtraining.eng.br/files/uploads/2013/04/19/artigo-sist-emb.pdf> Acesso
em: 10 abr. 2015.
DEITEL, Paul; DEITEL, Harvey . Java como programar. Bookman, 2003.
ECLIPSE. Site Oficial. Disponvel em: <https://eclipse.org/>. Acesso 10 abr. 2015.

65

EMBEDDED. O que um sistema embarcado. Disponvel em:


<http://www.embarc.com.br/p1600.aspx>. Acesso em: 10 abr. 2015.
EVANS, Brian W. Arduino Programming Notebook. San Francisco: Creative Comms,
2007.
EVARISTO, Jaime. Aprendendo a Programar Programando na Linguagem C. Book
Express. 2001.
GOMES, Evandro Lus Brando e TAVARES Lus Antnio. Uma soluo com
Arduino para controlar e monitorar processos industriais. Disponvel em: <
http://www.inatel.br/pos/index.php/downloads/doc_download/26-luis-tavares-arduino
> Acesso em: 26 abr. 2015.
GOOGLE TRENDS. Site Oficial. Disponvel em:
<http://www.google.com.br/trends/?hl=pt-BR>. Acesso em: 11 abr. 2015.
IBM, Site Oficial. Desenvolver Aplicaes Android com o Eclipse. Disponvel em: <
https://www.ibm.com/developerworks/br/library/os-eclipse-android/>. Acesso em: 05
mai. 2015.
INSTITUTO NEWTON C BRAGA. Como funcionam os sensores fotoeltricos.
Disponvel em <http://www.newtoncbraga.com.br/index.php/como-funciona/4883art644> Acesso: 03 nov. 2015.
JAMSA, Kris; KLANDER, Lars. Programando em C/C++ - A bblia. So Paulo:
Makron Books, 1998.
KUTTI, N.S. C and Unix Programming: A Comprehensive Guide. Lightspeed Books,
2002.
LECHETA, Ricardo R. Google Android: aprenda a criar aplicaes para dispositivos
mveis com o Android SDK. So Paulo: Novatec, 2013.
MAIA, Felipe. A histria de Andy Rubin, a mente por trs do Android. 2013.
Disponvel em: <http://olhardigital.uol.com.br/noticia/quem-e-andy-rubin-o-homemque-deixa-o-android-anos-apos-te-lo-criado/33218>. Acesso em: 23 abr. 2015.
MEDINA, Marco e FERTIG, Cristina. Algoritmos e Programao: Teoria e Prtica.
So Paulo: Novatec Editora, 2006
MENDES, Mariana Ribeiro; GARBAZZA, Itagildo Edmar; TERRA, Daniela Costa.
Desenvolvimento hbrido versus desenvolvimento nativo de aplicativos mveis.
Disponvel em: <http://www.cefetbambui.edu.br/portal/files/j7_ifmg_bambui_in3.pdf>.
Acesso em: 26 abr. 2015.
MERCATO, Mattia. A doce histria do Android. 2014. Disponvel em:
<http://www.androidpit.com.br/historia-do-android>. Acesso em: 23 abr. 2015.

66

PURDUM, Jack. Programing C for Arduino: Learn C Programing for Arduino and
Compatible Microcontrollers. Technology in action, 2012.
PEREIRA, Silvio do Lago. Algoritmos e lgica de programao em C: Uma
abordagem didtica. So Paulo: rica, 2010.
PETERS, Eduardo; Bluetooth. Disponvel em:
<http://www.ebah.com.br/content/ABAAABmg8AJ/bluetooth> Acesso: 03 nov. 2015.
REDMONK. The RedMonk Programming Language Rankings: January 2015.
Disponvel em:<http://redmonk.com/sogrady/2015/01/14/language-rankings-1-15/>.
Acesso em: 11 abr. 2015.
ROBTICA LIVRE. Introduo a programao de micro controladores. Disponvel
em:
<http://www.roboticalivre.com/index.?option=com_flexicontent&view=item&cid=58&id
=70>. Acesso em: 10 abr. 2015.
SCHILDT, Herbert; SKRIEN, Dale. Programao com Java, uma introduo
abrangente. Porto Alegre: Mc Graw Hill, 2013.
SOUZA, Fbio. Arduino - Primeiros Passos. 2013. Disponvel em:
<http://www.embarcados.com.br/arduino-primeiros-passos/>. Acesso em: 22 abr.
2015.
STARK, Jonathan; JEPSON, Brian. Construindo Aplicativos Android com HTML,
CSS e JavaScript. Novatec, So Paulo: 2012.
TECMUNDO, O que algoritmo? Disponvel em:
<http://www.tecmundo.com.br/programacao/2082-o-que-e-algoritmo-.htm> Acesso
em: 03 nov. 15
THOMPSOM, Clive. Build it. Share it. Profit. Can Open Source Hardware Work?.
Wired Magazine, 2008.
TOSIN, Carlos. Conhecendo o Android. Disponvel em: <http://www.dicasl.com.br/arquivo/conhecendo_o_android.php#.VVOHwCvF91a> Acesso em: 26 abr.
2015.
WARREN, John-David; ADAMS, Josha; MOLLE, Harald. Arduino Robotics.
Technology in action, 2011.

Вам также может понравиться