CPBR7 - Concurso Leve seu robô - roboliv.re · aquele que passar dos limites da arena. 1 Projeto...

31
1 CPBR7 - Concurso Leve seu robô #ProjetO_Ohm JEFFERSON F ERREIRA PALHETA Email: [email protected] Curriculum Lattes: http://lattes.cnpq.br/6065504211568124 Belém-PA, Janeiro de 2014

Transcript of CPBR7 - Concurso Leve seu robô - roboliv.re · aquele que passar dos limites da arena. 1 Projeto...

1

CPBR7 - Concurso Leve seu robô

#ProjetO_Ohm

JEFFERSON FERREIRA PALHETA

Email: [email protected]

Curriculum Lattes: http://lattes.cnpq.br/6065504211568124

Belém-PA, Janeiro de 2014

2

Sumário

1. Introdução ............................................................................................................................... 3

2. Descrição ................................................................................................................................ 3

2.1 Competição de sumô ............................................................................................................ 3

2.2 Objetivo .................................................................................................................................. 4

2.3 Funcionalidades .................................................................................................................... 4

3. Relação de componentes .................................................................................................... 4

3.1 Parte mecânica ..................................................................................................................... 4

3.2 Parte elétrica ......................................................................................................................... 5

4. Passo a passo ........................................................................................................................ 8

4.1 Esboço ................................................................................................................................... 8

4.2 Dificuldades ..........................................................................................................................10

4.3.1 Chassi ............................................................................................................................10

4.3.2 Lataria ............................................................................................................................13

4.3.3 Rodas .............................................................................................................................17

4.3.4 Adaptação dos Motores ...............................................................................................19

4.3.5 Caixa de Baterias ..........................................................................................................20

4.4 Elaboração e execução do projeto elétrico - parte elétrica ..............................................21

4.4.1 CI ....................................................................................................................................21

4.4.2 Sensores ........................................................................................................................21

4.4.3 Alimentação ...................................................................................................................22

4.4.4 Microcontrolador ...........................................................................................................23

6 Resultados .................................................................................................................................28

3

1. Introdução

O projeto OHM1 nasceu por meio de uma proposta apresentada na disciplina

Projetos de Engenharia III do curso de Engenharia da Computação da

Universidade Federal do Pará (UFPA), ministrada pelo Prof. Dr. Marco José de

Sousa. O plano da disciplina consiste basicamente na elaboração de um projeto e

construção de um robô de sumô, onde os alunos participam de uma competição

(batalha de robôs) ao final do semestre letivo. A intenção é que os estudantes

envolvidos desenvolvam conhecimentos pertinentes aos assuntos que tangem a

robótica, como eletrônica, mecânica, automação, programação e o estudo de

materiais, ferramentas e sensores. Isso pode servir como um estímulo capaz de

revelar a afinidade dos estudantes universitários com a robótica e para que os

mesmos possam, posteriormente, estar aptos a aprimorarem esses conhecimentos e

dar continuidade a pesquisas mais avançadas.

Neste documento é apresentada a descrição do projeto de construção do robô OHM

juntamente com suas características, funcionalidades, relação de componentes

utilizados e todo o processo de criação.

2. Descrição

2.1 Competição de sumô

A competição de sumô de robôs é feita colocando-se dois robôs dentro de uma área

delimitada por uma sinalização em cores, chamada de ringue ou arena de batalha.

Pode ser uma superfície escura (cor preta), de forma quadrada ou circular com

bordas brancas, geralmente uma faixa ao seu redor, que sinaliza os limites da arena.

Os robôs duelam entre si sempre tentando retirar um ao outro do espaço que

compreende o ringue, onde devem encontrar seu adversário e empurrá-lo para fora

deste espaço. Para isso o robô deve ser "inteligente" o suficiente parar se situar

sobre a superfície de combate e localizar seu inimigo. As regras pontuam os

competidores conforme o número de ataques e desclassificam imediatamente

aquele que passar dos limites da arena.

1 Projeto OHM - É um projeto de construção de um robô de competição de sumô batizado de OHM

