collapse

* Posts Recentes

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]


Emulador NES em ESP32 por dropes
[10 de Abril de 2024, 15:30]


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]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: Robot de Busca e Salvamento![CONLUIDO]  (Lida 70864 vezes)

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

Offline microbyte

  • Mini Robot
  • *
  • Mensagens: 1.322
    • http://ricardo-dias.com/
Re: Robot de Busca e Salvamento!
« Responder #105 em: 17 de Maio de 2010, 22:33 »
o "<<" é um operador e serve para fazer operações em binário.
Desloca os bits todos x casas para a esquerda (ao fazeres <<0 nao deslocas nada)

Isto está tudo no site do Arduino.

E quanto à chamada da função dar erro... Já tentaste ler qual é o erro?

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Robot de Busca e Salvamento!
« Responder #106 em: 17 de Maio de 2010, 22:42 »
Não dá erro que eu já compilei, não é preciso fazer <<0 porque o << é um shift left, ou seja faz o numero andar para a esquerda, fazer <<0 é mandar andar o numero 0 vezes para a esquerda, logo não é preciso.
Sim, para chamares uma função que tenha um return no fim, ou seja como o teu LineError, quando a chamas tens de guardar o que ela manda no return numa variavel, dai fazer Errorval=LineError.
Eu compilei esse código que ai meti, faz o upload dele para o teu arduino e ve se funciona como queres ou não, altera as tuas ligações para ficarem correctas em relação ao novo código.
Avr fanboy

Offline fred gomes

  • Mini Robot
  • *
  • Mensagens: 238
Re: Robot de Busca e Salvamento!
« Responder #107 em: 17 de Maio de 2010, 22:43 »
o error continua a ser sempre 0.0,
mas eu chamei a função apenas assim:

Código: [Seleccione]
LineError();
e no fim de calcular o error na função LineError coloquei
Código: [Seleccione]
errorval = error;
Ps : no meu compilador dá me erro como colocaste "o chamamento" da função Senso.
« Última modificação: 17 de Maio de 2010, 22:45 por fred gomes »
cumprimentos,
Fred

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Robot de Busca e Salvamento!
« Responder #108 em: 17 de Maio de 2010, 22:47 »
Isso não funciona assim, pois a variavel que usas na função LineError não é conhecida dentro da função loop, copias-te o código TODO?
É que aqui compila sem qualquer erro.
Aqui está um printscreen dele a compilar sem problemas:

« Última modificação: 17 de Maio de 2010, 22:49 por senso »
Avr fanboy

Offline fred gomes

  • Mini Robot
  • *
  • Mensagens: 238
Re: Robot de Busca e Salvamento!
« Responder #109 em: 17 de Maio de 2010, 22:55 »
já não dá erro.
reiniciei o programa do arduino e deixou de dar.. mas o error não varia de 0.0, já experimentei com o outro código a ver se a leitura dos sensores estava a ser bem efectuada e esta tudo correcto..
cumprimentos,
Fred

Offline microbyte

  • Mini Robot
  • *
  • Mensagens: 1.322
    • http://ricardo-dias.com/
Re: Robot de Busca e Salvamento!
« Responder #110 em: 17 de Maio de 2010, 22:58 »
Agora é uma questão de debug, ver o que ele está a receber dos sensores, com PRINT(), ver quais são os IF() que estão passar, e os que não passam... etc...

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Robot de Busca e Salvamento!
« Responder #111 em: 17 de Maio de 2010, 22:59 »
Código: [Seleccione]
int sensor1 = 3;
int sensor2 = 4;
int sensor3 = 5;
int sensor4 = 6;
int sensor5 = 7;

void setup(){
  Serial.begin(9600);
  digitalWrite(sensor1, HIGH);
  digitalWrite(sensor2,HIGH);
  digitalWrite(sensor3,HIGH);
  digitalWrite(sensor4,HIGH);
  digitalWrite(sensor5,HIGH);
}

