UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos...

74
UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO VEÍCULO CONTROLADO VIA BLUETOOTH COM ANDROID E ARDUINO por JEAN CARLOS POTRICH Itajaí (SC), Outubro de 2013

Transcript of UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos...

Page 1: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR

CURSO DE CIÊNCIA DA COMPUTAÇÃO

VEÍCULO CONTROLADO VIA BLUETOOTH COM ANDROID E ARDUINO

por

JEAN CARLOS POTRICH

Itajaí (SC), Outubro de 2013

Page 2: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR

CURSO DE CIÊNCIA DA COMPUTAÇÃO

VEÍCULO CONTROLADO VIA BLUETOOTH COM ANDROID E ARDUINO

Área de

Eletrônica, Sistemas Embarcados e Programação

por

JEAN CARLOS POTRICH Relatório apresentado à Banca Examinadora do Trabalho Técnico-científico de Conclusão do Curso de Ciência da Computação para análise e aprovação. Orientador: ADHEMAR MARIA DO VALLE FILHO, Dr.

Itajaí (SC), Outubro de 2013

Page 3: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

Primeiramente a Deus. Aos meus pais Odalino Potrich e Salete Mária Potrich pela minha existência e educação, a

minha irmã Daniela Potrich e meu irmão Giovani André Potrich.

Page 4: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

AGRADECIMENTOS

Primeiramente gostaria de agradecer a Deus;

A minha mãe Salete Maria Potrich ao meu pai Odalino Potrich e ao meu irmão

Giovani Andre Potrich pelo incentivo e apoio;

Agradecimento especial a minha irmã Daniela Potrich Oliveira, pois sem a sua ajuda

e seu apoio eu não estaria passando por esta etapa da minha vida;

Agradecimento especial a minha futura esposa Débora Fermino de Jesus, pelo apoio

e incentivo;

Ao meu orientador, professor Adhemar, pelo incentivo, pela confiança e

principalmente pela paciência;

Enfim, gostaria de agradecer a todas as pessoas que me ajudaram e me apoiaram

durante o desenvolvimento do projeto.

Page 5: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

Eu acredito que tudo o que você faz volta para você. Mas em minha mente sinto que estou fazendo o bem, então me sinto em direção ao paraíso.

(Tupac Amaru Shakur)

Page 6: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

RESUMO

POTRICH, Jean Carlos. Veículo controlado via Bluetooth com Android e Arduino. Itajaí, 2013. 76. Trabalho Técnico-científico de Conclusão de Curso (Graduação em Ciência da Computação) – Centro de Ciências Tecnológicas da Terra e do Mar, Universidade do Vale do Itajaí, Itajaí, 2013. A tecnologia wireless está facilitando a integração e automação de produtos. A comunicação sem fio permite às pessoas maior flexibilidade, porque não precisam permanecer numa localização fixa. Este projeto tem como objetivo atuar nesta área. A proposta desse Trabalho Técnico-científico de Conclusão e Curso é adaptar um veículo tipo controle remoto para que seja possível controla-lo através de uma conexão Bluetooth utilizando a orientação de um acelerômetro. Essa conexão acontece entre um smartphone e um micro controlador Arduino. O controle é feito sobre um veículo tipo controle remoto adaptado com um micro controlador Arduino equipado com um módulo Bluetooth e o smartphone contará um chip Acelerômetro um modulo Bluetooth e o sistema operacional Android. O veículo irá se locomover de acordo com as coordenadas fornecidas pelo chip Acelerômetro que está instalado no smartphone. O software Android é responsável por fazer a leitura da saída do acelerômetro, processar as informações, determinar o nível de velocidade e enviar via Bluetooth para o Arduino adaptado no veículo. O software Arduino faz a leitura das informações que o módulo Bluetooth recebe, processa essas informações e aciona os atuadores baseando-se nas informações recebidas e assim movimentar o veículo similarmente aos movimentos empregados no smartphone. Palavras-chave: Arduino, Smartphone, Bluetooth, Android

Page 7: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

ABSTRACT

Wireless technology facilitates the communication between products and the automation in different areas. This technology also provides people greater flexibility, since there is no need to remain in a fixed location. This project aims to work in this specific area. It is a project that intends to control a vehicle via a Bluetooth connection. The connection is between a smartphone and a micro controller Arduino. The control will be over a vehicle that contains an Arduino Board equipped with a Bluetooth module and the smartphone will contain an accelerometer chip beneath the Android operating system. The vehicle will get around according to the coordinates provided by the accelerometer chip that is installed on the smartphone. The movement direction will be sent to the vehicle that has an Arduino board via a Bluetooth connection. The embedded software on the Arduino will be responsible for the processing and transformation of coordinates in voltage output to guide the vehicle movement. Keywords: Arduino, Smartphone, Bluetooth, Android.

Page 8: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

LISTA DE FIGURAS

Figura 1. Visão frontal do Arduino UNO. ................................................................................ 23�Figura 2. Esquema de Ponte H. ................................................................................................ 26�Figura 3. Representação de uso de uma Ponte H. .................................................................... 27�Figura 4. Representação da técnica de controle de potência PWM.......................................... 28�Figura 5. Onda da potência controlada pelo interruptor de ação rápida. .................................. 28�Figura 6. Demonstração do acelerômetro com a funcionalidade de orientação da tela. .......... 31�Figura 7. Exemplo com três tubos, um em cada eixo (X, Y e Z). ............................................ 31�Figura 8. Imagem interna de um acelerômetro. ........................................................................ 32�Figura 9. Arquitetura do sistema Android ................................................................................ 33�Figura 10. Informações dos caracteres de envio....................................................................... 37�Figura 11. Diagrama de funcionamento do protótipo............................................................... 38�Figura 12. Visão geral do veículo controlado via Bluetooth .................................................... 42�Figura 13. UC01.01 Funcionamento do veículo controlado via Bluetooth .............................. 43�Figura 14. Diagrama de atividade do UC01.01 Funcionamento do veículo controlado via

Bluetooth .......................................................................................................................... 44�Figura 15. Com a repulsão o motor tende a girar ..................................................................... 45�Figura 16. Circuito elétrico do motor CC/DC .......................................................................... 46�Figura 17. Diagrama de bloco CI L293D ................................................................................. 47�Figura 18. Visão geral dos pinos do CI L293D ........................................................................ 47�Figura 19. Movimentos do servo em função do sinal recebido ................................................ 49�Figura 20. Exemplo de um servomotor .................................................................................... 50�Figura 21. Instalação elétrica do servomotor............................................................................ 50�Figura 22. Adaptação do servomotor ....................................................................................... 51�Figura 23. Modulo Bluetooth HC-06 ....................................................................................... 52�Figura 24. Conexão física do modulo HC-06 com o Arduino.................................................. 52�Figura 25. Esquemático do circuito do projeto ........................................................................ 53�Figura 26. Visão geral da aplicação Android ........................................................................... 54�Figura 27. Diagrama de estado da aplicação Android .............................................................. 55�Figura 28. Conexão para configurar o módulo HC-06 ............................................................. 57�Figura 29. Visão geral da aplicação Arduino ........................................................................... 58�Figura 30. Diagrama de estado da aplicação Arduino .............................................................. 59�Figura 31. Angulação do braço do servomotor ........................................................................ 60�Figura 32. Posição do smartphone para o veículo ficar parado ................................................ 61�Figura 33. Virar para a direita nível 1 ...................................................................................... 61�Figura 34. Virar para a direita nível 2 ...................................................................................... 62�Figura 35. Virar para a esquerda nível 1 .................................................................................. 62�Figura 36. Virar para a esquerda nível 2 .................................................................................. 63�Figura 37. Andar para frente nível 1......................................................................................... 63�Figura 38. Andar para frente nível 2......................................................................................... 64�Figura 39. Andar para frente nível 3......................................................................................... 64�Figura 40. Andando para trás ................................................................................................... 65�Figura 41. Gráfico com trecho percorrido para o teste de virar para direita ............................ 66�

Page 9: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

LISTA DE TABELAS

Tabela 1. Especificação Arduino Uno ...................................................................................... 24�Tabela 2. Potências e área de cobertura. ................................................................................... 29�Tabela 3. Trabalhos similares correlacionando com o projeto ................................................. 39�Tabela 4. Opções do CI L293D ................................................................................................ 48�Tabela 5. Níveis de velocidade do veículo ............................................................................... 56�Tabela 6. Valores em bauds ...................................................................................................... 57�Tabela 7. Códigos enviados para o Arduino............................................................................. 60�

Page 10: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

LISTA DE ABREVIATURAS E SIGLAS

3G Terceira Geração 4G Quarta Geração EDGE Enhanced Data Rates for Global Evolution PWM Pulse Width Modulation TTC Trabalho Técnico-Científico de Conclusão de Curso UNIVALI Universidade do Vale do Itajaí Wi-Fi Wireless Fidelity

Page 11: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

SUMÁRIO

1� INTRODUÇÃO ........................................................................................ 15�1.1� PROBLEMATIZAÇÃO .......................................................................... 16�1.1.1� Formulação do Problema ............................................................................... 16�1.1.2� Solução Proposta ............................................................................................. 17�1.2� OBJETIVOS ............................................................................................. 17�1.2.1� Objetivo Geral ................................................................................................. 17�1.2.2� Objetivos Específicos ...................................................................................... 17�1.3� METODOLOGIA .................................................................................... 18�1.4� ESTRUTURA DO TRABALHO ............................................................ 18�2� FUNDAMENTAÇÃO TEÓRICA .......................................................... 20�2.1� ARDUINO ................................................................................................. 20�2.1.1� Arduino Hardware.......................................................................................... 22�2.1.2� Arduino Software (IDE) ................................................................................. 24�2.2� ATUADORES ........................................................................................... 25�2.3� PONTE H .................................................................................................. 26�2.4� MODULAÇÃO POR LARGURA DE PULSO (PWM) ....................... 27�2.5� BLUETOOTH .......................................................................................... 29�2.6� ACELERÔMETRO ................................................................................. 30�2.7� ANDROID ................................................................................................. 32�2.8� TRABALHOS SIMILARES ................................................................... 35�2.8.1� Desenvolvimento de uma aplicação embarcada em celular visando controle de robô via Wi-fi ......................................................................................... 35�2.8.2� Sistema Bluetooth para controle de acessórios veiculares utilizando smartphone com Android ......................................................................................... 37�2.9� TABELA DOS TRABALHOS SIMILARES CORRELACIONANDO COM O PROJETO ........................................................ 39�3� Desenvolvimento ....................................................................................... 41�3.1� REQUISITOS FUNCIONAIS ................................................................ 41�3.2� FUNCIONAMENTO DO VEÍCULO CONTROLADO VIA BLUETOOTH ........................................................................................................... 42�3.3� MOVIMENTAR E CONTROLAR A DIREÇÃO DO VEÍCULO ..... 45�3.3.1� Motor CC/DC .................................................................................................. 45�3.3.2� Circuito Integrado L293D .............................................................................. 46�3.3.3� Servomotor ...................................................................................................... 48�3.3.4� Bluetooth .......................................................................................................... 51�3.3.5� Montagem eletrônica ...................................................................................... 52�3.4� COLETANDO, ENVIANDO E RECEBENDO AS INFORMAÇÕES. ..................................................................................................... 53�3.4.1� Aplicativo smartphone ................................................................................... 53�3.4.2� Configurando o módulo Bluetooth ................................................................ 56�

Page 12: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

3.4.3� Aplicação Arduino .......................................................................................... 58�3.5� TESTES DO PROJETO .......................................................................... 60�3.5.1� Veiculo parado ou frear ................................................................................. 60�3.5.2� Virar para direita ............................................................................................ 61�3.5.3� Virar para a esquerda .................................................................................... 62�3.5.4� Andar para frente ........................................................................................... 63�3.5.5� Andando para trás .......................................................................................... 64�3.5.6� Teste de campo ................................................................................................ 65�4� CONCLUSÕES ........................................................................................ 67�4.1� TRABALHOS FUTUROS ...................................................................... 68�APÊNDICE A. SKETCH DO VEÍCULO .............................................. 74�

Page 13: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

15

1 INTRODUÇÃO

Hoje em dia, o mundo está se movimentando globalmente para a integração e

automação de produtos. A grande maioria das pessoas utiliza o computador e dispositivos do

gênero em diferentes seções de suas vidas. Pesquisas mostram que entre as necessidades que

determinam ritmo às mudanças no padrão de consumo, o celular tem papel fundamental. Uma

pesquisa feita em 2009 já mostrava que o celular tinha 70% de prioridade na vida das pessoas

(IBOPE, 2009).

A comunicação sem fio permite às pessoas maior flexibilidade, por que não precisam

permanecer numa localização fixa. Em 1985, o Engenheiro Eletricista italiano, Guglielmo

Marconi, ampliou o alcance dessas transmissões e adaptou a tecnologia para enviar e receber

sinais telegráficos sem fio. No início do século XX, os avanços nessa tecnologia,

desenvolvidos pelos professores ingleses, John Ambrose Fleming, e pelo inventor norte-

americano, Lee De Forest, tornaram possível modular e amplificar sinais sem fio

(CARDOSO, 2007).

A elaboração deste projeto de pesquisa tem o intuito de utilizar a tecnologia sem fio

Bluetooth para guiar um veículo do tipo controle remoto. Para que isso seja possível é

necessário adaptar a plataforma open-source Arduino no veículo tipo controle remoto e assim

guia-lo através de uma conexão Bluetooth entre o Arduino e o smartphone. A movimentação

do veículo é baseada na orientação de um acelerômetro embarcado no smartphone com

sistema operacional Android.

Em termos práticos, um Arduino é um pequeno computador que pode ser

programado para processar entradas e saídas entre o dispositivo e os componentes externos

conectados a ele. O Arduino é chamado de plataforma de computação física ou embarcada, ou

seja, um sistema que pode interagir com seu ambiente por meio de hardware e software

(McROBERTS, 2011).

Para guiar o veículo foi utilizada a orientação de um acelerômetro. Hoje em dia todos

os smartphones são equipados com um chip capaz de informar precisamente quando o

smartphone sofre uma mudança em sua orientação, por isso o sistema operacional do

smartphone sabe quando mostrar a imagem na horizontal ou na vertical, esse chip é conhecido

como acelerômetro. Os acelerômetros são capazes de detectar variação de velocidade nos três

eixos (X, Y e Z), ou seja, em qualquer direção, sendo assim possível guiar um veículo em

qualquer sentido.

Page 14: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

16

O sistema operacional Android desenvolvido pela Open Handset Alliance, que é

liderada pelo Google, é um sistema baseado em Linux voltado para dispositivos móveis com

objetivo de ser uma plataforma flexível, aberta e de fácil migração para os fabricantes. Todo o

código fonte está publicado sob a licença Apache. Em 2008 foi comercializado o primeiro

telefone com o sistema operacional Android (LECHETA, 2010). O Android suporta várias

tecnologias de conectividade que inclui EDGE, 3G, 4G, Wi-Fi e Bluetooth, este projeto se

beneficia da tecnologia sem fio Bluetooth.

A tecnologia Bluetooth nos smartphones é disponibilizada de forma nativa, ou seja,

não é necessário fazer adaptações para utiliza-la. Ao contrario dos smartphones o Arduino não

possui Bluetooth nativamente, para adicionar essa funcionalidade ao Arduino foi necessário

instalar um módulo que seja capaz de estabelecer uma conexão sem fio com a tecnologia

Bluetooth. No projeto é utilizado o modulo HC-06, esse módulo funciona como um tubo

(RX/TX) de série, onde qualquer fluxo de série a partir de 9600 a 115200 bps podem ser

transmitidos diretamente de um dispositivo para o seu alvo. O fabricante garante um alcance

de até 100m de distância (valor aceitável para o projeto) em um ambiente ao ar livre, ou seja,

sem obstáculos que possam prejudicar a troca de informação entre o transmissor (TX) e o

receptor (RX), o modulo HC-06 trabalha com uma tensão de alimentação que varia de 3,3 -

6,0 volts em uma frequência de 2.4 GHz (ALIEXPRESS, 2013).

1.1 PROBLEMATIZAÇÃO

1.1.1 Formulação do Problema

Veículos que podem ser movimentados através de uma conexão wireless não são

novidades no mercado comercial e variam de preço de acordo com as suas funcionalidades e

tecnologias embarcadas.

Desenvolver um projeto assim envolve uma pesquisa atrás de conhecimento

tecnológico. Isso pode ser baseado numa tecnologia paga ou open-source. Neste trabalho será

focado em tecnologia open-source para desenvolvimento do projeto. Outra parte do trabalho

envolve as adaptações no veículo para que possa atender os requisitos que englobam o

projeto.

As questões relativas a este projeto são as seguintes: como e o que é necessário para

desenvolver um veículo controlado por uma conexão Wireless utilizando a tecnologia

Page 15: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

17

Bluetooth e que possa ser guiado por coordenadas de um acelerômetro embarcado em um

smartphone utilizando apenas tecnologia open-source?

1.1.2 Solução Proposta

Para solucionar o problema acima, foi adaptado um carrinho tipo controle remoto

equipado com um micro controlador Arduino com um módulo Bluetooth. Foi estabelecida

uma conexão com a tecnologia Bluetooth entre o Arduino e um smartphone com sistema

operacional Android que possui um chip Acelerômetro. Foi desenvolvido um software para

Android capaz de coletar as informações do Acelerômetro do smartphone e capaz de enviar

essas informações através da conexão Bluetooth. E foi desenvolvido um software para

Arduino capaz de receber as informações por uma conexão Bluetooth e transformar as

orientações recebidas do smartphone em tensão de saída para movimentar os atuadores

embarcados no veículo.

1.2 OBJETIVOS

1.2.1 Objetivo Geral

O objetivo geral deste trabalho é embarcar a plataforma open-source Arduino com

atuadores e um módulo Bluetooth, em um veículo do tipo controle remoto, e utilizar uma

conexão Bluetooth entre o Arduino e o smartphone para movimentar o veículo através das

coordenadas fornecidas pelo acelerômetro embarcado no smartphone com sistema operacional

Android.

1.2.2 Objetivos Específicos

Os objetivos específicos para este trabalho são os seguintes:

• Destacar as tecnologias necessárias para desenvolver o projeto;

• Modelar o protótipo;

• Implementar o protótipo; e

• Testar e avaliar a implementação da plataforma.

Page 16: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

18

1.3 Metodologia

A metodologia empregada nesse trabalho é disseminada em quatro etapas

consideradas fundamentais: (i) Pesquisa, (ii) Fundamentação Teórica, (iii) Desenvolvimento

do projeto e (iv) Documentação.

Para etapa de pesquisa (i), foram realizadas pesquisas sobre todos os assuntos

relacionados e correlacionados como: Arduino, Atuadores, Circuito de Ponte H, Modulação

por largura de Pulsos (PWM), Bluetooth, Acelerômetro e Android. Todo embasamento

teórico tem como objetivo o desenvolvimento do veículo controlado via Bluetooth com

Android e Arduino.

Na segunda etapa (ii) Fundamentação Teórica foi realizada uma introdução sobre o

funcionamento dos atuadores que foram utilizados para mobilidade do veículo, Android,

Acelerômetro, Bluetooth e Arduino para o envio e recebimento das informações que

movimentam o veículo.

Na terceira etapa (iii) desenvolvimento do projeto foi realizado o desenvolvimento

do software Arduino e Android, foi adaptado o Arduino no veículo tipo controle remoto

juntamente com os atuadores.

Na quarta etapa (iv) documentação foi realizado o processo de redação de toda

documentação deste trabalho de conclusão de curso que acompanhou todo o processo de

pesquisa e fundamentação.

1.4 Estrutura do trabalho

No primeiro capítulo é apresentada uma introdução sobre o projeto, apresentando

uma descrição geral do trabalho, onde é identificado o problema e a solução proposta, os

objetivos gerais e específicos a serem alcançados e a metodologia utilizada.

No segundo capítulo é apresentada a Fundamentação Teórica onde são abordados

conceitos como Arduino hardware e software, micro controladores, atuadores, Ponte H,

Bluetooth, Acelerômetro e Android. Nesta etapa são abordadas duas soluções similares a este

projeto.

Page 17: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

19

O terceiro capítulo é apresentado o Desenvolvimento, onde são abordadas

informações importantes desde a adaptação do carrinho até a conexão Bluetooth entre o

Arduino e o smartphone.

O quarto capítulo apresenta as Conclusões, conclui o término do documento

apresentado.

Page 18: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

20

2 FUNDAMENTAÇÃO TEÓRICA

Para montar o veículo foi necessário entender alguns conceitos e o funcionamento

dos componentes e peças envolvidos no trabalho. A fundamentação teórica diz respeito a este

ponto do projeto onde são explicadas as etapas do processo de aprendizagem necessárias para

se atingir a solução proposta.

2.1 Arduino

Segundo Banzi (2012), o Arduino é uma plataforma de computação física de fonte

aberta, com base em uma placa simples de entrada/saída (input/output, ou I/O), assim como

em um ambiente de desenvolvimento que implementa a linguagem Processing

(www.processing.org). O Arduino pode ser utilizado para desenvolver objetos interativos

independentes, ou conectados a softwares de seu computador (como Flash, Processing ou

Max/MSP). As placas podem ser montadas manualmente, ou compradas pré-montadas.

Ainda segundo Banzi (2012), as principais diferenças entre o Arduino e outras

plataformas presentes no mercado são:

• Ambiente multiplataforma, pode ser executado em Windows, Macintosh e

Linux;

• Possui uma IDE de programação baseada em Processing de fácil utilização;

• Interação entre a placa e o computador é por uma interface USB e não serial

como na maioria;

• É um hardware e software de fonte aberta;

• O hardware é barato e de fácil troca de componentes defeituosos;

• Há uma grande comunidade ativa na internet;

• O Arduino Project foi desenvolvido em um ambiente educacional, portanto, é

ideal para iniciantes.

Em poucas palavras, o Arduino é uma plataforma de computação física que utiliza

objetos eletrônicos interativos que podem se comunicar com humanos como, por exemplo,

Page 19: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

21

sensores e atuadores onde são controlados por um software que é executado dentro de um

microcontrolador.

Segundo Mcroberts (2011), o Arduino pode ser utilizado para desenvolver objetos

interativos independentes, ou pode ser conectado a um computador, a uma rede, ou até mesmo

à internet, ele é capaz de enviar dados recebidos de alguns sensores para um site na rede

internet. O Arduino pode controlar LEDs, displays, botões, interruptores, motores, sensores de

temperatura, sensores de pressão, sensores de distância, receptores GPS, módulos Ethernet ou

qualquer outro dispositivo que emita dados, podem ser dados simples como, estar ligado ou

desligado.

Como o Arduino é livre tanto na parte de hardware quanto na parte de software,

qualquer pessoa que conheça um pouco de eletrônica pode baixar o esquema eletrônico

disponível gratuitamente no site (www.arduino.cc) e criar o seu próprio Arduino. Esta

disponibilidade fez com que surgissem no mercado uma variada gama de produtos relativos

ao Arduino. Abaixo segue uma lista com algumas plataformas Arduino:

• Arduino Uno: Baseada no microcontrolador ATmega328 com 28 pinos,

comunicação USB (ARDUINO, 2011);

• Arduino LilyPad: Projetada para ser utilizada em roupas ou aplicações que

