Pesquisar

Postagens populares

sábado, 14 de setembro de 2013

Competição Robótica Livre Virada Geek 2013


Na Virada Geek #2 acontecerá a primeira competição de robótica do evento. Esta competição acontecerá em equipes de até 4 integrantes, serão 5 equipes ao todo. Todas as equipes deverão montar e programar um robô somente com as peças fornecidas pela organização, o objetivo é montar criar um robô seguidor de linha. As equipes serão testadas em um prova final que aprovará a equipe com melhor desempenho.


Lista de Material
Circuito Regulador de Tensão
Para montar o circuito com o Arduino, sensores reflexivos e motores é necessário primeiramente montar um circuito regulador.
Para isso, siga as instruções em Circuito Regulador de Voltagem Positiva.

Montar um Arduino Standalone
1x - Resistor de 10KΩ; (Marron, Preto, Preto, Vermelho)
2x - Capacitores cerâmicos de 22pF;
1x - Push Button;
1x - Cristal de 16Mhz;
1x - Microcontrolador Atmega328 (Com Bootloader);
Para auxiliar na montagem do circuito, utilize a figura 1 para lembrar a correta pinagem do Atmega328 com uma referência a pinagem do Arduino.

Figura 1 - Pinagem Atmega328 <-> Arduino.

Para a montagem do Arduino Standalone você deve fazer as ligações entre os componentes seguindo os pinos do Atmega:
- Pinos 20 e 21 são ligados no positivo; (fios vermelho na figura 2)
- Pino 22 ligado no negativo; (fios preto na figura 2)
- Pinos 9 e 10 são interligados com o cristal de 16Mhz;
- Pinos 9 e 10 são ligados após o cristal com o negativo, através dos capacitores cerâmicos de 22pF;
- Pino 8 ligado no negativo;
- Pino 7 ligado no positivo;
- O Pino 1 é ligado ao positivo através do resistor de 10KΩ, e depois da saída do resistor é ligado a saída do push button. O outro terminal do botão de pressão é ligado ao negativo, quando pressionado ele faz a conexão do pino 1 com o negativo, resetando o microcontrolador;
Na imagem a baixo temos a ligação dos componentes em uma protoboard:

Figura 2 - Arduino Standalone na protoboard.

Testando o arduino
Para testar se as ligações do arduino estão corretas, foram fornecidos alguns componentes:
1x - Resistor de 470Ω; (Amarelo, Roxo, Preto, Preto)
1x - LED de 3mm;
Como LEDs são componentes polarizados e só acendem se corrente fluir do ANODO para o CATODO, atenção ao ligar o circuito, na figura 3 veja um exemplo de como montar.

Figura 3 - Arduino com LED

Uma boa dica é que o ANODO é a perna mais longa do LED.
Arduino IDE
Para upload de código no seu Arduino,  uma ferramenta fácil e eficiente é o Arduino IDE que pode ser baixado no site oficial do http://arduino.cc/en/Main/Software.
Após a instalação, copie, cole e suba o código para o Arduino, se o LED que você instalou estiver piscando, tudo funcionou corretamente.
/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.
 
  This example code is in the public domain.
 */
 
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;

// the setup routine runs once when you press reset:
void setup() {                
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);     
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);               // wait for a second
}
Uma boa referencia da biblioteca padrão do Arduino também pode ser encontrada no site http://arduino.cc/en/Reference/HomePage

Ligação de Servo Motores
Na figura 4 veja a pinagem dos servo motores fornecidos, muita atenção na ligação, servo motores contem uma placa interna que pode ser facilmente danificada por ligações incorretas.

Figura 4 - Pinagem dos Servo Motores

Controlando um Servo Motor
Para controlar servo motores o Arduino IDE fornece uma biblioteca chamada Servo que facilita muito a tarefa. Uma ótima referência pode ser encontrada em http://arduino.cc/en/Reference/Servo
Veja um exemplo de como é simples controlar um Servo Motor.

// Sweep

#include "servo.h" 
 
Servo myservo;  // create servo object to control a servo 
                // a maximum of eight servo objects can be created 
 
int pos = 0;    // variable to store the servo position 
 
void setup() 
{ 
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object 
} 
 
 
void loop() 
{ 
  for(pos = 0; pos < 180; pos += 1)  // goes from 0 degrees to 180 degrees 
  {                                  // in steps of 1 degree 
    myservo.write(pos);              // tell servo to go to position in variable 'pos' 
    delay(15);                       // waits 15ms for the servo to reach the position 
  } 
  for(pos = 180; pos>=1; pos-=1)     // goes from 180 degrees to 0 degrees 
  {                                
    myservo.write(pos);              // tell servo to go to position in variable 'pos' 
    delay(15);                       // waits 15ms for the servo to reach the position 
  } 
} 

Sensores Ópticos Reflexivos

Para uma ótima explicação do funcionamento, montagem e operação dos sensores reflexivos, veja em http://zerokol.com/post/5216613ce84c556437000016/1/pt-BR
Veja na figura 5 a correta pinagem da placa fornecida, muita atenção na ligação desses sensores.

Figura 5 - Placa com sensor TCRT5000

Para a prova final que testara o desempenho das equipes foram montadas as seguintes pistas, como mostrada na figura 5.


Figura 5 - Imagem da Pista

A pista tem 2m de largura por 2m de comprimento, e as linhas tem 5cm de espessura.

A primeira competição de robótica da Virada Geek foi um sucesso e deu muito o que falar, fui muito bom ter organizado e agradeço a todos pela participação!!!

Equipes:
Robô 1 - Não UsadoRobô 2 - TeslaRobô 3 - ChapoletaRobô 4 - MedaBotRobô 5 - Magnum

FlávioGabrielBranda PedroRodrigo

AndersonLuanHidelVinícios

RonnasaydCamilaÍsisCharles

JulianeMarianeDiermisonLucas

PaulaVanessaHeitorDouglas


Sérgio

Robô 2 - Com alguns problemas técnicos não correu a prova final.
Robô 5 - Mesmo com o sensor de linha da esquerda queimado, mostrou garra!
Robô 4 - Com um robô bem montado ficou em segundo lugar!
Robô 3 - Equipe Chapoleta completou a prova em 33s e levou o título!


Nenhum comentário: