LusoRobótica - Robótica em Português

Robótica => Projectos de robótica => Tópico iniciado por: cenario10 em 29 de Julho de 2014, 12:52

Título: Sensores Opticos
Enviado por: cenario10 em 29 de Julho de 2014, 12:52
Boas pessoal.

Estou a utilizar uns sensores ópticos para por um robô que estou a fazer para seguir uma linha.
A linha é branca num fundo preto, eu acabei de por os sensores ópticos, mas algo se passa com eles pois os valores que me estão a dar no serial monitor do Arduíno são todos entre 10 e 5.
Título: Re: Sensores Opticos
Enviado por: jm_araujo em 29 de Julho de 2014, 13:20
Resumo: "sensores óticos não funcionam no arduino"

O resto é para adivinhar-mos?


Título: Re: Sensores Opticos
Enviado por: cenario10 em 29 de Julho de 2014, 15:36
Os sensores são os sensores Breakout de sensor de linha QRE1113-Digital, e já vi vários projectos com estes sensores no arduíno.
Título: Re: Sensores Opticos
Enviado por: senso em 29 de Julho de 2014, 16:07
E código, e calibração dos mesmos, como está feito?
A bola de cristal está avariada..
Título: Re: Sensores Opticos
Enviado por: StarRider em 30 de Julho de 2014, 10:06
Boas,

Não faz uma apresentação ! Envia um texto enigmático ! Nem sequer se deu ao trabalho
de "pedir" ...  Já não há pachorra !!!

Gabo a vossa paciência ainda tentar ajudar este tipo de pessoas ... pessoalmente acho
que o forum devia ter uma politica MUITO diferente: sem uma apresentação condigna não
havia direito a posts e todos os posts enigmáticos e "pouco educados" como este exemplo
pura e simplesmente deviam ser ignorados !!!

Abraços,
PA
Título: Re: Sensores Opticos
Enviado por: jm_araujo em 30 de Julho de 2014, 10:45
Faço parte da moderação de um forum (não tecnológico) também em SMF, e fizemos mesmo isso: o primeiro post tem de ser obrigatoriamente nas apresentações (não conseguem postar noutro lado), e enquanto não o fizerem levam com um banner bem grande a avisar para se apresentarem.
Título: Re: Sensores Opticos
Enviado por: Hugu em 30 de Julho de 2014, 16:25
Boas,

Não faz uma apresentação ! Envia um texto enigmático ! Nem sequer se deu ao trabalho
de "pedir" ...  Já não há pachorra !!!

Gabo a vossa paciência ainda tentar ajudar este tipo de pessoas ... pessoalmente acho
que o forum devia ter uma politica MUITO diferente: sem uma apresentação condigna não
havia direito a posts e todos os posts enigmáticos e "pouco educados" como este exemplo
pura e simplesmente deviam ser ignorados !!!

Abraços,
PA

ai que stress man! olha, ha mto users que preferem e teem o direito à privacidade e se queres saber algo sobre o user, click no nickname e ja sabes mais sobre o user! :P (este user nao é dos menos incognitos que por aí andam que nem sequer metem essas infos pessoais nas definiçoes pessoais..)

