Академический Документы
Профессиональный Документы
Культура Документы
Montes Claros - MG
2015
Montes Claros - MG
2015
__________________________________________
Prof. Ms. Eduardo Diniz Amaral (Orientador)
__________________________________________
Prof. Jaime Gomes da Silva Neto
__________________________________________
Prof. Geraldo Herystarley Veloso Cruz
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.
RESUMO
LISTA DE FIGURAS
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
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
1 INTRODUO
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
11
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
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).
15
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
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);
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
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.
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.
19
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.3 Arduino NG
20
consumo de energia da placa quando alimentado por uma fonte externa (adaptador
AC / DC ou bateria) (ARDUINO 2015).
2.3.5 Duemilanove
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).
22
2.4.1 Expresses
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
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,
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).
26
2.4.6.3 Content providers do java android
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.1 Eclipse
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).
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).
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
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.
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.
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.
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.
36
37
FIGURA 8: Calculo para encontrar o valor necessario para conveso das ondas sonoras em
centmetro
Fonte : Prpria
38
39
40
41
42
43
44
45
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
47
48
49
50
51
52
4 RESULTADOS OBTIDOS
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.
54
55
56
57
58
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.
60
61
5 CONCLUSO
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
65
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.