Mostrando postagens com marcador sumô robot. Mostrar todas as postagens
Mostrando postagens com marcador sumô robot. Mostrar todas as postagens

quarta-feira, 21 de agosto de 2013

Lutas de robôs - Nossos projetos em ação

Neste post, em ordem cronológica, do mais novo para o mais velho, colocaremos nossas disputas internas...
A começar pelo Torneio Juvenil de Robótica (USP) 2013 a luta de sumô Inácio vs Osiris. Talvez a luta mais lenta de todo o torneio pois os robôs já estavam sem baterias:

Quem viu o primeiro vídeo não vai acreditar no segundo: Após carregar as baterias, a luta entre o Inácio vs Artemis, a grande surpresa da nossa equipe, no cabo de guerra.

Antes do Torneio tivemos a luta Osiris vs Artemis que terminou 4 a 4. Quem viu o primeiro vídeo nem acredita que é o mesmo robô, isso porque nessa luta a bateria estava com 70% da capacidade.


sábado, 10 de agosto de 2013

Mostra Nacional de Robótica 2013

A Mostra Nacional de Robótica (www.mnr.org.br) é o maior evento de robótica do ano. Reúne diversos trabalhos produzidos ao longo do ano em robótica. Possui uma versão virtual e presencial. Abaixo segue a prévia do vídeo de apresentação do projeto:

Em breve postamos a versão final e o artigo produzido. A ideia do artigo é fornecer informações de como construir um robô para resgate e sumô usando reciclagem e Arduino. Este trabalho é um resumo do que foi feito ao longo de 2012/2013 no projeto.

Sumô de robôs: Artemis vs Osíris

Primeira luta oficial entre os projetos de robótica da equipe Pequenos Cientistas: Artemis vs Osíris.
A pontuação foi combinada da seguinte forma:
2 pontos - se o robô sai sozinho da arena
4 pontos - se o robô prender o oponente por 3 segundos em um dos cantos, impedindo o movimento
10 pontos - se o robô empurrar o oponente para fora da arena.

Na contagem geral foi 2x1 para o Artemis, apesar que, depois fizemos mais alguns testes que não gravamos e terminou 4x2 para o Osiris.
Round 1

Round 2

Round 3

sábado, 20 de outubro de 2012

Apresentação na VI Semana de Educação, Ciência e Tecnologia do Instituto Federal de Educação - Campus SP

 Segue abaixo as fotos da apresentação dos alunos no IFSP. A feira foi realizada no Instituto Federal de Educação, Ciência e Tecnologia em 18/10 e contou com vários trabalhos sobre Arduino. Em nossa sala havia um sistema de controle de nível de tanques, um aparelho que media a condutividade térmica de materiais e nossos projetos de robôs de combate - TITAN e ORION. 
 Vale destacar que a recepção por parte do Sr.Marcio e do Sr. Gildo, organizadores do evento, foi muito amistosa e criou um ambiente muito amistoso nos grupos da sala. O evento foi muito bem organizado, com ótima infraestrutura. Ao longo do ano precisávamos de mais espaços como esse, de compartilhamento de cultura e tecnologia, pois nosso país carece deste tipo de evento. 
 Os agradecimentos estendem-se também a professora Marisa Cavalcante: sem a inspiração dela na criação do EDUCASAEN - projeto que infelizmente não vingou, não teríamos iniciado nosso trabalho com Arduino e talvez ainda estivéssemos desenvolvendo um programa em C++ para criar nosso primeiro robô autônomo.
 Agradeço aos alunos e professores do Instituto pela motivação e pelo reconhecimento de nosso trabalho. É graças a esse estímulo e inspiração, e a avaliação criteriosa de alunos e professores do IFSP, que estamos motivados a inscrever 2 trabalhos na FEBRACE desse ano com a certeza que, muito mais que títulos, campeonatos ou reconhecimento, estamos contribuindo de alguma forma para o desenvolvimento e popularização da Ciência e Tecnologia de nosso país e, popularizando o uso da robótica. Não deixamos de lado nossas metas iniciais: construir robôs utilizando materiais de descarte de lixo eletrônico e estruturas de forma a aproveitar e maximizar o uso de recursos.














  