em homenagem ao físico alemão Georg Simon Ohm, pelo fato de que sua lei, a Lei de Ohm, foi utilizada como embasamento na decisão do projeto eletrônico do robô e explica a utilização dos componentes empregados em sua elaboração.

4

2.2 Objetivo

Durante o desenvolvimento da disciplina o projeto se tornou um verdadeiro desafio e

ganhou proporções cada vez mais elevadas em termos de complexidade, pois

desde o início, o principal objetivo de planejamento foi construir um robô, o mais

otimizado possível, tendo como prioridade obter um resultado prático de montar,

desmontar, dar manutenção, programar, testar, fazer análises e adaptações. Houve

uma preocupação muito grande com essa questão, tendo em vista que a maioria

dos problemas apresentados em projetos desse tipo são mal contatos e dificuldades

na hora de realizar manutenção e mudanças adaptativas no robô. Afinal, esse tem

sido o principal motivo pelo qual muitas equipes têm sido desclassificadas em

competições de robótica desse tipo.

2.3 Funcionalidades

Além de ter sido desenvolvido como um robô autônomo para atuar em competições

de sumô, após participar de sua primeira competição a qual é citada na Introdução,

foi incrementada uma função para controle via Android e a partir de então o robô

pode se controlado por qualquer aparelho que possua Sistema Operacional Android,

disponha de conexão Bluetooth e tenha o aplicativo de controle instalado. Essa

funcionalidade foi aplicada para fazer demonstrações pertinentes a assuntos de

robótica, automação e afins, em escolas, universidades e quaisquer atividades

acadêmicas e/ou científicas relacionadas à tecnologia.

3. Relação de componentes

O conjunto de componentes que formam a estrutura do robô pode ser considerado

em duas partes principais, mecânica e elétrica.

3.1 Parte mecânica

A parte mecânica, exceto os motores e caixa de bateria, foi confeccionada

empregando-se materiais recicláveis e é composta por chassi, lataria, caixa de

bateria, rodas e motores. O chassi é feito de chapa de alumínio 2,5 mm encontrada

em sucataria; a lataria também é feita em alumínio e foi produzida utilizando-se

placas automotivas, descartadas, e também encontradas em sucataria; as rodas

5

foram feitas utilizando-se tampas de garrafas de lubrificantes automotivos,

encontradas em postos de combustível, e tubo PVC; e a caixa de bateria feita de

fibra de vidro.

Motores

Foram utilizados Servo motores por apresentarem um tamanho reduzido e ao

mesmo tempo um torque elevado. No total são quatro motores, um para cada roda;

eles foram adaptados para rotação contínua, pois os mesmos normalmente

apresentam rotação de 180º, de fábrica. E, além disso, foi necessário retirar o

circuito interno dos motores, que tem a função de controlar a velocidade, posição e

sentido de rotação.

Acabamento

Para obter um aspecto mais agradável visualmente foram utilizados materiais de

pintura automotiva e serigrafia para dar uma aparência sofisticada ao chassi e a

lataria, respectivamente. O chassi foi envelopado com película adesiva com textura

de fibra de carbono e a lataria foi pintada com tinta automotiva.

3.2 Parte elétrica

A parte elétrica é composta por um microcontrolador Arduino, uma placa de circuito

impresso (shield arduino), feita manualmente, baterias UltraFire de 4200 mAh, um

sensor de linha e um sensor ultra sônico.

Microcontrolador

Foi utilizado o kit microcontrolador Arduino por este ser uma plataforma de

desenvolvimento livre (open source), talvez a mais popular atualmente, e que vem

sendo cada vez mais adotada por estudantes e profissionais de todos os níveis e

áreas de conhecimento. Isso proporciona a comunidade Arduino uma troca de

experiências mais rica e ágil. Além disso, a manipulação do hardware e do software

é bem mais prática e menos complexa, comparada a outras plataformas, o que

facilita a compreensão das questões envolvidas e possibilita ao usuário realizar

análises com rapidez e obter aplicações com melhor exatidão e as mais variadas

possíveis.

6

Sensores

Na primeira versão do robô havia apenas dois sensores, sendo um sensor de linha e

