2014-11-01 2 views
-1

죄송합니다.이 같은 게시물을 만들어 죄송합니다.하지만 모든 것을 시도하고이 작업을 수행 할 수 없습니다!Arduino Xbee 데이터 구문 분석

두 개의 arduinos가 xbee 's에 연결되어 있습니다.

하나는 데이터를 수신하는 컴퓨터에 연결되어 있고 다른 하나는 전원이 잘 공급되고 Wii과 nunchuck이 연결되어 있습니다. 메신저가 좋은 데이터를 얻는 이유는 xbee없이 테스트했기 때문입니다. 하지만 직렬로 데이터를 보내고 다른 것을 수신하여 다른 용도로 사용하고 싶지만 작동하지 않는 것 같습니다. 닌텐도와

아두 이노 : 여기에 코드입니다

#include <Wire.h> 
#include <Servo.h> 
const int vccPin = A3; 
const int gndPin = A2; 

Servo servo; 

const int dataLength = 6; // Number of bytes to request 

static byte rawData[dataLength]; 

enum nunchuckItems { 
    JoyX, JoyY, accelX, accelY, accelZ, btnZ, btnC}; 

void setup() 
{ 
    pinMode(gndPin, OUTPUT); 
    pinMode(vccPin, OUTPUT); 
    digitalWrite(gndPin, LOW); 
    digitalWrite(vccPin, HIGH); 
    servo.attach(9); 

    delay(1000); 
    Serial.begin(9600); 

    nunchuckInit(); 
} 

void loop() 
{ 
    nunchuckRead(); 



    int joyX = getValue(JoyX); 
    int joyY = getValue(JoyY); 


    Serial.print(joyX); 
    Serial.print(","); 
    Serial.print(joyY); 
    Serial.println(); 



    } 

    void nunchuckInit(){ 

    Wire.begin(); 
    Wire.beginTransmission(0x52); 
    Wire.write((byte)0x40); 
    Wire.write((byte)0x00); 
    Wire.endTransmission(); 

    } 

static void nunchuckRequest(){ 
    Wire.beginTransmission(0x52); 
    Wire.write((byte)0x00); 
    Wire.endTransmission(); 
} 

boolean nunchuckRead(){ 

    int cnt = 0; 
    Wire.requestFrom(0x52, dataLength); 

    while (Wire.available()){ 

    rawData[cnt] = nunchuckDecode(Wire.read()); 
    cnt++; 
    } 

    nunchuckRequest(); 
    if (cnt >= dataLength) 
    return true; 
    else 
    return false; 

} 


static char nunchuckDecode(byte x){ 
    return (x^0x17) + 0x17; 

} 

int getValue(int item){ 

    if (item <= accelZ) 
    return (int)rawData[item]; 
    else if (item == btnZ) 
    return bitRead(rawData[5], 0) ? 0: 1; 
    else if (item == btnC) 
    return bitRead(rawData[5], 1) ? 0: 1; 

} 

어떻게 내가 잡 아두 이노에이 데이터를받을 수 있을까?

제 학교 프로젝트에 도움주세요!

감사합니다.

답변

0

터미널을 읽을 때 (Xbee없이) X, Y가있는 줄이 보입니까? 때문에 arduino 터미널 그것을 볼 수있는 문제는 Xbee에서 비롯됩니다.

터미널에 회선이 보이면 Xctee로 Xbee를보십시오. Xbee에서 panID를 설정해야 통신 할 수 있습니다. 송신자의 SL 주소를 수신자의 DL 주소와 같게해야합니다 (SH/DH도 마찬가지 임).

당신이 사용하는 Arduino, Xbee, 방패를 우리에게 말할 수 있습니까? 더 자세한 내용을 알려면 도움이 될 수 있습니다.