Vídeo do robô desviando de obstáculos:


Fotos tiradas pelo prof. Marcio e Gildo (IFSP) para divulgação:






























domingo, 30 de setembro de 2012

SENSOR DE ULTRASSOM HC-SR04

Aplicação em robôs de sumô: detecção de objetos.
Programa de testes- Utilizado para 2 sensores de ultrassom:

// Comandos para leitura de sensor de ultrassom para os robôs TITAN e ORION.
//sensor 1
#define echoPin 2                            // Pino do Arduino para emissor
#define trigPin 3                            // Pino do Arduino para receptor
//sensor 2
#define echoPin1 4                           // Pino do Arduino para emissor
#define trigPin1 5                           // Pino do Arduino para receptor

float distancia=0; // variável para distância do sensor 1
float distancia1=0;//variável para distância do sensor 2

float valorSensor=0; //valor do sensor 1
float valorSensor1=0;//valor do sensor 2

void setup(){
  Serial.begin(9600);
  pinMode(echoPin, INPUT); // seta pino 2 como entrada - receptor - echo
  pinMode(trigPin, OUTPUT); // seta pino 3 do Arduino como saída - transmissor - trigger
  pinMode(echoPin1, INPUT);//seta o pino 4 como entrada receptor
  pinMode(trigPin1, OUTPUT);//seta o pino 5 como saída (gatilho) - transmissor
}

void loop(){
  //sensor de objeto 1
  digitalWrite(trigPin, LOW); // desliga o pino gatilho do sensor por 2 microssegundos
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);// gatilho ativado por 10 microssegundos
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);// gatilho desligado
  //sensor de objeto 2
  digitalWrite(trigPin1, LOW); // desliga o pino gatilho do sensor por 2 microssegundos
  delayMicroseconds(2);
  digitalWrite(trigPin1, HIGH); // gatilho ativado por 10 microssegundos
  delayMicroseconds(10);
  digitalWrite(trigPin1, LOW); // gatilho desligado

  int distance = pulseIn(echoPin, HIGH);//leitura do sensor 1 - alto ou baixo.
  int distance1 = pulseIn(echoPin1, HIGH);//leitura do sensor 2 - alto ou baixoo pulso em microssegundos.
  distance = distancia/58;//converte o valor do sensor1 em cm
  distance1 = distancia1/58;//converte o valor do sensor2 em cm
  //a partir daqui pode seguir com as variáveis para controlar os motores usando a distância
  //comando para exibir no serial monitor o valor de distância
  Serial.print(distancia);
  Serial.print(distancia1);
  Serial.println(distancia);
  Serial.println(distancia1);
  delay(100);
}


FONTE: http://www.webtronico.com/documentos/HC-SR04.pdf


Descrição:
 Medidor de distância ultrasônico é capaz de medir distâncias de 2cm a 5 metros. O módulo possui um circuito pronto, com emissor e receptor ultrasônico.
Conexões:
  • 5V Supply
  • Trigger Pulse Input
  • Echo Pulse Output
  • 0V Ground
Também pode ser utilizado para detectar objetos, movimento, etc.
Especificações:
  • power supply :5V DC
    Corrente: 15mA
  • quiescent current : <2mA
  • effectual angle: <15°
  • alcance da medição : 2cm – 500 cm
  • resolution : 3mm
O módulo possui 4 pinos : VCC , Trig, Echo, GND . Sendo assim, é muito simples utiliza-lo. O processo de medição se resume em: coloque o pino TRIG em nível ALTO por mais de 10us, e a medição começa; Quando o ultrassom emitido bater em um obstáculo e voltar, o pino ECHO ficará em nível ALTO pelo tempo correspondente a distância medida. Assim, a distância do obstáculo pode ser medida pelo tempo (largura do pulso) que o pino ECHO ficar em nível alto usando a seguinte regra:
Distância em CEMTIMETROS: (largura do pulso em uS) / 58;
Distância em POLEGADAS: (largura do pulso em uS) / 148;
Se a largura do pulso for igual a 38ms, então não tem obstaculo.

