프로세싱하고 아두이노를 연결해서 동영상을 제어하는걸 공부중입니다.
가변저항을 움직이면 속도가 변하고 버튼을 누르면 동영상 일정부분으로 점프를 하도록요
가변저항은 튜토리얼보면서 연결을 잘했는데 버튼을 연결하려니 막막합니다. 튜토리얼을 보고 따라했는데 전혀 반응도 안하구요..그래서 빼고 다시 작성을 해보려는데 막막하네요..
나름 쉬운코딩이라 생각했는데 막혀서 답답합니다.
어떤식으로 코딩을 짜야 버튼이 작동할까요?
아두이노 코드
아두이노에서는 버튼 가변저항 둘다 잘 작동합니다.
int switchPin = 7;
void setup() {
// put your setup code here, to run once:
pinMode(13,OUTPUT);
pinMode(switchPin, INPUT);
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
int sensorValue = analogRead(A0);
if(digitalRead(switchPin) == HIGH){
Serial.write(2);
digitalWrite(13,HIGH);
}else{
Serial.write(1);
digitalWrite(13,LOW);
}
if(sensorValue>512){
}else{
}
Serial.println(sensorValue/4);
delay(100);
}
프로세싱코드
import processing.serial.*;
Serial myPort;
import processing.video.*;
Movie mov;
void setup(){
println(Serial.list());
myPort = new Serial(this,Serial.list()[1],9600);
size(600,400);
background(0);
frameRate(30);
mov = new Movie(this, "transit.mov");
mov.loop();
}
String val;
void draw(){
float md = mov.duration();
float mt = mov.time();
if (mov.available()) { //play
mov.read();
}
image(mov, 0, 0);
if (mt > md/2.0) { // test
line(0, 0, width, height);
}
if (10 < mt && mt < 11){
mov.jump(0.1);
}
println(mt);
if(myPort.available()>0){ //가변저항스피드
String val = myPort.readStringUntil('\n');
if(val !=null){
int number = int (val.trim());
//background(128);
float newSpeed = map(number, 0, width, -1, 5);
mov.speed(newSpeed);
// text(nfc(newSpeed,2)="X",10,30);
//ellipse(width/2,height/2,number,number);
}
if ("3High".equals(val)){ // 버튼을 인지시키려다 실패한 부분
fill(255,200,200);
ellipse(60,20,100,100);
}
if ("3Low".equals(val)){
fill(200);
ellipse(250, 250, 100, 100);
}
}
|