LusoRobótica - Robótica em Português

Robótica => Iniciantes => Tópico iniciado por: pedro12 em 09 de Julho de 2010, 17:34

Título: Duas duvidas... Serial
Enviado por: pedro12 em 09 de Julho de 2010, 17:34
Em primeiro lugar bom dia, venho aqui postar duas duvidas que gostava de ver esclarecidas, a primeira é se há alguma maneira de por exemplo fazer o seguinte:

Citar
if (Serial.available()) {
  int val = 0;
  val = Serial.read();
 
 
if (val == "PALAVRA E NAO UMA UNICA LETRA") {
digitalWrite(13, HIGH);
}

}


ou seja para que a acção fosse feita tinha de enviar uma palavra ou números tipo como se fosse um código

2ª duvida é como fazer com que se por exemplo eu carregar num botão o computador produza um certo som

desde ja agradeço o esclarecimento das duvidas  :)
Título: Re: Duas duvidas... Serial
Enviado por: preytender em 09 de Julho de 2010, 18:19
A resposta a 1ª pergunta podes encontrar aqui: http://todbot.com.s3.amazonaws.com/spookyarduino/arduino_spooky_projects_class3.pdf (http://todbot.com.s3.amazonaws.com/spookyarduino/arduino_spooky_projects_class3.pdf) na página 44

Dá uma vista de olhos no pdf todo porque tb tem umas dicas para responder a tua 2ª pergunta.

Abraço.
Título: Re: Duas duvidas... Serial
Enviado por: pedro12 em 09 de Julho de 2010, 20:15
Citar
 void readSerialString (char *strArray){
 int i = 0;
 if (Serial.available()){
 strArray = Serial.read();
 i++;
 Serial.println(strArray);
 }
 }



o codigo em cima e presente no PDF indicado mas ainda nao percebi como utiliza lo por isso gostava de um esclarecimento, quanto á segunda questao nao consegui resolvela nao encontrei nada sobre isso nos PDFs

mas agradço desde ja ao preytender
Título: Re: Duas duvidas... Serial
Enviado por: XicoMBD em 09 de Julho de 2010, 22:50
Quanto à 2ª dúvida:


Experimenta usar o processing: http://processing.org/ (http://processing.org/)
Deve ser fácil perceberes a linguagem uma vez que utilizas o arduino.


Depois de instalares o programa podes ir a Files/Examples/Libraries/Serial e abrires o programa SimpleRead.
Quando pressionas o botão ligado ao arduino programado com o programa que lá está muda-se a cor de um quadrado. Depois se quiseres podes adaptar para fazer o som.




Espero que ajude  :)
Título: Re: Duas duvidas... Serial
Enviado por: preytender em 09 de Julho de 2010, 23:28
Resposta a 1ª Pergunta - Este codigo esta pronto a funcionar dá uma vista de olhos e se tiveres duvidas avisa.

Código: [Seleccione]

// Variavel global para guardar os comandos recebidos
// maximo de 20 caracteres se precisares de comandos maiores aumenta este numero
char meuComando[20];

void setup() {
 
  // Inicializar Comunicação Serial
  Serial.begin(19200); 
  Serial.println("Arduino Ready...");
 
}

void loop() {

  // Caso exista algum dado a ser recebido via serial chamar a funcao readserialstring
  if (Serial.available()) {
    readserialstring();
  }
 
  // Verificar se existe algum comando para ser processado
  // Nota: O caracter '\0' representa o fim da string por isso uma string vazia tem esse caracter na posição 0.
  if (meuComando[0]!='\0') {
   
    Serial.print("Encontrado um comando:");
 
    if (strcmp("blink",meuComando)==0) {
        // Caso o comando seja a palavra "blink" executa este código.
        // Cuidado: "blink" é diferente de "Blink"
        Serial.println("Executar Comando Blink");
   
    } else {   
      // Caso não seja codigo válido da erro e não faz nada
      Serial.println("Comando Invalido");
    }
   
    // No fim limpar a variavel do comando para não voltar a executar
    meuComando[0]='\0';
  }
   
  delay(250);
}


// Função para ler uma string de serial
// Basicamente vai colocando um caracter de cada vez na variavel meuComando até ja não haver mais.
// No fim a variavel meuComando tem a string completa
void readserialstring() {
 
 int i=0;
 while (Serial.available()) {
  meuComando[i]=Serial.read();
  i++;
 }
 meuComando[i]='\0';
 
}
 

Com relação a 2ª pergunta concordo com a sugestão do XicoMBD porque o processing é parecido com o arduino mas se estiveres mais a vontade com outras linguagens de programação como por exemplo Java,C,VB,C# podes utilizar qualquer uma delas.

Abraço.
Título: Re: Duas duvidas... Serial
Enviado por: pedro12 em 09 de Julho de 2010, 23:46
muito obrigado pelo esclarecimento das minhas duvidas!!!:)