sábado, 25 de agosto de 2012

Sensor IR com R$0,00

Estávamos trabalhando num sensor IR usando partes de controle remoto (led emissores) e recpetores que existem em aparelhos com controle remoto. O sensor que fizemos, além de aquecer o resistor, mantinha pequenas distâncias (5cm). Bom, pesquisando no site do Arduíno (www.arduino.cc) encontrei o que pode ser a solução para o problema - na base do TSOP ligamos um resistor de 10Kohm, como os receptores normais mas, segundo a apostila da parallax (Apostila parallaxde onde eu tirei o esquema abaixo apareceu a solução - ligar um resistor de 220 ohm na base. Com isso a estimativa é um sensor de 30 cm. Se der certo conseguiremos 4 sensores de distância IR com boa resolução.


Sugiro o uso de resistores de 100 a 200 ohm no emissor para uma melhor distância.

sexta-feira, 24 de agosto de 2012

Nossa primeira vitória no sumô

Melhor de 3 rounds, o nosso não tem proteção na frente, vencemos o 2° round.
Torneio Juvenil de Robótica - ENIAC vs Orion

sexta-feira, 17 de agosto de 2012

Projeto - Orion

31/05/2013
PROJETO ENCERRADO - Oficialmente estamos aposentando o projeto Orion por conta do seu tamanho, fato observado na arena da OBR 2013 e, em seu lugar, iniciamos a construção do projeto: Artemis.
Parabéns aos Orion que nos deu uma medalha de ouro no Torneio J. Robótica 2012.

11/05/2013
A programação do robô para resgate foi construída da seguinte forma:
Os testes começaram com a programação para resgate, conforme atualização da semana passada. Nesta semana desenvolvemos a programação para desviar de obstáculos conforme vídeo abaixo. Os dois leds ficam acesos (azul e verde) quando o robô está seguindo linha. Quando o led verde acende o objeto está a 15cm do robô então se inicia o procedimento de desvio, conforme fluxograma abaixo:


Após estes teste rodamos o programa completo conforme vídeo abaixo:
Quando o robô está seguindo linha os dois led´s ficam acesos (azul e verde), quando está sobre a linha preta, os dois led´s desligam e quando encontra um objeto somente o led verde acende e inicia-se o procedimento de desvio. Falta apenas ajustar os tempos e instalar os dois motores na frente para melhorar a tração e seguir linha.

02/05/2013
Os testes do Orion adaptados para resgate apresentaram resultados positivos. Inciamos com um preparativo fazendo com o que o robô ative um sinal luminoso e sonoro quando estiver a 5 cm da vítima, conforme o vídeo abaixo:
Fluxograma do programa:



Após estes testes configuramos o programa em 3 blocos:
Bloco 1 - o robô deve andar para frente durante 3 segundos e girar para direita 1 segundo
Bloco 2 - se o sensor acusar algum objeto entre 15 a 40 cm o robô deve se dirigir até o objeto.
Bloco 3 - se o sensor detecta a vítima a menos de 15 cm e aciona as luzes e emite um alerta parando o robô.
Vídeo do teste:

Após inúmeros testes que envolveram alterar  as variáveis como distância e como os blocos construídos liam as distâncias (invertendo os sinais de comparação > ou <), inserindo outras variáveis descobrimos que:
- os tempos do bloco 1 influenciavam a leitura do sensor de ultrassom, ou seja, enquanto estivesse rodando a ordem de andar por 3 segundos e girar por um segundo o sensor não funciona. Para corrigir o problema usamos a técnica de isolamento de blocos onde, separamos o programa em pedaços e o reconstruímos rodando cada pedaço de cada vez e depois inserindo os blocos um de cada vez.   
- O bloco 2 apresentava um erro que interferia no processo por isso o removemos o que resolveu os últimos problemas em reconhecer e vítima, visto que, facilitou a programação excluindo ordens de detalhamento excessivo.

Para coroar uma semana em que tudo deu errado, não conseguimos gravar os últimos testes porque o Arduino, após várias execuções parou de funcionar, os pinos não responderam mais. Esperamos que seja só o excesso de uso - os fios dos motores estavam muito quentes e notamos um aquecimento da ponte H que está sem diodo.

Vale um parabéns aqui para o Marcelo que foi o primeiro a analisar a programação e chegar a conclusão de que havia um erro de programação e não problemas com transientes ou ruído causado pelo motor (por falta de espaço e tempo estamos usando a ponte H sem diodos).
Ainda falta instalar os dois motores na parte dianteira para seguir linha mas faremos isso na semana que vem. Essa constatação foi resultado da pesquisa realizada pela equipe avaliando robôs de outros grupos que já participaram da OBR e outras competições.

12/04/2013
Após a falha nos testes para seguir linha do Orion, realizamos uma reunião de revisão de projeto e alguns testes preliminares e chegamos as seguintes conclusões:
- A limitação no ato de virar do chassi é causada não pela distância dos sensores mas pela posição dos sensores que ficam na frente, distantes do motor que realiza a tração e, portanto temos 2 opções
* ou adicionamos 2 motores na dianteira do robô, o que aumentaria a tração e facilitaria o robô virar, em compensação, aumentaria o consumo de bateria do robô (0,2 A em condições normais - 2 motores de 0,1 A - e 0,6 A em condições de motor em stall.
* ou então trocamos a posição dos sensores de linha para seguidor de linha da frente para traseira, invertendo o lado do robô.

O teste de inversão dos sensores não funcionou a contento pois estes ficaram muito altos, o que atrapalhou a sensibilidade, portanto, testaremos a hipótese 1 - mais  2 motores.

05/04/2013
Após um tempo sem mexer no projeto Orion, fizemos algumas alterações importantes:
- Instalação de um drive de motor feito com TIP 110/115 (NPN/PNP) - ponte H
- Nova programação: seguidor de linha
- Alteração da equipe responsável pelo Orion, passando a ser a equipe de 8ª série da EE Elza Facca

Segue abaixo vídeo dos testes "seguir linha" com robô Orion:


Outubro de 2012
O chassi Orion, após o Torneio Juvenil de robótica, sofreu alterações motivadas por 2 fatores fundamentais:
1- Peso - a armação de alumínio e madeira, somada a bateria de chumbo/ácido de 6V, aumentava significativamente o peso do robô e o deixava fora da especificação do torneio (1,5kg).
2- Baterias - a bateria de 6V não alimentava corretamente os sensores e os motores.

Isso nos motivou as 3 mudanças e o novo protótipo do Orion 2.0:
- Instalar uma bateria de 213g - 11,1 V e 1A;
- Instalar 2 breakouts de sensores de linha QR1113 e 4 sensores de ultrassom HCSR04;
- Substituir a base de madeira e alumínio por uma base de acrílico (prancheta usada doada pelas inspetoras do EE Elza Facca M. Bonilha).

Como resultado direto houve um aumento da velocidade (ainda não medimos mas é visível), do torque e a regularidade do funcionamento dos sensores. Apareceram outros problemas que, ainda não divulgaremos. O mesmo vale para o código fonte, pois este robô está sendo preparado para equipe de ensino fundamental e como robô-treino para o nosso novo protótipo.

Sensor de IR (QR1113) instalado para leitura de linha 


Sensor IR e Sensor de Ultrassom instalados na base de acrílico


Ainda com a bateria antiga


Sem bateria

Vídeo do Orion 2.0 já com a bateria nova e sensores




As primeiras imagens do robô da equipe Orion:
Plataforma de alumínio do chassi

Vista Inferior

Detalhe da roda traseira - Tração

Detalhe da roda dianteira - Roda Boba
Teste de funcionamento do chassi