Mostrando postagens com marcador robô de sumô. Mostrar todas as postagens
Mostrando postagens com marcador robô de sumô. Mostrar todas as postagens

terça-feira, 18 de fevereiro de 2014

Ares

18/07/2014
Novas modificações do Ares em relação a estrutura e funcionalidades.





23/06/2014
Após a classificação para a final da OBR2014 o Ares recebeu melhorias para aumentar a aderência e tração - aumento da largura das rodas.




23/02 - Novas informações sobre os motores:
 Working Voltage : 4.8-7.2V
 • Working current : 0.1-1.2 A
 • Torquebbbbbbbbb : 5kg-cm @ 4.8V ; 6.2kg-cm @6V
 • Average speedbb : 55 rpm-6V
 • Rotation range : 0- 360
 • Working Temperature: (0~55)C degree
 • Size : 40.2mx 20.2 x 43.2mm
 • Weight : 41g

-Connection Pin Out :-

 • Brown - GND
 • Red-VCC (4.8-7.2V)
 • Orange-Signal

18/02
Projeto desenvolvido pelo aluno Paulo durante a Mostra Paulista de Ciências e Engenharia, com programas de sumô e cabo de guerra lutou contra o Artemis, vencendo alguns rounds.
Dimensões: 21 cm x 18 cm
Motores: 2 servos de rotação contínua SM-S4306R
- Voltagem de Operação: 4,8v ~ 6,0v
- Modulação: Analógica
- Velocidade: 50rpm (4,8v) ~ 60rpm (6,0v)
- Torque máximo: 5,0 kg.cm (4,8v) ~ 6,2 kg.cm (6,0v)
- Temperatura de Operação: 0°C ~ 50°C
- Dimensões: 42mm x 39,5mm x 20,5mm
- Peso: 44g
- Faixa de Rotação: 360° - Rotação livre
- Tamanho cabo: 30 cm
Rodas: Rolete de borracha com núcleo de polietileno
Torque estimado: 12,4 Kg.cm
Torque Real: 4,96 Kg.cm - 50N.cm aproximadamente (6V)
Sensores: Ultrassom HC-SR04 e TCRT5000 de linha
Rampa na parte dianteira
Fotos

Vídeos


quarta-feira, 11 de dezembro de 2013

Hércules

24/07/2014 - Novas melhorias de projeto
- Adição de 2 anéis de borracha na roda para aumentar a aderência.



28/06/2014 - Melhorias no projeto









- Instalação de rampas que mudaram o centro de gravidade do robô aplicando sobre as rodas, o que deve melhorar o torque.
- Instalação da bateria protegida pelos motores.
- Colocação do Arduino.

