죄송합니다.이 같은 게시물을 만들어 죄송합니다.하지만 모든 것을 시도하고이 작업을 수행 할 수 없습니다!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;
}
어떻게 내가 잡 아두 이노에이 데이터를받을 수 있을까?
제 학교 프로젝트에 도움주세요!
감사합니다.