envolvem tecido é baseada no micro controlador ATmega168V (versão de

baixa potência do ATmega168) ou ATmega328V (versão de baixa potência do

ATmega328) (http://arduino.cc/en/Main/ArduinoBoardLilyPad);

• Arduino Duemilanove: É uma Placa baseada no micro controlador ATmega168

ou ATmega328 com um cristal oscilador de 16MHz, possui uma conexão USB

padrão (http://arduino.cc/en/Main/arduinoBoardDuemilanove);

• Arduino Nano: É uma placa pequena e completa é baseado no micro

controlador ATmega328 ou ATmega168, possui quase todas as

funcionalidades da Duemilanove, porém utiliza uma entrada USB mini-B

(http://arduino.cc/en/Main/ArduinoBoardNano);

• Arduino Diecimila: É uma placa Baseada no micro controlador ATmega168,

possui um cristal oscilador de 16MHz porém possuem a metade dos recursos

Page 20: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

22

de memória flash, SRAM e EEPROM em relação ao Arduino Uno

(http://arduino.cc/en/Main/ArduinoBoardDiecimila);

• Arduino Mini: Originalmente a placa era baseada somente no micro

controlador ATmega168 agora existe uma versão com o micro controlador

ATmega328 com suporte a 9v de tensão de entrada

(http://arduino.cc/en/Main/ArduinoBoardMini).

Como pode ser observado no mercado existem diversas placas Arduino que possuem

quase que as mesmas características, algumas são diferentes apenas nas suas aplicações como,

por exemplo, a placa Arduino LilyPad que é aplicada principalmente em projetos que

envolvem tecidos.

Este projeto se beneficia da placa Arduino Uno. Esta placa foi escolhida por ser uma

das mais atuais, por possuir conexão USB, essa conexão está presente em todos os

computadores atuais, é possível acoplar um modulo Bluetooth e possui uma comunidade

muito ativa na internet no qual foi muito útil quando surgiram algumas dificuldade durante o

desenvolvimento do projeto.

2.1.1 Arduino Hardware

Segundo Mcroberts (2011), a placa do Arduino é composta basicamente de um

microprocessador Atmel AVR, um cristal ou oscilador (relógio simples que envia pulsos de

tempo em uma frequência especificada, para permitir sua operação na velocidade correta) e

um regulador linear de 5 volts. Na Figura 1 é possível observar uma visão frontal do Arduino

UNO.

Page 21: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

23

Figura 1. Visão frontal do Arduino UNO. Fonte: (ARDUINO, 2011). 2.1.1.1 Caracteristicas do Arduino UNO

Segundo Banzi (2012), a placa UNO possui um micro controlador ATmega328 com

um cristal oscilador de 16MHz, esse micro controlador possui 28 pinos (pernas), esse chip é o

principal elemento do Arduino.

O Arduino Uno se beneficia de 32KB de memória (com 0,5KB usado pelo

bootloader) e o restante para os sketches. Ele possui também 2KB de SRAM e 1KB de

EEPROM (ARDUINO, 2011).

O Arduino Uno pode ser alimentado através da conexão USB ou com uma fonte de

alimentação externa. A seleção da alimentação ocorre de forma automática. A fonte externa

pode operar de 6 a 20 volts, porém é aconselhado utilizar de 7 a 12 volts, pois se utilizar

menos de 7V o pino de 5V pode fornecer menos de 5V e a placa pode se comportar de forma

instável e se utilizar mais do que 12V, o regulador de voltagem pode superaquecer e danificar

a placa (ARDUINO, 2011).

O micro controlador ATmega328 possui 28 pinos (pernas), desses 28 pinos, 14 pinos

(0-13) são digitais que podem ser utilizados como entrada ou saída. Eles operam a 5 volts.

Cada pino pode fornecer ou receber no máximo 40 mA, 6 pinos (0-5) são de entrada

analógica, ou seja, esses valores são leituras de tensão de um sensor e são convertidos em um

número inteiro entre 0 e 1023 e possui 6 pinos de saída analógica (3, 5, 6, 9, 10 e 11) que

podem ser utilizados com o sketch criado no IDE (ARDUINO, 2011).

Page 22: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

24

A comunicação com o Arduino Uno através de um computador é simples, ele possui

uma conexão USB que ao ser instalado no computador aparece para o software como uma

porta COM virtual. O firmware ‘16U2’ usa os drivers padrão COM USB, não é necessário um

driver externo, porém no Microsoft Windows se faz necessário um arquivo de extensão inf

que possui as informações de funcionamento para o sistema operacional Microsoft Windows

(ARDUINO, 2011). Na Tabela 1 é possível observar as características do Arduino Uno.

Tabela 1. Especificação Arduino Uno Fonte: adaptado de (ARDUINO, 2011).

Caracteristicas Descrição Micro controlador ATmega328 Tensão de funcionamento 5V Tensão de entrada (recomendado) 7-12V Tensão de entrada (limites) 6-20V Pinos digitais de entrada e saída 14(6 fornece uma saída PWM) Pinos de entrada analógica 6 Corrente DC por pino de entrada ou saída 40 mA Corrente 3.3V para cada pino 50 mA Memória Flash 32 KB (ATmega328), dos quais 0,5KB

utilizado pelo bootloader SRAM 2KB (ATmega328) EEPROM 1KB (ATmega328) Cristal/Oscilador 16 MHz

O Arduino possui diversas Shields. Shields são implementações que dão novas

funcionalidades ao Arduino, por exemplo, o Arduino Uno nativamente não possui

característica de estabelecer uma conexão Bluetooth com outro dispositivo, porém, se

adicionarmos um módulo Bluetooth desenvolvido especialmente para o Arduino, o Arduino

passa a possuir essa característica e consegue estabelecer uma conexão Bluetooth com

qualquer outro dispositivo.

Nesse projeto foi utilizado o modulo HC-06, esse Shield adiciona a funcionalidade de

conexão Bluetooth ao Arduino UNO.

2.1.2 Arduino Software (IDE)

Segundo Banzi (2012), o Integrated Development Environment (IDE) é um

programa especial executado no computador que permite a criação de Sketches para placa

Arduino em uma linguagem simples, modelada a partir da linguagem processing

(www.processing.org).

Page 23: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

25

A IDE é utilizada para escrever um Sketch (programa para o Arduino). Quando o

programa está pronto é necessário enviar o código fonte para a placa. Para enviar é executado

o comando de upload (enviar o Sketch para o Arduino) e o código do programa é traduzido

para a linguagem C que por sua vez passa pelo compilador avr-gcc. O compilador é a parte

responsável por transformar o programa antes escrito em linguagem de alto nível para a

linguagem de baixo nível Assembly, o Assembly pode ser compreendida e executada pelo

microprocessador do Arduino (BANZI, 2012).

2.1.2.1 Sketch

Sketch é o nome de um programa para Arduino. É o código fonte que é carregado e

executado em uma placa Arduino. A linguagem de programação do Arduino é simples a sua

sintaxe se assemelha muito ao C++ e ao Java.

Um Sketch possui duas funções básicas e necessárias para que o Arduino funcione, o

void setup() e o void loop(), no void setup() devesse colocar todo o código que se deseja

executar apenas uma vez, pois essa função é executada apenas durante a inicialização da placa

Arduino e o void loop() deve possuir todo o núcleo do programa pois essa função é executada

repetidamente pelo Arduino, o void loop() permanece em execução até que a placa Arduino

seja desligada. Além dessas duas funções obrigatórias para que o Arduino funcione, pode-se

criar novas funções, que por sua vez, podem ser chamadas durante a execução do bloco void

loop() (MCROBERTS, 2011).

2.2 Atuadores

Segundo Banzi (2012), atuadores são componentes eletrônicos que permitem a um

equipamento eletrônico interagir com o mundo real.

O Arduino é capaz apenas de processar sinais elétricos e não luz, temperatura do

ambiente entre outros dados do nosso meio físico. Para que o Arduino possa processar esse

tipo de informação é necessário que algum dispositivo converta esses dados físicos em pulsos

elétricos. Banzi (2012) cita como exemplo, os olhos humanos, que são capazes de converter a

luz em sinais que são enviados ao cérebro por meio de nervos. Nesse caso na eletrônica é

utilizado um dispositivo simples, chamado de resistor dependente de luz (light-dependent

resistor, ou LDR) que é capaz de medir a quantidade de luz que o atinge e transmitir esses

dados como um sinal elétrico que pode ser processado pelo Arduino.

Page 24: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

26

No projeto foram utilizados dois tipos de atuadores que podem interagir com o meio

físico, um motor de corrente continua (CC/DC) e um servomotor. Esses dois atuadores são

responsáveis pela movimentação e direção do veículo. A principal característica de um motor

elétrico é transformar energia elétrica em mecânica que é capaz de movimentar objetos.

Motores elétricos em geral giram em uma velocidade muito alta e um torque muito

baixo. Para inverter essa relação, o motor deve ser ligado a uma caixa de redução para

produzir uma nova saída que gira mais devagar, porém, com um torque maior.

O servomotor possui características diferentes de um motor de corrente continua,

esse tipo de motor consegue girar em uma liberdade de 0º a 180°, porém, com um controle

preciso. Esse tipo de motor é muito utilizado em aeromodelos e automodelos. Nesse projeto

foi utilizado o servomotor para controlar a direção do veiculo (BRAGA, 2013).

2.3 Ponte H

No projeto, o motor de corrente contínua é acionado nos dois sentidos, pois o veiculo

se move para frente e para trás. Portanto há a necessidade de controlar o sentido da corrente

fornecida para que possa ser invertido o sentido de rotação do motor. Esse controle é feito

pela ponte H (Figura 2) que controla o sentido da corrente através da disposição de quatro

chaves eletrônicas.

Figura 2. Esquema de Ponte H. Fonte: (Patsko, 2006)

Page 25: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

27

Segundo Patsko (2006), a ponte H é um dos circuitos mais importantes na elaboração

de sistemas automatizados, pois, trata-se de um circuito utilizado para controlar um motor

CC/DC a partir de um microcontrolador.

Para fornecer corrente elétrica as chaves se fecham de duas em duas, de tal forma

que a fonte e o terra estejam em posições alternadas dos pólos do motor. Como pode ser

observado na Figura 3 a representação de uso de uma Ponte H.

Figura 3. Representação de uso de uma Ponte H. Fonte: (PATSKO, 2006)

Para frear o motor podem-se utilizar dois métodos, o mais eficiente é acionar as duas

chaves superiores ou as duas chaves inferiores. Ao acionar as duas chaves superiores ou as

inferiores irão causar um "curto-circuito" no motor e a tensão que gera no motor força-o a

girar na direção oposta, fazendo com que ele pare quase que instantaneamente. O método

menos eficiente é o de fechar todas as chaves ao mesmo tempo. Ao fazer isso o circuito será

desligado, caso o motor esteja rodando ele irá parar suavemente, pois freará a partir da força

do atrito que está ocorrendo.

Patsko (2006) faz observação de tomar cuidado para não acionar simultaneamente as

chaves de um mesmo lado do "H", pois isso faz com que o fluxo de corrente vá direto do pólo

positivo para o negativo, causando um “curto-circuito” fatal para a fonte de alimentação e

para os componentes eletrônicos envolvidos no circuito.

2.4 Modulação por Largura de Pulso (PWM)

Um dos objetivos deste trabalho foi controlar a velocidade do veículo. Foi necessário

controlar o número de giros do motor, ou seja, controlar a velocidade com que o motor de

Page 26: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

28

CC/DC gira. Para isso foi preciso que a tensão fornecida para o motor fosse variável.

Inicialmente, utilizando apenas os sinais digitais, não é possível, pois funciona com zero ou

tensão máxima. Para atingir esse objetivo foi utilizada uma técnica chamada pulse width

modulation (PWM), ou modulação por largura de pulso.

De uma forma simplificada o PWM trata-se de uma técnica para controle de potência

em cargas elétricas. Seu principio de funcionamento é baseado em um circuito formado por

um interruptor de ação muito rápida e uma carga a ser controlada (BRAGA, 2011).

Figura 4. Representação da técnica de controle de potência PWM. Fonte: (GHIRARDELLO, 2008)

O circuito da Figura 4 possui uma potência aplicada a uma carga e um interruptor

para controlar a potência, quando o interruptor está aberto a potência aplicada na carga é zero,

quando o interruptor estiver fechado a potencia aplicada na carga é máxima. A ideia do PWM

é controlar a potência com o interruptor, fazer com que ele abra e fecha em um tempo

controlado, se o interruptor ficar a metade do tempo aberto e a outra metade do tempo fechado

à potência que será aplicada é de 50% (GHIRARDELLO, 2008).

Figura 5. Onda da potência controlada pelo interruptor de ação rápida. Fonte: (GHIRARDELLO, 2008)

Na Figura 5 o “t” representa o ciclo completo da potência, o “t1” representa o tempo

do ciclo em que o interruptor está fechado e o “t2” representa o tempo do ciclo em que o

Page 27: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

29

interruptor está aberto, como a largura do pulso do “t1” e “t2” é igual, o total do ciclo ativo

será de 50%.

2.5 Bluetooth

A tecnologia Bluetooth está disponível em vários equipamentos. Essa tecnologia

permite recursos comparáveis aos de redes convencionais, como comunicação em grupo,

integração com redes que usam endereçamento IP e por isso possibilita o uso em redes locais

e internet.

“Harald “Bluetooth” Blatand foi um viking rei da Dinamarca, entre 940 a 981 d.C. O

apelido Bluetooth (dente azul) deveu-se à coloração azulada de sua arcada dentária e foi

escolhido para denominar a tecnologia de mesmo nome por ter sido um unificador que usava

o diálogo como estratégia.” (RUFINO, 2011).

Segundo Rufino (2011), o Bluetooth foi idealizado para ser uma rede de baixo custo,

baixa complexidade e pouca potência, para cobrir curtas distâncias. Da mesma forma que as

outras tecnologias, o Bluetooth envolve especificações de hardware e software e utiliza a

frequência 2,4 GHz, portanto sofre com os mesmos problemas de interferência às outras

tecnologias que compartilham as mesmas faixas de radiofrequência.

É muito comum encontrar essa tecnologia em celular, notebook, microfones, fones

de ouvido e até mesmo impressoras. O protocolo do Bluetooth foi definido para transmitir

dados e voz.

Existem 3 classes de Bluetooth, cada uma possui suas características como pode ser

observado na tabela 2.

Tabela 2. Potências e área de cobertura. Fonte: adaptado do livro (RUFINO, 2011)

Classe Potência max. (mW) Potência max. (Dbm) Área de cobertura estimada Classe 1 100 20 100 metros ou mais Classe 2 2,5 4 10 metros Classe 3 1 0 10 centímetros

Pela sua similaridade com as redes sem fio convencionais atuais, as redes Bluetooth

também estão expostas aos mesmos riscos: ataque de negação de serviço, captura e escuta de

tráfego, entre outros.

Page 28: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

30

Segundo Rufino (2011), A segurança mais comum na comunicação entre os

dispositivos é a autenticação com uma senha numérica denominada PIN, esse procedimento é

trivial no que diz respeito à segurança e, pode ser facilmente burlado já que não existe, nesse

nível, nenhum registro de acesso, o que complica a realização de auditoria nessa tecnologia.

Ainda segundo Rufino (2011), Redes e conexões que utilizam tecnologia Bluetooth

ainda não são comuns. Porém existem hoje condições necessárias para que essas redes sejam

montadas, pois essa tecnologia está disponível na maioria dos equipamentos que são

adquiridos hoje. À medida que esse padrão se tornar mais popular e as redes sejam

efetivamente criadas, certamente surgirão aplicações para autenticação, segurança e auditoria

desses ambientes.

2.6 Acelerômetro

Hoje em dia todos os smartphones são equipados com um chip capaz de informar

precisamente quando o smartphone sofre uma mudança na sua orientação. Por isso o Sistema

Operacional do smartphone sabe quando mostrar a imagem horizontalmente ou verticalmente.

Esse chip é conhecido como Acelerômetro.

Uma das principais funcionalidades do acelerômetro em smartphones é para a

mudança de orientação da tela e para jogos em geral, como por exemplo, um jogo de corrida,

onde, o usuário guia o carro no jogo utilizando os mesmo movimentos de um volante real, ou

seja, com o smartphone na mão inclinando para direita e para a esquerda. O acelerômetro

também pode controlar outras funções do smartphone, como realizar chamadas ou até mesmo

o bloqueio da tela.

Smartphones equipados com acelerômetro são capazes de detectar variação de

velocidade nos três eixos (X, Y e Z), ou seja, em qualquer direção. O acelerômetro é um

componente bastante compacto e com um custo baixo para os fabricantes. Na Figura 6 é

possível observar a demonstração do acelerômetro com a funcionalidade de orientação da tela.

Page 29: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

31

Figura 6. Demonstração do acelerômetro com a funcionalidade de orientação da tela. Fonte: (MORIMOTO, 2010)

Segundo Hammack (2012) o acelerômetro possui duas noções básicas de

funcionamento, primeiro um tubo anexado ao objeto cuja aceleração quer medir e um peso,

que embora amarrado ao tubo, ainda pode se mover. Para calcular a orientação nos três eixos

(X, Y e Z) é só utilizar três tubos (Figura 7), um para cada orientação que deseja medir, nos

smartphones a implementação é mais complexa, porém possui os mesmos elementos

fundamentais implementados de uma forma diferente.

Figura 7. Exemplo com três tubos, um em cada eixo (X, Y e Z). Fonte. (HAMMACK, 2012)

Page 30: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

32

Existem vários tipos de acelerômetros, os mais usados atualmente são os baseados

em dispositivos eletromecânicos ("micro electro-mechanical systems" ou MEMS) que

incluem uma série de estruturas similares a agulhas (Figura 8), que detectam os movimentos,

gerando as leituras que são transmitidas ao circuito principal (HAMMACK, 2012).

Figura 8. Imagem interna de um acelerômetro. Fonte. (MORIMOTO, 2010)

2.7 Android

O mercado de celulares está crescendo cada vez mais, em 2010 estudos já apontavam

que mais de 3 bilhões de pessoas possuíam aparelhos celulares. O mercado corporativo

também está crescendo muito e diversas empresas estão buscando incorporar aplicações

móveis a seu dia-a-dia para agilizar seus negócios, empresas obviamente visam lucro e mais

lucro, e os celulares e smartphone estão ocupando um importante espaço em um mundo onde

a palavra “mobilidade” está cada vez mais conhecida (LECHETA, 2010).

As empresas e os desenvolvedores buscam uma plataforma moderna e ágil para o

desenvolvimento de aplicações coorporativas para auxiliar em seus negócios e lucros. Já os

usuários comuns buscam um celular com um visual elegante e moderno, de fácil navegação e

com uma infinidade de recursos.

Quando a Google anunciou o sistema operacional Android causou um grande

impacto, atraindo atenção de muita gente, entretanto não é apenas a Google que está

envolvido no projeto e sim um grupo formado por grandes empresas do mercado de telefonia

como a Motorola, LG, Samsung, Sony Ericsson entre outras que juntas formam o grupo Open

Handset Alliance (OHA) (LECHETA, 2010).

Page 31: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

33

A arquitetura do sistema operacional Android é muito flexível e seu desenvolvimento

foi focado na integração. O Android permite, por exemplo, a integração de aplicações

desenvolvidas por usuários com aplicações nativas ou até mesmo substituir qualquer

aplicação nativa por uma aplicação desenvolvida por qualquer usuário. Não existe diferença

entre uma aplicação nativa e uma desenvolvida por usuário comum.

Figura 9. Arquitetura do sistema Android Fonte: (PRADO, 2011)

Na Figura 9 é possível observar as diversas camadas que o sistema operacional

Android possui:

• A camada de aplicação é a camada mais alta da arquitetura do sistema,

composta pelo conjunto de aplicativos nativos do sistema, como por exemplo,

calendário, mapas, browser de internet, despertador, jogos, entre

outros(REDAÇÃO OFICINANET, 2010).

• A camada de Framework disponibiliza aos desenvolvedores as mesmas APIs

(Application Programming Interface, Interface de Programação de

Aplicativos) usadas para criar as aplicações originais do sistema(REDAÇÃO

OFICINANET, 2010).

Page 32: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

34

• A camada de biblioteca inclui uma coleção de bibliotecas C/C usadas pelos

componentes do sistema, essas bibliotecas são acessadas pelos programadores

via Java, através do framework do sistema. Essas bibliotecas são responsáveis

por prover funcionalidades para manipulação de áudio, vídeo, gráficos, banco

de dados e navegador(REDAÇÃO OFICINANET, 2010).

• A camada Android Runtime permite que cada processo rode sua própria

instância da maquina virtual. Apesar do desenvolvimento de aplicativos

serem em Java, as aplicações não são executadas em uma maquina virtual

Java tradicional, e sim em outra chamada de Dalvik, essa maquina virtual é

otimizada especialmente para dispositivos moveis(REDAÇÃO

OFICINANET, 2010).

A última camada do sistema é a camada do kernel. O kernel foi desenvolvido

baseado no kernel 2.6 do Linux, e é responsável por gerenciar a memória, os processos,

threads e a segurança dos arquivos, além de redes e drivers. Toda a segurança do Android é

baseada na segurança do Linux, cada aplicação é executada em um único processo e cada

processo por sua vez possui uma thread dedicada. Para cada aplicação instalada no celular é

criado um novo usuário no sistema operacional para ter acesso a sua estrutura de diretórios.

Desta forma nenhum outro usuário pode ter acesso a esta aplicação (REDAÇÃO

OFICINANET, 2010).

Segundo Schemberger, Freitas e Vani (2009), a anatomia de aplicações para o

sistema operacional Android é dividida em quatro módulos, activity, intent receiver, service e

content provider.

• Activity: É o módulo mais comum de uma aplicação Android. Refere-se a uma

tela da aplicação e é implementada como uma única classe que deriva da classe

base activity;

• Intente receiver: Usado quando se deseja que a aplicação reaja a algum evento

externo (o telefone tocar, internet disponível ou um alarme). Este módulo

através da classe notificationmanager avisar o usuário que tal evento ocorreu;

Page 33: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

35

• service: Um service é o código que é executado durante toda a aplicação, sem a

necessidade de uma interface com o usuário, como por exemplo, tocadores de

música);

• content provider: Esse módulo é utilizado para que as aplicações possam

armazenar suas informações quando necessário em uma base SQLite.

Aplicações desenvolvidas não necessariamente precisa implementar todos os

módulos, mas provavelmente ela terá uma combinação entre dois ou mais deles.

2.8 Trabalhos Similares

Nesta seção serão apresentados trabalhos similares que se mostraram relevantes ao

projeto, visando facilitar o entendimento analisando a suas dificuldades e extrair possíveis

soluções para os problemas encontrados ao longo do desenvolvimento deste projeto.

Os trabalhos similares aqui apresentados possuem grande valor para o projeto

proposto. Nesses trabalhos foi possível extrair soluções encontradas para problemas que que

apareceram no desenvolver do projeto atém de identificar as várias soluções empregadas

pelos autores.

2.8.1 Desenvolvimento de uma aplicação embarcada em celular visando controle de robô via Wi-fi

Cruz et al. (2011) mostram um projeto de desenvolvimento de um sistema que

permite o controle do robô Wi-fibot Lab, a partir de um celular, usando uma conexão Wi-fi e

sensores de movimento (Acelerômetro). O sistema foi desenvolvido para o sistema

operacional Google Android, e consiste em captar as informações do Acelerômetro do celular,

mapeá-los e gerar comandos de movimentação para o robô.

O robô a ser movimentado é o Wifibot Lab, desenvolvido pela empresa francesa

Wifibot que é um robô desenvolvido para auxiliar no aprendizado sobre robótica. O Wifibot

Lab é composto por quatro rodas motrizes, câmera VGA (Video Graphics Array), sensores

infravermelhos, motor, bateria, placa controladora e CPU. A conexão com o robô pode ser

estabelecida de duas formas: Infraestrutura ou Ad-Hoc.

Page 34: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

36

Na conexão Infraestrutura, o robô e o dispositivo móvel se conectam a um ou mais

pontos de acesso Wi-fi, e esses agem como intermediadores de mensagens entre o dispositivo

(celular) e o robô, enquanto que na conexão Ad-Hoc, o dispositivo se conecta diretamente ao

robô via Wi-fi.

A principal diferença entre os dois meios de comunicação é à distância, enquanto a

conexão Infraestrutura possibilita uma distância maior, pois pode até utilizar a internet para

controlar o robô, enquanto que a conexão Ad-Hoc se limita a distância fornecida pela

capacidade de propagação do sinal Wi-fi do robô e do dispositivo móvel.

O sistema desenvolvido utiliza como intermédio entre o Acelerômetro e a aplicação,

um framework para Android chamado Freerunner, esse framework consiste em coletar as

informações do Acelerômetro do celular e disponibilizar os dados para o desenvolvedor.

O robô possui um protocolo de comunicação que consiste no envio e recebimento de

um vetor de caracteres. Cada caractere é responsável por uma função específica no sistema.

Existe mais de uma versão deste protocolo de comunicação e cada versão do protocolo escuta

uma porta diferente, ou seja, a forma de envio da informação é a mesma, porém, o

processamento da informação depende de qual porta a informação foi recebida.

O protocolo utilizado no projeto se comunica através de um SOCKET TCP. O robô é

o servidor e o cliente é o dispositivo móvel. O canal de comunicação é através da porta 15020

via TCP (Transmission Control Protocol), de acordo com o manual de usuário do Wifibot

Lab, esse protocolo tem o nome de Protocolo Geral, pois se encarrega de funções básicas do

sistema como, movimentação do robô e recebimento de algumas informações dos sensores

instalados.

O protocolo é simples, são enviados para o robô dois comandos o COMG|COMD,

onde o COMG é para movimentar a roda direita e o COMD é para movimentar a roda

esquerda.

Page 35: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

37

Figura 10. Informações dos caracteres de envio Fonte: (WIFIBOT LAB, 2010)

Na Figura 10, o comando possui oito bits, onde dois bits são destinados para

informar se a roda vai girar para frente ou para trás, e os outros seis bits é para o controle da

velocidade da roda. Um exemplo de envio para o robô é um vetor, onde o “comg” tem o valor

“11001010” e o “comd”, o valor “11101000”. Neste exemplo, as duas rodas se movem para

frente, mas com velocidades diferentes, pois a roda esquerda está com velocidade “10” e a

roda direita com velocidade “40“. Com esses valores o robô faz uma conversão para esquerda,

pois a roda direita se movimenta mais rápido que a roda esquerda.

Os autores apontaram uma futura melhoria no aplicativo, onde sugeriram adicionar

ao software uma forma automática do robô se locomover, ou seja, adaptando o aplicativo para

receber fotos da câmera VGA do robô, e o aplicativo utilizar um algoritmo de reconhecimento

de padrões na imagem para poder decidir qual o comando correto a ser enviado para o robô.

2.8.2 Sistema Bluetooth para controle de acessórios veiculares utilizando smartphone com Android

No projeto apresentado por Bruno Pereira Passos do Centro Universitário de Brasília

como pré-requisito para obtenção de Certificado de Conclusão de Curso de Engenharia de

Computação, construiu um protótipo com a utilização de um smartphone com Android para a

realização do destravamento de portas e vidros elétricos, em caso de esquecimento da chave

no interior do veiculo, e assim obter acesso ao interior do veículo.

O protótipo funciona da seguinte maneira: com o aplicativo Amarino instalado no

smartphone com Android, é necessário efetuar uma conexão com o hardware que está

acoplado ao protótipo, ou seja, o Amarino efetua um pareamento com o Bluetooth conectado

Page 36: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

38

ao Arduino e com isso é possível enviar e receber dados. Logo após a fase de conectado é

possível utilizar o acelerômetro do dispositivo celular para realização de tarefas previamente

determinadas, dependendo de como está o posicionamento do smartphone nos eixos X, Y e Z

é que uma possível tarefa se simulação de vidro ou trava poderá ocorrer. Na Figura 11 é

possível observar o diagrama de funcionamento do protótipo.

Figura 11. Diagrama de funcionamento do protótipo. Fonte: (PASSOS, 2011)

Para simular o levantamento do vidro, o autor utilizou uma bandeja de um CD/DVD

e a roldana que encaixa a bandeja na estrutura da unidade. Para representar o vidro foi

utilizado um acrílico de 7 cm x 5 cm x 4 mm e um servo motor para representar a máquina do

vidro para abrir e fechar o vidro, foi estipulado depois de vários testes com o servomotor que

o movimento de 0 à 180 graus é para abrir os vidros e de 180 a 0 grau é para fechar o vidro.

Na estrutura de simulação da trava elétrica foi utilizado mais um servomotor, para

que a simulação funcione conforme o sistema original de um carro. Foi definido que se o

braço conectado ao servomotor estiver no ponto de 0º, representará a função de trava fechada

e caso ocorra à movimentação do mecanismo e o valor do ângulo for maior que 90º é que

representará a função de trava aberta.

Para estabelecer uma conexão Bluetooth entre o smartphone e o Arduino, foi

acoplado no Arduino o modulo Bluetooth chamado BlueSMIRF Gold da SparkFun Eletronics

que possui uma taxa de transmissão 115200bps, no projeto foi utilizado a placa Arduino

Duemilanove que é baseada no microcontrolador ATmega328P.

Page 37: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

39

Para desenvolver o software do Arduino o autor utilizou o Arduino IDE e a sua

linguagem própria o Wiring. Wiring é baseada em C e C++.

2.9 Tabela dos trabalhos similares correlacionando com o projeto

Na Tabela 3, é mostrado um comparativo de itens utilizados nos trabalhos similares

correlacionando o projeto do veículo controlado via Bluetooth com Android e Arduino.

Tabela 3. Trabalhos similares correlacionando com o projeto Fonte: (O autor)

Itens Trabalho 01 Trabalho 02 Projeto Aplicativo próprio Sim Não Sim Utiliza Android Sim Sim Sim Utiliza Bluetooth Não Sim Sim Utiliza Acelerômetro Sim Sim Sim Utiliza motor CC/DC Não Não Sim Nível de velocidade Não Não Sim Utiliza servomotor Não Sim Sim Utiliza Arduino Não Sim Sim

Os trabalhos similares apresentados nesse projeto foram de grande ajuda durante

todo o desenvolvimento deste projeto.

Algumas ideias surgiram durante a leitura dos projetos similares, como por exemplo,

a ideia de enviar apenas números para o Arduino surgiu da Figura 12 do trabalho similar 01.

No trabalho similar 01 essa figura indica um protocolo utilizado pelo “WIFIBOT LAB”, cada

bit caracteriza um comando para o robô se movimentar. Cada bit é preenchido com 0 ou 1, a

combinação deles gera um comando no robô. O trabalho ele é adaptado para a aplicação

Android enviar apenas um numero de 0-9, cada numero indica uma ação que o Arduino deve

executar.

O trabalho similar 02 foi de grande ajuda na hora de implementar o controle do

servomotor, pois o projeto disponibiliza o código fonte utilizado na aplicação Arduino que o

autor desenvolveu.

É possível citar algumas vantagens e desvantagens em relação aos trabalhos

similares, por exemplo, o trabalho 02 não possui uma aplicação própria, o autor utilizou uma

aplicação chamada Amarino para interagir com o Bluetooth. A desvantagem é que o Amarino

envia as informações muito genéricas para o Arduino que pode ser utilizada por diversas

Page 38: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

40

aplicações, ou seja, com o Amarino é necessário tratar as informações recebidas no Arduino.

Ao contrário de uma aplicação própria, onde são enviadas apenas as informações necessárias.

Evitando um código fonte muito extenso no Arduino.

Uma desvantagem em relação ao trabalho 01 é a utilização da tecnologia sem fio

Bluetooth, no trabalho similar 01 o autor utiliza a tecnologia Wi-Fi. A Wi-Fi possibilita enviar

informações a distâncias maiores de forma segura, devido à possibilidade de criptografia e de

forma mais rápida.

Page 39: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

41

3 DESENVOLVIMENTO

Nesta seção é demonstrada a modelagem do veículo controlado via Bluetooth. O

projeto apresenta os requisitos funcionais além de abordar o funcionamento geral do veículo,

como acorre à comunicação sem fio, como funcionam seus atuadores, adaptação e montagem

eletrônica na protoboard.

3.1 Requisitos Funcionais

Os requisitos funcionais revelam como o veículo controlado via Bluetooth funciona.

• O veículo deverá movimentar-se num ambiente plano ou com poucas

deformidades;

• O veículo deverá movimentar-se de acordo com as coordenadas fornecidas

pelo acelerômetro do smartphone, ou seja, quando o smartphone for inclinado

para a esquerda o veículo deve virar para a esquerda, quando o smartphone for

inclinado para a direita o veiculo deve virar para a direita, quando o

smartphone for inclinado para cima o veículo deve andar para frente e quando

o smartphone for inclinado para baixo o veículo deve andar para trás;

• Deve ser possível controlar a velocidade do veículo conforme o smartphone

sofrer inclinação, exemplo: quanto mais o smartphone for inclinado para cima

o veículo deve aumentar a velocidade de rotação do motor CC/DC;

• O veículo deverá permanecer parado ou frear quando o smartphone estiver na

posição inicial;

• O veículo deverá ser ligado através de um botão de ignição manual que será

instalado no veículo;

• Para que o veículo possa ser movimentado será necessário parear uma conexão

Bluetooth entre o Arduino e o smartphone;

• O Software do smartphone deverá coletar e processar as coordenadas

fornecidas pelo acelerômetro do smartphone e enviar via Bluetooth para o

Android;

Page 40: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

42

• O software do Android deverá receber as informações fornecidas pelo

smartphone e transformar as informações em tensão de saída para movimentar

os atuadores.

3.2 Funcionamento do Veículo controlado via Bluetooth

O veículo é uma plataforma de um carrinho de controle remoto com quatro rodas,

cujas rodas são preservadas. Na estrutura original, o veículo possui dois motores de CC/DC,

um para tração e outro motor CC/DC para a direção, o motor CC/DC da direção foi removido

e uma adaptação na estrutura original foi necessária para possibilitar a instalação de um

servomotor para o veículo possa virar de acordo com a orientação do smartphone. Fez-se

também necessário alterar a plataforma física do veículo para que fosse possível embarcar a

placa Arduino no veículo.

O veículo ao ser ligado através da chave manual fica aguardando a conexão

Bluetooth pelo smartphone. Quando a conexão for estabelecida e o aplicativo Android for

iniciado o veículo irá se movimentar de acordo com a orientação do acelerômetro do

smartphone.

Na Figura 12 é apresentada uma visão geral do funcionamento do veículo controlado

via Bluetooth.

Figura 12. Visão geral do veículo controlado via Bluetooth Fonte: (O autor)

Basicamente o smartphone se conecta através do Bluetooth com o Arduino, a

aplicação do smartphone faz a leitura das coordenadas do acelerômetro, interpreta essas

informações e envia para o Arduino, o Arduino recebe as coordenadas interpretadas pela

Page 41: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

43

aplicação do smartphone, transforma as informações em tensão de saída para movimentar os

atuadores conectados ao Android.

Figura 13. UC01.01 Funcionamento do veículo controlado via Bluetooth Fonte: (O autor)

Descrição do cenário do “UC01.01 Funcionamento do veículo controlado via

Bluetooth” exibido na Figura 13.

1) Usuário liga o veículo.

2) Usuário estabelece uma conexão Bluetooth entre o smartphone e o Arduino.

3) Usuário inicia o aplicativo para Android.

4) Usuário clica no botão “menu” do smartphone

