TCC II - 2015 - Aloízio e Gilzan

download TCC II - 2015 - Aloízio e Gilzan

of 71

Transcript of TCC II - 2015 - Aloízio e Gilzan

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    1/71

    Faculdades Santo Agostinho - FASA

    Faculdade de Ciências Exatas e Tecnológicas – FACET

    Curso de Sistemas de Informação

    Montes Claros - MG

    2015

    UTILIZAÇÃO DE APLICATIVO ANDROID PARA CONTROLE DEMECANISMO VIA ARDUINO

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    2/71

    Faculdades Santo Agostinho - FASA

    Faculdade de Ciências Exatas e Tecnológicas – FACET

    Curso de Sistemas de Informação

    Montes Claros - MG

    2015

     ALOÍSIO TADEU DE SOUZA JÚNIORGILZAN JUNEO LEAL E SILVA

    UTILIZAÇÃO DE APLICATIVO ANDROID PARA CONTROLE DEMECANISMO VIA ARDUINO

    Monografia apresentada a banca examinadora,como requisito parcial para a conclusão docurso de graduação e obtenção de título deBacharel em Sistemas de Informação nas

    Faculdades Santo Agostinho.

    Orientador(a):Prof. Ms. Eduardo Diniz Amaral 

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    3/71

    Faculdades Santo Agostinho - FASA

    Faculdade de Ciências Exatas e Tecnológicas – FACET

    Curso de Sistemas de Informação

    Montes Claros, 07 de novembro de 2015

    Monografia intitulada “Tema”, de autoria do(s) acadêmico(s) Nome Completo,

    aprovada pela banca examinadora constituída pelo(as) seguintes professore(s)(as):

     __________________________________________Prof. Ms. Eduardo Diniz Amaral (Orientador)

     __________________________________________

    Prof. Jaime Gomes da Silva Neto

     __________________________________________Prof. Geraldo Herystarley Veloso Cruz

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    4/71

     

    Dedicamos a Deus e nossos pais

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    5/71

     

     AGRADECIMENTOS

    Agradecemos primeiro a Deus por nos protegerem em todos os

    momentos da nossa vida e aos nossos pais por sempre nos aconselharem dando

    forças tanto nos momentos felizes quanto nos momentos triste.

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    6/71

     

    Quando se percebe que tudo é uma

    piada, ser O Comediante é a única

    coisa que faz sentido.(Alan Moore)

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    7/71

     

    RESUMO

    A comunicação entre dispositivos eletrônicos vem desenvolvendo-se de forma cadavez mais objetiva e diversificada.A crescente popularização dos aplicativos android somado com a capacidade doarduino de prototipar novas ideias foram fundamentais para motivação destetrabalho.O objetivo geral foi a produção e a avaliação do aplicativo android que controleremotamente mecanismo arduino e que receba informações do mesmo.Este trabalho é um estudo de natureza exploratória, pois utiliza de ações práticaspara estudar e avaliar a utilização de aplicativo android para controlar mecanismo viaarduino, ocorrendo processos preliminares antes da montagem final do mecanismo.Inicialmente os componentes que constituíram o veículo foram testados e avaliadosseparadamente. Foi montado um veiculo em miniatura para comportar a estruturafinal do mecanismo arduino. Por fim foi desenvolvido um aplicativo android parapoder enviar e receber informações da placa arduino.

    Palavras-chave: Android, Arduino, Aplicativo, Sensor de Ultrassom, Sensor deLuminosidade, Sensor Bluetooth, Shield Motor.

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    8/71

     

    LISTA DE FIGURAS

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

    FIGURA 2: Componentes da Plataforma arduino ..................................................... 15

    FIGURA 3: Principais símbolos 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 necessário para conversão das ondas

    sonoras em centímetros ............................................................................................ 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 interações envolvendo o arduino.......... 44

    FIGURA 16: Montagem da dianteira do veículo ........................................................ 45

    FIGURA 17: Montagem da dianteira do veículo finalizado ........................................ 45

    FIGURA 18: Eixo de rodas com engrenagem ........................................................... 46

    FIGURA 19: Montagem da parte traseira finalizada .................................................. 46

    FIGURA 20: Estrutura de veículo com arduino, visão aérea ..................................... 47

    FIGURA 21: Estrutura de veículo com arduino, visão dianteira ................................ 47

    FIGURA 22: Estrutura de veículo com arduino, visão traseira .................................. 48

    FIGURA 23: Estrutura de veículo com arduino, visão lateral direita .......................... 48

    FIGURA 24:Estrutura de veículo com arduino, visão 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

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    9/71

     

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

    FIGURA 29: Funcionamento do ultrassom na distância de 10 cm ............................ 53

    FIGURA 30: Ampliação dos resultado da figura 29 ................................................... 54

    FIGURA 31: Funcionamento do ultrassom na distância de 5 cm .............................. 55

    FIGURA 32: Funcionamento do ultrassom na distância de 12 cm ............................ 55

    FIGURA 33: Ampliação 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 ................................... 59FIGURA 39: Resultados da figura 38 ........................................................................ 60

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    10/71

     

    LISTA DE ABREVIATURAS E SIGLAS

    3D: 3 Dimensões.

    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 Programação 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 (Memória

    Elétrica Apagável e Programável 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 Marcação de Hipertexto)

    IDE: Integrated Development Environment (Ambiente Integrado de

    Desenvolvimento).

    IBM: International Business Machines.

    IOREF: Input Output References (Referencia de Entrada e Saída).

    IOS: iPhone Operating System.

    IT: Information Technology (Tecnologia da Informação)

    JVM: Java Virtual Machine (Máquina Virtual Java)

    KB: KiloByte

    LDRs: Light Dependent Resistors

    LED: Ligth Emitting Diode (Diodo Emissor de Luz)

    mA: Miliampere.

    MHZ: Megahertz.

    NG: Nuova Generazione (Nova Geração).

    RAM: Random Access Memory (Memória de Acesso Aleatório)

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    11/71

     

    RISC: Reduced Instruction Set Computing (Conjunto de Insturções Reduzidas de

    Computador)

    RX: Receptor

    SDK: Software Development Kit (Kit de Desenvolvimento de Software).

    SPI: Serial Peripheral Interface (Interface Periférica 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..

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    12/71

     

    SUMÁRIO

    1 INTRODUÇÃO ......................................................................................................... 9 

    2 FUNDAMENTAÇÃO TEÓRICA ............................................................................. 13 

    2.1 Definição 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 Alimentação ...................................................................... 16 

    2.2.5 Entradas e Saídas ..................................................................................... 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 Lógica e Programação ..................................................................................... 20 

    2.4.1 Expressões ............................................................................................... 22 

    2.4.2 Declarações .............................................................................................. 22 

    2.4.3 Bloco de declarações ................................................................................ 23 

    2.4.4 Bloco de funções ....................................................................................... 23 

    2.4.5 Linguagem de programação C .................................................................. 23 

    2.4.6 Linguagem de programação 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 História do android ........................................................................................... 28 

    2.8 Arquitetura do android ..................................................................................... 29 

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    13/71

     

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

    3.1 Visão Geral do Estudo de Caso ....................................................................... 32 

    3.2 Ferramentas Utilizadas .................................................................................... 32 

    3.3 Missão do Estudo ............................................................................................ 32 

    3.4 Limites e Dificuldades ...................................................................................... 32 

    3.5 Avaliação do dispositivo arduino e da placa protoboard .................................. 33 

    3.6 Configuração 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 CONCLUSÃO ........................................................................................................ 61 

    REFERÊNCIAS ......................................................................................................... 64 

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    14/71

    9

    1 INTRODUÇÃO

    Com o avanço da tecnologia juntamente com o surgimento da mobilidadeos celulares deixaram de ser simplesmente um artefato exclusivo para ligações e

    passaram a possuir vários recursos adicionais como câmeras, músicas, bluetooth,

    gps, jogos, acesso a internet, interface visual e outras aplicações. O sistema

    operacional android  surgiu com a proposta de integrar e operar todos esses

    recursos.  Os aplicativos para o android  são flexíveis, 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 compatível: 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 bilhões de pessoas possuem um aparelho

    celular. Isso equivale aproximadamente a metade da população 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 criação de objetos inteligentes, capazes de interagir commuitos outros dispositivos, assim como um aparelho portador de aplicativos android.

    O arduino  é uma plataforma de protótipos eletrônicos de código e

    hardware aberto sendo ambos baseados em flexibilidade. Um dos fatores que

    influenciaram na escolha desta placa é o seu valor acessível 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

    comunicação será realizada. A escolha da linguagem de programação para o

    desenvolvimento do aplicativo android para melhor realizar essa interação também é

    um fator importante, pois, a plataforma arduino utiliza a linguagem C.

    As plataforma arduino lançada em 2005 e o android fundado em 2003 e

    lançado em 2008, estão em grande ascensão no meio tecnológico. Impulsionado

    pelo crescimento de ambos, este trabalho realiza estudos sobre a integração da

    plataforma arduino com o sistema operacional android remotamente.

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    15/71

    10

    Utiliza-se o sistema operacional android  por ser uma plataforma para

    aplicações móveis completamente livre e de código aberto. Seus recursos visuais

    possuem ótimas funcionalidades, permitindo ao usuário navegar por telas por meio

    de touch screen.

    Segundo Lecheta (2013) é possível desenvolver uma aplicação 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

    é possível emular um dispositivo android diretamente do eclipse. Consequentemente

    a linguagem java é a mais indicada para esse trabalho.

    Ainda existem outras duas razões pela escolha da linguagem java.

    Primeiro é a linguagem de computador mais usada no mundo (Schild e Skrien,2013). Em segundo lugar, seus recursos são projetados e implementados de uma

    maneira mais clara para avaliar o código de programação.

    QUADRO 1

    Linguagens de programação mais usadas entre os profissionais de informática

    Colocação Linguagem de programação

    1º JavaScript2º Java3º PHP4º Python5º 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. Além da placa, o arduino  conta com uma IDE que pode ser

    baixada gratuitamente da internet e permite a programação do dispositivo utilizandoa linguagem C. O arduino  conta ainda com uma intensa e ampla comunidade ao

    redor do mundo que troca informações e permite a popularização da plataforma.

    A escolha pelo arduino  se deu por sua crescente popularização e pelo

    aumento das pesquisas no site do Google.

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    16/71

    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 darecepção 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 documentário em 2010 por alcançar uma marca de vendas de

    50 mil unidades em apenas 5 anos.

    Estudos sobre android  e arduino  são bem recentes e as matérias

    publicados ainda são poucos. Este trabalho pretende com os resultados dos estudos

    incentivar novas pesquisas de interação entre os dois e instigar a ideia de novosprodutos que podem ser gerados com essa combinação.

    O trabalho visou o estudo e construção de um veículo em miniatura

    movido a motor elétrico e constituído da plataforma arduino, juntamente com os

    sensores de ultrassom e luminosidade. Esse veículo foi controlado por um aplicativo

    android. A comunicação entre o dispositivo android e a plataforma arduino foi feito

    por intermédio de um sensor bluetooth. Os sensores acoplados no veículo enviavam

    informações, que eram apresentados pelo aplicativo android.O presente trabalho possui como objetivo geral produção e avaliação de

    um aplicativo android que controle remotamente mecanismo arduino e que receba

    informações do mesmo.

    Assim, buscando compreender tais problemáticas, bem como propor e

    esclarecer possibilidades, esse trabalho visa construir um veículo em miniatura para

    avaliar e descrever a interação entre o aplicativo android e a plataforma arduino.

    Para atingir o objetivo geral foram considerados os seguintes objetivos

    específicos:

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    17/71

    12

      Estudar a programação e as funcionalidades da plataforma arduino;

      Desenvolver códigos de programação para operar sensores conectados ao

    arduino;

      Desenvolver aplicativo android;

      Realizar a comunicação entre a plataforma arduino e o aplicativo android;

      Explorar e conectar veículo motorizado em miniatura com placa arduino.

    Este foi um trabalho de natureza exploratória, pois envolve pesquisa

    prática com o problema levantado. Também ocorrem análises dos processos

    executados para compreender os objetivos.

    No primeiro capitulo é apresentado uma introdução sobre o projeto,

    fazendo uma descrição geral do trabalho, juntamente com a justificativa,

    identificando o problema, os objetivos gerais e específicos a serem alcançados. O

    terceiro capitulo apresenta a fundamentação teórica onde são abordados conceitos

    básicos sobre arduino, android, eletrônica e programação.

    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 capítulo apresenta as conclusões finaisdesse trabalho.

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    18/71

    13

    2 FUNDAMENTAÇÃO TEÓRICA

    Para a elucidação dos conhecimentos necessários para a realizaçãodeste trabalho foram feitos estudos fundamentados na definição sobre arduino,

    estrutura do arduino, modelos de arduino, linguagem de programação para arduino,

    ambiente de desenvolvimento para arduino, história do sistema operacional android,

    arquitetura do sistema operacional android, linguagem de programação java e

    ambiente de desenvolvimento de aplicativos android.

    2.1 Defin ição sobre arduino 

    Observa-se uma predisposição cada vez maior da inserção de inteligência

    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 são dispositivos que possuem memória,

    processador e interface de entrada e saída, sendo responsáveis em gerar

    inteligência computacional a equipamentos (EMBEDDED, 2015).

    O micro controlador é o principal componente do sistema embarcado, pois

    segundo a ROBÓTICA LIVRE (2015), são circuitos integrados programáveis que

    possui arquitetura de um microcomputador, porém baseado numa arquitetura RISC

    (Reduced Instruction Set Computing), ou seja conjunto de instruções de computação

    reduzida.

     Arduino é um micro controlador de computação física com código aberto

    baseado em uma simples placa com entradas e saídas. Foi desenvolvida na Itália

    com intuito educacional. Também 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

    programação é desenvolvida sobre uma biblioteca que simplifica a escrita da

    programação em C/C++ (ARDUINO, 2015).

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    19/71

    14

    O hardware  é livre, ou seja, está disponível para todos, legalmente,

    baixarem o esquemático da internet e fazer a sua própria 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

    programação desses componentes ficam alocados em um pacote chamado easy-to-

    use (fácil de utilizar), oferecendo grande vantagem a professores, estudantes e até

    pessoas que não possuem conhecimentos, mas que são interessados em sistemas

    eletrônicos (ARDUINO, 2015). Outro ponto forte do arduino  é em relação ao fácil

    acesso, pois são relativamente baratos em comparação com outras plataformas de

    microcontroladores (ARDUINO BR, 2015).

    2.2 Estrutura do arduino

    Segundo Gomes e Tavares (2015), o arduino consiste, por definição, 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 expõe os pinos de entrada e saída em um

    encaixe padrão para que se possa conectar circuitos externos que agregam novas

    funcionalidades.

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    20/71

    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 família AVR com arquitetura RISC avançada e com

    encapsulamento DIP28. Ele conta com 32 KB de Flash (mas 512 Bytes são

    utilizados pro bootloader ), 2 KB de RAM e 1 KB de EEPROM. Pode operar a até 20

    MHz, porém 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 conexão USB e com o micro controlador

    ATMEL que faz a comunicação com o computador (ARDUINO, 2015).

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    21/71

    16

    2.2.3 Conector DC

    A alimentação externa é feita através do conector DC com regulador detensão, onde o valor de tensão da fonte externa deve estar entre os limites 6 V a 20

    V (ARDUINO, 2015).

    2.2.4 Conectores de Alimentação

    O arduino  pode ser alimentado pela conexão USB ou com uma fonte

    externa. A entrada de alimentação é selecionada automaticamente. A alimentação

    externa (não USB) pode vir de um adaptador AC-DC ou de uma bateria. O

    adaptador pode ser conectado através de um plug  de 2,1 milímetros de centro

    positivo, no conector de energia da placa. A alimentação é feita através de uma

    bateria ou por meio de pinos (ARDUINO, 2015). Os pinos são os seguintes:

      IOREF:  Fornece uma tensão de referência para que shields  possam

    selecionar o tipo de interface apropriada, dessa forma shields que funcionam

    com a placas arduino que são 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 tensão de 3,3 V. para alimentação de shield  e módulos

    externos. Corrente máxima de 50 mA (ARDUINO, 2015);

      5 V: Fornece tensão de 5 V para alimentação de shields e circuitos externos.

      GND: Estes dois pinos são conhecidos como terra, responsáveis por fechar o

    circuito (ARDUINO, 2015);

      VIN : Pino para alimentar a placa através de shield  ou bateria externa.

    Quando a placa é alimentada através do conector, a tensão da fonte estará

    nesse pino (ARDUINO, 2015).

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    22/71

    17

    2.2.5 Entradas e Saídas

    A placa arduino  possui pinos de entrada e saídas digitais, assim comopinos de entradas e saídas analógicas (ARDUINO, 2015).

    2.2.6 Sensores e Shield

    A placa arduino pode ser incrementado com acessórios inteligentes,

    denominados sensores ou shields. Esses acessórios ampliam as funcionalidades da

    placa, assim se adaptando a vários projetos diferentes (BR-ARDUINO, 2015).

    2.2.6.1 Sensor de Ultrassom

    Sensores de ultrassom são sensores que utilizam ondas sonoras paramedir a distância entre o sensor e algum objeto. São uma boa opção para medir

    distâncias sem entrar em contato direto com o objeto e são largamente utilizados na

    robótica e também na indústria (ROBÓTICA LIVRE, 2015).

    2.2.6.2 Sensor de Luminosidade LDR

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

    Dependent Resistors, também conhecidos como foto-resistores e células de sulfeto

    de cádmio são sensores do tipo foto condutivo. Neles, a resistência apresentada à

    passagem de uma corrente elétrica depende da quantidade de luz que incide numa

    superfície sensível à base de Sulfeto de Cádmio ou CdS. Resumindo o LDR é um

    componente eletrônico, sensível a luz, que tem por finalidade limitar a corrente

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    23/71

    18

    elétrica que passa sobre ele, como um resistor comum, só que o grande diferencial é

    que ele é um resistor variável que interage com a luz.

    2.2.6.3 Sensor Bluetooth

    “Bluetooth é o nome dado a um protocolo de rádio, baseado em saltos em

    frequência de curto alcance, que visa substituir os cabos de conexão existentes por

    uma conexão 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, além 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 máxima suportada por cada L293D é de 600 mA, com picos de 1.2A.

    2.3 Modelos de arduino

    Existem várias placas arduino no mercado e sendo possível até mesmoconstruí-las domesticamente. Posteriormente será apresentado a linha de evolução

    da plataforma arduino uno, a qual será utilizada neste trabalho (ARDUINO 2015).

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    24/71

    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 versão tinha uma pinagem

    incorreta para o conector USB (ARDUINO 2015).

    2.3.2 Arduino Extreme

    O  Arduino Extreme  possui uma maior quantidade de superfície de

    ligações de componentes do que as placas  Arduino  USB e vem com pinagem

    headers do sexo feminino. Ele também tem RX e TX LEDs que indicam quando os

    dados estão 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 também tem um built-in LED no

    pino 13 (que pode interferir com a comunicação SPI) (ARDUINO 2015).

    2.3.4 Arduino Diecimila

    A principal mudança no  Arduino Diecimila é que ele pode ser reposto a

    partir do computador, sem a necessidade de pressionar fisicamente o botão de reset

    na placa. O Diecimila usa um regulador de tensão de abandono baixa, o que reduz o

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    25/71

    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 alimentação

    adequada (USB ou fonte de alimentação externa), eliminando a necessidade do

     jumper  de seleção de energia (ARDUINO 2015).

    2.3.6 Arduino Uno

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

    lançamento do  Arduino  1.0. O Uno  e versão 1.0 são as versões de referência do

    arduino. O Uno é o mais recente de uma série de placas Arduino USB. Esta é a mais

    recente revisão da placa USB básico  Arduino. Ele se conecta ao computador com

    um cabo USB padrão e contém tudo que é necessário para programar e usar a

    placa. Ele pode ser estendido com uma variedade de shields, extensões

    personalizadas de placas com características específicas (ARDUINO 2015).

    2.4 Lógica e Programação

    “O processo de definir as instruções que o computador deve executar é

    conhecido como programação” (JAMSA, 1998). Toda linguagem de programação é

    construída a partir das expressões, declarações, bloco de declarações e bloco de

    funções (PURDUM, 2012).

    Algoritmo é o procedimento para resolver um problema, definido por uma

    sequência finita e ordenada de etapas executáveis (PEREIRA, 2010).

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    26/71

    21

    Para descrever as etapas que precisam ser efetuadas para que o

    programa execute as tarefas que lhe são designadas utiliza-se algoritmos

    (TECMUNDO, 2015).

    Os fluxogramas apresentam os algoritmos de forma gráfica. A

    representação de algoritmo por meio de fluxograma possuem uma série de

    vantagens sendo a mais importante a facilidade gerada para a compreensão do

    funcionamento do algoritmo, mesmo para os leigos (MEDINA e FERTIG, 2006).

    Num fluxograma as etapas da programação são representados por

    símbolos e a ordem de execução dessas etapas são representadas por setas

    conectando os símbolos. Cada símbolo pode possuir uma anotação indicando sua

    finalidade específica (PEREIRA, 2010).

    FIGURA 3: Principais simbolos usados em fluxogramas

    Fonte: Pereira, 2010

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    27/71

    22

    2.4.1 Expressões

    “Conjunto de variáveis e constantes numéricas que se relacionam por meio deoperadores compondo uma fórmula que, uma vez avaliada, resulta em um valor”

    (SOUZA, 2013). Variável é uma posição de memória cujo conteúdo pode ser

    modificado durante a execução de um programa (ACTIVE INFO, 2015). A referência

    a uma variável no programa é feita através do seu identificador; os valores que

    podem ser nela armazenados dependem do seu tipo de dado (EVARISTO, 2001).

    Constante numérica é uma posição na memória que armazena um valor que não é

    alterado. Os operadores são ações matemáticas ou lógicas que estão presentes nomínimo uma ou várias vezes na expressão (PURDUM, 2012). Segue exemplos:

      A + b (variável, operador matemático, variável);

      5 + b - 3 (constante numérica, operador matemático, variável, operador

    matemático, constante numérica);

      a > d > 4 (variável, operador lógico, variável, operador lógico, constante

    numérica);

      w > c + 5 (variável, operador lógico, variável, operador lógico, constantenumérica).

    2.4.2 Declarações

    São valores ou expressões atribuídos a uma determinada variável. Utiliza-

    se o símbolo de igualdade ( = ) para representar o operador de atribuição

    (PURDUM, 2012). Possui a função de armazenamento de dados gerados pelo

    próprio programa, alterações no conteúdo de variáveis e determinações de

    resultados finais de um processamento são realizados através do comando de

    declaração, que deve ser escrito com a seguinte sintaxe (EVARISTO, 2001).

      Identificador de variável = expressão.

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    28/71

    23

    2.4.3 Bloco de declarações

    São aglomerados de declarações agrupadas para serem vistas pelocompilador como se fossem uma única instrução (KUTTI, 2002).

    Os blocos de declarações começam com uma chave de abertura ( { ) e

    finaliza com uma chave de fechamento ( } ). Todas as declarações entre a abertura e

    fechamento de chaves formam o corpo do bloco de declaração (PURDUM, 2012).

    2.4.4 Bloco de funções

    Desde que as primeiras linguagens de programação foram desenvolvidas,

    houve um considerável avanço em termos de facilitação para que os programadores

    pudessem escrever mais rapidamente o programa (SOUZA, 2013). Todo programa é

    basicamente um conjunto de funções. Uma função tem um nome e argumentos

    associados, e é composta por declarações de variáveis e blocos de comandos,

    incluindo possivelmente chamadas a outras funções (KUTTI, 2002).

    Um bloco de função é um conjunto de funções que é projetado para

    realizar as tarefas da programação. Normalmente são desenvolvidos para criar

    "caixas-pretas", em que os detalhes da escrita são enterrados na função. (PURDUM,

    2012).

    2.4.5 Linguagem de programação 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 também influenciou a linguagem B que por sua vez também contribuiu para

    a linguagem C (JAMSA e KLANDER, 1998).

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    29/71

    24

    Considerada como uma linguagem de médio nível pois combina

    elementos de alto nível com a funcionalidade das linguagens de baixo nível. A

    característica principal da linguagem é ser estruturada, ou seja,

    compartimentalização do código e dos dados (JAMSA e KLANDER, 1998).

    Um programa típico no arduino consiste basicamente em duas funções, o

    “void setup()”  e a função “void loop()”, também existem inúmeras outras funções que

    executam a leitura/escrita dos pinos digitais e analógicos (EVANS, 2007).

    A função setup marca o ponto de partida para todos os programas em C

    para arduino. Enquanto o programação C padrão inicia a execução do programa

    pela função denominada main()  já na programação C para arduino  utiliza-se o

    setup() (PURDUM, 2012). No arduino a função setup() é chamada no momento emque o programa começa. É usada para inicializar variáveis, definir os modos de

    entrada ou saída dos pinos e indicar bibliotecas. Essa função é executada somente

    uma vez, quando o arduino é iniciado ou quando é reinicializado (ARDUINO, 2015).

    Se for preciso usar o setup() uma segunda vez, então será necessário

    pressionar o botão de reset na placa arduino. O botão reset suspende a execução

    atual do programa e o reinicia chamando o setup() (PURDUM, 2012).

    A função loop() faz precisamente o que seu nome indica: ela repete-secontinuamente permitindo que o programa funcione dinamicamente. É utilizada para

    controlar de forma ativa a placa (ARDUINO, 2015).

    2.4.6 Linguagem de programação 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 programação orientada a objetos e portável

    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 código independente de máquina chamado byte-code.

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    30/71

    25

    No momento da execução este bytecode  é interpretado por uma máquina virtual

    instalada no dispositivo (SCHILDT e SKRIEN, 2013).

    Aplicação é o software mais geral escrito na linguagem Java. Não requer

    um browser para sua execução (CAELUM, 2015).

    O sistema operacional android não possui uma máquina virtual java (JVM)

    e sim uma máquina virtual chamada Dalvik  que é otimizada para a execução de

    dispositivos móveis (LECHETA, 2013).

    No android  os bytecodes  são convertidos para o formato Dalvik

    Executable  (.dex), em seguida os demais recursos são compactados chamado

     Android Package File (.apk), que representa a aplicação final (LECHETA, 2013).

    2.4.6.1 Activi ties do java andro id

    Forma visível e proeminente de uma aplicação android. Uma activity 

    apresenta os elementos da interface com o usuário. Uma aplicação pode conter uma

    ou varias activities. No entanto elas trabalham juntas para gerar uma experiência

    coesa ao usuário (ANDROID, 2015).

    2.4.6.2 Services do java android

    Entende-se como service a parte da aplicação que não possui interação

    com o usuário (IBM, 2015). Um service  é um componente que roda em segundoplano para executar operações de longa execução ou executar trabalhos para

    processos remotos (ANDROID, 2015).

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    31/71

    26

    2.4.6.3 Content providers do java andro id

    O Content Provider   é o mecanismo android  para a abstração doarmazenamento de dados, agindo como servidor de banco de dados (IBM, 2015).

    Ele gera um conjunto compartilhado de dados de aplicativos (ANDROID, 2015). As

    operações para ler e gravar conteúdo de um armazenamento de dados específico

    deve ser passado através de um Content Provider  apropriado, em vez de acessar

    um arquivo ou um banco de dados diretamente (IBM, 2015). Através do Content

    Provider , outros aplicativos podem consultar ou mesmo modificar os dados, caso

    possuam as informações adequadas (ANDROID, 2015).

    2.4.6.4 Broadcast receivers do java android

    O broadcast receiver  é um componente da aplicação que recebe pedido

    para processar intentos, normalmente não possui interação com o usuário (IBM,

    2015). Possui a função de responder às mensagens de transmissão de todo o

    sistema. Podem criar uma notificação visível ao usuário para informar um evento de

    transmissão (ANDROID, 2015).

    2.5 Ambiente de desenvolvimento para arduino

    Originário do inglês Integrated Development Environment  (IDE), é um

    software que reúne características 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 código aberto e faz com que seja fácil de escrever

    instruções 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 código aberto (ARDUINO, 2015).

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    32/71

    27

    O Conjunto de instruções para arduino  é conhecido como sketch. Os

    sketchs  criados são salvos pela IDE com extensão .pde (WARREN, ADAMS e

    MOLLE, 2011).

    A parte superior da IDE possui uma barra de ferramenta com ícones para

    tarefas comuns. Nesta barra estão os botões de compilar, parar, novo, abrir, salvar,

    enviar e monitor (ARDUINO,2015).

    O ambiente arduino  pode ser alargado através da utilização de

    bibliotecas, assim como a maioria das plataformas de programação. Bibliotecas

    oferecem funcionalidade extra para uso dos sketches. Um número de bibliotecas já é

    natural da IDE, mas pode-se fazer o download  ou criar a própria 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 milhões de dólares para o

    desenvolvimento de uma IDE de código 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 gráfica. (IBM, 2015).

    Uma das grandes propriedades do Eclipse é o desenvolvimento baseado

    em plugins. O projeto Eclipse foi e continua sendo um projeto tão grandioso que em janeiro de 2004 foi criado uma fundação sem fins lucrativos com membros que

    fazem o suporte do projeto Eclipse, a The Eclipse Fundation, e fornece em geral

    quatro serviços à comunidade Eclipse: IT (Information Technology) Infrastructure  -

    que fornece aos usuários e projetistas do Eclipse uma tecnologia evolutiva e segura;

    Intellectual Property Management  - que coordena a propriedade intelectual do

    software, gerencia os serviços e a comercialização do mesmo; Development

    Community Support  - que contribui de maneira direta com melhorias nodesenvolvimento do software; e Ecosystem Development  - onde a Fundação

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    33/71

    28

    promove reuniões, conferências 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 vários tipos de linguagem e

    que aceita a instalação de plugins para emular o desenvolvimento da plataforma.

    Objetivo do Eclipse é desenvolver o mais rápido possível através do

    arrastar-e-soltar do mouse, onde montanhas de código são 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, cabeçalhos e bibliotecas que possibilita aos programadores

    desenvolverem aplicações para sistema android, IOS, Iphone  também 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 contém ferramentas e

    códigos para desenvolver aplicações nativas, o que significa que a SDK permite o

    desenvolvimento, instalação, execução e testes das aplicações no simulador android 

    e também nos aparelhos. As duas forças que movem as aplicações nativas são o

    Objective-C.

    Segundo Lecheta (2013), o android  SDK e o software  utilizado para

    desenvolver aplicações no android  que tem um emulador para simular o celular.

    Ferramentas utilitárias e uma API completa para a linguagem java. Com todas as

    classes necessárias para desenvolver aplicações.

    2.7 História 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

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    34/71

    29

    código livre para alterações. 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 aplicações, gratuitas.

    O primeiro aparelho com o sistema android foi o HTC Dream lançado em

    22 de outubro de 2008 com o android  1.0 nativo, sua primeira atualização foi

    lançada apenas para o aparelho T-Mobile G1 em 2009 aos poucos o android foi se

    aprimorando e ganhando novas versões e ganhando cada vez mais mercado

    (ANDROID, 2015). O sistema android  tem atualmente 9 versões que são 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 versão 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 manutenção e desenvolvimento do android. Muitos fabricantes de

    dispositivos trouxeram ao mercado de dispositivos rodando o android, e eles são

    disponíveis ao redor do mundo. O objetivo principal foi construir uma plataforma de

    software  excelente para usuários de todos os dias. Uma série de empresas juntamente com engenheiros desempenharam para atingir esse objetivo, e o

    resultado foi uma produção total de produtos de consumo de qualidade, cuja fonte é

    aberta para customização e portabilidade (LECHETA, 2013).

    2.8 Arquitetura do android

    A arquitetura do sistema operacional android  e dividida em camadas,

    onde cada parte e responsável por gerenciar os seus respectivos processos.

    (LECHETA, 2013). Sua arquitetura e dívida em várias camadas que são vários

    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 é responsável por serviços de mais baixo

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    35/71

    30

    nível da plataforma, como gerenciamento de memória e processos, segurança, etc.

    (TOSIN, 2011).

    Na camada Libraries estão as bibliotecas nativas escritas em C/C++ que

    fazem parte da plataforma. Estão nesta camada APIs como o OpenGL ES (para

    renderização 3D), SQLite (gerenciador de bancos de dados) e suporte a diversos

    formatos de áudio e vídeo. (TOSIN, 2011).

    A camada  Android  Runtime  dá condições para que as aplicações

    baseadas na plataforma sejam executadas. Um dos componentes desta camada são

    as core libraries, que disponibilizam uma API Java utilizada para programação

    (grande parte das funcionalidades encontradas no Java SE estão disponíveis para o

     Android). Já o outro componente é a Dalvik Virtual Machine, que é uma máquinavirtual para suporte à execução de aplicações. (ANDROID, 2011).

    Na camada  Application Framework  ficam as APIs do android  que são

    normalmente utilizadas pelas aplicações que executam sobre a plataforma. Os

    gerenciadores de serviços de telefonia, localização e notificação são alguns

    exemplos do que este framework disponibiliza. (TOSIN, 2011).

    Por fim, a camada  Applications  representa as aplicações que executam

    sobre a plataforma. Elas podem ser tanto aplicações nativas - como o gerenciadorde contatos, navegador, calendário, etc. - como aplicações criadas por terceiros.

    Aliás, para o android  não existe distinção entre aplicações nativas e aplicações

    desenvolvidas por outras pessoas, e é esta característica que garante a ela o alto

    grau de flexibilidade e extensibilidade da plataforma. (ANDROID, 2011).

    A arquitetura web mobile android consiste basicamente em uma aplicação

    web (hospedada em um servidor) que será acessada através do navegador

    (browser ) dos dispositivos móveis. Seguindo esta abordagem, há as arquiteturasdistribuída e centralizada (BUDEL, BARBARA e MOLOSS, 2011).

    Em seguida a arquitetura nativa consiste em aplicações elaboradas para

    executar no ambiente do dispositivo móvel. Sendo assim precisam respeitar as

    regras desse ambiente. Executando nativamente, dentro do dispositivo, as

    aplicações conseguem acessar todos os recursos desses aparelhos, como por

    exemplo: GPS, câmera, acelerômetro, lista de contatos, etc. Consequentemente

    abre-se um leque muito grande de possibilidades para o desenvolvimento de

    aplicações, muito mais ricos e dentro desta linha são abordadas as arquiteturas para

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    36/71

    31

    os ambientes dos sistemas operacionais android e iOS. Também é apresentada a

    arquitetura PhoneGap, uma alternativa para simplificar o desenvolvimento nesses

    ambientes (BUDEL, BARBARA e MOLOSS, 2011).

    O termo arquitetura híbrida propõem 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 não 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).

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    37/71

    32

    3 TRABALHO REALIZADO

    3.1 Visão Geral do Estudo de Caso

    O estudo realizado tem por finalidade estudar a interação da placa

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

    3.2 Ferramentas Utilizadas

    As ferramentas utilizadas têm a função de construir o veículo em

    miniatura e produzir o aplicativo para dispositivo android. 

    As ferramentas utilizadas são: arduino  uno R3, sensor ultrassom HC-

    SRO4, 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 previamentetestado e funcionando corretamente.

    3.3 Missão do Estudo

    Analisar os processos executados para a construção de um veículo em

    miniatura utilizando arduino. Desenvolver aplicativo android que possa interagir com

    o mecanismo montado.

    3.4 Limites e Dificuldades

    Os equipamentos utilizados possuem limitações observadas durante todoo processo. O bluetooth usado para a comunicação possui um alcance muito curto,

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    38/71

    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 acústicos podem atrapalhar o funcionamento do sensor.

    Dificuldade de encontrar o material para o desenvolvimento do trabalho

    na região, sendo necessário fazer o pedido para fornecedores distantes ou

    reaproveitando peças de aparelhos inutilizados.

    A bateria de alimentação, 9 volts, utilizado para fornecer energia ao

    veiculo em miniatura possui curta duração, gerando alimentação para o correto

    funcionamento por um curto período de tempo.

    3.5 Avaliação do dispositivo arduino e da placa protoboard 

    Utilizando da linguagem de programação C no Arduino Sketch configurou-

    se 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 : Própria

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    39/71

    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 : Própria

    3.6 Configuração 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 saída do sinal), a porta digital 13

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    40/71

    35

    para o echo (onde ocorrerá a leitura do sinal) e por fim o calculo para transformar o

    sinal em centímetro que. O resultado final do calculo foi impresso pela placa. Em

    seguida modificou-se a programação para imprimir somente valores menores que

    20cm.

    FIGURA 6: Fluxograma que descreve o algoritmo do ultrassom

    Fonte : Própria

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    41/71

    36

    FIGURA 7: Fluxograma que descreve o algoritmo do ultrassom alterado

    Fonte : Própria

    Para desenvolver o calculo de transformação do sinal para distancia,

    primeiro calculou a velocidade do som no ar em centímetros que foi de 34000 cm/s.

    Depois calculou-se quantos milissegundos o som leva para percorrer um centímetro

    chegando ao resultado de 29,4 ms, então 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.

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    42/71

    37

    FIGURA 8: Calculo para encontrar o valor necessario para convesão das ondas sonoras em

    centímetro

    Fonte : Própria

    Em seguida conectou-se o sensor na placa protoboard, com auxílio 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 analógico da placa arduino, conforme figura 9.

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    43/71

    38

    FIGURA 9: Montagem do circuito para o sensor de ultrassom

    Fonte : Própria

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

    do obstáculo.

    Após 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 através da placa arduino com o

    auxílio de jumpers, que também conectou o 0 analógico em série com o LDR

    seguido por um resistor de 10K, figura 10. Configurou-se a programação da placa

    arduino para o LDR conectar a porta analógica 0 e informar quando o ambiente está

    claro ou escuro. Essa informação é obtida devido aos valores da resistência serem

    armazenados em uma variável e se o valor for maior que 800 ohms indicará que o

    ambiente está escuro, caso contrário estará claro, como demonstra a figura 11.

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    44/71

    39

    FIGURA 10: Montagem do circuito para o sensor de LDR

    Fonte : Própria

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    45/71

    40

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

    Fonte : Própria

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

    procedimentos descritos anteriormente, figura 12. Na programação, cada uma das

    instruções anteriores foram transformadas em funções para melhor organizar o

    código.

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    46/71

    41

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

    Fonte : Própria

    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.

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    47/71

    42

    FIGURA 13: Montagem do circuito para o sensor bluetooth

    Fonte : Própria

    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 identificação no momento da montagem do sistema completo

    na placa protoboard utilizou-se jumpers de cores iguais para funções iguais.

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    48/71

    43

    FIGURA 14: Montagem dos motores na shield motor

    Fonte : Própria

    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.

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    49/71

    44

    FIGURA 15: Diagrama que descreve todas interações envolvendo o arduino

    Fonte : Própria

    3.8 Montagem do Veiculo em Miniatura

    Para a montagem do veículo em miniatura foi utilizado a estrutura de com

    carrinho de brinquedo. A estrutura já estava toda montada sendo necessáriosomente realizar algumas modificações 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 movimentação do veículo 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.

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    50/71

    45

    FIGURA 16: Montagem da dianteira do veiculo

    Fonte : Própria

    FIGURA 17: Montagem da dianteira do veiculo finalizado

    Fonte : Própria

    Terminando a parte frontal deu inicio a parte traseira do veiculo. Utilizou-

    se 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 trás, figura 19.

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    51/71

    46

    FIGURA 18: Eixo de rodas com engrenagem

    Fonte : Própria

    FIGURA 19: Montagem da parte traseira finalizada

    Fonte : Própria

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

    superfície do veiculo construído. Devido ao centro do veículo 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 veículo. Foram seguidas os mesmos

    processos de montagem anteriormente descritos.

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    52/71

    47

    FIGURA 20: Estrutura de veiculo com arduino , visão aérea

    Fonte : Própria

    FIGURA 21: Estrutura de veiculo com arduino , visão dianteira

    Fonte : Própria

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    53/71

    48

    FIGURA 22: Estrutura de veiculo com arduino , visão traseira

    Fonte : Própria

    FIGURA 23: Estrutura de veiculo com arduino , visão lateral direita

    Fonte : Própria

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    54/71

    49

    FIGURA 24: Estrutura de veiculo com arduino , visão lateral esquerda

    Fonte : Própria

    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 eaplicativo. O aplicativo presente no Amarino foi utilizado para localizar, conectar e

    identificar o ID do bluetooth. Já as bibliotecas, uma foi utilizada na programação do

    arduino e a outra na programação do aplicativo android.

    O ID do bluetooth é adicionado ao código do aplicativo para fazer a

    comunicação entre o android e o arduino.

    Para receber as informações captadas pelos sensores, criou-se duas

    caixas de texto para receber as informações e assim exibí-las.

    Em seguida configurou-se quatro botões para o controle dos motores do

    veículo. Os botões de direita e esquerda enviam comandos para o motor de passo

    mover para a direita e esquerda. Os botões 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.

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    55/71

    50

    FIGURA 25: Tela do aplicativo desenvolvido

    Fonte : Própria

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    56/71

    51

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

    Fonte : Própria

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    57/71

    52

    4 RESULTADOS OBTIDOS

    Os resultados obtidos neste trabalho serão mostrados neste capítuloestão todos vinculados aos procedimentos descritos no capítulo anterior.

    Ao realizar a comparação entre o led ligado diretamente a placa arduino e

    ao led ligado a protoboard, foi observado que o led se comporta perfeitamente

    conforme a programação nas duas situações, não havendo nenhuma diferença entre

    os dois testes. No entanto ao utilizar a placa protoboard pode-se nota a sua

    importância para serem ligados mais de um dispositivo.

    FIGURA 27: Arduino com led

    Fonte : Própria

    FIGURA 28: Funcionamento do led na protoboard com o arduinoFonte : Própria

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    58/71

    53

    Observou-se muita precisão nos resultados obtidos com os testes

    utilizando o sensor de ultrassom. Foi trabalhado com valores inteiros na medição das

    distâncias e foi conferido que nas três medições o sensor retornou valores precisos.

    FIGURA 29: Funcionamento do ultrassom na distancia de 10 cm

    Fonte : Própria

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    59/71

    54

    FIGURA 30: Ampliação dos resultados da figura 29

    Fonte : Própria

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    60/71

    55

    FIGURA 31: Funcionamento do ultrassom na distancia de 5 cm

    Fonte : Própria

    FIGURA 32: Funcionamento do ultrassom na distancia de 12 cm

    Fonte : Própria

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    61/71

    56

    FIGURA 33: Ampliação da figura 32

    Fonte : Própria

    O experimento com o sensor LDR também demonstrou resultados

    positivos com a variação de luminosidade com bastante exatidão.

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    62/71

    57

    FIGURA 34: Estrutura do circuito do LDR

    Fonte : Própria

    FIGURA 35: Funcionamento do LDR em ambiente claro

    Fonte : Própria

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    63/71

    58

    FIGURA 36: Funcionamento do LDR em ambiente escuro

    Fonte : Própria 

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    64/71

    59

    No momento em que os dois sensores forma montados juntos, pode-se

    perceber que não houve interferência entre os sensores e que o desempenho dos

    sensores continuaram o mesmo.

    FIGURA 37: Estrutura do circuito dos dois sensores juntos

    Fonte : Própria

    FIGURA 38: Funcionamento dos dois sensores em conjunto

    Fonte : Própria

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    65/71

    60

    FIGURA 39: Resultados da figura 39 ampliada

    Fonte : Própria

    Finalmente depois de toda a estrutura do arduino, mecânica e do

    aplicativo prontos, observou-se que o bluetooth  é um excelente meio de

    comunicação entre a placa arduino e o aplicativo android. Mais uma vez os valores

    obtidos pelos sensores foram colhidos com exatidão e enviados sem percas para o

    aplicativo, utilizando o bluetooth.

    A movimentação também responderam perfeitamente aos comandos do

    aplicativo. A estrutura dianteira do veiculo comandava o direcionamento esquerda e

    direita, sendo necessário manter o botão pressionado para realizar a conversão,

    caso contrário as rodas voltam para o estado de repouso. A parte traseira estava

    responsável pelo tracionamento do veiculo, mantendo-se pressionado o botão

    superior o veículo movia-se para frente e mantendo-se pressionado o botão inferior o

    veiculo movia-se para trás.

    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. Também 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.

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    66/71

    61

    5 CONCLUSÃO

    Esse trabalho apresentou por meio de uma pesquisa prática a análise dautilização do aplicativo android para controlar um veículo 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 informação entre as duas tecnologias.

    Usualmente as funções dos smartphones  estão relacionados aos seus

    dispositivos. O bluetooth é um desses dispositivos que atualmente está presente na

    maioria dos smartphones, principalmente os portadores do sistema operacionalandroid. Por realizar a comunicação entre dispositivos através de ondas de rádios e

    com baixo consumo de energia escolheu-se o bluetooth como o intermediador entre

    o android e o arduino, apesar de possuir limitação de distancia de 5 metros de raio.

    O uso da amarino  teve uma grande importância no trabalho para

    possibilitar uma troca de informação entre as tecnologias utilizadas por intermédio do

    bluetooth. O uso do aplicativo amarino possibilitou identificar o bluetooth  usado no

    trabalho as bibliotecas inseridas aos códigos de programação do arduino  e doandroid, possibilitaram a troca de informação entre eles.

    Ao iniciar a pesquisa com a análise separa de cada componente utilizado,

    possibilitou um melhor aprofundamento sobre cada peça. Pode-se também

    desenvolver os códigos de programação com maior especificação. A forma de

    programação utilizada foi estruturada e utilizou-se de recursos da linguagem de

    programação C.

    O primeiro teste com a placa arduino e o led mostrou a importância do

    uso da protoboard  que tornou-se a base para a montagem de todos os testes

    posteriores. Vale ressaltar a importância do rigor nos métodos de montagem dos

    sensores para a obtenção de resultados precisos. A padronização de cores dos

     jumpers utilizados facilitou-se para identificar as conexões feitas na protoboard entre

    o arduino e os demais componentes.

    Para obter resultados satisfatórios o processo de montagem mostrou-se

    muito importante para todo o trabalho. Fez-se necessário seguir os processos

    rigorosamente e seguindo padronizações para fazer as ligações com os jumpers. A

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    67/71

    62

    ligação de jumpers iguais para funções iguais facilita a montagem e o diagnóstico de

    problemas e erros.

    A dificuldade para encontrar as peças necessárias na montagem do

    veículos em miniaturas possibilitou-se a reutilização de uma estrutura já existente.

    Essa reutilização gerou uma mudança no planejamento inicial na montagem do

    veículo. Em primeira instância os dois motores seriam instalados cada um em uma

    roda traseira do veiculo e as rodas dianteiras serem livres para facilitar as

    conversões para direita e para a esquerda. A movimentação do veiculo era baseada

    na potencia e direcionamento de rotação individual de cada motor. Não havendo a

    possibilidade da montagem dessa estrutura alterou-se para um motor se conectar

    com as rodas da frente e serem responsáveis pelas conversões e o segundo motorfoi ligado as rodas traseiras com a finalidade de tracionar o veiculo para frente e para

    trás.

    O aplicativo android desenvolvido, possui somente uma tela. Essa tela é

    auto explicativa. Os botões de movimentação conseguem enviar perfeitamente as

    instruções para o deslocamento do veiculo em miniatura. As áreas para exibição dos

    alertas estão em destaque para melhor visualização.

    Uma outra dificuldade apresentada por esse trabalho, foi o processo dealimentação de todo o mecanismo montado. Foi utilizada uma bateria de 9 volts para

    a alimentação, 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 responsável pela direção do veículo já não possuía força e em seguida

    somente possuindo energia para manter o dispositivo de bluetooth. Estudos futuros

    podem analisar métodos para manter o veículo em miniatura em funcionamento por

    mais tempo.Este trabalho contribui com o meio de pesquisa abrindo caminho para

    novos trabalhos relacionados, pois a combinação arduino  e android  possibilita a

    criação 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 próximos estudos o veiculo

    em miniatura pode ser aperfeiçoado com outros sensores ou ate mesmo sendo

    melhorado para explorar locais perigosos ou inacessíveis. Também para estudos

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    68/71

    63

    futuros podem ser experimentados outras vias de comunicação entre o android e o

    arduino para poder ter o controle a maiores distancias.

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    69/71

    64

    REFERÊNCIAS

    ACTIVE INFO. Curso de Lógica de Programação. Disponível em:. Acesso em: 22abr. 2015.

    ANDROID, Site Oficial. Application Fundamentals. Disponível em: <http://developer.android.com/guide/components/fundamentals.html>. Acesso em: 05mai. 2015.

    ANDROID, Site Oficial. História do Android. .Acesso em: 23 abr. 2015.

    ARDUINO, Site Oficial. Disponível em:. Acesso em: 19 abr. 2015.

    ARDUINO, Site Oficial. Disponível em:. Acesso em: 19 abr. 2015.

    ARDUINO. Site Oficial. Disponível em: < http://www.arduino.cc/en/Main/Products >.Acesso em: 19 abr. 2015.

    ARDUINO. Site Oficial. Disponível em: < http://www.arduino.cc/en/main/Software >.

    Acesso em: 19 abr. 2015.ARDUINO. Site Oficial. Disponível em: . Acesso em: 19 abr.2015.

    BR-ARDUINO. Do LED ao Arduino: aprendendo eletrônica no século 21. Disponívelem: Acesso em: 10 abr. 2015.

    BUDEL, Cleverson; BARBARA, Giuliano; MOLOSS, Ramon. Arquiteturas paraaplicações móveis. Paraná: Celepar, 2011.

    CAELUM. Eclipse IDE. Disponível em: . Acesso em: 20 abr. 2015.

    CAELUM. O que é Java. Disponível em: < http://www.caelum.com.br/apostila-java-orientacao-objetos/o-que-e-java/>. Acesso em: 20 abr. 2015.

    CUNHA, Alessandro F. O que são sistemas embarcados?. Disponível em: Acessoem: 10 abr. 2015.

    DEITEL, Paul; DEITEL, Harvey . Java – como programar. Bookman, 2003.

    ECLIPSE. Site Oficial. Disponível em: . Acesso 10 abr. 2015.

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    70/71

    65

    EMBEDDED. O que é um sistema embarcado. Disponível em:. 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. BookExpress. 2001.

    GOMES, Evandro Luís Brandão e TAVARES Luís Antônio. Uma solução comArduino para controlar e monitorar processos industriais. Disponível em: <http://www.inatel.br/pos/index.php/downloads/doc_download/26-luis-tavares-arduino> Acesso em: 26 abr. 2015.

    GOOGLE TRENDS. Site Oficial. Disponível em:. Acesso em: 11 abr. 2015.

    IBM, Site Oficial. Desenvolver Aplicações Android com o Eclipse. Disponível em: <https://www.ibm.com/developerworks/br/library/os-eclipse-android/>. Acesso em: 05mai. 2015.

    INSTITUTO NEWTON C BRAGA. Como funcionam os sensores fotoelétricos.Disponível em Acesso: 03 nov. 2015.

    JAMSA, Kris; KLANDER, Lars. Programando em C/C++ - A bíblia. São 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 aplicações para dispositivosmóveis com o Android SDK. São Paulo: Novatec, 2013.

    MAIA, Felipe. A história de Andy Rubin, a mente por trás do Android. 2013.

    Disponível em: . Acesso em: 23 abr. 2015.

    MEDINA, Marco e FERTIG, Cristina. Algoritmos e Programação: Teoria e Prática.São Paulo: Novatec Editora, 2006

    MENDES, Mariana Ribeiro; GARBAZZA, Itagildo Edmar; TERRA, Daniela Costa.Desenvolvimento híbrido versus desenvolvimento nativo de aplicativos móveis.Disponível em: .Acesso em: 26 abr. 2015.

    MERCATO, Mattia. A doce história do Android. 2014. Disponível em:. Acesso em: 23 abr. 2015.

  • 8/17/2019 TCC II - 2015 - Aloízio e Gilzan

    71/71

    66

    PURDUM, Jack. Programing C for Arduino: Learn C Programing for Arduino andCompatible Microcontrollers. Technology in action, 2012.

    PEREIRA, Silvio do Lago. Algoritmos e lógica de programação em C: Umaabordagem didática. São Paulo: Érica, 2010.

    PETERS, Eduardo; Bluetooth. Disponível em: Acesso: 03 nov. 2015.

    REDMONK. The RedMonk Programming Language Rankings: January 2015.Disponível em:.Acesso em: 11 abr. 2015.

    ROBÓTICA LIVRE. Introdução a programação de micro controladores. Disponível

    em:. Acesso em: 10 abr. 2015.

    SCHILDT, Herbert; SKRIEN, Dale. Programação com Java, uma introduçãoabrangente. Porto Alegre: Mc Graw Hill, 2013.

    SOUZA, Fábio. Arduino - Primeiros Passos. 2013. Disponível em:. Acesso em: 22 abr.2015.

    STARK, Jonathan; JEPSON, Brian. Construindo Aplicativos Android com HTML,CSS e JavaScript. Novatec, São Paulo: 2012.

    TECMUNDO, O que é algoritmo? Disponível em: Acessoem: 03 nov. 15

    THOMPSOM, Clive. Build it. Share it. Profit. Can Open Source Hardware Work?.Wired Magazine, 2008.

    TOSIN, Carlos. Conhecendo o Android. Disponível em: Acesso em: 26 abr.2015.

    WARREN, John-David; ADAMS, Josha; MOLLE, Harald. Arduino Robotics.Technology in action 2011