2013-08-21 1 views
1

키보드로 WASD를 통해 제어 할 수있는 텔레프레즌스 로봇을 시리얼로 제작하기로 결정했습니다. 나는 부품이 도착할 때까지 기다렸는데, WASD 키를 사용하여 LED를 켜고 처리하는 테스트를 시작했다.키보드로 Arduino 처리하기

import processing.serial.*; 
import cc.arduino.*; 
Serial myPort; 
Arduino arduino; 

void setup() { 
    println(Arduino.list()); 
    arduino = new Arduino(this, Arduino.list() [1], 57600); 
    arduino.pinMode(12, Arduino.OUTPUT); 
    arduino.pinMode(11, Arduino.OUTPUT); 
    arduino.pinMode(9, Arduino.OUTPUT); 
    arduino.pinMode(10, Arduino.OUTPUT); 
} 

void draw() { 
    if (keyPressed == true) { 
    if (key == 'w' || key == 'W') { 
     arduino.digitalWrite (12, Arduino.HIGH); 
    } 
    if (key == 's' || key == 'S') { 
     arduino.digitalWrite (11, Arduino.HIGH); 
    } 
    if (key == 'a' || key == 'A') { 
     arduino.digitalWrite (9, Arduino.HIGH); 
    } 
    if (key == 'd' || key == 'D') { 
     arduino.digitalWrite (10, Arduino.HIGH); 
    } 
    else { 
     arduino.digitalWrite (12, Arduino.LOW); 
     arduino.digitalWrite (11, Arduino.LOW); 
     arduino.digitalWrite (9, Arduino.LOW); 
     arduino.digitalWrite (10, Arduino.LOW); 
    } 
    } 
} 

'D'키를 누르면 모든 것이 정상적으로 작동합니다. 그것을 누를 때마다 (또는 마지막에 사용 된 다른 문자) LED가 켜지지만 키를 놓으면 꺼지지 않습니다. LED 핀을 변경하려고 시도했지만 "if"문은 있지만 마지막 문은 항상 동일한 문제가있는 순서입니다. Arduino는 StandardFirmata 스케치를 실행 중입니다. 2.0.2에서 나에게 오류가 발생했기 때문에 Arduino Uno, Win 7 x64 및 Processing 1.5.1을 사용하고 있습니다. 어떤 도움이라도 좋을 것입니다. 그것은 당신의 '다른'문처럼 보이는

감사

답변

0

잘못된 '경우'블록을 받고있다. 키를 누르지 않으면 Arduino.LOW를 핀 9-12에 쓰도록 목표에 따라 키가 눌려져 있어야합니다. 기본적으로 브래킷을 이동하십시오.

void draw() { 
    if (keyPressed == true) { 
    if (key == 'w' || key == 'W') { 
     arduino.digitalWrite (12, Arduino.HIGH); 
    } 
    if (key == 's' || key == 'S') { 
     arduino.digitalWrite (11, Arduino.HIGH); 
    } 
    if (key == 'a' || key == 'A') { 
     arduino.digitalWrite (9, Arduino.HIGH); 
    } 
    if (key == 'd' || key == 'D') { 
     arduino.digitalWrite (10, Arduino.HIGH); 
    } 
    } 
    else { 
     arduino.digitalWrite (12, Arduino.LOW); 
     arduino.digitalWrite (11, Arduino.LOW); 
     arduino.digitalWrite (9, Arduino.LOW); 
     arduino.digitalWrite (10, Arduino.LOW); 
    } 
} 
+0

감사합니다. – user2704765