Pages: [1]   Go Down
Author Topic: Ajuda com TouchOSC  (Read 871 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 1
Posts: 34
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

bom galera, to com um grande problema..
o arduino não quer interpretar o comando enviado pelo programa..
meu code..
Code:
#include <SPI.h>
#include <Ethernet.h>
#include <ArdOSC.h>


// ethernet configuration
byte mac[] = { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF };
byte ip[] = { 169, 254, 143, 10 }; // ip do arduino na rede--------------------------------
EthernetServer server(80);
//OSC configuration
byte destIP[] = {169,254,143,50}; // ip do controlador osc---------------------
int serverPort = 80;
int destPort = 9000;
OSCServer oserver;
OSCClient oclient;
//pins defines
byte LED1 = 44;
byte LED2 = 45;
byte BOT1 = 41;
byte BOT2 = 30;
// Variaveis
boolean botstate1 = 0;
boolean botstate2 = 0;
char c = 0;
char command[6] = "\0";
void setup(){
  Ethernet.begin(mac, ip);
  server.begin();
  oserver.begin(serverPort);
  oserver.addCallback("/led1", &func1);
  oserver.addCallback("/led2", &func2);
  //setup dos pinos
  pinMode(LED1, OUTPUT);
  pinMode(BOT1, INPUT);
  digitalWrite(BOT1,1);
  pinMode(LED2, OUTPUT);
  pinMode(BOT2, INPUT);
  digitalWrite(BOT2,1);
}
void loop(){
  if(oserver.aviableCheck()>0){}
  if(digitalRead(BOT1)==LOW){
     botstate1 = !botstate1;
     OSCMessage txMes;
     txMes.setAddress(destIP,destPort);
     txMes.beginMessage("/led1");
     txMes.addArgFloat(botstate1);
     oclient.send(&txMes);
     digitalWrite(LED1,botstate1);
     delay(200);
    }
   if(digitalRead(BOT2)==LOW){
     botstate2 = !botstate2;
     digitalWrite(LED2,botstate2);
     OSCMessage txMes;
     txMes.setAddress(destIP,destPort);
     txMes.beginMessage("/led2");
     txMes.addArgFloat(botstate2);
     oclient.send(&txMes);
     delay(200);
    }
  EthernetClient client = server.available();
  // detect if current is the first line
  boolean current_line_is_first = true;
  if (client) {
    // an http request ends with a blank line
    boolean current_line_is_blank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        // if we've gotten to the end of the line (received a newline
        // character) and the line is blank, the http request has ended,
        // so we can send a reply
        if (c == '\n' && current_line_is_blank) {
          // send a standard http response header
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();

          // auto reload webpage every 5 second
          //client.println("<META HTTP-EQUIV=REFRESH CONTENT=5 URL=>");
         
          // webpage title
          client.println("<center><p><h1>Arduino + Ethernet Shield Application v1.0</h1></p><center><hr><br />");

          // read analog pin 1 for the value of photocell
         
         
         
         
         
          // button led1 functions
          client.println("<center><p><h2>Led 1</h1></p><center><br />");
          client.println("<form  method=get name=form>");
          client.println("<button name=b value=1 type=submit style=height:80px;width:150px>LED On</button>");
          client.println("<button name=b value=2 type=submit style=height:80px;width:150px>LED Off</button>");
          client.println("</form><hr><br />");
         
          // button led2 functions
          client.println("<center><p><h2>Led 2</h1></p><center><br />");
          client.println("<form  method=get name=form>");
          client.println("<button name=b value=3 type=submit style=height:80px;width:150px>LED On</button>");
          client.println("<button name=b value=4 type=submit style=height:80px;width:150px>LED Off</button>");
          client.println("</form><br />");
         
          // button todas as leds functions
          client.println("<center><p><h2>Todas leds</h1></p><center><br />");
          client.println("<form  method=get name=form>");
          client.println("<button name=b value=5 type=submit style=height:80px;width:150px>LED On</button>");
          client.println("<button name=b value=6 type=submit style=height:80px;width:150px>LED Off</button>");
          client.println("</form><br />");
         
          // webpage footer
         
          break;
        }
        if (c == '\n') {
          // we're starting a new line
          current_line_is_first = false;
          current_line_is_blank = true;
        }
        else if (c != '\r') {
          // we've gotten a character on the current line
          current_line_is_blank = false;
        }
        // get the first http request
        if (current_line_is_first && c == '=') {
          for (int i = 0; i < 1; i++) {
            c = client.read();
            command[i] = c;
          }
         
         
         
          // LED1 web control
          if (!strcmp(command , "1")) {
           botstate1 = 1;
           }
          else if (!strcmp(command, "2") ) {
            botstate1 = 0;
          }
          // LED2 web control
          if (!strcmp(command , "3")) {
           botstate2 = 1;
            }
          else if (!strcmp(command, "4") ) {
            botstate2 = 0;
          }
          // todas LED web control
          if (!strcmp(command , "5")) {
           botstate1 = 1;
           botstate2 = 1;
            }
          else if (!strcmp(command, "6") ) {
            botstate1 = 0;
            botstate2 = 0;
          }
         
        }
      }
    }
   
    // give the web browser time to receive the data
    delay(1);
    client.stop();
  }
  digitalWrite(LED1,botstate1);
  digitalWrite(LED2,botstate2);
}

void func1(OSCMessage *_mes){
  int value = (int)_mes->getArgFloat(0);
  digitalWrite(LED1, value);
}
void func2(OSCMessage *_mes){
  int value = (int)_mes->getArgFloat(0);
  digitalWrite (LED2, value);
}
o html e o botão estão funcionando..
mas o osc nem sinal, ja tentei de tudo..
e agora?
Logged

Aracaju, SE, Brasil
Offline Offline
Sr. Member
****
Karma: 4
Posts: 323
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Já olhou no blog do elétron livre? Esse post é justamente sobre o OSC.

edit: acabei de ver que seu código está praticamente igual ao do blog smiley-yell.

Você tem certeza de que o comando está sendo enviado?
« Last Edit: July 12, 2013, 11:37:12 am by LegendBR » Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 34
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Já olhou no blog do elétron livre? Esse post é justamente sobre o OSC.

edit: acabei de ver que seu código está praticamente igual ao do blog smiley-yell.

Você tem certeza de que o comando está sendo enviado?

pois é, é o mesmo, quando eu aperto o botão no ipad, ele envia, a placa do ethernet ate pisca a luz, mas o arduino não acende o led..
 achei outr biblioteca o z_OSC.
mas será q pode ser a versão da ide?
Logged

Aracaju, SE, Brasil
Offline Offline
Sr. Member
****
Karma: 4
Posts: 323
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Já olhou no blog do elétron livre? Esse post é justamente sobre o OSC.

edit: acabei de ver que seu código está praticamente igual ao do blog smiley-yell.

Você tem certeza de que o comando está sendo enviado?

pois é, é o mesmo, quando eu aperto o botão no ipad, ele envia, a placa do ethernet ate pisca a luz, mas o arduino não acende o led..
 achei outr biblioteca o z_OSC.
mas será q pode ser a versão da ide?


Cara, testa primeiro exatamente o código que tem no blog, depois você adiciona a parte web. Vi uma diferença no código, está faltando a porta do servidor, não sei se você configurou tudo como a mesma porta no TouchOSC, mas testa primeiro o "feijão com arroz" depois você incrementa.
Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 34
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pior que eu testei os exemplos todos também..
e nada, vou testar a outra biblioteca..
vlw
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Já conseguiu?
Logged

Pages: [1]   Go Up
Jump to: