collapse

* Posts Recentes

Cerca eléctrica por SerraCabo
[14 de Junho de 2025, 23:26]


Alguém arranja motores? por almamater
[10 de Junho de 2025, 22:34]


Condensador 4.7uF 0603 por brunus
[09 de Junho de 2025, 15:52]


+ LASERs por dropes
[30 de Maio de 2025, 23:11]


Lenovo IdeaPad 3 Não liga por jm_araujo
[07 de Maio de 2025, 19:10]


Identificar Diodo Zenner por filjoa
[01 de Maio de 2025, 23:07]


Meu novo robô por dropes
[18 de Março de 2025, 14:51]


JBL partybox On-The-Go por almamater
[21 de Fevereiro de 2025, 23:32]


Talking Reverse Engineering with an Absolute Legend! por SerraCabo
[13 de Fevereiro de 2025, 09:56]


Motoserra Stihl 120C por brunus
[11 de Fevereiro de 2025, 16:29]

Autor Tópico: Beta - Plataforma de Teste  (Lida 54594 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline zeneves

  • Mini Robot
  • *
  • Mensagens: 86
Re: Beta - Plataforma de Teste
« Responder #75 em: 28 de Março de 2011, 18:46 »
n sabes o link?

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Beta - Plataforma de Teste
« Responder #76 em: 28 de Março de 2011, 18:47 »
Está aqui no forum, pesquisa por qtr-8rc.
Avr fanboy

Offline zeneves

  • Mini Robot
  • *
  • Mensagens: 86
Re: Beta - Plataforma de Teste
« Responder #77 em: 28 de Março de 2011, 19:06 »
dix m so uma coisa do codigo como posso por o sensor a obter valores mais rapido e depois de maneira a que kuando o valor for mair do que 10 os motores andem?


Código: [Seleccione]
#include <PololuQTRSensors.h>

int bCalibrate=0;     

int motor1Pin1 = 5;    // Ponte H
int motor1Pin2 = 6;    // Ponte H
int motor2Pin1 = 10;   // Ponte H
int motor2Pin2 = 11;   // Ponte H


PololuQTRSensorsRC qtr((unsigned char[]) {2,3,4,7}, 4);

void setup()
{
  Serial.begin(9600);

  pinMode(motor1Pin1, OUTPUT);
  pinMode(motor1Pin2, OUTPUT);
  pinMode(motor2Pin1, OUTPUT);
  pinMode(motor2Pin2, OUTPUT);
}

void loop() {

  if (bCalibrate==0) {

    int i;
    for (i = 0; i < 250; i++) {
      qtr.calibrate();
      delay(20);
    }

    bCalibrate=1;                 
  }
if(bCalibrate > 10)   
    digitalWrite(motor1Pin1, HIGH);  // Este pino HIGH, em conjunto com o de baixo LOW
    digitalWrite(motor1Pin2, LOW);   // Fazem com que o motor da direita ande em frente
    digitalWrite(motor2Pin1, LOW);   // Este pino LOW, em conjunto com o de baixo HIGH
    digitalWrite(motor2Pin2, HIGH);  // Fazem com que o motor da esquerda ande em frente
    delay (1800);
   
    digitalWrite(motor1Pin1, HIGH);  // Este pino HIGH, em conjunto com o de baixo LOW
    digitalWrite(motor1Pin2, LOW);   // Fazem com que o motor da direita ande em frente
    digitalWrite(motor2Pin1, HIGH);   // Este pino LOW, em conjunto com o de baixo HIGH
    digitalWrite(motor2Pin2, LOW);  // Fazem com que o motor da esquerda ande em frente
    delay (1800);
   
   
  unsigned int vSensors[4];
  int iPosition = qtr.readLine(vSensors);

  // Impressão dos Valores para Debug
  Serial.print("QTR Sensor:");
  Serial.print(vSensors[0]);   
  Serial.print("  ");
  Serial.print(vSensors[1]);   
  Serial.print("  ");
  Serial.print(vSensors[2]);   
  Serial.print("  ");
  Serial.print(vSensors[3]);   
  Serial.print("  ");
  Serial.print("  Position:");
  Serial.println(iPosition);
  delay(5000);
}

Offline zeneves

  • Mini Robot
  • *
  • Mensagens: 86
Re: Beta - Plataforma de Teste
« Responder #78 em: 28 de Março de 2011, 21:00 »
alguem me pode dar uma dica do post anterior?

 ;) ;)

Offline preytender

  • Mini Robot
  • *
  • Mensagens: 148
Re: Beta - Plataforma de Teste
« Responder #79 em: 28 de Março de 2011, 21:04 »

Boas, reduz o valor do delay que tens no fim do codigo. Passa de  delay(5000); para tipo  delay(20);

Ja agora ja conseguinste calibrar correctamente a barra de sensores ?

