collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[27 de Março de 2024, 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


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


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


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]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


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

Autor Tópico: Projecto com utilzação de IR  (Lida 7069 vezes)

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

Offline andalves

  • Mini Robot
  • *
  • Mensagens: 19
Re: Projecto com utilzação de IR
« Responder #15 em: 23 de Maio de 2010, 12:03 »
Deparei-me com um problema na programação..

O que acontece é o seguinte, tenho o código para fazer o sensor trabalhar, depois também tenho o código para enviar informação em serial para o Pure Data.

O que acontece é que dá-me o seguinte erro quando faço o código numa nova "tab":

 In function 'void setup()':
error: redefinition of 'void setup()' In function 'void loop()':

Já andei a investigar e parece que basta fazer uma vez o void setup() e o void loop(). Como é que eu me arranjo com esta história? Já tentei inventar e não me saiu nada bem..

Escrevo os dois códigos na mesma tab ou tanto faz? se basta "dizer" uma vez void setup() e o void loop(), como é que faço para escrever a segunda parte do código que neste caso é o do "arduino_to_PD"

Desculpem se está muito confusa a minha dúvida..

Se poderem ajudar, fico-vos muito grato..

Offline guibot

  • Mini Robot
  • *
  • Mensagens: 651
    • Guibot
Re: Projecto com utilzação de IR
« Responder #16 em: 23 de Maio de 2010, 12:11 »
não percebi muito bem a tua dúvida, mas parece-me que estás a duplicar as funções setup() e/ou loop(). estas duas funções só podem ser declradas uma vez no teu programa.

se queres fazer uma função (ou método) para enviar data para o pd, faz por exemplo:

void arduinoToPD() {
     // código aqui
}

Offline andalves

  • Mini Robot
  • *
  • Mensagens: 19
Re: Projecto com utilzação de IR
« Responder #17 em: 23 de Maio de 2010, 12:28 »
Ok.. pode-se dizer que o seguinte código que eu fiz através de dois já existentes é válido??

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

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

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
  Serial.begin(115200);
}

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)
 
  if (messageBuild()) { // Checks to see if the message is complete
      firstChar = messageGetChar(); { // Gets the first word as a character

     if (firstChar = 'r') { // Checking for the character 'r'
          secondChar = messageGetChar(); // Gets the next word as a character
          if (firstChar = 'd') // The next character has to be 'd' to continue
               messageSendChar('d');  // Echo what is being read

       for (int i=0;i<=5;i++) {
       messageSendInt(analogRead(i)); // Read analog pins 0 to 5
          }

       for (int m=2;m<=12;m++) {
       messageSendInt(digitalRead(m)); // Read digital pins 2 to 12, 13 is onboard LED on Arduino NG
          }
           
       messageEnd(); // Terminate the message being sent
       
         
                    }
      }
   }
}

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


Se isto estiver correcto já só me falta arranjar um trigger no PD que faça despertar alguma coisa..

PS.: Desculpem mas não sei como se faz para inserir aquela "caixa de código" aqui nos posts..
« Última modificação: 23 de Maio de 2010, 12:34 por metRo_ »

Offline andalves

  • Mini Robot
  • *
  • Mensagens: 19
Re: Projecto com utilzação de IR
« Responder #18 em: 23 de Maio de 2010, 13:14 »
Já agora, no Serial Monitor seria suposto aparecer "ICEBERG" quando o sensor detecta alguma coisa ?? é que quando me parece que o sensor detecta alguma coisa, aparecem caractéres deste género "u¢ÿ¦u¢ÿ¦õ"ÿ¦u¢ÿ¦u¢ÿ¦u¢ÿ¦õ"ÿ&u¢ÿ¦u"ÿ¦u¢ÿ¦u¢ÿ¦u¢ÿ¦u¢ÿ¦u¢ÿ¦u¢ÿ¦u"

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Projecto com utilzação de IR
« Responder #19 em: 23 de Maio de 2010, 13:59 »
Tens a mesma velocidade no serial monitor que no serial.begin, que está repetido no teu código, primeiro tens Serial.begin(9600) e depois tens Serial.begin(115200), não estou a perceber bem essa do message, biblioteca meio estranha :S
Avr fanboy

Offline guibot

  • Mini Robot
  • *
  • Mensagens: 651
    • Guibot
Re: Projecto com utilzação de IR
« Responder #20 em: 23 de Maio de 2010, 14:06 »
Exacto, no void setup(), tens repetido serial.begin(...)

só podes ter um, vê qual é a que veio com o SMS e deixa ficar esse... depois no interface do arduino quando clicas no Serial Monitor tens que escolher 115200

Offline andalves

  • Mini Robot
  • *
  • Mensagens: 19
Re: Projecto com utilzação de IR
« Responder #21 em: 23 de Maio de 2010, 14:39 »
muuito agradecido!!!

Confirmem-me só se, no que diz respeito ao arduino, está tudo pronto a comunicar com o Pure Data, para saber se posso passar a desvendar os segredos deste programa!


Offline andalves

  • Mini Robot
  • *
  • Mensagens: 19
Re: Projecto com utilzação de IR
« Responder #22 em: 25 de Maio de 2010, 17:05 »
Ola novamente!

Alguém me sabe dizer onde posso arranjar a firmata mais aconselhada para utilizar o Pduino ?

eu tento fazer o download daqui http://at.or.at/hans/pd/objects.html#pduino mas parece já não estar em funcionamento.

cumprimentos

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Projecto com utilzação de IR
« Responder #23 em: 25 de Maio de 2010, 17:41 »
Avr fanboy

Offline andalves

  • Mini Robot
  • *
  • Mensagens: 19
Re: Projecto com utilzação de IR
« Responder #24 em: 25 de Maio de 2010, 19:23 »
Já tentei aí, mas acontece que quando tento fazer o download ele redirecciona-me para o tal link que não responde.