정보나눔

오픈소스하드웨어 프로젝트에 대한 다양한 정보를 나누는 공간입니다.

프로세싱을 이용한 키보드 작동이 안되네요 틀린부분좀 찾아주세요ㅠ
아디항 | 2019-04-25

스위치를 누르면 pc에 키보드가 입력되는 회로입니다.

아두이노는 우노보드입니다.

https://kocoafab.cc/make/view/638 이 코드를 가지고 수정해서 만들었습니다.

 

에러가 나지는 않는데 작동이 안됩니다.

 

아두이노 코드


byte buffer[1024]; 
int bufferPosition;
int sw = 2;
int led = 13;
  
void setup(){
  Serial.begin(9600);
  pinMode(sw,INPUT_PULLUP);
  pinMode(led, OUTPUT);
}

void loop(){
  if (digitalRead(sw) ==  LOW) { 
      Serial.write('a');
      digitalWrite(led, HIGH);
    } 
  else{
      Serial.write('b');
      digitalWrite(led, LOW);
      delay(100);
    }
}

 

프로세싱 코드

 

import processing.serial.*;
import java.awt.*;
import java.awt.event.KeyEvent;

Serial myPort;

boolean temp;
boolean flagX = false;
boolean flagY = false;

void setup() {
  println(Serial.list());
  println(Serial.list()[0]);
  String portName = Serial.list()[0];
  myPort = new Serial(this, portName, 9600);
  myPort.bufferUntil('\n');
}

void draw() {
  serialEvent(myPort);
}
void serialEvent(Serial myPort) {
  String inputString = myPort.readStringUntil('\n');
  try{
    inputString = trim(inputString);
    RobotTest(inputString);
  }
  catch(NullPointerException ne){
    inputString = "0";
  }
}

void RobotTest(String temp) {
  try{
      Robot robot = new Robot();
       robot.setAutoDelay(10);
      if(temp.equals("a")) {
         robot.keyPress(KeyEvent.VK_S);
         robot.delay(5);
         robot.keyRelease(KeyEvent.VK_S);
      }
      if(temp.equals("b")) {
         robot.keyPress(KeyEvent.VK_D);
         robot.delay(5);
         robot.keyRelease(KeyEvent.VK_D);
      }
  }
   catch(Exception e){
    }
}

 

계산대로라면 스위치를 눌렀을때 S가 출력되야하고, 땠을때 D가 출력되야하는데 아무것도 나오질 않네요

아두이노 led는 정상적으로 작동하는 걸 봐서는 회로문제는 아닌거같고

포트 번호도 맞게 입력했는데 어디에 틀린부분이 있는걸까요ㅠㅠ

이전글   |    스마트 홈 블루투스 통신 서보모터 2019-04-23
다음글   |    빔프로젝터 제어 2019-04-27