Offline zeneves

  • Mini Robot
  • *
  • Mensagens: 86
Re: Beta - Plataforma de Teste
« Responder #80 em: 28 de Março de 2011, 21:05 »
ok..eu agora estou a utilizar 2 sensores e kuando esta no branco da m um certo valor kuando detecta o preto fica nos 1000.
por isso penso que estao bons...

Offline preytender

  • Mini Robot
  • *
  • Mensagens: 148
Re: Beta - Plataforma de Teste
« Responder #81 em: 28 de Março de 2011, 21:09 »

Ja agora o codigo que tens em cima não faz muito sentido  :o

A tua variavel bCalibrate  nunca é maior que 10. Acho que o que queres é colocar nessa instrução if a variavel iPosition.


Offline zeneves

  • Mini Robot
  • *
  • Mensagens: 86
Re: Beta - Plataforma de Teste
« Responder #82 em: 28 de Março de 2011, 21:14 »
sim eu sei eu tou com duvidas e k variavel e que hei d por la..para que os motores so andem kuando o sensor detectar um certo valor..


Offline preytender

  • Mini Robot
  • *
  • Mensagens: 148
Re: Beta - Plataforma de Teste
« Responder #83 em: 28 de Março de 2011, 21:19 »
Diz-me duas coisas:

Quais sao os 2 pinos do arduino que estas a utilizar ??
Qual é o da esquerda e qual é o da direita. ??

Offline zeneves

  • Mini Robot
  • *
  • Mensagens: 86
Re: Beta - Plataforma de Teste
« Responder #84 em: 28 de Março de 2011, 21:21 »
o pin 2 digital no arduino e o sensor1, no pin7 e o sensor8....ou seja o 1 e da direita e o 8 e da esquerda...

Offline preytender

  • Mini Robot
  • *
  • Mensagens: 148
Re: Beta - Plataforma de Teste
« Responder #85 em: 28 de Março de 2011, 21:30 »
A minha sugestão:

Código: [Seleccione]
#include <PololuQTRSensors.h>

int bCalibrate=0;
int motor1Pin1 = 5;    // Ponte H
int motor1Pin2 = 6;    // Ponte H
int motor2Pin1 = 10;   // Ponte H
int motor2Pin2 = 11;   // Ponte H

PololuQTRSensorsRC qtr((unsigned char[]) {2,7}, 2);

void setup(){

Serial.begin(9600); 
pinMode(motor1Pin1, OUTPUT);   
pinMode(motor1Pin2, OUTPUT);   
pinMode(motor2Pin1, OUTPUT);   
pinMode(motor2Pin2, OUTPUT);
}

void loop() {

if (bCalibrate==0) {   
  int i;
  for (i = 0; i < 250; i++) {
    qtr.calibrate();
    delay(20);   
  }
  bCalibrate=1;
  }

//Ler Valor dos sensores
unsigned int vSensors[2]; 
int iPosition = qtr.readLine(vSensors);

// Verificar se algum dos sensores encontrou a linha preta
if (vSensors[0]>900 || vSensors[1]>900) {
 
  if (vSensors[0]>900) {
     // Linha detectada pelo sensor 1 coloca aqui o codigo para virar para o outro lado
  } else {
    // Linha detectada pelo sensor 8 coloca aqui o codigo para virar para o outro lado   
  }
 
} else {
 
  // Aqui nenhum sensor encontra a linha por isso podes andar em frente ou fazer outra coisa.


}


delay(100);

}
 
 
 

Offline zeneves

  • Mini Robot
  • *
  • Mensagens: 86
Re: Beta - Plataforma de Teste
« Responder #86 em: 28 de Março de 2011, 21:31 »
vou testar bgdao...   :)

Offline zeneves

  • Mini Robot
  • *
  • Mensagens: 86
Re: Beta - Plataforma de Teste
« Responder #87 em: 28 de Março de 2011, 21:48 »
ta mesmo bom.. so uma coisa nao da d maneira a que o sensor consiga detectar mais alto valores menores do k os 900 m ?

Offline preytender

  • Mini Robot
  • *
  • Mensagens: 148
Re: Beta - Plataforma de Teste
« Responder #88 em: 28 de Março de 2011, 21:52 »

Podes ajustar o valor de 900 para outro valor qualquer.

Testa para ver qual o melhor numero, por exemplo, se quando o sensor estiver na linha preta variar entra os 600 e os 1000 podes mudar para 600.
Se estiveres a andar muito rápido e passar por cima da linha podes tambem reduzir o delay de 100 para 20.




Offline zeneves

  • Mini Robot
  • *
  • Mensagens: 86
Re: Beta - Plataforma de Teste
« Responder #89 em: 28 de Março de 2011, 21:54 »
sim isso eu sei ...mas kuando eu levanto o sensor a pouco mais de 0.5 cm ele vai dar um valor de 1000 ou 900 e pouco