e da mesma forma que se exige uma apresentaçao aos novos users, tb devia haver uma moderaçao à recepçao dos novos users com comentarios menos escabrosos! até assustas os users e dá logo um aspecto de mau ambiente que os users mais antigos teem pra com os novos users!..
Título: Re: Sensores Opticos
Enviado por: Hugu em 30 de Julho de 2014, 16:27
Os sensores são os sensores Breakout de sensor de linha QRE1113-Digital, e já vi vários projectos com estes sensores no arduíno.
podes fazer um esquema das ligaçoes aos modulos que estás a usar bem como o codigo?..
Título: Re: Sensores Opticos
Enviado por: dropes em 30 de Julho de 2014, 16:40
9 vezes a palavra user hehehe ficou bem usada  ;D
Quem determina as regras do fórum são os moderadores.
Sempre se fez a apresentação e acho boa política de quem quer participar.
Título: Re: Sensores Opticos
Enviado por: senso em 30 de Julho de 2014, 18:18
Eu acho que nunca me apresentei  :-[
Título: Re: Sensores Opticos
Enviado por: artur36 em 30 de Julho de 2014, 21:07
Eu acho que nunca me apresentei  :-[
A tua apresentação melhor é mesmo o indicador do número de mensagens junto à "foto" e nome de utilizador em cada resposta que dás.

Pessoalmente acho que a apresentação é sempre boa porque dá para ter uma ideia do nível de conhecimentos e de formação que um utilizador tem, esse tipo de informações não são propriamente pessoais (ninguém precisa de indicar em que universidade tirou a licenciatura, se disser que fez um mestrado em sistemas autónomos ninguém lhe vai perguntar se sabe ler uma saída analógica para verificar se poderá ser esse o erro num problema com um sensor de linha analógico.

Agora recorrendo à bola de cristal (que entretanto já levou com condensadores electrolítico novos e já funciona) pela leitura das perguntas sou obrigado a deduzir que os conhecimentos não são muitos. o sensor não é uma breakout board, esta é apenas uma plca que facilita as ligações do sensor, e o sensor qre1113 é analógico e não digital.
Assumindo que a leitura do pino analógico está a ser feita da forma correcta e as ligações estão bem feitas a maneira mais fácil de testar o funcionamento do sensor será com um teste if ao valor lido do sensor para comparar se este é maior que 150 e em caso afirmativo acender um led ( para uma linha branca em fundo preto deve ser suficiente) e testar o sensor junto ao "chão" e verificar que o led acende em cima da linha e não em cima do fundo, parece que existem breakout boards que fazem processamento de sinal e devolvem apenas um sinal digital, se for esse o caso na condição do if é só testar a entrada digital e verificar se é um ou zero.

A pouca paciência esgotou-se no primeiro site da pesquisa do google:
http://bildr.org/2011/06/qre1113-arduino/ (http://bildr.org/2011/06/qre1113-arduino/)
A pesquisa foi simples: "QRE1113 arduino" lê tem tudo desde ligações até código para testar as duas versões, se não sabes inglês pesquisa novamente o mesmo que eu e restringe as buscas para apenas páginas em português, não devem faltar sites brasileiros a fazer-te a papinha toda, melhor é impossível.


P.S.: O problema não é dos foruns e das suas regras, o problema é mesmo de mentalidades de uma geração que a meu ver está perdida que não consegue fazer nada sem que lhe mastiguem tudo primeiro. Não têm um mínimo de cuidado com a maneira como perguntam\pedem algo, não dando as informações mínimas necessárias para alguém puder ajudar. By the way: se repararem nas duas únicas mensagens que escreveu não fez qualquer pergunta sequer, pelo que tecnicamente não passaram de um desabafo a dizer que não conseguia pôr o sensor a funcionar.

P.S.2: a menção aos sites brasileiros não foi dirigida a ninguém em particular mas sim ao google que teima em só me querer apresentar resultados do brasil quando restrinjo a minha busca a "em português", e diga-se de passagem que a maioria dos textos de português tem muito pouco.
Título: Re: Sensores Opticos
Enviado por: cenario10 em 31 de Julho de 2014, 12:17
Boas,

Peço desculpa sou novo nisto !

A programação que tenho é só para ler os valores da linha.

// Seguidor de linha

void setup()
{
  pinMode(A0, INPUT);
  pinMode(A1, INPUT);
  pinMode(A2, INPUT);
  pinMode(A3, INPUT);
  pinMode(A4, INPUT);
 
  Serial.begin(9600);
}

void loop()
{
  Serial.println(analogRead(A0));
  Serial.println(analogRead(A1));
  Serial.println(analogRead(A2));
  Serial.println(analogRead(A3));
  Serial.println(analogRead(A4));
  delay(3000);
 
  Serial.println("-----");
}


Agora em relação ao robô, é composto por 2 placas de acrílico ou seja tem 2 andares.
Vão ser utilizadas Baterias Ni-MH AA 9,6 V 800 mAh para alimentar o robô.
Utilizamos o integrado L293 como ponte H para controlar os motores de corrente continua.
Coloquei os motores no centro do robô, juntamente com as rodas de tracção de cada lado, centradas no meio, com uma roda fixa atrás e uma roda daquelas parecidas com desodorizante a frente.
Vamos utilizar 7 sensores. 4 deles vão ser para detectar entroncamentos e cruzamentos, frente, trás, esquerda e direita.
E vamos ter 3 por baixo dos motores centrados no meio para o robo fazer o seguimento da linha de 5 cm .
Não sei que posso dizer mais :D

Título: Re: Sensores Opticos
Enviado por: artur36 em 31 de Julho de 2014, 13:06
Viste o site que indiquei ontem? Vê como são as ligações e confirma que estão corretas, depois testa com o exemplo do Arduino para analog read, primeiro com apenas um sensor e depois de perceberes como funciona o código tenta então usar vários sensores.
Com estas informações já é possível dar uma melhor ajuda, não custou nada pois n? Se o tivesses feito no primeiro post tinhas poupado 2 dias. Se ainda n o fizeste é melhor veres com atenção os exemplos do Arduino e testa-los na prática.
Título: Re: Sensores Opticos
Enviado por: cenario10 em 31 de Julho de 2014, 15:50
Boas,

Desde já obrigado pela a vossa ajuda, esclareçam-me só mais uma coisa, se ligar estes sensores as entradas analógicas do arduino e fizer um analogRead() a entrada do sensor os, valores que vou obter são 0 ou 1023 aproximadamente visto que são digitais, correcto ?
Título: Re: Sensores Opticos
Enviado por: senso em 31 de Julho de 2014, 15:53
Errado, a saida desses sensores é analógica.
Está tudo na datasheet, mas como não sabemos como isso está ligado, é complicado adivinhar se vais ler alguma coisa ou não.
Título: Re: Sensores Opticos
Enviado por: cenario10 em 31 de Julho de 2014, 16:35
A saída é digital os sensores são QRE1113 Line Sensor Breakout - Digital. Peço desculpa se dei entender que eram analógicos.
Título: Re: Sensores Opticos
Enviado por: senso em 31 de Julho de 2014, 16:37
Links, fotos?
Título: Re: Sensores Opticos
Enviado por: Hugu em 01 de Agosto de 2014, 01:34
tens a plaquinha ligada desta forma ao arduino?
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fbildr.org%2Fblog%2Fwp-content%2Fuploads%2F2011%2F06%2FQRE113_analog.png&hash=cfcf55edb9a4d96ca71509d583705fae29071063)
Título: Re: Sensores Opticos
Enviado por: cenario10 em 04 de Agosto de 2014, 14:57
Boas novamente pessoal, Estou com um problema acho que pode ser relativamente a pista ou aos sensores. Relembro que os sensores são digitais, peço desculpa se perceberam o contrário
O robô já detecta a linha branca mas não a consegue seguir. Ele fica quase parado, as vezes dá os avanços pequenos mas nada de especial.
Os motores estão a funcionar, a bateria esta carregada, ele já andou em cima da pista sem seguir a linha.
A linha branca é uma fita espelhada branca sobre um fundo preto.
Apliquei o que tá neste site também, desde já obrigado deu muito jeito
http://bildr.org/2011/06/qre1113-arduino/ (http://bildr.org/2011/06/qre1113-arduino/)


O código é este, o robô tem o objectivo de seguir a linha:

#include <L293D.h>

L293D motores(11,9,8,10,7,6);
int pinSensorMeio = 3;
int pinSensorDireita = 2;
int pinSensorEsquerda = 4;
int valueSM, valueSD, valueSE, state;

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

void loop(){
  state = estadoBarra();
  switch(state){
  case 1:
    Serial.println("1");
    motores.frente(255,255);
    break;
  case 2:
    Serial.println("2");
    motores.frente(255,128);
    break;
  case 3:
    Serial.println("3");
    motores.frente(255,128);
    break;
  case 4:
    Serial.println("4");
    motores.frente(128,255);
    break;
  case 5:
    Serial.println("5");
    motores.frente(128,255);
    break;
  case 6:
    Serial.println("6");
    motores.stop();
    break;
  case 7:
    Serial.println("7");
    motores.stop();
    break;
  case 8:
    Serial.println("8");
    motores.tras(255,255);
    break;
  }
  delay(250);
}

int readSensorDigital(int pinNumber){
  pinMode(pinNumber, OUTPUT );
  digitalWrite(pinNumber, HIGH ); 
  delayMicroseconds(10);
  pinMode(pinNumber, INPUT );

  long time = micros();

  while (digitalRead(pinNumber) == HIGH && micros() - time < 3000);
  int diff = micros() - time;
  return diff;
}

int estadoBarra(){
  int estado;
  valueSM = readSensorDigital(pinSensorMeio);
  valueSD = readSensorDigital(pinSensorDireita);
  valueSE = readSensorDigital(pinSensorEsquerda);

  if(valueSE > 2000 && valueSM < 800 && valueSD > 2000){
    estado = 1;
  }
  else if(valueSE > 2000 && valueSM < 800 && valueSD < 800){
    estado = 2;
  }
  else if(valueSE > 2000 && valueSM > 2000 && valueSD < 800){
    estado = 3;
  }
  else if(valueSE < 800 && valueSM < 800 && valueSD > 2000){
    estado = 4;
  }
  else if(valueSE < 800 && valueSM > 2000 && valueSD > 2000){
    estado = 5;
  }
  else if(valueSE < 800 && valueSM < 800 && valueSD < 800){
    estado = 6;
  }
  else if(valueSE > 2000 && valueSM > 2000 && valueSD > 2000){
    estado = 7;
  }
  else{
    estado = 8;
  }
  return estado;
}




Título: Re: Sensores Opticos
Enviado por: senso em 04 de Agosto de 2014, 17:45
Se o sensor é digital ou dá zero ou um, como é que estás a comparar com 2000, 200 e afins?
Estou a ver que estás a ler de um lado que usa analogReads e estás a tentar fazer o mesmo com os digitalRead.
Esses sensores, sendo digitais ou não, terás sempre uma resposta analógica, e mais, passa para o porto analógico, faz analogReads e faz prints para a consola serial, e mexe o sensor em cima da linha, vais ver que os valores variam.
Título: Re: Sensores Opticos
Enviado por: FCarvalho5555 em 08 de Agosto de 2014, 11:23
Boas,

Penso que a versão digital desse sensor não permite que ele seja lido através de um digitalread(), tens de cronometrar o tempo que o capacitor que a board tem leva a descarregar.
http://bildr.org/2011/06/qre1113-arduino/ (http://bildr.org/2011/06/qre1113-arduino/)
Vê este link tens ai dois exemplos, para sensor analógico e para o digital.
Título: Re: Sensores Opticos
Enviado por: andnobre em 08 de Agosto de 2014, 12:45
boa tarde
onde aconselhavam para comprar sensores de linha?
ebay ja andei também em algumas lojas portuguesas.
Título: Re: Sensores Opticos
Enviado por: senso em 08 de Agosto de 2014, 13:37
Enquanto não mostrarem o sensor usado, chega de tiros ao prato..
Tenha ou não condensador, isso terá sempre uma saida analógica..
Título: Re: Sensores Opticos
Enviado por: FCarvalho5555 em 08 de Agosto de 2014, 16:06
Enquanto não mostrarem o sensor usado, chega de tiros ao prato..
Tenha ou não condensador, isso terá sempre uma saida analógica..

Se medires a saída do sensor com um multímetro, ela a variar entre 0.15V e 0.2V esta variação depende se está a ler branco ou preto. 
Título: Re: Sensores Opticos
Enviado por: Hugu em 09 de Agosto de 2014, 00:16
boa tarde
onde aconselhavam para comprar sensores de linha?
ebay ja andei também em algumas lojas portuguesas.
http://www.g7electronica.net/pt/sensores/980-qre1113.html (http://www.g7electronica.net/pt/sensores/980-qre1113.html)
http://www.g7electronica.net/pt/transistors/658-qrd1114.html (http://www.g7electronica.net/pt/transistors/658-qrd1114.html)
http://www.g7electronica.net/pt/89-sensores (http://www.g7electronica.net/pt/89-sensores)
ou entao:
http://www.g7electronica.net/pt/breakout-boards/813-line-sensor-8.html (http://www.g7electronica.net/pt/breakout-boards/813-line-sensor-8.html) (tb podemos fornecer em modulos com 1,3 ou 5 sensores - sob-pedido)