μΈλ²μ§Έ μκ°μΌλ‘ μ΄μ λ νλ‘μΈμ±κ³Ό μλμ΄λ Έ λ κ³³μμ κ°λ³μ μΌλ‘ μ½λ©νκ³ μ리μΌν΅μ μ μ΄μ©ν΄μ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μμ μ μ΄νλ λ°©λ²μ μ΄ν΄λ³΄κ² μ΅λλ€. κΈ°λ³Έμ μΌλ‘ μλμ΄λ Έλ μλμ μ½λ© λ°©μμΌλ‘ μ½λ©νλ©΄ λ©λλ€. λ³κ²½λλ λΆλΆμ μκ³ λ¨μ§ μ리μΌν΅μ μ ν μ μλλ‘ μΈν λ§ ν΄μ£Όλ©΄ λ©λλ€. νλ‘μΈμλ μ리μΌν΅μ λΆλΆλ§ μ½λ©ν΄μ£Όκ³ νλ‘μΈμ€λ κ·Έλν½ μ½λ©λ§ μ€μ μ μΌλ‘ νλ©΄ λ©λλ€. μ½κ²λ§ν΄μ κ°μμ μν λ§ νκ³ λ¨μ§ μ리μΌν΅μ μ΄λΌλ λ§€κ°μ²΄λ‘ μ°κ²°λλ€κ³ μκ°νμλ©΄ λ©λλ€.
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
LED κΉλ°μ΄λ κΈ°λ³Έ μμ λ₯Ό ν΅ν΄μ νλ‘μΈμ±κ³Ό μλμ΄λ Έμ μνμ λλ λ³΄κ² μ΅λλ€. νλ‘μΈμ±μμλ μ€μμΉ μνλ‘ LEDκ° 1μ΄λ¨μλ‘ κΉλ°μ΄λλ‘ λͺ λ Ήμ λ΄λ¦¬κ³ μλμ΄λ Έλ κ·Έ λͺ λ Ήμ λ°μμ LEDλ₯Ό κΉλ°μ΄κ² νλλ‘ μνμ λλ λ³΄κ² μ΅λλ€.
μλ κ·Έλ¦Όμ²λΌ νλ‘μΈμ±λ μ리μΌν΅μ μ ν΅ν΄ μλμ΄λ Έμκ² LED μνκ°μ 보λ΄κ³ μλμ΄λ Έλ μ΄ κ°μ μ½μ΄μ LEDλ₯Ό κΉλ°μ΄κ² νλ ν©λλ€. 1μ΄ λ¨μλ‘ κΉλ°μ΄λ μ μ΄κΆμ νλ‘μΈμ±μκ² μκ³ μλμ΄λ Έλ νλ‘μΈμ±μ λͺ λ Ήμ λ°λΌμ LEDμ μνλ³νλ§ μν€κ² λ©λλ€.
import processing.serial.*;
Serial mPort;
void setup() {
println(Serial.list());
mPort = new Serial(this, Serial.list()[0], 9600);
}
void draw() {
mPort.write(1);
delay(1000);
mPort.write(0);
delay(1000);
}
μ리μΌν΅μ λΌμ΄λΈλ¬λ¦¬λ₯Ό κ°μ Έμ΅λλ€. κ·Έλ¦¬κ³ Serial ν΄λμ€λ₯Ό νλμ κ°μ²΄ λ³μ(mPort)λ‘ μ μΈνκ³ μΈμ€ν΄νΈ ν΄μΌν©λλ€. mPort = new Serial(this, Serial.list()[0],9600) μ΄λ κ² ν΄μ μ리μΌν΅μ κ°μ²΄κ° λ§λ€μ΄ μ§λλ€.
μ΄κ±Έ ν΅ν΄μ mPort.write(1)μ byteμ μ‘ λͺ λ Ήν¨μμΈλ° print(), println()μΌλ‘ κ·Έλμ μ¨μμ§λ§ μ΄λ²μλ write()ν¨μλ₯Ό μ¬μ©ν΄ λ΄ λλ€.
μ΄κ³³μ κ°μ μ μ리μΌν΅μ ν¨μλ€μ 보μκ³ μ¬μ©νμλ©΄ λ©λλ€.
νλ‘μΈμ±μμ 1μ΄ λ¨μλ‘ κΉλ°μ΄λ λͺ λ Ή μ리μΌν΅μ μ ν΅ν΄μ 1(HIGH)κ³Ό 0(LOW)κ°μ μλμ΄λ Έλ‘ 보λ λλ€.
void setup(){
Serial.begin(9600);
pinMode(13,OUTPUT);
}
void loop(){
byte val;
if(Serial.available()) {
val = Serial.read();
digitalWrite(13,val);
}
}
μλμ΄λ Έλ if 쑰건문μΌλ‘ Serial.available()ν¨μλ‘ ν΅μ λ°μ΄ν°κ° λ€μ΄μλμ§ νμΈνλ λ¬Έμ₯μ λλ€. λ°μ΄ν° λ€μ΄ μλ€λ©΄ 0μ΄ μλκ³ λ°μ΄ν°κ° λ€μ΄μ€μ§ μμλ€λ©΄ μ΄ Serial.available()ν¨μμ λ°νλλ κ°μ 0μΌλ‘ ifλ¬Έ μ΄νλ₯Ό μννμ§ μμ΅λλ€. μ½κ² λ§ν΄μ ν΅μ μ ν΅ν΄ λ°μ΄ν°κ° λμ°©νλ€λ©΄ μ°Έμ΄κ³ λμ°©νμ§ μμλ€λ©΄ κ±°μ§μ΄λ€ μ΄κ±Έ 체ν¬νλ€κ³ μκ°νμΈμ.
λ°μ΄ν°κ° λμ°©νμΌλ©΄ Serial.read()ν¨μλ‘ λ°μ΄ν°λ₯Ό μ½μ΅λλ€. μλμ΄λ Έμμ readλΌλ λ¨μ΄κ° 보μ΄λ©΄ λ μ½λ ν¨μꡬλ νκ³ μκ°νμλ©΄ λ©λλ€. νλ‘μΈμ±μμ λμ΄ μ¨ 1κ³Ό 0μ κ°μ΄ val λ³μμ μ μ₯λ©λλ€. νλ‘μΈμ±μμ byte λ¨μλ‘ μ«μλ₯Ό μ μ‘νκ³ μλμ΄λ Έμμλ byteλ³μλ‘ κ·Έ κ°μ λ°μμ μ μ₯νκ² λ©λλ€.
μ€μ μλμ΄λ ν΅μ μ ν΅ν΄μ 1κ³Ό 0μ μ½μ΄ μ€κ³ κ·Έ κ°μ κΈ°μ€μΌλ‘ LEDλ₯Ό On/Off νκ² λ©λλ€.
digitalWrite(13,val);
μ΄ νλ¬Έμ₯μ΄ μλμ΄λ Έκ° νλ μνμ λλ€. κ·Έλ¬λ©΄ λ°λμ κ²½μ°λλ μ¨λμΌμκ° μλλ° κ·Έ μ¨λ κ°μ νλ‘μΈμ±μ 보λ΄μ μκ°ν νκ³ μΆλ€λ©΄ λ°©κΈν μ리μΌν΅μ μ½λ©λΆλΆμ μλμ΄λ Έμμ 보λ΄κ³ νλ‘μΈμ±μμ μ½λλ‘ λ°κΏμ μ½λ©νλ©΄ λκ² μ£ .
λλ²μ§Έ μκ°μλ νλ‘μΈμ±μμ μλμ΄λ Έ λμμ μ΄νλ μ½λ©κΉμ§ μ λΆ νμμ΅λλ€. μμμ νλ‘μΈμ±κ³Ό μλμ΄λ Έκ° κ°λ³μ μΌλ‘ μ½λ©νκ³ μ리μΌν΅μ μΌλ‘ μ£Όκ³ λ°μ LED κΉλ°μ΄λ μμ μ²λΌ μ½λλ₯Ό λ³κ²½ν΄ λ³΄μ£ .
import processing.serial.*;
Serial mPort;
boolean cnt = false;
void setup() { // this is run once.
// set the background color
background(255);
// canvas size (Integers only, please.)
size(600, 600);
println(Serial.list());
mPort = new Serial(this, Serial.list()[0], 9600);
}
void draw() { // this is run repeatedly.
rect(10,10,580,300,10);
rect(200,350,200,100,10);
}
void mousePressed(){
if(mouseX>200 && mouseX<400 && mouseY>350 && mouseY <450){
cnt=!cnt;
}
if(cnt==true){
fill(255,0,0);
mPort.write(1);
}
else{
fill(0,0,0);
mPort.write(0);
}
}
(κΈ°λ³Έ μμ )
boolean cnt = false;
void setup() { // this is run once.
// set the background color
background(255);
// canvas size (Integers only, please.)
size(600, 600);
}
void draw() { // this is run repeatedly.
rect(10,10,580,300,10);
rect(200,350,200,100,10);
}
void mousePressed(){
if(mouseX>200 && mouseX<400 && mouseY>350 && mouseY <450){
cnt=!cnt;
}
if(cnt==true)fill(255,0,0);
else fill(0,0,0);
}
μ΄ μμ€μμ νλ‘μΈμ±μμ μλμ΄λ Έ λ¬Έλ²μ μμμ μ€λͺ νμΌλ κΈ°λ³Έ μμ μμ€μλ€κ° μλ μ½λ© λΆλΆμ μ½μ νμλ©΄ λ©λλ€.
import processing.serial.*;
Serial mPort;
void setup() { // this is run once.
println(Serial.list());
mPort = new Serial(this, Serial.list()[0], 9600);
}
void draw() { // this is run repeatedly.
}
void mousePressed(){
mPort.write(1);
}
}
μ¬κΈ°μ, mPort.write(κ°)μ λ²ν΄μ λλ μλ μμμ λ°κΎΈλ κ³³μλ€ LED μ μ΄ν λΆλΆμ μλμ΄λ Έλ‘ λ°μ΄ν°λ₯Ό μ μ‘νλ λͺ λ Ήμ μ½μ νλ©΄ λκ² μ£ .
if(cnt==true) {
//arduino.digitalWrite(ledPin,Arduino.HIGH);
mPort.write(1);
fill(255,0,0);
}
else{
//arduino.digitalWrite(ledPin,Arduino.LOW);
mPort.write(0);
fill(0,0,0);
}
void setup(){
Serial.begin(9600);
pinMode(13,OUTPUT);
}
void loop(){
byte val;
if(Serial.available()) {
val = Serial.read();
digitalWrite(13,val);
}
}
μλμ΄λ Έλ μ½λκ° λμΌν©λλ€.
κ²°κ³Όλ μλ μ¬μ§μ²λΌ μ μμ μΌλ‘ λμ νμ΅λλ€.
λΌμ¦λ² 리νμ΄μ νλ‘μΈμ±κ³Ό μλμ΄λ
Έ IDEλ₯Ό μ€μΉν΄μ΄ κ·Έκ³³μμ μ€νν κ³Όμ μ λ
Ήν νλ€μ. κ°λ¨ν μ΄ν΄λ³΄λλ‘ νμΈμ.
Processingμ μ΄μ©ν μλμ΄λ
Έ μ μ΄ I (μλμ΄λ
Έ)
Processingλ₯Ό μ΄μ©ν μλμ΄λ
Έ μ μ΄ II (μλμ΄λ
Έ)
νλ‘μΈμ± ν΄μ΄ μκ°ν νκΈ°μ μ¬λ°λ νλ‘κ·Έλ¨ μ λλ€. κ·Έλ¦¬κ³ κ·Έ νλ‘μΈμ±μ λκ°μ§ ννλ‘ μλμ΄λ Έλ₯Ό μ κ·Ό ν μ μμ΅λλ€. μ¬μ©νκΈ°μ λ°λΌ μ₯λ¨μ μ΄ μμ΅λλ€. 첫λ²μ§Έ νλ‘μΈμ±μ΄ μλμ΄λ Έ μ½λ©κΉμ§ μ λΆνκ² λλ©΄ μ½λ©λμ΄ λμ΄λκ³ λ³΅μ‘ν΄ μ§ μ μμ§λ§ νλ‘μΈμ±μμ μ§μ μ μ΄νλκΉ λΉ λ₯΄κ² λΆν μ μ΄μ μκ°ν μ½λ©μ μ§ν ν μ μμ΅λλ€. νμ§λ§ νλ‘μΈμ±κ³Ό μλμ΄λ Έκ° κ°λ³μ μΌλ‘ μ½λ©μ΄ λ€μ΄κ°λ©΄ λ§€ μ€νλλ§λ€ μλμ΄λ Έλ νλ‘μΈμ±μ λ§μΆ°μ μ½λ©νκ³ μλμ΄λ Έ μ½λ©κ³Ό νλ‘μΈμ± μ½λ©μ λ§μΆλ μμ μ κ³μ ν΄μΌ νλ λ¨μ μ΄ λ°μ ν©λλ€. νλ‘μΈμ±κ³Ό μλμ΄λ Έκ° κ°λ³μ μΌλ‘ μ½λ©ν΄μΌνλ€λ μ₯μ μ΄μ λ¨μ μ΄ λ μ μμ΅λλ€.
κ·Έλ¬λ©΄ νλ‘μΈμ±μμ 무쑰건 μ½λ©μ μ λΆνλκ² μ’λκ³ λ¬ΌμΌμ λ€λ©΄ κΌ κ·Έλ μ§λ μμ΅λλ€. μλμ΄λ Έ μ½λ©μ κΈ°μ‘΄μ λ°©μμΌλ‘ κ·Έλλ‘ μ§ννλ©΄ λ©λλ€. μ΄λ―Έ μ½λ©λ ννμμ λ³κ²½ν νμ μμ΄ μ리μΌν΅μ λΆλΆλ§ μ½λ©ν΄μ£Όλ©΄ μλ‘ ν΅μ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μΌλ©΄μ μ μ΄λ₯Ό νλ©΄ λκΈ° λλ¬Έμ μ¬ννκ² μλμ΄λ Έμ½λ©λ§ μ κ²½μ°λ©΄ λ©λλ€. νλ‘μΈμ±λ μλμ΄λ Έλ‘ λ³΄λΌ λ°μ΄ν°λ λ°μ λ°μ΄ν°λ§μ κΈ°μ€μΌλ‘ μκ°ν νλ©΄ λλκΉ κ΅¬μ§ μλμ΄λ Έ μ½λ©κΉμ§ μ κ²½ μΈ νμκ° μμ΄μ§λλ€. κ΄ν νκ³³μμ ν©μ³μ§λ©΄ κ°λ μ±λ λ¨μ΄μ§κ³ 볡μ‘ν΄ λ³΄μ΄κ³ λΆνΈν μ½λ©μ΄ λ μ μμ΅λλ€.
λλ€ μ₯λ¨μ μ΄ μκ³ μμ μ΄ μ½λ©νκΈ°μ νΈν κ±Έ μ ννμ μ μ€ν νμλ©΄ λ©λλ€.