quinta-feira, 15 de novembro de 2012

ONIX

22/02/2013
Testes da proteção da esteira, feita com acrílico. A ideia era proteger a esteira para que não escapasse do eixo e, até certo ponto, funcionou. O problema foi o parafuso que trava nos discos o que levou o Marcelo a sugerir a construção de uma proteção que vá de roda a roda e a troca do parafuso de cabeça redonda por um de cabeça chata, cortado e limado.
Vídeo do teste

17/02/2013
Placa de circuito impresso com 3 l298n
Esta placa de circuito foi projetada para 3 motores de passo usando o L298n e um regulador de voltagem (5V), o que elimina o uso do Arduino como fonte de alimentação, evitando o acidente causado pelo Prof. Alan, conforme esquema abaixo:

Link para baixar os pdf´s para impressão:
https://skydrive.live.com/redir?resid=AC8ECA0DCFBBC517!398&authkey=!AAqm8K3wx1qMa8Q
Na tentativa de melhorar o robô Onix, fizemos umas rodas de acrílico para colocar sobre as rodas e evitar que a corrente escape, como anda acontecendo. Fotos abaixo:


Outra ideia surgiu hoje: criar uma correia de borracha e sapatas de pneu de carro, evitando assim escorregar.
Novas fotos do Onix - proteção do sensor:



13/02/2013
Bom começamos mal - queimei o regulador de voltagem do Arduino do Onix, ou seja, o pino DB09 não funciona mais - não dá para ligar o robô de forma autônoma, só na porta USB - ele ficará conectado ao computador... Parabéns prof. Alan...
Par piorar tentamos configurar o Onix para seguidor de linhas mas infelizmente não deu certo - a esteira escorrega - problema antigo, já detectado na configuração lutador de sumô. Realizamos testes de todo tipo:
- Calibração dos sensores para preto.
- Calibração dos sensores para preto/branco.
- Uso do analogWrite - comando que permite o PWM com várias intensidades (aliás quando usamos o PWM até 200 o motor faz um chiado esquisito).
- Inserimos um delay no tempo de motor ligado e um comando desligar o motor, similar ao PWM, mas com intervalo de décimo de segundo, que apresentou um bom resultado. O problema é que o robô não conseguia fazer curvas de ângulos agudos porque continua deslizando.
Resumindo - a velocidade decaiu bruscamente e mesmo assim o robô não conseguiu fazer curvas.
Voltamos ao planejamento.

02/2013
O robô ONIX recebeu uma nova atualização - na frente, para proteger o sensor de ultrassom, foi instalado um suporte de alumínio e a esteira foi lubrificada, junto com os eixos. Nesta data testamos também a instalação de uma correia de borracha colada com araldite para aumentar a tração. Houve um real aumento de tração mas o motor falhava chegando a desgastar a borracha da roda.
Utilizamos também neste teste uma fonte de 20V/3.25A do notebook para alimentar o robô. Esta fonte trabalha no limite do Arduino, que respondeu bem (sem aquecimento) e o robô ficou mais rápido do que estava. Mas o torque ainda foi inferior ao que precisamos - colocamos o Orion 2.0 de lado e o Onix não conseguiu empurrá-lo.
Sistema de proteção do sensor do ONIX

Futuras correções a serem feitas:
- Melhorar a fixação dos motores com o uso de parafusos
- Instalar sapatas de borracha na esteira
- Instalar placa de pci com l298n e suporte para Arduino
- Programação para seguidor de linha e resgate de alto risco
- Proteções nas laterais da esteira para evitar que desencaixe

21/12/2012
Nova placa de circuito impresso para o ONIX usando o L298n e diodos de proteção, com Arduino já instalado na placa.
https://skydrive.live.com/redir?resid=AC8ECA0DCFBBC517!355&authkey=!ANeZQdphKUdh9nI

20/12/2012
FINALIZADO - Hoje o Onix esta pronto para o sumô de robôs.

