Baixar - Robô Livre

Transcrição

Baixar - Robô Livre
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
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
Chassi
Lataria
Material
Chapa de alumínio
espessura: 2,5 mm
Placa de carro
Tampas de garrafa de lubrificante
Rodas
automotivo
Procedência
Sucataria
Sucataria
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
Manta de vidro
(feita de fibra de
Loja de auto peças
Adesivo para laminação (resina)
vidro)
Parafusos
Loja de parafusos
Massa adesiva plástica
Massa rápida
Acabamento
Primer
Loja de auto tintas
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
Sensor de Linha
Sensor Ultra sônico
e-commerce
Baterias UltraFire 3,7 V – 4200mAh
Módulo Bluetooth
e-commerce (China)
Conectores
Circuito Integrado ponte-H (L293D)
Placa de Fenolite (p/ circuito impresso)
Loja de eletrônica
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-rotationTowe/?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 ponteH 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

Documentos relacionados

Robô Móvel para o Modelo de Subsumption

Robô Móvel para o Modelo de Subsumption Figura 10 - Posição do servo varia entre 0 e 180 graus dependendo do período do PWM ..... 26 Figura 11 - Resposta ao sinal PWM do servo modificado para locomoção ............................ 26 Fig...

Leia mais