collapse

* Posts Recentes

Emulador NES em ESP32 por almamater
[Ontem às 17:34]


Circuito Microfone que funcione por almamater
[27 de Abril de 2024, 17:14]


Arame de Estendal por almamater
[18 de Abril de 2024, 16:16]


O que é isto ? por SerraCabo
[12 de Abril de 2024, 14:20]


Amplificador - Rockboard HA 1 In-Ear por almamater
[11 de Abril de 2024, 20:46]


Meu novo robô por josecarlos
[29 de Março de 2024, 18:30]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]

Autor Tópico: The Starter  (Lida 30872 vezes)

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

Offline LoneWolf

  • Mini Robot
  • *
  • Mensagens: 763
  • ..Ser ou não ser não tem questão nenhuma...
    • A Visão do Lobo
Re: The Starter
« Responder #45 em: 30 de Setembro de 2011, 00:08 »
Boas noites,

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

#define ir1   7      // Sensor IR no pin digital 7
#define ir2   2      // Sensor IR no pin digital 2
#define ir3   4      // Sensor IR no pin digital 4
unsigned long processTime = 0;
static boolean output = HIGH;
void setup(){

   Serial.begin(9600);
   pinMode(ir1, INPUT);     // Pin onde está o LED1 infravermelhos é pin output
   pinMode(ir2, INPUT);     // Pin onde está o LED2 infravermelhos é pin output
   pinMode(ir3, INPUT);     // Pin onde está o LED3 infravermelhos é pin output
   MsTimer2::set(5, flash); // Defenir intrrupções de 5 em 5 ms e durante a interrupção é chamada a função flash
   MsTimer2::start();       // Iniciar interrupções

}

void loop(){

   if(millis() - processTime >= 250){   //A cada 250ms lê os sensores e imprime para o monitor serial

      processTime = millis();
      unsigned char sensores = ((digitalRead(ir1)<<2)|(digitalRead(ir2)<<1)|(1<<digitalRead(ir3)));   //Junta num byte a informacao dos 3 sensores
      Serial.print("Valor dos sensores: ");
      Serial.print(sensores, DEC);
      Serial.println();
   }
}

void flash() {               // Função chamda durante a interrupção
   digitalWrite(12, output);  // Anceder ou apagar o LED IR
   output = !output;          // Alterar o output...
}
 

Devido ao erro que estava a ter com o robot usei o código acima para testar os 3 sensores ao mesmo tempo que era uma das coisas que não estava a conseguir, obrigado senso  ;) só adicionei o "void flash()" e os valores que me da são:
Citar
Valor dos sensores: 6
Valor dos sensores: 6
Valor dos sensores: 6
Valor dos sensores: 6
Valor dos sensores: 6
Valor dos sensores: 6

da esses valores continuamente mesmo eu estando a tentar que ele detecte alguma coisa......

Citar
Valor dos sensores: 6
Valor dos sensores: 6
Valor dos sensores: 6
Valor dos sensores: 1
Valor dos sensores: 6
Valor dos sensores: 1
Valor dos sensores: 6
Valor dos sensores: 3
Valor dos sensores: 1
Valor dos sensores: 3
Valor dos sensores: 6
Valor dos sensores: 6
Valor dos sensores: 6
Valor dos sensores: 6


mas se eu usar o comando da tv como emissor da os valores acima, onde esta o erro de ele não detectar o "obstáculo"?
Pensei que podia ser dos emissores mas com a maquina digital vi que os led's emissores estão a funcionar.

Abraços  ;)
Blog: A Visão do Lobo

Nick antigo: kilobyte

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: The Starter
« Responder #46 em: 30 de Setembro de 2011, 00:11 »
Podes mostrar umas fotos dos sensores?
Experimenta ligar sempre os emissores IR, e não pulsar com a função flash.
Avr fanboy

Offline LoneWolf

  • Mini Robot
  • *
  • Mensagens: 763
  • ..Ser ou não ser não tem questão nenhuma...
    • A Visão do Lobo
Re: The Starter
« Responder #47 em: 30 de Setembro de 2011, 01:11 »
Liguei os Led's emissores com uma resistencia de 220 aos 5V do arduino e da os mesmos valores.



Receptor: 3 patas
Emissor: 2 patas
Blog: A Visão do Lobo

Nick antigo: kilobyte

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: The Starter
« Responder #48 em: 30 de Setembro de 2011, 01:20 »
Imagino que os receptores sejam TSOP's, provavelmente TSOP1736 ou TSOP1738 para detectar bem o sinal do comando, esses receptores estão á espera de um sinal modulado por uma onda quadrada de 36 ou 38Khz, conforme o modelo, para simplificar, o melhor seria usar foto-transistores, e não esses receptores.
Reparei que dá o valor 6, isso quer dizer que o sensor ir1 e o ir2 estão a 1 e o ir3 está a 0, use antes este código para ter os 3 valores separados e assim ser melhor de se entender o que os sensores estão a ler:

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