Realizamos os seguintes ajustes:
- Troca do suporte do sensor de ultrassom que não estava funcionando corretamente e colocação numa posição melhor - mais alto.
- Troca dos parafusos com cabeça redonda por cabeça chata evitando que as rodas travem no chassi.
- Colocação de fita adesiva no eixo do motor melhorando o contato com a roda e diminuindo o desgaste do eixo de plástico, o que melhorou muito a tração.
- Colocação de arruelas entre as rodas e o chassi e entre as rodas e a bucha de fixação das rodas diminuindo o atrito destas com o resto do chassi.
- Calibração dos sensores de IR - QR1113 em diversos ambientes.
- Troca do Arduino que estava no robô pois este não era reconhecido pela porta USB do computador, passamos a usar um Arduino Uno Rev. 3.
- Instalação de um suporte para proteger o sensor de ultrassom contra impactos e melhorando sua eficiência: detectamos que a curta distância o sensor ficava cego. 
- Ajuste da programação do robô quando encontra a linha preta: primeiro usamos uma ré de 3 segundos, depois uma de 1 segundo e finalmente o ideal foi uma ré de 0,5 segundos.
- Instalação de um soquete DB09 fêmea para ligar a fonte de alimentação 12V/1A e luzes para decoração do chassi.
   Vídeos dos testes:
Correção das esteiras e instalação do ultrassom 
Dificuldade em localizar objetos baixos

Ajustes do tempo de ré - primeiro 3 seg, depois 1 seg e finalmente 0,5seg.

Ajuste final instalando as arruelas na esteira e calibrando os sensores.

Testes complementares, os últimos ajustes:

Melhorias ainda necessárias:
- Instalar um suporte na frente do robô para evitar impactos sobre o sensor de ultrassom.
- Abaixar a altura do sensor de ultrassom melhorando a identificação de objetos baixos.
- Instalação de uma proteção entre o chassi e as rodas funcionando como guia para a esteira.
- Instalação da esteira de borracha para melhorar a tração.
- Instalação das placas PCI de l298n para controlar os motores e conexões elétricas.

Próxima fase:
Seguidor de linha com detecção e desvio de objetos - neste caso não haverá mudanças no chassi, apenas a instalação de um suporte para conduzir a vítima e mudanças de programação.

16/12/2012
Placa de circuito impresso
Este link permite a impressão da placa de circuito impresso do ONIX por meio de método térmico:
https://skydrive.live.com/redir?resid=AC8ECA0DCFBBC517!351&authkey=!AP-6bA-t6-q4xVo
Feito no Fritzing.

Informações Técnicas

Peso atual: 1410g
Limite: 1500 g

Sensores IR
                          Mín   máx
Dianteiro direito: 600  3000
Dianteiro esq:     600  3000
Traseiro:             60    450

Obs: falha na altura do sensor direito causada pela inclinação do chassi pode causar leitura errada

sensor de ultrassom: faixa de detecção ótima: 70 cm

Configuração - pinos digitais
3,5 - frente
2,4 - trás
3 - curva aberta a direita
5 - curva aberta a esquerda
3,4 - curva fechada a direita
2,5 - curva fechada a esquerda

Vantagem mecânica
Diâmetro da roda: 5,3 cm
Diâmetro do eixo: 1,2 cm
Comprimento da esteira: 43,5 cm

VM = 5:1

Velocidade: 0,4 metros por segundo

O projeto recebeu finalmente seu nome: ONIX. Pesquisando na internet encontrei a seguinte referência:
Os indianos acreditavam que o Ónix os protegia de encantamentos e magia negra. Os gregos tinham a convicção de que esta pedra tinha grande poder em assuntos amorosos. Os romanos tinham-na com como pedra de protecção. 
Na verdade, o Ónix era das pedras mais importantes na Antiguidade. Actualmente, crê-se que estabelece o equilíbrio entre o corpo e a alma, ajuda na concentração, a estabelecer limites, disciplina e auto-controlo. 
Protege contra magia e traz harmonia em momentos difícieis.
Fonte: http://coisasquebrilham.blogspot.com.br/p/gemas-mitos-e-crencas.html

Outra fonte cita:
Ônix é uma variedade de calcedônia, de cor negra. Calcedônia é um quartzo, mais comum na cor azulada, acinzentada ou branca. O nome ônix vem do grego onux, que quer dizer unhas dos dedos das mãos.Refere-se as unhas de Vênus, cortadas por uma flecha de Cupido, na mitologia grega. Suas unhas teriam caído na areia e virado pedras negras.
Outras fontes indicam a mesma coisa sobre esta pedra. Um detalhe - a pedra mais desejada é negra, futura cor do robô.
Agradecemos a Prof. Renata pelo nome e por toda ajuda.
Mais informações: http://www.lendaviva.com.br/site/onix.html

14/12/2012
Fotos do projeto





