Competição Robótica Livre Virada Geek 2013
Autor: AJ O. Alves | Publicado: 2013-09-14T12:00:00-03:00





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,&nbsp; 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 &lt; 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&gt;=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!