Este projeto tem como objetivo a construção de um robô seguidor de linha à partir de materiais reciclados, seguir o percurso traçado e chegar a uma lâmpada localizada no seu final - de acordo com os parâmetros estabelecidos pelo Desafio CPBR7.
CAMPUS PARTY 7
DESAFIO ROBOLIVRE
integrantes da equipe:
TRASH BOT
Projeto apresentado no workshop 1 para participação do desafio Robolivre.
INTRODUÇÃO
Robô Livre é uma plataforma que incentiva a construção de robôs colaborative através de perfis de pessoas que são cadastradas no banco de dados da organização. É uma plataforma wik onde todos podem aprender e ensinar robótica com a ideia de popularizar essa ideia.
A equipe está presente na 7a Campus Party e ministrou workshops acerca do assunto lançando um desafio aos participantes que ser organizaram em times para construir um robô que fosse capaz de percorrer um circuito com certos obstáculos que serão revelados no dia da apresentação dos robôs.
Esse projeto tem o intuito de descrever a maneira como a nossa equipe elaborou o TrashBot, um robô feito a partir de materiais reciclados e com o kit disponibilizado pelos organizadores para tanto.
As regras do desafio foram divulgadas na plataforma e lidas no ato do lançamento do desafio para os participantes que se inscreveram antecipadamente no mesmo dia do workshop.
Resumidamente, as regras se baseiam em: 1) O robô deve ser desenvolvido a partir de materiais reciclados (lixo tecnológico que ficou à disposição dos campuseiros participantes da oficina; 2) Todos os passos para a execução do desafio deve ser divulgada na plataforma robolivre.org, de forma a servir para interessados utilizarem; 3) O projeto tem três tentativas para completar o circuito sendo necessário que o mesmo não colida com as paredes do circuito e no momento do entroncamento deverá seguir para a direção da luz.
Portanto planejamos a execução do projeto e iremos destrinchar ao longo deste trabalho.
2. Equipe
A equipe, por regra, é composta por cinco pessoas. Todas deveriam ter manifestado interesse na ação e terem se inscrito. O numero de participantes do desafio era restrito.
2.1 Descrição dos Integrantes
Welton Barreto da Silva - Estudante
Welington Barreto da silva - Estudante
3. Cronograma
Foi discutido com a equipe que o cronograma seguiria da forma apresentada na tabela abaixo:
Data/ ação |
Terça (28/01) |
Quarta (29/01) |
Quinta (30/01) |
Sexta (31/01) |
Planejamento |
X |
X |
||
Desenvolvimento |
X |
|||
Programação |
X |
X |
||
Teste |
X |
X |
||
Desafio |
X |
|||
(tabela 1)
4. Orçamento
Por regra, o no desafio os participantes deveriam criar um robô a partir de materiais reciclados e os componentes básicos para a viabilização do projeto foi disponibilizado através de um kit entregue aos participantes pelos organizadores.
Portanto o orçamento para a viabilização desse projeto segue abaixo:
Itém |
Quantidade |
Data |
Valor |
Mini CD |
4 |
29/01/2014 |
5 BRL |
Cola Instantânea |
1 |
29/01/2014 |
6 BRL |
TOTAL |
11 BRL |
(tabela 2)
5. Projeto
De maneira colaborativa, todos os integrantes da equipe participaram de todas as fazes de execução do projeto com seus conhecimentos empíricos a cerca do assunto abordado.
A ideia do desafio é justamente de integrar as áreas de conhecimento e fazer com que pessoas que tenham interesse de aprender e não tenham conhecimento sobre o assunto possam compartilhar do conhecimento de pessoas veteranas na atividade.
No nosso grupo, contamos com três pessoas que possuem conhecimento acima do necessário sobre a construção e a programação de um robô baseado em uma programação feita por um software e setada em um Arduíno que, que executa os comandos e faz com que o robô siga o que foi pensado e programado para ele.
O projeto envolve diversas áreas de conhecimento. Tivemos que utilizar diversas áreas da ciência e da metodologia da pesquisa para poder automatizar o projeto e transformar o Trash Bot em algo tangível e real.
Tivemos que utilizar a física para calcular o peso, a distância e as rotações do motor que foram reduzidas por uma Roda de um tamanho maior para que o fosse possível uma maior estabilidade.
Tivemos que utilizar dos conhecimentos para pensar na lógica das ações do robô, transformar isso em um algorítimo e, posteriormente, digitar os códigos de programação tendo, consequentemente, a necessidade de fazer os testes isoladamente.
Em todas as fases do projeto, contamos com o apoio da equipe organizadora que dispostamente esclareceu todas as potenciais dúvidas que surgiram durante a pesquisa.
Nosso robô é composto da seguinte forma:
1- foi utilizado uma placa de um micro system queimado como base para a fixação dos demais componentes.
2- as rodas foram compostas com dois mini cds na extremidade e entremeio preenchida com três peças de bandeja de isopor dos mesmos diâmetros (foi feito um par de rodas dessa forma), as superfícies das rodas tratoras foram revestidas por partes de um anti slip pad entregue como brinde durante o evento Campus Party 07, para evitar possíveis deslizamentos no momento da execução do desafio. A terceira roda, responsável pela direção do robô, é feita a partir de rodizio de móvel, reciclado.
3- Do kit disponibilizado utilizados os dois motores para dar tração nas rodas grandes, o motor servo foi usado para dar direção ao robô. Os dois motores foram fixados às rodas e posteriormente, cada um em uma viga feita de ferro para dar maior resistência. Essa viga foi Fixada à base cortada a partir da placa do microsystem. O rodizio foi retirado da sua base original através da furadeira de bancada.
4- O rodizio foi acoplado ao motor servo (que gira no máximo 180 graus para um lado ou para outro) que terá a função de dar a direção do robô de acordo com as condições impostas à ele pelos organizadores. Ele reagirá conforme a forma pensada e programada pelos envolvidos no projeto.
5- Possui um sonar acoplado em um motor servo sobre a estrutura na parte frontal da mesma, responsável por calcular a distância do obstaculo e fazer com que o sistema tenha a ação programada anteriormente. Esse sonar será responsável por fazer com que o aparelho percorra o percurso de forma reta e, caso haja algum obstáculo em sua frente, o mesmo será capaz de desviar.
6- Possui dois sensores de luminosidade que serão responsáveis por verificar a direção de onde vem a luz, no final do percurso, e o Arduino executará a programação e enviará o comando esperado (ir em direção à luz) aos componentes mecânicos do dispositivo.
7- Nos foi disponibilizado um Arduino, duas protoboards para a ligação dos circuitos no Arduino que comandará as ações mecânicas do dispositivo.
Materiais do kit que foram utilizados
1 Arduino UNO
2 Micro servo
1 Sonar
2 Motores DC 12 V
2 LDR
2 Resistores de 10K
1 Ci L293D
8 Esquema eletrico
9. Código:
#include
#include
#define echoPin 13
#define trigPin 12
Ultrasonic ultrasonic;
Servo cabeca;
Servo servodir;
int distancia = 0;
int enable1 = 3;
int enable2 = 9;
int LDR1 = A2;
int LDR2 = A1;
int sensorD = 0;
int sensorE = 0;
int tes = 6;
void setup()
{
Serial.begin(9600);
ultrasonic.attach(12,13);//Definiçao dos pinos de emissao e recepcao
pinMode(enable1, OUTPUT);
pinMode(enable2, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
}
void loop()
{
Serial.print(ultrasonic.Ranging(CM)); // CM or INC
Serial.println(" Distancia em cm" );
delay(100);
Serial.print(ultrasonic.Ranging(CM)); // CM or INC
Serial.println(" Distancia em cm" );
delay(100);
distancia = ultrasonic.Ranging(CM);
frente();
delay(5000);
{
parar();
}
//______________________________________________________
sensorD = analogRead(LDR1);
sensorE = analogRead(LDR2);
Serial.print(" sensor Direito__");
Serial.print(sensorD);
Serial.print(" sensor esquerdo__");
Serial.println(sensorE);
delay(1000);
if(sensorD < sensorE)
{
direita();
delay(100);
frente();
delay(2000);
esquerda();
delay(100);
frente();
delay(2000);
parar();
}
else
{
esquerda();
delay(100);
frente();
delay(2000);
{
direita();
delay(100);
frente();
delay(2000);
parar();
}
}
}
void frente(){
analogWrite(enable1, 250);
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
//motor2
analogWrite(enable2, 250);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
}
void parar(){
digitalWrite(enable1, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
//motor2
digitalWrite(enable2, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
}
void re(){
analogWrite(enable1, 120);
digitalWrite(10, HIGH);
digitalWrite(11, LOW);
//motor2
analogWrite(enable2, 120);
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
}
void esquerda(){
analogWrite(enable1, 120);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
//motor2
analogWrite(enable2, 120);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
}
void direita(){
analogWrite(enable1, 120);
digitalWrite(10, HIGH);
digitalWrite(11, LOW);
//motor2
analogWrite(enable2, 120);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
}
welington barreto da silva Sexta, 31.01.2014 18:52:
Trash Bot pronto agora sua logica esta sendo criada.