Estávamos testando o 20x20, no primeiro teste sem gravar funcionou muito bem, ele localizou a caneca e deu um jeito nela... Ai fomos gravar, o robô caiu de 1 metro de altura... saiu quase inteiro - os pinos do Arduino entortaram e o fio de um dos motores soltou. Bom, alguns minutos antes, tínhamos notado que um dos sensores estava no limite de distância de calibração e, segundos antes, ele funcionou, quem imaginaria que o sensor falharia? Pelo menos não aconteceu nada grave.
Vídeo do acidente

Ainda tentamos testar depois mas não tínhamos visto que o fio do motor tinha sido cortado... por isso ele não estava funcionando, rodava igual barata tonta. Mas ainda está firme e forte.

13/12/2012
Teste autônomo do robô


Usamos protoboards para simular o 2º andar do robô, e bateria de 11V para alimentar o Arduino e deixamos o robô percorrer um espaço no corredor da escola e uma mesa.
Faltou calibrar o sensor de IR, porque não tínhamos computador para fazer o teste e instalar o sensor de ultrassom.
O peso atual do robô é 1410 g, quase no limite do Torneio Juvenil de Robótica que delimita o 20x20 em 1500g.
Ele ainda sai um pouco para a esquerda mas achamos que o problema é que a esteira escorrega.



11/12/2012
Realizamos o teste prático, instalando a protoboard com o L293c no chassi 20x20 e, conectando a bateria LiPo 11V/1A e os motores. O teste se mostrou extremamente positivo, com o robô se movimentando seguindo linha por toda a mesa e, quando encontrou região escura da mesa ou o sensor foi levantado, os motores alteraram seu movimento, corrigindo seu curso. Apresentou boa capacidade de seguir linhas, mantendo-se em linha reta e boa velocidade, apresentando o resultado de tração melhor que os primeiros testes.
Teste com o chassi levantado - reação o mudança da condição do sensor.

Teste sobre a mesa

Ajustes necessários
1- Ainda está travando uma das esteiras, fato causado pela provável distância do eixo do motor a roda. Uma solução seria produzir um furo com broca maior para melhorar.
2- Para aumentar a tração, colocar uma correia de borracha sobre a esteira (43cm).
3- Criar um suporte de alumínio para o Arduino e o L293c que posteriormente será substituído por placas de circuito impresso.
4- Abrir 2 furos para sensores de IR (QR1113) na frente do robô, deixando o furo de trás para usar o robô em sumô.
5- Cortar as barras de ferro, colocar arruelas, cortar as borrachas e trocar os parafusos redondos por parafusos com cabeça chata.
6- Instalar o suporte de baterias.
7- Passar uma correia de borracha sobre o eixo de plástico do motor.
8- Instalar as proteções dianteira e traseira do chassi e criar o suporte para o acrílico escuro - escudo, protegendo as rodas e a esteira.
9- Instalar o sensor de ultrassom e configurar.
10 - Preparar o robô para OBR - instalar um suporte de presilha.

Teste do l293c controlado por Arduino com led´s
Configuração
input - fio vermelho
output - fio laranja
enable - fio azul
Vs1 e 2 - fio verde
Vss - lógica 5V - Branco ligado no Arduino
GND/Terra - Preto
Branco/Laranja grande - fio que vai na bateria (+ e -)
Amarelo longo - Ligação com o Arduino (+ e -)

Programa Utilizado

/*Progama de teste do robô 20x20 de esteiras*/

int m1d = 2;
int m1e = 3;
int m2d = 4;
int m2e = 5;
int s1 = A0;


void setup(){
  pinMode (m1d, OUTPUT);
  pinMode (m1e, OUTPUT);
  pinMode (m2d, OUTPUT);
  pinMode (m2e, OUTPUT);
  pinMode (s1, INPUT);

}

Vídeo

Teste 2 - Seguidor de linha
Instalamos 2 sensores IR QR1113 programados para mudar a cor dos led´s quando o robô passar por uma linha preta.
Programa

/*Progama de teste do robô 20x20 de esteiras -- seguidor de linha*/

int m1d = 2;
int m1e = 3;
int m2d = 4;
int m2e = 5;
int s1 = A0;
int ir = 7;
int ir2 = 8;

void setup(){
  pinMode (m1d, OUTPUT);
  pinMode (m1e, OUTPUT);
  pinMode (m2d, OUTPUT);
  pinMode (m2e, OUTPUT);
  pinMode (s1, INPUT);
 Serial.begin (9600);
}