void loop(){
  Serial.println(digitalRead(sensor1));
  Serial.println(digitalRead(sensor2));
  Serial.println(digitalRead(sensor3));
  Serial.println(digitalRead(sensor4));
  Serial.println(digitalRead(sensor5));
  Serial.println("----");
  delay(2000);
Com este código funciona?
Porque é que neste tens os sensores nos pinos 3,4,5,6,7 quando no outro tens nos pinos 2,3,4,5,6 ?
E antes tinhas 0,1,2,3,4 ?
Tens de te decidir rapaz, altera lá os pinos no código para serem sempre os mesmo e mete as ligações de acordo com os pinos que decidires usar e volta a tentar.
Avr fanboy

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Robot de Busca e Salvamento!
« Responder #112 em: 17 de Maio de 2010, 22:59 »
Agora é uma questão de debug, ver o que ele está a receber dos sensores, com PRINT(), ver quais são os IF() que estão passar, e os que não passam... etc...
Penso que é mais questão de ele ainda não ter decidido que pinos quer usar, vê a minha outra mensagem lol
Avr fanboy

Offline microbyte

  • Mini Robot
  • *
  • Mensagens: 1.322
    • http://ricardo-dias.com/
Re: Robot de Busca e Salvamento!
« Responder #113 em: 17 de Maio de 2010, 23:02 »
Pois, já estou a ver...
É que isto de andar a alternar entre programas nunca dá nada de jeito, acabamos por nos perder nas coisas mais elementares, como é a declaração dos pinos que vamos usar.

Mais uma vez, ele tirou o código do meu, que foi uma abordagem analógica, por isso os pinos iam do 0 ao 4, mas 0 a 4 nos analógicos. Nos pinos digitais, só podemos usar a partir do 2...

Altera lá isso fred, e faz alguns prints e vê se está tudo ok.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Robot de Busca e Salvamento!
« Responder #114 em: 17 de Maio de 2010, 23:04 »
Pois, é que já aqui vai uma misturada de todos os tamanhos, mas vamos lá ver se o rapaz consegue meter isto a funcionar bem.
Com tanto pessoal de Aveiro aqui no fórum temos é de fazer um Arduino Hack-day lol
Avr fanboy

Offline microbyte

  • Mini Robot
  • *
  • Mensagens: 1.322
    • http://ricardo-dias.com/
Re: Robot de Busca e Salvamento!
« Responder #115 em: 17 de Maio de 2010, 23:06 »
OffT: Era uma ideia engraçada... Porque não?

Offline fred gomes

  • Mini Robot
  • *
  • Mensagens: 238
Re: Robot de Busca e Salvamento!
« Responder #116 em: 17 de Maio de 2010, 23:10 »
não dá :-\
o problema esta no valorsensor, os valores que ele me fornece não são zeros e uns..
cumprimentos,
Fred

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Robot de Busca e Salvamento!
« Responder #117 em: 17 de Maio de 2010, 23:11 »
Somos pelo menos uns 4, e isto de estar em pessoa para tirar duvidas e fazer algo de funcional é sempre outra coisa que estar no pc.
E com 3 na UA até devia dar para fazer uma boa equipa para o micro-rato, que para o ano queria participar e tal.
Pois não, ele vai fornecer mais que zeros e uns para comparar com aqueles numeros em binário nos if's
Avr fanboy

Offline microbyte

  • Mini Robot
  • *
  • Mensagens: 1.322
    • http://ricardo-dias.com/
Re: Robot de Busca e Salvamento!
« Responder #118 em: 17 de Maio de 2010, 23:15 »
não dá :-\
o problema esta no valorsensor, os valores que ele me fornece não são zeros e uns..
Fred... Antes de te preocupares com o valorsensor, preocupa-te com aquilo que tens no array senval...

Mete isto no loop() -> para debug apenas! não vai funcionar por causa disto...
Código: [Seleccione]
for (int i=0; i < nsensores; i++){
   print(senval[i]);
}
println();

Offline fred gomes

  • Mini Robot
  • *
  • Mensagens: 238
Re: Robot de Busca e Salvamento!
« Responder #119 em: 17 de Maio de 2010, 23:24 »
não consigo meter essa função no loop pq dá me erro, mas fiz o print do senval, e acho estranho..

tipo, ele lê bem os sensores, mas quand acaba de ler os 5 sensores imprime um valor (consoante o nº o sensor que esta a ver preto) , imprime 2048, 1024 e 512 :s , porque isso acontece?
cumprimentos,
Fred