5) Usuário clica na opção “Conectar-se a”

6) O aplicativo se conecta ao adaptador Bluetooth pareado

7) O aplicativo Android faz a leitura da saída do acelerômetro, processa as

informações e envia para o Arduino.

8) O aplicativo Arduino faz a leitura da entrada do Bluetooth, processa e aciona os

atuadores.

9) O veículo se movimenta.

10) O aplicativo volta para o passo 4.

Cenários de exceção:

No passo 3, caso o usuário apertar o botão STOP.

3.1) O aplicativo para de enviar as informações do acelerômetro.

No passo 3.1, caso o usuário apertar o botão START.

3.1.1) O aplicativo avança para o passo 4.

No passo 3.1, caso o usuário não apertar o botão START.

3.1.1) O usuário encerra a aplicação.

3.1.2) Encerra o UC01.01.

Page 42: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

44

Na Figura 14 é possível observar o diagrama de atividade do caso de uso

funcionamento do protótipo, com o cenário principal.

Figura 14. Diagrama de atividade do UC01.01 Funcionamento do veículo controlado via Bluetooth Fonte: (O autor)

Page 43: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

45

3.3 Movimentar e controlar a direção do veículo

Como citado neste trabalho o projeto utiliza dois tipos de atuadores um servomotor

para controle da direção do veículo e um motor de CC/DC para a tração do veículo. Nesta