#define ir1   7      // Sensor IR no pin digital 7
#define ir2   2      // Sensor IR no pin digital 2
#define ir3   4      // Sensor IR no pin digital 4
unsigned long processTime = 0;
static boolean output = HIGH;
void setup(){

   Serial.begin(9600);
   pinMode(ir1, INPUT);     // Pin onde está o LED1 infravermelhos é pin output
   pinMode(ir2, INPUT);     // Pin onde está o LED2 infravermelhos é pin output
   pinMode(ir3, INPUT);     // Pin onde está o LED3 infravermelhos é pin output
   MsTimer2::set(5, flash); // Defenir intrrupções de 5 em 5 ms e durante a interrupção é chamada a função flash
   MsTimer2::start();       // Iniciar interrupções

}

void loop(){

   if(millis() - processTime >= 250){   //A cada 250ms lê os sensores e imprime para o monitor serial

      processTime = millis();
      Serial.print("sensor 1: ");
      Serial.print(digitalRead(ir1), DEC);
      Serial.print(" | ");
      Serial.print("sensor 2: ");
      Serial.print(digitalRead(ir2), DEC);
      Serial.print(" | ");
      Serial.print("sensor 3: ");
      Serial.print(digitalRead(ir3), DEC);
      Serial.println();
   }
}

void flash() {               // Função chamda durante a interrupção
   digitalWrite(12, output);  // Anceder ou apagar o LED IR
   output = !output;          // Alterar o output...
}
« Última modificação: 30 de Setembro de 2011, 01:23 por senso »
Avr fanboy

Offline LoneWolf

  • Mini Robot
  • *
  • Mensagens: 763
  • ..Ser ou não ser não tem questão nenhuma...
    • A Visão do Lobo
Re: The Starter
« Responder #49 em: 30 de Setembro de 2011, 02:39 »
Citar
sensor 1: 1 | sensor 2: 1 | sensor 3: 1
sensor 1: 1 | sensor 2: 1 | sensor 3: 1

Da-me esses valores, e continua só a detectar o Led do comando da TV, mas se usar este código:

Código: [Seleccione]
#include <MsTimer2.h>
#define irx 2   // Sensor IR no pin digital 2

static boolean output = HIGH;  // Variável para defenir o estado do LED de infravermelhos, é estática para ser usada durante a interrupção

void setup(){
  pinMode(irx, INPUT);     // Pin onde está o LED infravermelhos é pin output
  Serial.begin(9600);      // Iniciar comunicação Serial com o computador...
  MsTimer2::set(5, flash); // Defenir intrrupções de 5 em 5 ms e durante a interrupção é chamada a função flash
  MsTimer2::start();       // Iniciar interrupções
}

void loop(){
  while(digitalRead(irx));   // Enquanto não houver nada no Sensor não sai daqui, o sensor coloca 1 quando n detecta nada e passa a 0 qd detecta algo
  Serial.println("ICEBERG!"); // Oi.. Apanhou qualquer coisa... OH NÂO É UM ICEBERG... OH GOD, THE PAIN, CAN YOU FEEL THE PAIN?
  // MAYDAY MAYDAY!
  // - Alô diz iz German Cost Guard, can we help you? (Sotaque alemão)
  // YES, YES! We're SINKING!
  // - Okay so what are you sinking (thinking) about? (ahha XD)
}

void flash() {               // Função chamda durante a interrupção
  digitalWrite(12, output);  // Anceder ou apagar o LED IR
  output = !output;          // Alterar o output...
}

detecta bem um objecto entre 10~20cm ( 1 sensor ).
Se eu encontra-se a datasheet do receptor ainda podia ser que ajuda-se mas com o que esta escrito em 2 dos receptores  ( v32238) não encontro nada e o outro não tem nada escrito, tenho de ir ver se tenho mais algum sensor, encoder's de impressoras sei que tenho pode é não dar para o serviço que desejado.
Blog: A Visão do Lobo

Nick antigo: kilobyte

Offline LoneWolf

  • Mini Robot
  • *
  • Mensagens: 763
  • ..Ser ou não ser não tem questão nenhuma...
    • A Visão do Lobo
Re: The Starter
« Responder #50 em: 30 de Setembro de 2011, 23:20 »
Boas noites,

   tenho uma duvida antes de deixar estes sensores de lado e voltarem a origem deles( I-droid 01) então se com o código  usado na resposta anterior eles detectam o objecto ( 10-20cm) o que tem o código para detectar facilmente??? a função "pulse" esta a fazer com que o led esteja a piscar a uma determinada frequência? é que não estou a perceber o porque de receber o sinal com um código e com outro não ( sabendo que ambos os códigos deveriam funciona).

Abraços.
 
Blog: A Visão do Lobo

Nick antigo: kilobyte

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: The Starter
« Responder #51 em: 01 de Outubro de 2011, 12:18 »
No código que só testa um, tem um while, que fica á espera que ele detecte alguma coisa, que simplesmente está lá tempo suficiente para que ele acabe por detectar o pulso do led emissor IR, mas não é a forma mais correcta de o fazer.
Avr fanboy

