flow
- ์๋์ด๋ ธ์ ๋ผ์ดํธ ์ผ์๋ฅผ ์ฐ๊ฒฐํ์ฌ ๊ฐ์ ํ์ธํจ.
- ์ผ์์ ๊ฐ์ ์๋ฆฌ์ผํต์ ์ผ๋ก ์ ์ก
- processing์์ ์ผ์์ ๊ฐ์ parsingํจ
- ์ผ์์ ๊ฐ์ด ์ปค์ง์๋ก ์ ์ก๋ฉด์ฒด์ ํฌ๊ธฐ๊ฐ ์ปค์ง
์๋์ด๋ ธ code
int light = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
light = analogRead(A1);
Serial.print(light);
Serial.print(",");
delay(500);
}
processing code
import processing.serial.*;
Serial myPort;
String myString = "";
float rotX, rotY;
int val = 0;
void setup()
{
size(1200, 800, OPENGL);
myPort = new Serial(this, Serial.list()[1], 9600);
/*
Serial.list()๋ฅผ ์ถ๋ ฅํด๋ณธ ๋ค์ ์ฐ๊ฒฐ์ค์ธ ์๋ฆฌ์ผ ํฌํธ๊ฐ ์ด๋์ธ์ง ํ์ธํ๋ค.
๋์ ๊ฒฝ์ฐ์๋
Serial.list()[0] = "COM1"
Serial.list()[1] = "COM5"์๊ณ , ํ์ฌ ์๋์ด๋
ธ ์ฐ๋
ธ์ ์ฐ๊ฒฐ๋ ํฌํธ๋ COM5๋ฒ์ด์ด์
๋ฐฐ์ด ๊ฐ์ 1๋ก ์ฃผ์๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค์ ์ธ์๋ก๋ baudrate๋ฅผ ๋ฃ์ด์ค๋ค.
*/
}
void draw()
{
//ํฌํธ์ ๊ฐ์ด ๋ค์ด์ค๋ฉด
if(myPort.available() > 0)
{
//","๊ฐ ๋ค์ด์ฌ๋๊น์ง ๊ฐ์ ์ฝ๋๋ค.
//UNO์์ ๊ฐ, ํํ๋ก ๋ณด๋ด๊ณ ์์
myString = myPort.readStringUntil(',');
if(myString != null)
{
//println(myString);
//๊ฐ๋ง ์ฝ์ด์จ๋ค.
String[] list = split(myString, ',');
val = int(list[0]);
print(val);
}
}
background(32); //๊ทธ๋ ์ด ๊ฐ์ผ๋ก ๋ท ๋ฐฐ๊ฒฝ ๊ทธ๋ฆฌ๊ณ
smooth(); //์ค๊ณฝ์ ๋ถ๋๋ฝ๊ฒ
lights();
fill(#FF9F03); //๋ฐ์ค ์๊น์ ๋ฃ๊ณ
stroke(3); //์ค๊ณฝ์ ์ ๊ทธ๋ ค์ค๋ค. ํ์์์ผ๋ฉด noStroke()๋ก ํ๋ฉด๋จ.
translate(width/2, height/2); //์ค์ฌ์ ์ ๋ณ๊ฒฝํ๊ณ
rotateX(rotX); //๋ง์ฐ์ค์ ๋๋๊ทธ ๋ฐฉํฅ๋๋ก ํ์ ํจ
rotateY(-rotY);
box(val*1.5); //๋ฐ๊ธฐ๊ฐ์ 1.5๋ฐฐ๋งํผ ๋ํ์ ์ฌ์ด์ฆ๊ฐ ๋ณ๊ฒฝ๋จ
}
void mouseDragged(){
rotY -= (mouseX - pmouseX) * 0.01;
rotX -= (mouseY - pmouseY) * 0.01;
}
๋๊ธ