void loop(){
  //Leitura do sensor 1
   //Retorna o valor QRE1113
  pinMode( ir, OUTPUT );
  digitalWrite( ir, HIGH );
  delayMicroseconds(10);
  pinMode( ir, INPUT );

  long tempo = micros();

  //o tempo medido  HIGH, que acaba 3 segundos depois
  while (digitalRead(ir) == HIGH && micros() - tempo < 3000);
  int dif = micros() - tempo;



  //Leitura do sensor 2
   //Retorna o valor QRE1113
  pinMode( ir2, OUTPUT );
  digitalWrite( ir2, HIGH );
  delayMicroseconds(10);
  pinMode( ir2, INPUT );

  long tempo2 = micros();

  //o tempo medido  HIGH, que acaba 3 segundos depois
  while (digitalRead(ir2) == HIGH && micros() - tempo2 < 3000);
  int dif2 = micros() - tempo2;

  Serial.print ("sensor 1 = ");
  Serial.print (dif);
  Serial.print ("   sensor 2 = ");
  Serial.println (dif2);
 
  //comandos de motores
  //LINHA PRETA sensor 1
  if (dif>1500){
  digitalWrite (m1d, HIGH);
  digitalWrite (m1e, LOW);
  digitalWrite (m2d, LOW);
  digitalWrite (m2e, HIGH);
  }
  //linha branca - os 2 sensores
  if (dif<1500 && dif2 < 1500){
  digitalWrite (m1d, LOW);
  digitalWrite (m1e, HIGH);
  digitalWrite (m2d, LOW);
  digitalWrite (m2e, HIGH);
  }
  //linha preta sensor 2
  if (dif2>1500){
  digitalWrite (m1d, LOW);
  digitalWrite (m1e, HIGH);
  digitalWrite (m2d, HIGH);
  digitalWrite (m2e, LOW);
  }

}


void loop(){

 
  //comandos de motores
  digitalWrite (m1d, HIGH);
  delay (300);
  digitalWrite (m1d, LOW);
  delay (300);
  digitalWrite (m2d, HIGH);
  delay (300);
  digitalWrite (m2d, LOW);
  delay (300);
  digitalWrite (m1e, HIGH);
  delay (300);
  digitalWrite (m1e, LOW);
  delay (300);
  digitalWrite (m2e, HIGH);
  delay (300);
  digitalWrite (m2e, LOW);
  delay (300);
}

Vídeo
Teste com um sensor IR - calibração

Teste com 2 sensores IR - Seguidor de linha/Robô de combate



10/12/2012 - Site para consulta
Dados os problemas com o Hermes e com o 20x20 mando mais um link para consulta:
http://www.rctankcombat.com/articles/track-systems/

L293C - Pinagem


07/12/2012 - Primeira ideia para solução do problema de esteiras
Colocar uma correia de borracha sobre a esteira com alguns mm, cerca de 2 mm, mais curta que a corrente, que funcionaria eliminando o problema de escorregar.

06/12/2012 - Primeiro teste do chassi de esteiras
Teste preliminar usando uma fonte de 9V/200mA. A esteira escorregava e falta alguns ajuestes. Mas funciona.

Segundo teste - usamos uma fonte 12V/1,4 A. A esteira funcionou, o robô vira para os lados e tem boa tração. Testamos com uma bateria LiPo 11V/1A e o resultado foi similar. Falta a parte eletrônica e alguns ajustes e cortes para melhorar o peso e evitar que a esteira escape. Mas estamos muito otimistas com o projeto.

29/11/2012 - Primeiras fotos do Projeto
3 Equipes farão projetos baseados neste tipo de chassi -2 no Elza (Fundamental e Médio) e 1 no Frei.
Fotos da Equipe do Ensino Médio, que pretende fazer o modelo com esteiras:





17/11/2012
Usando como base a estrutura do ROBOCOM, da Revista Mecatrônica Fácil nº 40 podemos desensvolver nosso robô de combate usando motores de escova e um sistema de tração direta conforme as imagens abaixo:


Para tanto, podemos medir a força transmitida pelo motor a roda, medindo a potência do motor e usando a fórmula abaixo:


15/11/2012
Este projeto me inspirou para preparar nosso novo robô de sumô 20x20 categoria fundamental:
http://www.societyofrobots.com/robot_sumo.shtml

Penso em usar motores de escovas, por sua velocidade, dado que este robô não tem objetivo de força bruta e, usar um par de sensores IR e ultrassom para detecção do oponente. Dois sensores de linha para detectar linha preta do fim da área e o Arduino controlando tudo. Neste projeto, um servo de posição para controlar o giro do sensor e localizar o objeto.
As rodas, adaptadas de roletes de impressora HP (sistema tradicional).

Nenhum comentário:

Postar um comentário