um sensor ultra sônico (sonar).

O sensor de linha fica na parte de baixo do robô e detecta o nível de luz refletida, por

isso é responsável por identificar a superfície em que o robô se encontrar e

possibilita o reconhecimento da linha ou faixa que delimita o ringue.

O sonar detecta a presença de objetos dentro de uma determinada distância, e

como foi utilizado apenas um, diz-se que o lado em que ele está posicionado é a

frente do robô.

Na segunda versão foi adicionado um módulo Bluetooth para a comunicação e

controle via Android.

Placa de Circuito Impresso

A placa de circuito impresso é um Shield que foi acoplado a placa Arduino. Ela foi

confeccionada manualmente, utilizando placa de fenolite, e tem a função de

concentrar os conectores dos motores, dos sensores e o circuito integrado ponte-H

que controla o sentido de rotação dos motores. Esta solução é indispensável para

evitar ao máximo as conexões dispostas por fios e Protoboard, realizadas entre o kit

microcontrolador e os componentes.

Alimentação

O robô conta com seis baterias UltraFire com 3,7 Volts e 4200 mAH, cada uma.

Essa foi a solução mais adequada para o projeto, pois tem um custo beneficio

significativo. Essas baterias dispõem de uma carga bastante duradoura, são leves e

podem ser utilizadas em todo e qualquer tipo de aplicação.

7

Lista de componentes – Parte mecânica

Mecânica

Componente Material Procedência

Chassi Chapa de alumínio

espessura: 2,5 mm Sucataria

Lataria Placa de carro Sucataria

Rodas

Tampas de garrafa de lubrificante

automotivo Postos de Combustível

Tubo PVC Restos de construção civil

Correia de lavadora de roupas Oficina de lavadoras

Motores Servo motor MG995 e-commerce

Caixa de Baterias

(feita de fibra de

vidro)

Manta de vidro

Loja de auto peças Adesivo para laminação (resina)

Parafusos Loja de parafusos

Acabamento

Massa adesiva plástica

Loja de auto tintas Massa rápida

Primer

Tinta

Película adesiva Loja de materiais de serigrafia

Tabela 3.1 – relação de componentes utilizados na construção da estrutura mecânica

8

Lista de componentes – Parte elétrica

Elétrica

Componente Procedência

Arduino Duemilanove

e-commerce Sensor de Linha

Sensor Ultra sônico

Baterias UltraFire 3,7 V – 4200mAh

Módulo Bluetooth e-commerce (China)

Conectores

Loja de eletrônica

Circuito Integrado ponte-H (L293D)

Placa de Fenolite (p/ circuito impresso)

Percloreto de ferro anidro

(solução para corroer placa de fenolite)

Tabela 3.2 – relação de componentes utilizados na elaboração do projeto elétrico

4. Passo a passo

4.1 Esboço

Por se tratar de um robô de sumo, a idéia inicial foi utilizar rampas em todos os lados

dele. A rampa é uma boa estratégia para tentar levantar o oponente e fazer com que

ele perca tração. A partir dessa idéia foram definidas as medidas da parte mecânica

para desenhar o projeto e criar um modelo em papelão. A especificação dessas

medidas foi definida levando em consideração as dimensões estabelecidas pelas

regras da competição citada na Introdução, a forma (geometria) a ser utilizada e

tamanho dos motores e demais componentes empregados. É importante observar

que a definição das dimensões das peças a serem modeladas e daquelas que

possuem medidas fixas, como os motores, dependem uma das outras. Por exemplo,

para decidir o tamanho das rodas é necessário saber o tamanho do chassi, da

lataria e, a velocidade e torque desejados, ou seja, uma medida depende da outra,

pois eu também poderia começar definindo o tamanho das rodas e então os demais

parâmetros dependeriam do tamanho delas. É uma equação com várias incógnitas e

9

por isso fica a questão: qual elemento definir primeiro? E a resposta para esse

projeto foi: tentar equilibrar, chegar ao meio termo e escolher componentes que

combinassem para obter um resultado mais próximo do objetivo que foi o de ter um

robô com o maior número de rampas, e as mais inclinadas, possível.