Offline LoneWolf

  • Mini Robot
  • *
  • Mensagens: 763
  • ..Ser ou não ser não tem questão nenhuma...
    • A Visão do Lobo
Re: The Starter
« Responder #52 em: 01 de Outubro de 2011, 20:31 »
Boas,

Eu sei que o código só testa um e que fica ali a espera de "apanhar" algo, o facto de o Led estar a ser pulsado pensei que poderia estar a por uma determinada frequência no piscar do Led.

Já agora uma opinião os receptores que tiramos das TV's, leitores DVD/K7, receptores de satélite,...... pode acontecer-me o mesmo? se sim o que aconselham a comprar, um sharp?

Abraços e boa continuação  ;)   
Blog: A Visão do Lobo

Nick antigo: kilobyte

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: The Starter
« Responder #53 em: 01 de Outubro de 2011, 21:42 »
Eu tenho TCRT5000 da vishay, mas há muitos do género, e baratinhos. vou procurar mais alguns nomes.
Mas podes tentar com LDR's e leds normais.
Os TCRT5000 são estes:
http://pt.mouser.com/ProductDetail/Vishay-Semiconductors/TCRT5000L/?qs=sGAEpiMZZMuIaPd8bG7xI20Os5bxEd6lBO%2fQ%252byE6et0%3d

Se quiseres uns quantos vou daqui a uns tempos fazer a uma encomenda e posso juntar á encomenda sem qualquer problema.
« Última modificação: 01 de Outubro de 2011, 21:46 por senso »
Avr fanboy

Offline LoneWolf

  • Mini Robot
  • *
  • Mensagens: 763
  • ..Ser ou não ser não tem questão nenhuma...
    • A Visão do Lobo
Re: The Starter
« Responder #54 em: 02 de Outubro de 2011, 20:38 »
Boas,
Citar
Os TCRT5000 são estes:
http://pt.mouser.com/ProductDetail/Vishay-Semiconductors/TCRT5000L/?qs=sGAEpiMZZMuIaPd8bG7xI20Os5bxEd6lBO%2fQ%252byE6et0%3d

Se quiseres uns quantos vou daqui a uns tempos fazer a uma encomenda e posso juntar á encomenda sem qualquer problema.

Ainda tenho muitas caixas, caixinhas e caixotes  ;D para ver se tenho IR, se não tiver nada compro uns quantos, obrigado pela oferta

Citar
Mas podes tentar com LDR's e leds normais.


LDR's hummm penso que nas coisas do asena vinha lá uns LDR's gigantes, se ninguém requisitou...... ;D ;D já tem utilidade LOL

Abraços e obrigado.
Blog: A Visão do Lobo

Nick antigo: kilobyte

Offline LoneWolf

  • Mini Robot
  • *
  • Mensagens: 763
  • ..Ser ou não ser não tem questão nenhuma...
    • A Visão do Lobo
Re: The Starter
« Responder #55 em: 20 de Janeiro de 2012, 18:05 »
Boas, ora aqui fica um update do robo, tive de mudar de chassi porque o outro é um martírio ligar la alguma coisa (falta de espaço) hoje a ver dou um avanço nisto.....



Abraço.
Blog: A Visão do Lobo

Nick antigo: kilobyte

Offline TigPT

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 5.372
    • Tiago Rodrigues
Re: The Starter
« Responder #56 em: 20 de Janeiro de 2012, 18:25 »
Faz lembrar o raposa da idmind :P

Muito bem!

Offline LoneWolf

  • Mini Robot
  • *
  • Mensagens: 763
  • ..Ser ou não ser não tem questão nenhuma...
    • A Visão do Lobo
Re: The Starter
« Responder #57 em: 20 de Janeiro de 2012, 18:45 »
Ui, desconhecia isso, obrigado, isso deu-me outra ideia  ;)

Já agora, tenho um router Thomson TG784 e parece que não da para ligar ao arduino, será que dava para ligar um nokia E52 ou o N95 e usar o wireless ou bluetooth para comunicar com o robo?

Abraço.
Blog: A Visão do Lobo

Nick antigo: kilobyte

Offline TigPT

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 5.372
    • Tiago Rodrigues
Re: The Starter
« Responder #58 em: 20 de Janeiro de 2012, 18:46 »
Vê se podes instalar-lhe o DD-WRT

Offline LoneWolf

  • Mini Robot
  • *
  • Mensagens: 763
  • ..Ser ou não ser não tem questão nenhuma...
    • A Visão do Lobo
Re: The Starter
« Responder #59 em: 20 de Janeiro de 2012, 18:57 »
Já tinha visto nesse link e por thomson TG784 não encontrou nada, vou abrir para ver se tem info la dentro na pcb
...bem só agora vi, isto tem de levar 22V 0,9A vai ser bonito vai
Abraço.
« Última modificação: 20 de Janeiro de 2012, 19:01 por LoneWolf »
Blog: A Visão do Lobo

Nick antigo: kilobyte