sessão é mostrado como são ligados os atuadores para prover mobilidade ao veículo e o

Bluetooth responsável pela comunicação entre o smartphone e o Arduino.

3.3.1 Motor CC/DC

Segundo Braga (2013), os motores de corrente continua (CC) ou motores DC (Direct

Current), como também são chamados, são dispositivos que operam aproveitando as forças de

atração e repulsão geradas por eletroímãs e imãs permanentes.

Figura 15. Com a repulsão o motor tende a girar Fonte: (BRAGA, 2013)

A tendência do motor é dar meia volta para que seu polo Norte se aproxime do polo

Sul do imã permanente, da mesma forma que seu polo Sul se aproximará do polo Norte pelo

qual será atraído como pode ser observado na Figura 15.

No entanto se mudar os polos do eletroímã, fará com que o motor gire ao sentido

contrario, essa é a função da Ponte H que fornece a manipulação dos polos dos motores

CC/DC de forma que possa movimentar o veículo para frente e para trás.

Este projeto utiliza um CI (circuito integrado) controlador de motor muito popular

chamado L293D. Foi escolhido esse CI, pois ele fornece a possibilidade de controlar até dois

motores CC/DC, e ao mesmo tempo nos fornece a possibilidade de controlar a direção dos

motores, pois internamente o CI L293D possui dois esquemas de Ponte H.

Page 44: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

46

Os componentes necessários para fazer a ligação do motor CC/DC são um CI

controlador de motor L293D, uma protoboard e alguns jumpers. Na Figura 16 é possível

observar o esquema elétrico utilizado para ligar o motor CC/DC que é responsável pela tração

do veículo.

Figura 16. Circuito elétrico do motor CC/DC Fonte: (O autor)

A estrutura original do veículo já possui um motor CC/DC dedicado à tração do

veículo e por esse motivo não se fez necessário nenhuma adaptação física, apenas foram

cortados os fios da placa original e foi soldado um jumper em cada fio para ser possível ligar

o motor na protoboard.

3.3.2 Circuito Integrado L293D

O CI L293D é composto basicamente de transistores, diodos para barrar a corrente

reversa e alguns resistores. O circuito do L293D compõe-se de duas pontes H, como pode ser

observado no diagrama de bloco na Figura 17.

Page 45: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

47

Figura 17. Diagrama de bloco CI L293D Fonte: (SGS-THOMSON, 1996)

O CI L293D possui 16 pinos, 4 pinos são do terra (GND), 4 pinos de INPUT, 4 pinos

de OUTPUT, 2 pinos para dizer se os canais estão ligados e 2 pinos para a entrada de energia

para alimentar os motores. Na Figura 18 podemos observar uma visão geral dos pinos do CI.

Figura 18. Visão geral dos pinos do CI L293D Fonte: (SGS-THOMSON, 1996)

A instalação do CI segue a seguintes configurações. Os pinos GND são interligados

através da protoboard e ligados no pino GND do Arduino. Os pinos de INPUT 2 e 7 vão

conectados nas portas digitais 9 e 10 do Arduino respectivamente. Os pinos de OUTPUT 3 e 6

vão ligados no motor CC/DC, como este projeto só utiliza um atuador como tração só é

utilizado dois dos quatros pinos OUTPUT. Os pinos 1 e 9 significam se o canal está ligado.

Por exemplo, para os pinos 2 e 6 funcionarem o pino 1 precisa estar ligado (HIGH), assim

como os pinos 14 e 11 para funcionarem precisam que o pino 9 esteja ligado. No projeto o

Page 46: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

48

pino 9 é alimentado com +5v, isso significa que está ligado ou em (HIGH). O pino de

controle 1 vai ligado no pino digital 6 do Arduino. No Arduino o pino 6 também fornece a

opção de utilizar o PWM para controlar a rotação do motor, através do pino 6 é possível fazer

com que o veículo tenha diferentes níveis de velocidades. Os pinos 8 e 16 são os pinos de

alimentação do CI, o pino 8 pode ser utilizado de +5v até no máximo +36v com uma corrente

máxima de 1,2 A e o pino 16 pode ser ligado com no máximo +5v. O esquema elétrico do

motor pode ser observado na Figura 16.

Tabela 4. Opções do CI L293D Fonte: (O autor)

Pino 1 Pino 2 Pino 7 Função High Low High Gira sentido horário High High Low Gira sentido anti-horário High Low Low Parado High High High Parado

Na Tabela 4, é observado à combinação de valores possíveis para ligar o motor

CC/DC ao CI L293D.

3.3.3 Servomotor

O projeto utiliza um servomotor padrão como atuador para controlar a direção do

veículo. Os servomotores geralmente possuem 180º de liberdade e ainda existem servos que

possuem rotação continua, ou até mesmo é possível modificar um servo padrão para obter

esse efeito, no projeto não foi necessário fazer alterações nas características do servomotor.

Os servomotores, são motores especiais que possuem um sistema interno de feedback

para o controle da posição. Os servos necessitam ser alimentados por uma tensão que varia

tipicamente entre 4,5 e 6,5 Volts, essa tensão varia muito de servo para servo. A posição do

servo é controlada por um trem de impulsos, com uma amplitude que varia entre 1ms e 2ms

em uma frequência de aproximadamente 50Hz (ESTG, 2003).

Page 47: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

49

Figura 19. Movimentos do servo em função do sinal recebido Fonte: (ESTG, 2003)

Na Figura 19 pode ser observado o servo recebendo pulsos. Por exemplo, se o servo

receber pulsos de 1.5ms, a sua engrenagem de saída rodará até ficar estável no centro do

intervalo de rotação nos 90º. Se receber impulsos de 1ms, rodará no sentido horário até atingir

o limite do intervalo de rotação correspondente a 0º. Impulsos entre 1ms e 1.5ms farão com

que o servo rode no sentido horário para posições intermédias entre 0º 90º, enquanto que

impulsos entre 1.5ms e 2ms farão com que o servo rode no sentido anti-horário para posições

intermédias entre 90º e 180º (ESTG, 2003).

Os servomotores são muito utilizados em aeromodelos, mais precisamente utilizados

para controlar as superfícies de voo dos aeromodelos, também é comum encontrar

servomotores em barcos onde nos barcos os servomotores possuem a função de controlar o

leme. Qualquer robô que possui movimento nos braços, pescoço ou até nos olhos, possui um

servomotor que é responsável pelos movimentos.

Page 48: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

50

Figura 20. Exemplo de um servomotor Fonte: (BRAGA, 2013)

Como se pode observar na Figura 20, um servomotor basicamente possui três fios

conectados a ele. O fio vermelho ou “+” é o que recebe os +5v, o preto, marrom ou 0v, foi

instalado no terra e o terceiro fio, que costuma ser da cor branca, amarela ou laranja, foi

conectado em um pino digital do Arduino UNO, esse terceiro fio também é conhecido como

fio de controle (BRAGA, 2013).

Pode-se observar na Figura 21, como foi feita a instalação do servomotor no

Arduino.

Figura 21. Instalação elétrica do servomotor Fonte: (O autor)

Page 49: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

51

Na Figura 21, a instalação possui duas baterias de celular que alimenta o Arduino e o

servomotor. O fio amarelo é ligado no pino 11 do Arduino, esse fio é responsável pela

movimentação do servomotor.

3.3.3.1 Adaptação física do servomotor no veículo

O veículo original utiliza um motor de corrente continua para movimentar a direção

do veículo, se fez necessário remover o motor CC/DC utilizado para a direção e foi adaptado

o servomotor na frente do veículo. Foi necessário cortar parte da frente do veículo original

para que coubesse o servomotor. Na fixação do servomotor foi utilizada fita dupla face e

pedaços de plástico foram fixados com cola seca rápido. Na barra de direção foram retiradas

as engrenagens que eram utilizadas pelo motor CC/DC e fixado com um parafuso na

engrenagem do servomotor.

Na Figura 22 pode ser observado o resultado final da adaptação do servomotor.

Figura 22. Adaptação do servomotor Fonte: (O autor)

3.3.4 Bluetooth

Para que o Arduino receba as informações da aplicação Android, foi necessário

instalar um modulo Bluetooth no Arduino. O modulo escolhido para o projeto é o HC-06, é

um modulo comum de encontrar no mercado e custa cerca de U$ 10.78, (ALIEXPRESS,

2013).

Page 50: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

52

Figura 23. Modulo Bluetooth HC-06 Fonte: (GUANGZHOU HC INFORMATION TECHNOLOGY, 2011)

Na Figura 24 é exibido como foi feita a conexão do módulo Bluetooth com a placa

Arduino. O modulo HC-06 possui quatro fios que devem ser conectados no Arduino. O fio

azul ou RXD é ligado no pino digital “0” do Arduino, esse é o canal de recebimento de

informação, o fio verde ou TXD, vai ligado no pino digital “1” do Arduino, esse é o canal

responsável por enviar as informações, o fio preto ou GND é o fio terra e vai ligado no pino

terra do Arduino e o fio vermelho ou VCC é o fio de alimentação de energia do modulo que

vai conectado ao pino de 5v do Arduino.

Figura 24. Conexão física do modulo HC-06 com o Arduino Fonte: (TUXTI, 2013)

3.3.5 Montagem eletrônica

Nesta seção mostra-se o esquema do circuito usado para controlar o Motor CC/DC, o

Servomotor e o adaptador Bluetooth.

Page 51: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

53

Na Figura 25, é possível observar o esquemático do circuito elétrico completo que foi

montado para atender o projeto.

Figura 25. Esquemático do circuito do projeto Fonte: (O autor)

No circuito montado para o projeto foi utilizado duas baterias de celular ligadas em

série, cada uma possui 3.7 Volts. Juntas somam 7.4 Volts. As duas baterias conseguem

fornecer alimentação suficiente para todos os componente utilizados nesse projeto.

3.4 Coletando, enviando e recebendo as informações.

Nesta sessão será mostrado como será coletado as informações do acelerômetro do

smartphone, como será configurado o módulo Bluetooth e como o Arduino irá receber as

informações.

3.4.1 Aplicativo smartphone

Nesta sessão será mostrado como ocorre à coleta das informações do acelerômetro,

como são calculados os níveis de velocidade e como são enviadas as informações para o

Arduino.

Page 52: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

54

3.4.1.1 Requisitos funcionais do aplicativo Android

Os requisitos funcionais que a aplicação Android deverá atender são os seguintes:

• Ler a saída da orientação do Acelerômetro;

• Determinar o nível de velocidade;

• Enviar a orientação via Bluetooth.

3.4.1.2 Funcionamento do Aplicativo Android

O acelerômetro é um tipo de sensor que permite a identificação da posição física do

dispositivo. Ou seja, através dele é possível saber quando um dispositivo esta inclinado para a

esquerda ou direita, para frente ou para trás, pra baixo ou para cima e a partir dessas

informações realizarem eventos. O uso do acelerômetro é muito frequente em aplicativos

Android, principalmente em jogos. Um bom exemplo são os jogos de corrida em que o celular

se transforma no volante do carro, e ao inclina-lo para a direita o veículo executará uma curva

para a direita, o mesmo acontece para a esquerda. Na Figura 26 é possível observar uma visão

geral da aplicação Android, onde a aplicação interage com o Acelerômetro e o Bluetooth.

Figura 26. Visão geral da aplicação Android Fonte: (O autor)

Na Figura 27 pode ser observado o funcionamento do aplicativo Android através do

diagrama de estado.

Page 53: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

55

Figura 27. Diagrama de estado da aplicação Android Fonte: (O autor)

O software faz a leitura das saídas do Acelerômetro no smartphone e com as

orientações obtidas o aplicativo Android faz o processamento das informações, determina o

nível de velocidade do veículo, deixar as informações amigáveis para que o Arduino possa

entendê-las e envia através do modulo Bluetooth para o Arduino.

3.4.1.3 Coletando as informações do acelerômetro

Para que a aplicação trate os eventos do acelerômetro foi necessário implementar a

interface SensorEventListener, essa interface implica na implementação de dois métodos, o

onAccuracyChanger(Sensor sensor, int accuracy) que é acionado quando acontece

mudança do na precisão sensor do acelerômetro e o onSensorChanged(SensorEvent event)

que é acionado quando o sensor identifica uma alteração na posição do dispositivo, toda a

lógica do nível de velocidade é feito no método onSensorChanged(SensorEvent event).

O método onSensorChanged(SensorEvent event), fornece um array com os valores

dos três eixos, o X, Y e Z em relação ao smartphone, ou seja, quando o smartphone sofre

alguma alteração em sua posição os valores dos eixos são alterados e assim é possível calcular

e determinar quando o smartphone está sofrendo alguma alteração na sua posição.

3.4.1.4 Nível de velocidade

O Software Android calcula três níveis de velocidade, são eles o nível 1, nível 2 e o

nível 3 além da marcha ré e do veículo parado. Os níveis de velocidade são determinados a

partir da inclinação do smartphone para cima, na medida em que o usuário inclina o

smartphone para cima, ou seja, quanto mais distante de “0” o valor do eixo X estiver mais alto

é o nível de velocidade de locomoção do veículo. O acelerômetro do smartphone varia o valor

do eixo X de -10 a 10, a partir dessa variação é que são determinados os níveis de velocidade.

Na Tabela 5 é exibido os níveis de velocidade do veículo.

Page 54: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

56

Tabela 5. Níveis de velocidade do veículo Fonte: (O autor)

Nível 1 Nível 2 Nível 3 Ré Parado Valor de X > 3 e < 5 > 5 e < 8 > 8 < -2 >-2 e < 2

Capacidade de giro do Motor 62% 78% 100% 62% 0%

Na Figura 37, Figura 38, Figura 39, Figura 40 e Figura 32 respectivamente, são

possíveis observar as posições reais aplicadas ao smartphone para cada item da Tabela 5.

3.4.1.5 Enviando os dados para o Arduino

A plataforma Android inclui suporte para a pilha de rede Bluetooth, que permite que

um dispositivo troque dados com outro dispositivo Bluetooth.

Para a aplicação conseguir utilizar o adaptador Bluetooth, primeiramente foi

necessário declarar duas permissões no arquivo de manifesto, a permissão BLUETOOTH e

BLUETOOTH_ADMIN.

Para enviar as informações pelo dispositivo Bluetooth foi necessário implementar o

dispositivo BluetoothAdapter que é obtido através do método estático getDefaultAdapter().

Existe apenas um adaptador para todo o sistema caso o método getDefaultAdapter() retornar

“null” é por que o dispositivo não suporta Bluetooth.

Na aplicação existe uma classe chamada “ConexionBT”. Essa classe é responsável

por implementar as quatro principais tarefas que são necessárias para a comunicação via

Bluetooth, ainda nesta classe é declarado o endereço “MAC” (endereço único do adaptador

cliente) no caso é o endereço físico do adaptador ligado ao Arduino. Também é declarado o

UUID que é o identificador único da aplicação Android. O método utilizado para enviar as

mensagem para o Arduino é o “sendMessage” que está implementado na “Main_Activity” da

aplicação.

3.4.2 Configurando o módulo Bluetooth

Para configurar o módulo HC-06 são necessários utilizar comandos ATs. Com os

comandos ATs pode ser mudado o nome do dispositivo, a senha PIN para conexão e a taxa de

transmissão que deve ser de 9600 baud. Para conseguir enviar os comandos para o módulo é

necessário conecta-lo ao computador através de uma conexão USB. Pode ser utilizado o

Arduino para prover uma ponte entre o módulo HC-06 e o computador.

Page 55: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

57

Figura 28. Conexão para configurar o módulo HC-06 Fonte: (O autor)

Como pode ser visto na Figura 28, o módulo HC-06 é conectado no Arduino e o

micro computador é conectado ao Arduino. Com essa conexão é possível enviar comandos

ATs para o módulo Bluetooth e assim conseguir alterar suas configurações que vem com

padrão de fabrica.

Por exemplo, para alterar o nome do módulo Bluetooth é utilizado o comando AT +

NAMEnome, um exemplo do comando ficaria assim, AT + NAMEteste, agora o módulo

possui o nome “teste” configurado, o nome é limitado para no máximo 20 caracteres. Para

alterar o PIN é utilizado o comando AT + PINxxxx, onde os “x” devem ser substituídos por

números. Para alterar o “baud” que corresponde a taxa de transmissão é utilizado o comando

AT + BAUNDx, onde “x” corresponde a um valor da primeira coluna da Tabela 6, por

exemplo, AT + BAUND4, configura o módulo para taxa de 9600 baud. Na Tabela 6 pode ser

verificado os possíveis valores em bauds que podem ser configurado no adaptador Bluetooth.

Tabela 6. Valores em bauds Fonte: Adaptado de (http://www.wavesen.com/probig.asp?id=11)

Cod. Taxa em bauds Cod. Taxa em bauds 1 1200 7 57600 2 2400 8 115200 3 4800 9 230400 4 9600 A 460800 5 19200 B 921600 6 38400 C 1382400

Page 56: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

58

Não foi necessário alterar as configurações de fabrica do adaptador, pois o adaptador

já vem configurado com a taxa de transmissão de 9600 baud e vem apto a conectar-se com o

smartphone Android.

3.4.3 Aplicação Arduino

Nesta sessão será mostrado como ocorre o funcionamento da aplicação Arduino.

3.4.3.1 Requisitos funcionais da aplicação Arduino

Os requisitos funcionais que a aplicação Arduino deverá atender são os seguintes:

• Ler as orientações recebidas via Bluetooth;

• Determinar a orientação do veículo de acordo com a orientação recebida do

smartphone;

• Acionar os atuadores para que o veículo se comporte conforme a orientação do

smartphone.

3.4.3.2 Funcionamento da aplicação Arduino

A aplicação Arduino possui basicamente duas funções a void Setup(), que é utilizada

para declaração inicial do programa. É nessa função que foi definido quais os pinos digitais

do Arduino são utilizados e a função void Loop(). Nessa função é onde fica todo o código da

aplicação e essa função, como pode ser observado no nome, é um loop infinito que fica

rodando até que o Arduino seja desligado. Na Figura 29 mostra uma visão geral da aplicação

Arduino.

Figura 29. Visão geral da aplicação Arduino Fonte: (O autor)

Page 57: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

59

Como pode ser observado na Figura 29 a aplicação Arduino interage com o módulo

Bluetooth, servomotor e com o motor CC/DC.

Na Figura 30 é possível observar o funcionamento da aplicação Arduino através do

diagrama de estado. A aplicação Arduino funciona da seguinte maneira, ela recebe as

informações de orientação do acelerômetro do smartphone e determina se o veículo deve

andar para frente, para trás, virar a esquerda, virar à direita ou parar. O Arduino utiliza os

atuadores (servomotor e motor CC/DC) para fazer com que o veículo interaja com o mundo

físico.

Figura 30. Diagrama de estado da aplicação Arduino Fonte: (O autor)

A aplicação Arduino utiliza 4 pinos digitais para compor a solução, são eles o pino 6

que prove o PWM para o motor CC/DC os pinos 9 e 10 que são ligados no CI L293D para

que seja possível inverter os polos do motor CC/DC e o pino digital 11 utilizado para ligar o

fio de controle do servomotor. A aplicação recebe as informações do Bluetooth a partir do

método “Serial.read()”, a porta serial é declarada na função “void setup()” da seguinte

maneira “Serial.begin(9600)” o parâmetro passado é o valor em baud configurado no

adaptador Bluetooth.

A aplicação recebe apenas um numero de 0 a 9, ou seja, cada número tem uma função

diferente para a aplicação, por exemplo, se o smartphone enviar o número “5” a aplicação

Arduino identifica que o veículo deve ficar com servomotor na posição inicial que é de 24

graus isso significa que o veículo ficará com a direção na posição reta. Se o smartphone

enviar o número “0” a aplicação Arduino identifica que o veículo deve andar para trás (ré).

Para isso o Arduino manda o sinal de LOW (desligado) para o pino 10, HIGH (ligado) para o

pino 9 e determina que o motor gire com uma potencia de 62% da rotação do motor. Na

Tabela 7 podem ser observados os códigos, significados e a ação que o Arduino deve tomar

dependendo do código recebido.

Page 58: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

60

Tabela 7. Códigos enviados para o Arduino Fonte: (O autor)

Código Significado Ação 0 Ré Pin 10 – LOW, Pin 9 – HIGH, Pin 6 – 62% (PWM) 1 Nível 1 de velocidade Pin 10 – HIGH, Pin 9 – LOW, Pin 6 – 62% (PWM) 2 Nível 2 de velocidade Pin 10 – HIGH, Pin 9 – LOW, Pin 6 – 78% (PWM) 3 Nível 3 de velocidade Pin 10 – HIGH, Pin 9 – LOW, Pin 6 – 100% (PWM) 4 Para/Stop Pin 10 – LOW, Pin 9 – LOW, Pin 6 – 100% (PWM) 5 Direção reta Pin 11 – 24º Graus 6 Vira para direita Pin 11 – 36º Graus 7 Vira para direita Pin 11 – 48º Graus 8 Vira para a esquerda Pin 11 – 12º Graus 9 Vira para a esquerda Pin 11 – 0º Graus

3.5 Testes do projeto

Todos os testes foram realizados levando em consideração que a superfície que o

veículo percorreu é plana. Levando em consideração que o servomotor possui uma posição

inicial de 24º graus, isso garante que a direção do veiculo está em linha reta. E o smartphone

utilizado é o modelo Samsung Galaxy S3. Na Figura 31 é possível observar os valores em

graus que o braço do servomotor consegue atingir quando o veículo vira, tanto para a

esquerda quanto para a direita.

Figura 31. Angulação do braço do servomotor Fonte: (O autor)

3.5.1 Veiculo parado ou frear

No teste foi deixado o smartphone na posição exibida na Figura 32 (horizontal)

devidamente conectado com o veículo e nada ocorreu, ou seja, o teste comprovou que quando

o smartphone está na posição exibida na Figura 32 o veículo não se movimenta.

Page 59: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

61

Para comprovar que a posição horizontal deixa o veículo em repouso, foi realizado o

seguinte experimento. Veículo em movimento, o smartphone é colocado na horizontal.

Imediatamente o veículo desacelera e para. Isso está correto, pois nesta posição o aplicativo

Android não envia informação para o Arduino.

Figura 32. Posição do smartphone para o veículo ficar parado Fonte: (O autor)

3.5.2 Virar para direita

No teste foi ajustada a posição do smartphone saindo da posição da Figura 32 para a

posição exibida na Figura 33. Quando o smartphone sofreu essa alteração em sua posição o

servomotor do veículo saiu da posição inicial de 24º graus (posição reta do veículo) e parou

na posição de 34º graus, fazendo com que a direção do veículo virasse para a direita.

Figura 33. Virar para a direita nível 1 Fonte: (O autor)

Ainda no teste foi alterada novamente a posição do smartphone saindo da posição

exibida na Figura 33 para a posição exibida na Figura 34. Isso fez com que o servomotor

saísse da posição de 34º graus para a posição de 48º graus, ou seja, o ângulo de inclinação da

roda aumentou e assim ele consegue fazer uma curva mais acentuada para direita.

Page 60: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

62

Figura 34. Virar para a direita nível 2 Fonte: (O autor)

3.5.3 Virar para a esquerda

No teste foi ajustada a posição do smartphone saindo da posição da Figura 32

(horizontal) para a posição exibida na Figura 35. Quando ocorreu essa mudança no

smartphone o servomotor sofreu uma alteração de 12º graus, ou seja, a posição anterior era a

posição reta (24º graus) e passou a ser 12º graus, isso fez com que o veículo virasse para a

esquerda.

Figura 35. Virar para a esquerda nível 1 Fonte: (O autor)

Ainda no teste foi ajustada novamente a posição do smartphone saindo da posição da

Figura 35 até a posição da Figura 36, isso fez com que o servomotor alterasse novamente sua

inclinação de 12º para 0º graus, fazendo com que o veículo virasse para esquerda o máximo

permitido.

Page 61: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

63

Figura 36. Virar para a esquerda nível 2 Fonte: (O autor)

Durante os testes de virar o veículo tanto para a direita quando para a esquerda foi

necessário ajustes no programa Arduino, pois o smartphone fica enviando constantemente as

informações para o Arduino fazendo com que o servomotor ficasse mudando o ângulo de

giro. Por exemplo, quando o smartphone foi posicionado conforme a Figura 36 o servomotor

girava para 0º e logo em seguida voltava para 24º. Isso acontecia devido a um contador no

programa que é utilizado para deixar o veículo com a direção reta no momento em que é

ligado. Para resolver esse problema foi necessário iniciar o contador na função Setup(), assim

o contador é iniciado apenas quando o veículo é ligado e na função Loop() ele sofre apenas

incremento.

3.5.4 Andar para frente

No teste foi ajustada a posição do smartphone saindo da posição da Figura 32

(horizontal), para a posição exibida na Figura 37. Quando ocorreu essa mudança no

smartphone o Arduino aplicou uma força de 62% fazendo o motor CC/DC girar no sentido

horário e o veículo andar para frente.

Figura 37. Andar para frente nível 1 Fonte: (O autor)

Page 62: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

64

Ainda no teste foi ajustada novamente a posição do smartphone saindo da posição da

Figura 37 para a posição da Figura 38, isso fez com que o a força aplicada ao motor CC/DC

fosse alterada de 62% para 78% ainda no sentido horário, fazendo com que o veículo se

locomovesse ainda mais rápido.

Figura 38. Andar para frente nível 2 Fonte: (O autor)

Ainda no teste foi ajustada novamente a posição do smartphone, saindo da posição da

Figura 38 para a posição da Figura 39, isso fez com que a força aplicada ao motor CC/DC

fosse alterada de 78% para 100% ainda no sentido horário, fazendo com que o veículo

andasse na sua velocidade máxima.

Figura 39. Andar para frente nível 3 Fonte: (O autor)

3.5.5 Andando para trás

No teste foi ajustada a posição do smartphone saindo da posição da Figura 32 para a

posição exibida na Figura 40. Quando ocorreu essa mudança no smartphone o Arduino

aplicou uma força no motor CC/DC de 62% no sentido anti-horário, fazendo como que o

veículo andasse para trás.

Page 63: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

65

Figura 40. Andando para trás Fonte: (O autor)

Durante os testes de andar para frente e para trás foi necessário ajustar a potencia

aplicada ao motor CC/DC, pois o valor inicial era de 50% para o nivel 1 de velocidade e não

foi suficiente para o veículo mover-se devido ao seu peso. Isso também ocorreu com a

potência aplicada para o veículo andar para trás, pois eram as mesmas configurações. Fez-se

necessário aplicar a potência de 62% nas duas.

3.5.6 Teste de campo

Nos testes de campo o veículo foi submetido às condições necessárias citadas no item

3.5. Na Figura 41 é possível observar um pequeno trecho percorrido pelo veículo durante o

teste de campo. O veículo sai do Ponto 1 com o smartphone na posição da Figura 37, isso

significa que o braço do servomotor está com 24º e percorre o trecho simbolizada pela linha

laranjada até o Ponto 2. No Ponto 2 é adicionado duas novas posições ao smartphone. A linha

verde indica a posição da Figura 33, ou seja, o braço do servomotor com 36º graus e a linha

preta indica a posição da Figura 34, ou seja, o braço do servomotor com 48º. Na linha preta o

veículo possui uma curva mais acentuada, pois o smartphone está mais inclinado. Na linha

verde o veículo possui uma curva menos acentuada, pois o smartphone está menos inclinado.

Os Pontos 3 e 4 acontecem quando o veiculo atinge o ponto máximo da sua curva.

Page 64: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

66

Figura 41. Gráfico com trecho percorrido para o teste de virar para direita Fonte: (O autor)

Page 65: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

67

4 CONCLUSÕES

O objetivo principal deste trabalho foi utilizar tecnologia open source para

movimentar um veículo com um smartphone através de uma conexão Bluetooth. Para isso

acontecer, foi necessário estudar uma relação de conteúdos como Android, Arduino,

Bluetooth, acelerômetro, atuadores e eletrônica.

O estudo realizado buscou mecanismos para unir duas áreas completamente distintas

e ao mesmo tempo tão próximas, pois sempre andam lado-a-lado (hardware e software) com

foco em entender o funcionamento do Arduino e seus shields, atuadores, Bluetooth e dos

aplicativos Android para smartphones.

A primeira tarefa realizada neste Trabalho Técnico-científico de Conclusão do Curso

foi reunir informações suficientes sobre Arduino, atuadores, shields Bluetooth para Arduino e

sobre aplicativos para sistema operacional Android. Todas as informações levantadas foram

de extrema relevância, permitindo a conclusão do trabalho com êxito. O processo de

levantamento de informações permitiu que diversos tipos de Arduinos, atuadores e shields

Bluetooth fossem analisados buscando os que atendessem aos requisitos do projeto. O

processo também possibilitou a analise de trabalhos similares com o intuito de utilizar o

conhecimento e dificuldades já enfrentadas por outras pessoas. Após obter as informações

necessárias para o desenvolvimento do projeto, partiu-se para a modelagem do projeto. Uma

solução encontrada foi à utilização da UML para especificar os diagramas (diagrama de

atividade, diagrama de estados) e o caso de uso. Na parte do projeto também foi descrito

sobre a instalação eletrônica dos atuadores e do modulo Bluetooth no Arduino.

Desde o início do projeto houve um grande desafio a ser enfrentado e vencido, já que

este projeto possui uma multidisciplinaridade envolvendo além da filosofia do Faça Você

Mesmo Do It Yourself – DIY as áreas de conhecimento, como mecânica, eletrônica e

computação.

Com este projeto pode-se perceber que as tecnologias open-source possibilitam fazer

diversas coisas, apenas sendo preciso pesquisar soluções para os problemas que certamente

podem ser resolvidos com as tecnologias open-source.

Page 66: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

68

Neste projeto além de superar os problemas encontrados, a parte eletrônica também

foi um contratempo, pois é preciso tomar cuidado para evitar que os componentes sejam

ligados de forma errada e assim danificá-los. Os motores de corrente contínua e servomotor

apresentam suas particularidades como foi citado nas etapas de testes e validação, mas o

suporte que existe na utilização da plataforma Arduino garantiu que não houvesse problema

nas implementações.

O software Android foi que mais consumiu tempo no projeto, cerca de 70% do

tempo. Vale ressaltar que é um assunto extra-curso, porém de muita utilidade. As dificuldades

encontradas na implementação do adaptador Bluetooth foi devido a quatro principais tarefas

para a comunicação, que são elas:

• Configurar o Bluetooth;

• Encontrar dispositivos que estejam emparelhados;

• Conectar os dispositivos; e

• Transferir dados entre os dispositivos.

Com este trabalho conclui-se que é possível guiar um veículo tipo controle remoto

utilizando apenas tecnologia open-source. O trabalho aponta e descreve: como e o que é

necessário para o desenvolvimento do protótipo.

4.1 Trabalhos futuros

• Melhorar a aparência do circuito. Elaborar uma placa de circuito impresso

com os componentes necessários ao funcionamento e adaptando plugs para

um encaixe mais adequado.

• Incluir no software Android a opção de guiar o veículo sem utilizar o

acelerômetro, guiando o veículo apenas com botões.

• Incluir no software Android uma opção de buscar dispositivos Bluetooth

próximos para a conexão.

• Acrescentar características ao veículo que aproximem da realidade, como por

exemplo: incluir dois LED’s simulando os faróis de um veículo e adicionar

Page 67: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

69

no software Android botões para ligá-los, na parte traseira colocar dois led´s

vermelhos e fazê-los acender quando o carro é desacelerado, simulando

freios.

Page 68: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

70

REFERÊNCIAS

ALIEXPRESS. HC-06 Bluetooth Module, 2013. Disponivel em: <(http://www.aliexpress.com/snapshot/233485964.html).>. Acesso em: 27 Maio 2013. AMARINO. Amarino, Android meets Arduino, 2013. Disponivel em: <http://www.amarino-toolkit.net/>. Acesso em: 10 Maio 2013. ANDROID ON BOARD. Acelerómetro no Android!, 25 set. 2012. Disponivel em: <http://androiddevbr.wordpress.com/2012/11/25/acelerometro-no-android/>. Acesso em: 31 Maio 2013. ARDUINO. Arduino Uno, 2011. Disponivel em: <http://arduino.cc/en/Main/ArduinoBoardUno>. Acesso em: 02 Julho 2013. BANZI, M. Primeiros Passos com o Arduino. São Paulo: Novatec, 2012. BRAGA, N. C. O que é PWM, set. 2011. Disponivel em: <http://www.newtoncbraga.com.br/index.php/robotica/5169-mec071a>. Acesso em: 15 Março 2013. BRAGA, N. C. Como funciona o motor de corrente contínua, 2013. Disponivel em: <http://www.newtoncbraga.com.br/index.php/como-funciona/3414-art476a>. Acesso em: 20 Maio 2013. BRAGA, N. C. Como funcionam os servos, 2013. Disponivel em: <http://www.newtoncbraga.com.br/index.php/robotica/5164-mec066a>. Acesso em: 21 maio 2013. CARDOSO, B. Tecnologia Sem Fio, Mobilidade e Comunicação, 10 Novembro 2007. Disponivel em: <http://www.slideshare.net/binhacardoso/tecnologia-sem-fio-mobilidade-e-comunicao>. Acesso em: 08 Maio 2013. CRUZ, B. H. A. et al. Desenvolvimento de uma aplicação embarcada em celular visando controle de robô via Wi-Fi, Março 2011. Disponivel em: <http://www.upf.br/seer/index.php/rbca/article/view/1301/1071>. Acesso em: 08 Maio 2013. ESTG. Controle de servomotores com o microcontrolador BX-24, 2003. Disponivel em: <http://www.estg.ipg.pt/robobombeiro2003/BX24_Servos.pdf>. Acesso em: 22 Maio 2013. GHIRARDELLO, A. Apostila sobre Modulação PWM, 2008. Disponivel em: <http://www.eletronica.org/arq_apostilas/apostila_pwm.pdf>. Acesso em: 15 Março 2013. GUANGZHOU HC INFORMATION TECHNOLOGY. HC Serial Bluetooth Products, User Instructional Manual, Abril 2011. Disponivel em: <http://cxem.net/arduino/download/HC%20Serial%20Bluetooth%20Products%20201104.pdf>. Acesso em: 21 Maio 2013.

Page 69: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

71

HAMMACK, B. How a Smartphone Knows Up from Down (acceleromoter), 2012. Disponivel em: <http://www.youtube.com/watch?v=KZVgKu6v808>. Acesso em: 20 Abril 2013. IBOPE. Painel de Tendências, Hábitos de consumo de mídia na era da convergência, Agosto 2009. Disponivel em: <http://www.infoglobo.com.br/Anuncie/Conectimidia_2009_EventoOGlobo.pdf>. Acesso em: 08 Maio 2013. LECHETA, R. R. Google Android. Segunda Edição. ed. São Paulo: Novatec, 2010. MCROBERTS, M. Arduino Básico. São Paulo: Novatec, 2011. MORIMOTO, C. E. Smartphones: Acelerômetros, 2010. Disponivel em: <http://www.hardware.com.br/dicas/smartphones-acelerometros.html>. Acesso em: 22 Abril 2013. ONODERA, C. A. Experiencia Arduino + Bluetooth + Android - parte 1/3, 13 Setembro 2011. Disponivel em: <http://www.youtube.com/watch?v=IwnofqvGKow>. Acesso em: 23 Maio 2013. ONODERA, C. A. Experiencia Arduino + Bluetooth + Android - parte 2/3, 13 Setembro 2011. Disponivel em: <http://www.youtube.com/watch?v=R6o1UlC-ztg>. Acesso em: 23 Maio 2013. ONODERA, C. A. Experiencia Arduino + Bluetooth + Android - parte 3/3, 13 Setembro 2011. Disponivel em: <http://www.youtube.com/watch?v=hWUSloIi6gg>. Acesso em: 23 Maio 2013. PASSOS, B. P. Sistema Bluetooth para controle de acessórios veiculares utilizando smartphone com Android, Janeiro 2011. Disponivel em: <http://repositorio.uniceub.br/bitstream/123456789/3610/1/20614551.pdf>. Acesso em: 28 Abril 2013. PATSKO, L. F. Tutorial Montagem da Ponte H, 22 fev. 2006. Disponivel em: <http://www.maxwellbohr.com.br/downloads/robotica/mec1000_kdr5000/tutorial_eletronica_-_montagem_de_uma_ponte_h.pdf>. Acesso em: 20 Abril 2013. PRADO, S. Introdução ao funcionamento interno do Android, 15 ago. 2011. Disponivel em: <http://sergioprado.org/introducao-ao-funcionamento-interno-do-android/>. Acesso em: 31 Maio 2013. REDAÇÃO OFICINANET. Tudo sobre o Google Android OS, 09 ago. 2010. Disponivel em: <http://www.oficinadanet.com.br/artigo/outros_sistemas/google_android_os>. Acesso em: 31 Maio 2013. RUFINO, N. M. D. O. Segurança em Redes sem Fio. Terceira Edição. ed. São Paulo: Novatec, 2011.

Page 70: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

72

SCHEMBERGER¹, E. E.; FREITAS¹, I.; VANI², R. ¹UNIOESTE - Universidade Estadual do Oeste do Paraná, ²UNIVEL - União Educacional de Cascavel. Plataforma Android, set. 2009. Disponivel em: <http://www.jornaltech.com.br/wp-content/uploads/2009/09/Artigo_Android.pdf>. Acesso em: 31 Maio 2013. SGS-THOMSON. Datasheet Catalog, 1996. Disponivel em: <http://pdf.datasheetcatalog.com/datasheet/stmicroelectronics/1330.pdf>. Acesso em: 26 out. 2013. SOUZA, M. P. P. D. Acionamento de motor elétrico via Bluetooth de celular, Junho 2010. Disponivel em: <http://repositorio.uniceub.br/bitstream/123456789/3584/1/20465952.pdf>. Acesso em: 02 Maio 2013. TUXTI. Arduino - Bluetooth JY-MCU HC-06, 2 Abril 2013. Disponivel em: <http://www.tuxti.com.br/wiki/index.php/Arduino_-_Bluetooth_jy-mcu_HC-06>. Acesso em: 22 Maio 2013. WIFIBOT LAB. Quick Start Guide, 2010. Disponivel em: <http://www.wifibot.com/download/wifibotlab_english_guide2010.pdf>. Acesso em: 05 Maio 2013.

Page 71: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

73

GLOSSÁRIO

Arduino É uma plataforma de hardware e software livre para prototipagem rápida que permite conectar vários tipos de sensores e atuadores para realizar seu controle.

Atuador Elemento que produz movimento seja sua fonte pneumática, hidráulica ou elétrica.

Bluetooth Tecnologia de comunicação sem fio.

Flash Tecnologia que permite a criação de animações vetoriais.

Microcontrolador É um circuito integrado que possui internamente um microprocessador com características de um computador, porém com limitação em seu hardware.

Ponte-H É um circuito eletrônico que permite controlar um motor de corrente contínua através de um microcontrolador.

Processing Linguagem/ambiente de código aberto que possibilita programar imagens, animações e interações.

PWM Técnica que permite simular variações de tensões entre 0 e 5 volts.

Shield São placas que se acoplam em cima da placa Arduino para ampliar suas funcionalidades.

Sketch Nome usado para identificar um programa escrito em Arduino.

Page 72: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

74

APÊNDICE A. SKETCH DO VEÍCULO

#include <Servo.h> Servo motor; int pos = 0; int motor1Pin1 = 10;// pin 2 L293D int motor1Pin2 = 9; // pin 7 L293D int motor1Pin3 = 6; // pin 1 L293D int h = 0;

void setup() { motor.attach(11); pinMode(motor1Pin1, OUTPUT); pinMode(motor1Pin2, OUTPUT); pinMode(motor1Pin3, OUTPUT); Serial.begin(9600); } void loop() { char c = Serial.read(); int ang; //posição inicial da direção if (h==0){ motor.write(24); } //ré if(c == '0'){ digitalWrite(motor1Pin1,LOW); // set pin 2 on L293D high digitalWrite(motor1Pin2,HIGH); // set pin 2 on L293D high analogWrite(motor1Pin3,150); //set pin 1 on L293D } //Nível 1 de velocidade if(c == '1'){ digitalWrite(motor1Pin1,HIGH);// set pin 2 on L293D high digitalWrite(motor1Pin2,LOW); // set pin 7 on L293D high analogWrite(motor1Pin3,140); //set pin 1 on L293D } //Nível 2 de velocidade if(c == '2'){ digitalWrite(motor1Pin1,HIGH);// set pin 2 on L293D high digitalWrite(motor1Pin2,LOW); // set pin 7 on L293D high analogWrite(motor1Pin3,200); //set pin 1 on L293D } //Nível 3 de velocidade if(c == '3'){

Page 73: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

75

digitalWrite(motor1Pin1,HIGH);// set pin 2 on L293D high digitalWrite(motor1Pin2,LOW); // set pin 7 on L293D high analogWrite(motor1Pin3,255); //set pin 1 on L293D } //STOP veículo parado if(c == '4'){ analogWrite(motor1Pin1,LOW);// set pin 2 on L293D high digitalWrite(motor1Pin2,LOW);// set pin 7 on L293D high analogWrite(motor1Pin3,255); //set pin 1 on L293D } //posição direção reta do veículo if(c == '5'){ ang = motor.read(); if(ang!=24){ motor.write(24); } } //vira para a direira if(c == '6'){ ang = motor.read(); if(ang!=36){ motor.write(36); delay(170); } } //vira para a direira if(c == '7'){ ang = motor.read(); if(ang!=48){ motor.write(48); delay(170); } } //vira para a esquerda if(c == '8'){ ang = motor.read(); if(ang!=12){ motor.write(12); delay(170); } } //vira para a esquerda if(c == '9'){ ang = motor.read(); if(ang!=2){ motor.write(2); delay(170); } }

Page 74: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS ...siaibib01.univali.br/pdf/Jean Carlos Potrich.pdf · durante o desenvolvimento do projeto. ... controle de robô via Wi-fi ...

76

h = 1; /*utilizado para contar o primeiro loop, *para que o veículo quando for ligado fique *com a direção na posição inicial */ }