Por tanto o modelo idealizado inicialmente é mostrado na Figura 1.

Figura 1 – modelo idealizado para a forma geométrica do robô.

O modelo apresenta uma base octogonal e como foi mencionado é a primeira

idealização do projeto. Ao final serão observadas algumas mudanças como a

presença e o prolongamento de rampas apenas em dois lados do robô. Dos lados

em que estão posicionadas as rodas não foi possível permanecer com rampas

devido à interseção existente entre elas e as rodas. Seria possível continuar com as

10

rampas em todos os lados, porém foi dado prioridade ao tamanho das rodas. Aí está

uma das combinações feitas... Ficamos com duas rampas apenas, porém colocamos

rodas maiores. Como foi observado nas competições anteriores, dificilmente um

robô é atacado pela lateral. Então, sendo assim, abrimos mão de duas rampas, mas

podemos ter rodas maiores que proporcionaram maior atrito e contado com a

superfície, dando ao robô mais estabilidade, apoio e poder ofensivo.

4.2 Dificuldades

A principal dificuldade, sem dúvida, foi encontrar os materiais e as ferramentas

adequadas que suprissem as necessidades de construção do robô. Além disso, foi

muito árdua a tarefa para preparar o chassi, devido este ser feito de uma chapa de

alumínio com 2,5 mm espessura. Foi bastante difícil manipular a chapa para chegar

a forma idealizada no projeto, tendo em vista que o processo foi realizado

manualmente, utilizando apenas dois tipos de martelos, um arco de serra e um torno

mecânico. De modo geral o processo de manipulação de materiais foi o mais

exaustivo já que foi totalmente realizado de forma manual.

4.3 Confecção das peças da parte mecânica

4.3.1 Chassi

A forma geométrica definida para o chassi foi desenhada pensando em uma

estrutura capaz de receber os motores, prender a lataria, dispor espaço para a caixa

de baterias e que fosse a mais homogênea possível, apresentando fixações com

parafusos e uma boa rigidez. Para isso foi utilizado uma chapa de alumínio com 2,5

mm de espessura; e para chegar a forma desenhada foi necessário dobrar a chapa

em alguns segmentos usando torno mecânico e martelos, mas antes foi necessário

cortar a chapa com cerra de aço e ao final do processo, quando a forma do chassi

ficou pronta, depois de dobrar todas as seções, os furos foram feitos com o uso de

uma furadeira.

11

A Figura 2 mostra o desenho para cortar, dobrar e furar a chapa. E a imagem da

Figura 3 e Figura 4 mostram o resultado do processo.

Observe que as linhas tracejadas em azul representam os cortes feitos na chapa e

as linhas verdes indicam onde a chapa foi dobrada.

.

Figura 2 – molde para a construção do chassi

12

Figura 3 – foto do chassi conforme o molde desenhado

A figura a seguir mostra o chassi envelopado. Para isso foi utilizado película adesiva

com textura de fibra de carbono.

Figura 4 – Chassi envelopado com película adesiva com textura de fibra de carbono

13

4.3.2 Lataria

A lataria foi produzida utilizando placas de carros encontradas em sucatarias. São

placas que foram descartadas e levadas para reciclagem. Para dar forma a lataria

utilizando as placas foi necessário utilizar um martelo grande para deixar a placa o

mais plano possível e retirar o relevos das letras e numero, tesoura de cortar aço

para cortar a placa, martelo pequeno para moldar a chapa conforme a geometria

desejada e furadeira ao final do processo para fazer os furos de fixação para

prender a lataria ao chassi. As imagens seguintes ilustram algumas etapas do

processo.

Figura 5 – etapas do processo de construção da lataria

14

Figura 6 – etapas do processo de construção da lataria

Figura 7 – algumas ferramentas utilizadas processo de construção da lataria

15

Figura 8 – etapas do processo de construção da lataria

Figura 9 – etapas do processo de construção da lataria

16

Figura 10 – etapas do processo de construção da lataria

Figura 11 – etapa de acabamento da lataria

17

Figura 12 – lataria após a pintura

4.3.3 Rodas

