schets ho sintetizzato:
-Server
-Arduino controller
-Usb controller
Di seguito incollo il codice verwerking.
VI ricordo ch e per poter funzionare occorre scaricare le 3 gedeelde implements
OscP5, NetP5, CC. Arduino,
----------------------------------------------------------
importeren van oscP5.*; Belasting OSC P5 bibliotheek
importeren van netP5.*; Belasting netwerkbibliotheek P5
importeren van processing.serial.*; Belasting seriële bibliotheek
importeren van cc.arduino.*;
Seriële arduinoPort; Set arduinoPort als seriële verbinding
OscP5 oscP5; Set oscP5 als OSC verbinding
int redLED = 0; redLED laat ons weten als de LED in- of uitschakelen is
int [] geleid = nieuwe int [2]; Matrix laat ons toe om meer wisselknoppen in TouchOSC toevoegen
VOID Setup {}
size(100,100); De grootte van het scherm van de verwerking
noStroke(); We willen niet een overzicht of lijn op onze graphics
oscP5 = nieuwe OscP5(this,8000); Start oscP5, luistert naar binnenkomende berichten op poort 8000
arduinoPort = nieuwe Serial (dit, Serial.list() [2], 9600); Instellen van de arduino te 9600 baud
}
VOID oscEvent (OscMessage theOscMessage) {/ / dit wordt uitgevoerd wanneer er een nieuwe OSC-bericht
String addr = theOscMessage.addrPattern(); Een tekenreeks uit het bericht van OSC genereert
if(addr.indexOf("/1/Toggle")! =-1) {/ / filtert wisselknoppen
int i = int((addr.charAt(9))) - 0x30; geeft als resultaat het nummer van de ASCII-zo omzetten in een reëel getal door af te trekken 0x30
onder leiding van [i] = int(theOscMessage.get(0).floatValue()); Zet knop waarde in geleid [i]
Knop waarden kunnen worden gelezen met behulp van led [0], leidde [1], onder leiding van [2], enz.
}
}
VOID draw() {}
Background(50); Wordt de achtergrond ingesteld op een donkergrijs, kunnen 0-255
Als (leidde [1] == 0) {/ / als opende knop 1 als...
arduinoPort.write("a"); Het teken "r" stuurt naar Arduino
redLED = 0; Sets redLED kleur op 0, kunnen 0-255
}
Als (leidde [1] == 1) {/ / als led knop 1 op do is...
arduinoPort.write("A"); Het teken "R" verzenden met Arduino
redLED = 255; Sets redLED kleur tot en met 255, kunnen 0-255
}
Fill(redLED,0,0); Vul de rechthoek met redLED bedrag
ellips (50, 50, 50, 50); Gemaakt van een ellips op 50 pixels vanaf de linkerkant...
50 pixels vanaf de bovenkant en een breedte van 50 en hoogte van 50 pixels
}
----------------------------------------------------------
Guardando il codice noterete che in base all'output captato in rete dal touchosc
0 o 1, Processing scriverà nella seriale di arduino 2 valori:
a, A.
Quindi in arduino bisogna installare uno script che capti deze 2 valori
e li trasformi in funzioni, ad es. LedOn/LedOff... ECC...
di seguito vi incollo il codice da installare dentro arduino:
----------------------------------------------------------
#define LED_PIN1 4
#define LED_PIN2 5
#define LED_PIN3 6
#define LED_PIN4 7
#define LED_PIN5 8
#define LED_PIN6 9
#define LED_PIN7 10
#define LED_PIN8 11
int firstSensor = 0; eerste analoge sensor
int secondSensor = 0; tweede analoge sensor
int thirdSensor = 0; digitale sensor
int inByte = 0; binnenkomende seriële byte
Booleaanse status_unlock;
Booleaanse status_bluetooth;
lange interval = 1000; interval waartegen knipperen (milliseconden)
lange previousMillis = 0; slaat de laatste tijd LED update
int minite, sec;
VOID Setup
{
seriële poort op 9600 bps te starten:
Serial.begin(9600);
pinMode (2, ingang); digitale sensor is op digitale pin 2
establishContact(); Stuur een byte om contact tot ontvanger reageert
pinMode (LED_PIN1, uitvoer);
pinMode (LED_PIN2, uitvoer);
pinMode (LED_PIN3, uitvoer);
pinMode (LED_PIN4, uitvoer);
pinMode (LED_PIN5, uitvoer);
pinMode (LED_PIN6, uitvoer);
pinMode (LED_PIN7, uitvoer);
pinMode (LED_PIN8, uitvoer);
digitalWrite (LED_PIN1, laag); Schakel LED
digitalWrite (LED_PIN2, laag); Schakel LED
digitalWrite (LED_PIN3, laag); Schakel LED
digitalWrite (LED_PIN4, laag); Schakel LED
digitalWrite (LED_PIN5, laag); Schakel LED
digitalWrite (LED_PIN6, laag); Schakel LED
digitalWrite (LED_PIN7, laag); Schakel LED
digitalWrite (LED_PIN8, laag); Schakel LED
status_bluetooth = true;
status_unlock = false;
SEC = 0;
}
void loop
{
Als (Serial.available() > 0) {}
inByte = Serial.read(); krijg inkomende byte:
Als (inByte == 'A') {}
digitalWrite (LED_PIN1, hoge); overschakelen op LED
Serial.Print ('A', BYTE); Stuur een char
delay(800);
digitalWrite (LED_PIN1, laag); Schakel LED
status_unlock = false;
inByte = 0;
}
Als (inByte == 'a') {}
digitalWrite (LED_PIN2, hoge); overschakelen op LED
Serial.Print ('a', BYTE); Stuur een char
delay(800);
digitalWrite (LED_PIN2, laag); Schakel LED
status_unlock = true;
SEC = 0;
inByte = 0;
}
Als (inByte == 'B') {}
digitalWrite (LED_PIN3, hoge); overschakelen op LED
Serial.Print ('B', BYTE); Stuur een char
inByte = 0;
}
Als (inByte == 'b') {}
digitalWrite (LED_PIN3, laag); Schakel LED
Serial.Print ("b", BYTE); Stuur een char
inByte = 0;
}
Als (inByte == 'C') {}
digitalWrite (LED_PIN4, hoge); overschakelen op LED
Serial.Print ('C', BYTE); Stuur een char
inByte = 0;
}
Als (inByte == 'c') {}
digitalWrite (LED_PIN4, laag); Schakel LED
Serial.Print ('c', BYTE); Stuur een char
inByte = 0;
}
Als (inByte == had') {}
digitalWrite (LED_PIN5, hoge); overschakelen op LED
Serial.Print (had', BYTE); Stuur een char
inByte = 0;
}
Als (inByte == had') {}
digitalWrite (LED_PIN5, laag); Schakel LED
Serial.Print (had', BYTE); Stuur een char
inByte = 0;
}
Als (inByte == 'E') {}
digitalWrite (LED_PIN6, hoge); overschakelen op LED
Serial.Print ('E', BYTE); Stuur een char
inByte = 0;
}
Als (inByte == 'e') {}
digitalWrite (LED_PIN6, laag); Schakel LED
Serial.Print ('e', BYTE); Stuur een char
inByte = 0;
}
Als (inByte == 'F') {}
digitalWrite (LED_PIN7, hoge); overschakelen op LED
Serial.Print ('F', BYTE); Stuur een char
inByte = 0;
}
Als (inByte == 'f') {}
digitalWrite (LED_PIN7, laag); Schakel LED
Serial.Print ('f', BYTE); Stuur een char
inByte = 0;
}
Als (inByte == 'G') {}
digitalWrite (LED_PIN8, hoge); overschakelen op LED
Serial.Print ('G', BYTE); Stuur een char
inByte = 0;
}
Als (inByte == 'g') {}
digitalWrite (LED_PIN8, laag); Schakel LED
Serial.Print ('g', BYTE); Stuur een char
inByte = 0;
}
Als (inByte == de ') {}
Serial.Print (de ', BYTE); Stuur een char
status_bluetooth = true;
SEC = 0;
}
} / / Als (seriële
/*
unsigned long currentMillis = millis();
Als (currentMillis - previousMillis > interval) {}
previousMillis = currentMillis; de laatste tijd u de LED knipperde besparen
SEC ++;
if(status_unlock==True) {}
if(SEC== 11) {}
digitalWrite (LED_PIN1, hoge); overschakelen op LED
delay(800);
digitalWrite (LED_PIN1, laag); Schakel LED
status_unlock = false;
SEC = 0;
}
}
anders sec = 0;
}
*/
} //Loop
ongeldig establishContact() {}
terwijl (Serial.available() < = 0) {}
Serial.Print ('. ', BYTE); Stuur een hoofdletter A
delay(500);
}
}
----------------------------------------------------------