Lab_interaccio/2015/OSC_Serial_LED/OSC_Serial_LED.ino

77 lines
1.3 KiB
Arduino
Raw Normal View History

2025-02-25 21:29:42 +01:00
// Marco Brianza
// May 15 2014
#include "OSCMessage.h"
#include "SLIPEncodedSerial.h"
#define OUT_PIN 13
SLIPEncodedSerial SLIPSerial(Serial1); //connection with Yun
// ---------------------------------------
void setup(){
SLIPSerial.begin(250000); //this is the standard speed on the Yun
Serial.begin(115200); // to debug on usb port
}
// ----------------------------------------
void loop(){
OSCMessage msg;
int s;
if (SLIPSerial.available()){
while(!SLIPSerial.endofPacket())
Serial.println("new");
if( (s =SLIPSerial.available()) > 0)
{
while(s--)
msg.fill(SLIPSerial.read());
}
if(!msg.hasError())
{
msg.dispatch("/led/13",led_13);
}
}
} // end main---------------------
//------------------------
void led_13(OSCMessage &msg)
{
float r=msg.getFloat(0);
int R=int(r*2.55);
if (R>255) R=255;
if (R<0) R=0;
// Serial.print("/All/R");
// Serial.println(R);
analogWrite(OUT_PIN,R);
msgReply(R);
}
void msgReply(float ledI){
OSCMessage msg("/reply");
msg.add(ledI);
SLIPSerial.beginPacket(); // mark the beginning of the OSC Packet
msg.send(SLIPSerial);
SLIPSerial.endPacket();
msg.empty();
}