As rodas disponíveis para venda nos sites de robótica não satisfaziam as

necessidades do projeto e por isso foi decidido confeccioná-las manualmente a fim

de obter uma peça mais adequada e compatível com o objetivo do invento. Sendo

assim foi encontrada uma boa solução utilizando tampas de garrafa de lubrificantes

automotivos encontradas em postos de combustível. Para compor a roda foram

utilizadas duas tampas, duas roscas retiradas da própria garrafa, um pedaço de tubo

PVC e uma chapa circular. As roscas foram utilizadas para dar mais firmeza as

tampa, o tudo fez a conexão entre as tampas e a chapa tem a função de impedir o

afundamento da parte superior das tampas onde foi atravessado um parafuso para

prender as rodas aos motores. E ao final foram aderidas correias de máquina

lavadora a superfície lateral das tampas para agregarem mais atrito as rodas. As

imagens a seguir mostram o material empregado.

18

Figura 13 – Material utilizado na confecção das rodas

Figura 14 – Roda pronta, ainda sem correia

19

Figura 15 – Rodas prontas com correia

4.3.4 Adaptação dos Motores

Os servo motores geralmente possuem rotação de 180º, mas para o nosso caso

temos a necessidade de um motor que tenha rotação de 360º e para isso é realizada

uma adaptação no servo. Uma das etapas de adaptação do motor envolve uma

mudança no circuito contido em seu interior e nesse projeto foi realizada apenas a

retirada do pino de trava que impede fisicamente que haja a rotação completa e ao

invés de adaptar o circuito foi realizada a retirada dele para então ser controlado

pelo circuito presente no placa de circuito impressa desenvolvida no projeto

eletrônico. No entanto estão disponíveis a seguir dois dos melhores tutoriais que

mostram a adaptação passo-a-passo do servo motor utilizado, o MG995.

20

How to hack the TowerPro MG995 Servo for continuous rotation

Video1

http://www.youtube.com/watch?v=cnOKG0fvZ4w&noredirect=1&hd=1

Instruções do autor

http://www.instructables.com/id/How-to-hack-a-servo-for-continuous-rotation-

Towe/?ALLSTEPS

Como mudar o TowerPro MG995 Servo para rotação contínua

Video2

http://www.youtube.com/watch?v=omZ4a0OdMgg&noredirect=1&hd=1

Obs. Na descrição do projeto elétrico será apresentada a solução para o controle

dos motores.

4.3.5 Caixa de Baterias

A caixa de baterias foi produzida com fibra de vidro. Para criar um objeto em fibra de

vidro é necessário manta de vidro e resina. Para obter a forma desejada de maneira

mais fiel é aconselhável utilizar um molde de papel ou qualquer outro material fácil

de manipular. Coloca-se a manta de vidro sobre o molde e em seguida, com um

pincel, aplique a resina sobre toda a manta e aguarde secar. Após a secagem o

artefato está pronto e fica ao seu gosto aplicar o acabamento que quiser. No meu

caso eu aproveitei a mesma película aplicada ao chassi e revesti a caixa de fibra.

Figura 16 – Caixa de baterias

21

4.4 Elaboração e execução do projeto elétrico - parte elétrica

4.4.1 CI

Para controlar os motores é utilizado o circuito integrado L293D. É um circuito ponte-

H que tem dois canais de controle, ou seja, ele possui duas saídas que podem ter o

sentido de corrente controlado. Com isso é possível conectar dois motores em

paralelo em uma saída e outros dois motores em paralelo na segunda saída. Houve

a preferência de uso deste circuito integrado, em substituição ao próprio circuito dos

motores, porque com ele é possível aplicar uma tensão maior do que a indicada

como limite para o servo motor. Aumentar a tensão significar dar mais velocidade a

ele e diminuir os ricos de queimá-lo por causa de tensões de pico. Na verdade quem

sobre mais com os riscos são os circuitos do próprio motor e não o motor em

propriamente dito.

4.4.2 Sensores

Sensor de linha Infravermelho

A Figura 17 mostra o sensor utilizado nesse projeto. É um dispositivo que me 1,5 cm

de comprimento e 8 cm de largura. Foi o menor sensor de linha encontrado no

mercado. E essa é uma de suas principais vantagens, o tamanho.

Figura 17 – Sensor de linha digital

22

Sensor Ultra Sônico

O sonar é o mais comum utilizado em projetos e é facilmente encontrado em lojas

virtuais.

Figura 18 – Sensor Ultra sônico

4.4.3 Alimentação

Como as baterias utilizadas têm forma de pilhas, porém maiores houve dificuldades

para definir uma forma adequada de conexão entre elas, tendo em vista que as

mesmas são recarregadas individualmente e precisão ser retiradas de onde quer

que elas estejam conectadas. Por isso foi construída uma caixa de baterias que

comportam três pares ligados em paralelo, sendo que em cada par as baterias são

associadas em série. Como cada bateria tem 3,7 Volts a ligação de duas baterias

em série apresenta uma diferença de potencial de 7,4 V, ou seja, essa é a tensão de

um par, nesse caso. Esses pares, três, foram colocados paralelo para aumentar a

corrente em miliampère-hora (mAh), assim temos um aumento de tensão, pela

ligação em série, para dar mais velocidade ao motores. E um aumento de carga,

pela ligação em paralelo, para dispor de carga por mais tempo.

Figura 19 – Baterias UltraFire

23

4.4.4 Microcontrolador

No kit Arduino é feito o controle de ações do robô, é onde ele ganha “vida” e

“inteligência”. A partir do momento que todos os seus componentes estão em pleno

funcionamento, é dada funcionalidade a eles através da programação lógica inserida

na plataforma. O código desenvolvido é apresentado a tópico seguir.

5 Programação Arduino – Código Ohm

//Projeto Ohm - Código de controle do robô Ohm

//o código tem duas funções principais. Uma para controlar o robÔ pelo

Android //e outra para que o robô haja de forma autônoma

//se o usuário enviar o comando de ativação para controle pelo Android o

robô //ficara aguardando por comandos de controle

//caso contrrário, ele agirá de forma autônoma para localizar e atacar

outros //robô em um ringiue de sumô

//Autor: Jefferson Ferreira Palheta

//Email: [email protected]

//declaração e definição dos pinos utilizados pelos sensores e motores

#define trig 9

#define echo 10

#define line_sensor 11

#include "Ultrasom.h"

Ultrasom us(trig,echo);

int diff;

int estate;

int reference_color; //variável que recebe o valor de "cor" da superficie

lida

//pelo sensor de linha

int command; //variável que recebe o valor do comando envianndo pelo

Android

int line; // valor atual lido pelo sensor de linha

int som; // valor da leitura do sonar

int le; //valor retornado pela função fulga

//função responsável por movimentar o robô para fente

void frente() {

desliga(); //desliga todos os motores

digitalWrite (2, HIGH); //liga o pino 2

digitalWrite (4, HIGH);//liga o pino 4

estate=1;

}

//______________________________________________________________________

//função responsável por movimentar o robô para trás

void tras() {

desliga();

digitalWrite (3, HIGH);//liga o pino 3

digitalWrite (8, HIGH);//liga o pino 8

estate=1;

}

//______________________________________________________________________

24

//função responsável por movimentar o robô para a esuqerda

void esquerda() {

desliga();

digitalWrite (3, HIGH);//liga o pino 3

digitalWrite (4, HIGH);//liga o pino 4

estate=1;

}

//______________________________________________________________________

//função responsável por movimentar o robô para direita

void direita() {

desliga();

digitalWrite (2, HIGH);

digitalWrite (8, HIGH);

estate=1;

}

//______________________________________________________________________

//função responsável por desligar todos os motores

void desliga() {

digitalWrite (2, LOW); //desliga o pino 2

digitalWrite (3, LOW); //desliga o pino 2

digitalWrite (4, LOW); //desliga o pino 2

digitalWrite (8, LOW); //desliga o pino 2

estate=0;

}

//______________________________________________________________________

//está função faz a leitura do sensor de linha e retorna o valor lido

atráves //da variável diff