31/01/2013 - Segunda reunião do projeto
O Marcelo nos presentou a estrutura que ele acha ser a mais viável. Em vez de 3 parafusos para estrutura, apenas 2, reduzir a largura do robô ajustando apenas para as rodas ficarem próximas umas das outras.
Em relação ao peso, com o projeto original estava em 1,650 kg, 10% acima do peso planejado. A ideia é cortar todos os parafusos de apoio e reduzir a 2 porcas de suporte no motor. Outra opção é procurar rodas mais leves. Discutimos em relação a aderência das rodas em relação ao piso e concluímos que serão necessários testes de combate para certificar-se da capacidade das rodas.
Outro assunto que discutimos foi em relação ao drive de motor: inicialmente testaremos o projeto com 2 L298n:
Esse driver suporta até 3A por canal. Vamos usar 2 drivers para que cada lado opere com 3A de pico de corrente. Com isso esperamos ter o torque suficiente para as lutas. Pelos testes preliminares que fizemos o motor opera com 1A em condições normais e assim não sobrecarregaremos os drivers.
Decidimos não construir um driver de 8A com os Tip´s 120/127 que temos e partir direto para a ponte H que é nosso objetivo - uma ponte com IRFZ 44N (http://www.irf.com/product-info/datasheets/data/irfz44n.pdf) com as seguintes características:

Seguindo as instruções da placa desenvolvida - http://www.robotizando.com.br/artigo_ponte_h_pg1.php conforme esquema abaixo:
Utilizaremos o método térmico para construir a placa, a responsabilidade de desenvolvimento desta parte ficará ao encargo do Marcelo. O Roselito ficou responsável por soldar os eixos e fixar as rodas. O prof. Alan por comprar os componentes e testar no Simulino a placa verificando sua funcionalidade.

Segundo o projeto estamos usando uma bateria LiPo de 12V/2,2 Ah com taxa de descarga de com taxa de 25C o que pode gerar um pulso de 55A.

10/12/2013 - Início do projeto
Hércules:
... (em latim: Hercules) é o nome em latim dado pelos antigos romanos ao herói da mitologia grega Héracles, filho de Zeus e da mortal Alcmena. As antigas fontes romanas indicam que o herói grego "importado" veio substituir um antigo pastor mitológico chamado pelos povos da Itália de Recaranus ou Garanus, e que é famoso por sua força. Enquanto o mito de Hércules incorporou muito da iconografia e da própria mitologia do personagem grego, ele também tinha um número de características e lendas que eram marcadamente romanas.

Novo projeto especializado em sumô e cabo de guerra. Possivelmente será adaptado para resgate de alto risco. 
Principais objetivos:
- Torque real superior a 160 N.cm
- Mais baixo custo

* os primeiros testes usarão ponte H de L298 (driver) e, depois, TIP32.

Desafios;
- Peso inferior a 1,5kg por conta dos motores utilizados
- Boa aderência para proteção lateral
- Eficiência próxima a 40%
- Baixo consumo de energia
- Construção de uma ponte H com corrente de até 40 A
- Adaptação do projeto as dimensões do Torneio Juvenil de Robótica

Referências para desenvolvimento:
http://pdf.datasheetcatalog.com/datasheet/fairchild/TIP32.pdf' - Folha de dados TIP32C
Vídeos informativos de pesquisa:


terça-feira, 23 de julho de 2013

Problema solucionado: leitura de sensores IR e ultrassom para robôs de sumô

Quando iniciamos a preparação para a OBR de 2013 notamos um problema toda vez que acionávamos os sensores de infravermelho digital junto com o sensor de ultrassom: o robô simplesmente ignorava a leitura de linha e travava o movimento. Para tanto usamos a versão 2.0 do Simulino (santo simulino) e criamos um ambiente de teste, onde os 2 ldr´s da simulação funcionam como sensores IR digitais e o sensor de ultrassom como ele mesmo. Em vez de usarmos os motores, usamos led´s para facilitar a visualização do que está acontecendo, sendo que, o robô deveria reagir conforme fluxograma abaixo:
Para tanto seguimos a seguinte programação:
int emissor=10;
int receptor=9;
long cm1,duracao;

int sensor_d = 6; //conectar ao pino digital 
int sensor_e = 7; //conectar ao pino digital

int diff1;
int diff2;

void setup(){
  pinMode (emissor, OUTPUT);
  pinMode (receptor, INPUT);
  pinMode (13, OUTPUT);
  pinMode (12, OUTPUT);
Serial.begin (9600);
}
void loop(){
  //leitura dos sensores de IR
  int linha_d = direita(); //armazena o valor de leitura na viarável linha_d
  int linha_e = esquerda();//armazena o valor de leitura na variável linha_e
  sonar();

Serial.print (linha_d);
Serial.print (", ");
Serial.print (linha_e);
Serial.print (", ");
Serial.println (cm1);

  //se a leitura das linhas corresponder a branco, executa esta função
  if (linha_d<800 || linha_e<800){
    if (cm1<30){
  digitalWrite (13, HIGH); //acende o led no pino 13
  digitalWrite (12, LOW); //desliga o led pino 0
    }
    if (cm1>30){
    digitalWrite (13, LOW); //desliga o led no pino 13
    digitalWrite (12, HIGH); //liga o led pino 0
    }
  }
  if (linha_d>=800||linha_e>=800){
    digitalWrite (13, HIGH); //acende o led no pino 13
    digitalWrite (12, LOW); //desliga o led pino 0
    delay (10);
    digitalWrite (13, LOW); //desliga o led no pino 13
    digitalWrite (12, HIGH); //liga o led pino 0
    delay (10);
  }

}

int sonar(){
   digitalWrite (emissor, LOW);
  delayMicroseconds (2); 
  digitalWrite (emissor, HIGH);
  delayMicroseconds (2); 
  digitalWrite (emissor, LOW);
  duracao=pulseIn(receptor,HIGH);
  cm1=microsecondstocentimeters(duracao);
}

long microsecondstocentimeters(long microseconds){
  return microseconds/29/2;
}

int direita(){
pinMode( sensor_d, INPUT );
int leitura_d=digitalRead(sensor_d);
if (leitura_d==HIGH){
  diff1=700;
}
else{
  diff1=900;
}
 return diff1;
}

int esquerda(){
  pinMode( sensor_e, INPUT );
  int leitura_e=digitalRead(sensor_e);
  if (leitura_e==HIGH){
  diff2=700;
}
else{
  diff2=900;
}
  return diff2;
}

Após rodar esta programação, o robô simulou o mesmo erro que observamos nos nossos treinos, onde o robô passa direto pela linha independente de encontrar a linha preta ou não (900 no virtual terminal), acendendo a luz amarela direta. 


Para corrigir alteramos os seguintes trechos:
...
void loop(){
  //leitura dos sensores de IR
  int linha_d = direita(); //armazena o valor de leitura na viarável linha_d
  int linha_e = esquerda();//armazena o valor de leitura na variável linha_e
 ...
Retirando a leitura do sonar e colocando-a de forma a agilizar a leitura dos sensores, fazendo com que a leitura do ultrassom só seja feita se o robô está sobre a linha branca, conforme abaixo:
 ...
  //se a leitura das linhas corresponder a branco, executa esta função
  if (linha_d<800 || linha_e<800){
  sonar();
...   
Além disso, na função sonar mudamos o valor do tempo em HIGH de 2 microssegundos para 10 microssegundos evitando erros de leitura:
...
int sonar(){
   digitalWrite (emissor, LOW);
  delayMicroseconds (2); 
  digitalWrite (emissor, HIGH);
  delayMicroseconds (10); 
  digitalWrite (emissor, LOW);
  duracao=pulseIn(receptor,HIGH);
  cm1=microsecondstocentimeters(duracao);
}
...

O resultado final pode ser visto no vídeo abaixo,com a pequena alteração de colocar um led vermelho para identificar quando está sobre a a linha preta, um led amarelo para representar sobre a linha branca sem nenhum objeto à frente e, o led verde representando sobre a linha branca com objeto a menos de 30 cm:


Ainda assim, você pode notar que os led´s piscam alternadamente, mostrando que há interferência, causada pela leitura dos sensores. Isso pode provocar movimentos involuntários do robô interferindo no planejamento inicial. Para eliminar o problema criamos uma função que interpreta o sinal dos sensores:
...
//função que transforma a leitura dos sensores em uma variável, eliminando erros:
if (linha_d<800||linha_e<800){
  estado = 100;
}
if (linha_d>=800||linha_e>=800){
  estado = 300;
}
...
Essa  função retorna o valor de 100 para branco e 300 para preto, eliminando o defeito anterior. Se baseia no princípio de Máquina de Estados Finitos que pode ser assim definido:
" é um modelo matemático usado para representar programas de computadores ou circuitos lógicos. O conceito é concebido como uma máquina abstrata que deve estar em um de seus finitos estados. A máquina está em apenas um estado por vez, este estado é chamado de estado atual. Um estado armazena informações sobre o passado, isto é, ele reflete as mudanças desde a entrada num estado, no início do sistema, até o momento presente. Uma transição indica uma mudança de estado e é descrita por uma condição que precisa ser realizada para que a transição ocorra. Uma ação é a descrição de uma atividade que deve ser realizada num determinado momento."

Desta forma, conforme o vídeo abaixo, o problema foi finalmente corrigido:

sexta-feira, 31 de maio de 2013

Artemis

01/08/2014

Seguidor de Linha:
1°) Sensores próximos e na linha do eixo de tração
  Em cinco testes o robô cumpriu o percurso em três - 60% de aproveitamento

2°) Sensores posicionados pouco á frente da linha de tração e nas extremidades do chassi
  Em doze repetições o robô realizou nove vezes o circuito - 75% de aproveitamento

Teste de sensor de Ultrassom
  o sensor de ultrassom está funcionando com leitura máxima de 57 cm

Teste de garra 
  A garra está funcionando , embora não foi testada junto com o robô.
14/06/2014 - Ártemis treinando na arena da OBR2014



23/08/2013 - Resultado do Torneio Juvenil de Robótica
Usando nosso programa base de sumô de robôs, conforme sketch abaixo, o robô Artemis conseguiu uma medalha de prata no sumô, nossa primeira medalha no Ensino Fundamental (parabéns Suzane/Celena/Eduardo):
Arenas de sumô (branca) e cabo de guerra (marrom)
Fotos da equipe com os robôs premiados

 As medalhas em detalhe
Programa
int emissor=7;
int receptor=6;
long cm1,duracao;

int sensor_d = 8; //conectar ao pino digital 
int sensor_e = 9; //conectar ao pino digital

int diff1;
int diff2;
int estado;

void setup(){
  pinMode (emissor, OUTPUT);
  pinMode (receptor, INPUT);
  pinMode (2, OUTPUT);
  pinMode (3, OUTPUT);
  pinMode (4, OUTPUT);
  pinMode (5, OUTPUT);
  pinMode (13, OUTPUT);
  pinMode (12, OUTPUT);  
Serial.begin (9600);
}
void loop(){
  //leitura dos sensores de IR
  int linha_d = direita(); //armazena o valor de leitura na viarável linha_d
  int linha_e = esquerda();//armazena o valor de leitura na variável linha_e

Serial.print (linha_d);
Serial.print (", ");
Serial.print (linha_e);
Serial.print (", ");
Serial.println (cm1);
//função que transforma a leitura dos sensores em uma variável, eliminando erros:
if (linha_d<800||linha_e<800){
  estado = 100;
}
if (linha_d>=800||linha_e>=800){
  estado = 300;
}
//se a leitura das linhas corresponder a branco, executa esta função
  if (estado==100){
   Serial.println ("Sobre a linha branca");
   digitalWrite (13, HIGH);
   
     //executa  a leitura de ultrassom
  sonar();
    if (cm1<30){
    Serial.println ("Atacar alvo");
  //comandos de ataque
  digitalWrite (2, HIGH);
  digitalWrite (3, LOW);
  digitalWrite (4, HIGH);
  digitalWrite (5, LOW);
  
    } //fim do if de atacar alvo
    if (cm1>30){
    Serial.println ("Procurando oponente");
 //comandos para localizar o oponente
  digitalWrite (2, HIGH);
  digitalWrite (3, LOW);
  digitalWrite (4, LOW);
  digitalWrite (5, HIGH);
  delay (500);
  digitalWrite (2, HIGH);
  digitalWrite (3, LOW);
  digitalWrite (4, HIGH);
  digitalWrite (5, LOW);
  delay (400);  
   }//fim do if procurando oponente
  }//fim do if sobre linha branca
//se estiver sobre linha preta executa esta função
  if (estado==300){
    Serial.println ("Linha preta retornar");
//comandos quando estiver sobre a linha preta
  digitalWrite (2, LOW);
  digitalWrite (3, HIGH);
  digitalWrite (4, LOW);
  digitalWrite (5, HIGH);
  digitalWrite (13, LOW);
  delay(800);
  digitalWrite (2, LOW);
  digitalWrite (3, HIGH);
  digitalWrite (4, HIGH);
  digitalWrite (5, LOW);
  delay(500);
    }//fim do if linha preta
  }//fim do loop


int sonar(){
  digitalWrite (emissor, LOW);
  delayMicroseconds (2); 
  digitalWrite (emissor, HIGH);
  delayMicroseconds (10); 
  digitalWrite (emissor, LOW);
  duracao=pulseIn(receptor,HIGH);
  cm1=microsecondstocentimeters(duracao);
}

long microsecondstocentimeters(long microseconds){
  return microseconds/29/2;
}

int direita(){
  //Retorna o valor do sensor 
  pinMode( sensor_d, OUTPUT );
  digitalWrite(sensor_d , HIGH );
  delayMicroseconds(10);
  pinMode( sensor_d, INPUT );

  long tempo1 = micros();

  //o tempo medido  HIGH, que acaba 3 segundos depois e retorna um valor de 0 (branco) a 3000 (preto)
  while (digitalRead(sensor_d) == HIGH && micros() - tempo1 < 3000);
  int diff1 = micros() - tempo1;

  return diff1;
}

int esquerda(){
  //Retorna o valor do sensor 
  pinMode( sensor_e, OUTPUT );
  digitalWrite(sensor_e , HIGH );
  delayMicroseconds(10);
  pinMode( sensor_e, INPUT );

  long tempo2 = micros();

  //o tempo medido  HIGH, que acaba 3 segundos depois e retorna um valor de 0 (branco) a 3000 (preto)
  while (digitalRead(sensor_e) == HIGH && micros() - tempo2 < 3000);
  int diff2 = micros() - tempo2;

  return diff2;
}

Logo depois iniciamos o preparo do ano que vem, aprimorando o programa de sumô nos erros cometidos:
- ausência de proteção na dianteira e traseira do robô o que deixou 2 pontos de ataque. Na primeira luta o robô ficou preso no canto e foi empurrado até cair e na terceira luta fomos derrotados pela rampa preta vindo pela frente, que fez com que o robô recuasse sozinho.
- Trocamos as 8 pilhas de 1,2V/2A (9,6V) que tem baixa capacidade de descarga por uma bateria 7V/2A de Ni-MH, que além de menos poluentes, apresentaram um rendimento melhor.
Vídeo do cabo de guerra: Artemis vs Inacio

O planejamento agora envolve o uso do PWM no Artemis para aumentar o torque, dando mais potência para o robô, tornando-o mais eficiente no combate. Aliás, um ótimo resultado foi no cabo de guerra em equipe, onde o Artemis sozinho carregou 2 legos, segurando-os. Não teve força para arrastá-los mas também não foi arrastado, sendo derrotado porque o parceiro que caiu no fosso.   

28/06/2013 - Instalação do suporte de baterias e pilhas
Fotos da instalação do suporte de baterias e pilhas no robô. Estamos quase prontos, falta só providenciar uma sensor de ultrassom...





14/06/2013 - Teste de Combate
O robô Artemis recebu seu programa de combate e foi testado. Este programa é o módulo básico de combate do robô.
No primeiro teste o robô reconhece a linha e foi programado para virar:

Este teste falhou pois o robô saía da área de luta o que, no sumô, causaria a queda para fora da arena.
Para o segundo teste, inserimos um comando para que o robô, quando encontrasse a linha, retornasse e depois virasse, o que resolveu o problema, conforme o vídeo abaixo.

Na primeira tentativa, por conta da pista improvisada ele passou reto mas, com mais um pouco de fita adesiva no local, para evitar ondulações, o robô se comportou como esperado. A mesa suja causou interferência no processo mas não compromoteu o teste.

07/06/2013 Teste de programação
Hoje testamos uma programação básica para o robô usando um simulador feito em protoboard e o TCRT 5000 como sensor IR de linha. A ideia foi usar 2 led´s acendendo representando os motores, ou seja, quando o robô estiver sobre a linha preta deve virar (acende um led) e depois, quando está sobre a linha branca os dois motores devem estar no mesmo sentido (acende os dois led´s ).
De início, no código, não desligamos os 2 pinos que fariam o reverso do motor (primeira parte do vídeo) o que deixava os led´s acesos constantemente, representando que o motor não inverteria o sentido.
/*Progamação de robô de sumô para o torneio juvenil de robotica*/
int sensor;
void setup(){
pinMode(5, OUTPUT);//MOTOR DIREITO PARA FRENTE
pinMode(6, OUTPUT);//MOTOR DIREITO PARA TRAZ
pinMode(8, OUTPUT);//MOTOR ESQUERDO PARA FRENTE
pinMode(7, OUTPUT);//MOTOR ESQUERDO PARA TRAZ
pinMode(A0, INPUT);//SENSOR
}
void loop(){
  sensor=analogRead(A0);
  if (sensor<500){
    digitalWrite(5, HIGH);
    digitalWrite(7, HIGH);
    delay(500);
  }
  else{
    digitalWrite(5,HIGH);
    digitalWrite(8,HIGH);
  }
}
Na segunda tentativa usamos o LOW para desligar os pinos digitais que não estavam ativos e o resultado foi melhor.
/*Progamação de robô de sumô para o torneio juvenil de robotica*/
int sensor;
void setup(){
pinMode(5, OUTPUT);//MOTOR DIREITO PARA FRENTE
pinMode(6, OUTPUT);//MOTOR DIREITO PARA TRAZ
pinMode(8, OUTPUT);//MOTOR ESQUERDO PARA FRENTE
pinMode(7, OUTPUT);//MOTOR ESQUERDO PARA TRAZ
pinMode(A0, INPUT);//SENSOR
}
void loop(){
  sensor=analogRead(A0);
  if (sensor<500){
     digitalWrite(6, LOW);
    digitalWrite(8, LOW);
    digitalWrite(5, HIGH);
    digitalWrite(7, HIGH);
    delay(500);
  }
  else{
     digitalWrite(6,LOW);
    digitalWrite(7, LOW);
    digitalWrite(5,HIGH);
    digitalWrite(8,HIGH);
  }
}
Vídeo dos testes

Para o próximo teste usaremos um delay após o comando dos motores para frente, como forma de otimizar o sistema de ataque do robô.
Este programa será a primeira estratégia de ataque.

03/06/2013
Informações técnicas sobre o Artemis:
Dimensões: 17x26x6,5 cm
Cérebro: Arduino Uno Rev.3
Alimentação: Bateria LiPo 11V/1A ou 6V/2A (motores)  e 9V/350mA (Arduino)
Sensores: IR - QR1113 (2) e Ultrassom - HC-SR04
Controle de motores: L293d
Motores: 4 servo-motores Gardner adaptados para rotação contínua
Consumo Previsto: 400 mAh dos motores e 100 mAh do Arduino e sensores

Fotos do Projeto:
Estrutura do projeto




Adicionando o Arduino, protoboard, sensor de ultrassom e l293d





Vídeos dos testes:
Condições: fonte de alimentação 9V/500mA, teste de sumô com localização de objeto e emissão de som (buzzer) mais agudo conforme a distância do objeto. Por uma questão de estratégia ainda não vamos divulgar a programação do Arduino mas, após o Torneio Juvenil de Robótica 2013, divulgaremos a programação.
Vídeos de teste do robô: teste de motores


Vídeo de teste sobre uma superfície

Vídeo de teste de luta: o alvo é um pedaço de fonte ATX de computador
Ajustes necessários:
-Fixação do Arduino
-Fixação da Protoboard
-Instalação das baterias
-Instalação dos sensores de IR
- Ajuste de servo-motores e rodas, corte dos parafusos e melhorias na estrutura
-Instalação dos led´s de alerta
- Nova programação completa

31/05/2013
Sua origem está na estrutura do projeto Orion que teve seu tamanho reduzido para 17x20. Mantém a base de 4 servo-motores com alimentação por pilhas AA 1,2V recarregáveis (6V/2000mAh) e o uso de um Arduino UNO alimentado por baterias de 9V/350mA.
Segundo o Wikipédia (http://pt.wikipedia.org/wiki/%C3%81rtemis):
"Na Grécia, Ártemis ou Artemisa (em grego: Άρτεμις1 ) era uma deusa ligada inicialmente à vida selvagem e à caça. Durante os períodos Arcaico e Clássico, era considerada filha de Zeus e de Leto, irmã gêmea de Apolo ; mais tarde, associou-se também à luz da lua e à magia. Em Roma, Diana tomava o lugar de Ártemis, frequentemente confundida com Selene ou Hécate, também deusas lunares."

domingo, 17 de fevereiro de 2013

Apollo

31/05/2013
O projeto EFF1520 foi batizado de Apollo:
"Apolo (em grego: Ἀπόλλων, transl. Apóllōn, ou Ἀπέλλων, transl. Apellōn) foi uma das divindades principais da mitologia greco-romana, um dos deuses olímpicos. Filho de Zeus e Leto, e irmão gêmeo de Ártemis, possuía muitos atributos e funções, e possivelmente depois de Zeus foi o deus mais influente e venerado de todos os da Antiguidade clássica. As origens de seu mitosão obscuras, mas no tempo de Homero já era de grande importância, sendo um dos mais citados na Ilíada. Era descrito como o deus da divina distância, que ameaçava ou protegia deste o alto dos céus, sendo identificado com o sol e a luz da verdade. Fazia os homens conscientes de seus pecados e era o agente de sua purificação; presidia sobre as leis da Religião e sobre as constituições das cidades, era o símbolo da inspiração profética e artística, sendo o patrono do mais famoso oráculo da Antiguidade, o Oráculo de Delfos, e líder das Musas. Era temido pelos outros deuses e somente seu pai e sua mãe podiam contê-lo. Era o deus da morte súbita, das pragas e doenças, mas também o deus da cura e da proteção contra as forças malignas. Além disso era o deus da Beleza, da Perfeição, da Harmonia, do Equilíbrio e da Razão, o iniciador dos jovens no mundo dos adultos, estava ligado à Natureza, às ervas e aos rebanhos, e era protetor dos pastores, marinheiros e arqueiros. Embora tenha tido inúmeros amores, foi infeliz nesse terreno, mas teve vários filhos. Foi representado inúmeras vezes desde a Antiguidade até o presente, geralmente como um homem jovem, nu e imberbe, no auge de seu vigor, às vezes com um manto, um arco e uma aljava de flechas, ou uma lira, e com algum de seus animais simbólicos, como a serpente, o corvo ou o grifo."
Fonte:http://pt.wikipedia.org/wiki/Apolo
Já foi para a OBR com este nome, mas o projeto final receberá uma revisão na sua estrutura que se apresentou fraca em relação ao nosso padrão. Depois da queda dois dias antes da OBR (23/05), ainda se mostrou forte suficiente para entrar na arena e marcar nossos primeiros pontos na competição.
Dentro do plano de melhorias sofrerá estas alterações com data limite para 17/06.

08/05/2013
Depois de vários revezes na construção deste projeto, entramos numa fase crítica e o projeto inicial sofreu alterações. Apesar do chassi ainda não estar pronto já estamos trabalhando nas salas. Hoje desenvolvemos o programa para a sala 3 da OBR onde o robô deverá resgatar a vítima. No caso do Ensino Fundamental, basta o robô se aproximar da vítima e emitir um sinal sonoro e luminoso a 5 cm. Começamos programando a base do projeto conforme esquema abaixo:
O teste começou usando o buzzer emitindo um som de alarme e os led´s piscando:

http://www.youtube.com/watch?v=XD98Lw6efxo

http://www.youtube.com/watch?v=_i6zh1KxNh4

10/04/2013
Usando o esquema de sensor IR e, substituindo o fototransistor e o led emissor por um led de alto brilho (branco) e um LDR, desenvolvemos um sensor de linha que alcança cerca de 15 cm:
Vídeo do teste abaixo:



Além disso, concluímos a parte de elaboração e corrosão da placa de controle de motores conforme fotos abaixo, falta só soldar os componentes:


30/03/2013
Fizemos hoje a placa de circuito - ponte H dupla - para controle de 2 motores usando o TIP (110/115 ou 120/127).
https://skydrive.live.com/redir?resid=AC8ECA0DCFBBC517!427&authkey=!AATyvgnHh5cZ-_E

27/03/2013
Hoje terminamos a estrutura do robôs falta apenas terminar de instalar os motores. Desenvolvemos a ponte H na protoboard e já testamos em outro projeto (EMF1520) com bom resultado.


06/03/2013
Corte dos eixos com caixa de redução para os chassis.

20/02/2013
Fotos das primeiras peças para montagem do robô: motor e caixa de redução e caixa da fonte ATX desmontada:




13/02/2013
Este projeto será desenvolvido pelo Jhonatan e pelo João Gabriel. Será um robô de 20x20 com sistema de tração independente dos lados (o eixo dianteiro será separado do eixo traseiro) e, com os motores que encontramos em impressoras, que já vem com redução, provavelmente será de esteiras, feitas de borracha de câmara de pneu de carro coladas com cola epoxi e vulcanizadas com ferro de passar roupa (ideia do Jhow). O chassi será feito de alumínio retirado de fontes ATX de computador, furadas as dimensões.
Ao Paulo caberá a responsabilidade de cortar os eixos. Um dos maiores desafios será fixar o motor no chassi e fazer a divisão do eixo dianteiro. Em breve postaremos a foto mas a ideia preliminar segue abaixo:
Em relação ao controle dos motores, utilizaremos uma ponte H construída inicialmente em protoboard, feita com TIP120 (NPN) e TIP122 (PNP), capaz de suportar correntes de até 6A, e tensões das mais varíáveis, provavelmente usaremos baterias de 11,1 V/1Ah, com taxa de descarga de 25C, conforme  esquema abaixo:

Este projeto tem como objetivo um robô de resgate de alto risco e lutador de sumô. Quanto a sensores, provavelmente serão usados os TCRT 5000 (só usaremos os QRE1113 senão houver espaço) e um ou 2 sensores de ultrassom HC-SR04, dependendo de quantos tivermos na época.
Em breve as primeiras fotos do projeto...