int read() {

pinMode( line_sensor, OUTPUT );

digitalWrite( line_sensor, HIGH );

delayMicroseconds(10);

pinMode( line_sensor, INPUT );

long time = micros();

while (digitalRead(line_sensor) == HIGH && micros() - time < 1000);

diff = micros() - time;

return diff;

}

//______________________________________________________________________

//função de leitura do sensor ultra sônico que utiliza outras bibliotecas e

//funções especificas para o sonar e estão presentes no pacote de

docomentação //do robô

int sonar()

{

//retorna o valor específico obtido na leitura

return(us.Distancia());

}

//______________________________________________________________________

//está função recebe o valor do sensor de linha e retorna 0 ou 1 conforme o

//parâmetro de controle aplicado

int fulga(int line){

//se oito vezes o valor lido no sensor de linha for menor que 3000, então

25

//a função retornará 1, caso contrário retornará 0

if(8*line<3000)//reference_color)

{

return 1;

}

else

{

return 0;

}

}

//______________________________________________________________________

//está função é utilizada somente quando o robô está no modo de controle

via Android

void control()

{

//a variável command recebe o valor lido pa porta serial que é justamente o

valor de comando enviado pelo aparelho via bluetooth

command = Serial.read();

if (command<=4 && command >=1)

{

//FRENTE

if (command==3)

{

if (estate==0)

{

frente();

}

else if (estate==1)

{

desliga();

}

}

//TRAS

else if (command==4)

{

if (estate==0)

{

tras();

}

else if (estate==1)

{

desliga();

}

}

//DIREITA

else if (command==2)

{

if (estate==0)

{

direita();

26

}

else if (estate==1)

{

desliga();

}

}

//ESQUERDA

else if (command==1)

{

if (estate==0)

{

esquerda();

}

else if (estate==1)

{

desliga();

}

}

}

else if(command==0)

{

desliga();

return loop();

}

return control();

}

//______________________________________________________________________

void setup() {

Serial.begin(9600);

delay(10000);

pinMode(trig, OUTPUT);

pinMode(echo, INPUT);

pinMode(2, OUTPUT);

pinMode(3, OUTPUT);

pinMode(4, OUTPUT);

pinMode(8, OUTPUT);

reference_color=read();

Serial.print("referencia: ");

Serial.println(reference_color);

}

//______________________________________________________________________

void loop() {

command = Serial.read();

Serial.println("SERIAL: ");

Serial.println(command);

//se o comando enviado pelo dispositivo Android for o comando para

ativação

//do modo de controle

//então se chamada a função "control" e esta será executada até que o

comando

27

//de desativação do modo de controle seja executado novamente

if (command==0)

{

desliga();

control();

}

//caso não seja enviado comando de ativação para o modo de controle o robô

//funcionará no modo autônomo

else

{

line=read();

som=sonar();

le=fulga(line);

Serial.print("linha:");

Serial.println(line);

Serial.print("Sonar: ");

Serial.println(som);

if(le==0)

{ //enquanto houver algum objeto dentro de uma distância de 50 cm o

//robô atacará indo para frente

while(som>0 & som<50 & le==0)

{

frente();

delay(500);

som=sonar();

}

frente();

}

else if(le==1)

{

tras();

delay(2000);

direita();

delay(1000);

}

}

}

//______________________________________________________________________

28

6 Resultados

Se você desejar pode acessar o banco de imagens que contém fotos de várias

etapas da construção do robô e pode também baixar o aplicativo de controle nos

links abaixo:

Códigos e Aplicativo Android

https://www.dropbox.com/s/j0kvucfq2q73c93/ProjetO_Ohm.zip

Fotos

https://www.dropbox.com/sh/d9knx84zxy3f9sx/lwvYEm5qep

Figura 20 – frente do robô Ohm montado

29

Figura 21 – Parte traseira do robô

Figura 22 – Robô Ohm em fase de testes

30

Figura 23 – case de circuitos

Figura 24 – vista traseira

31

Figura 25 – caixa de baterias e circuito

Figura 26 – Parte de baixo em que é possível ver o sensor de linha e as rodas