Ch4_1. 가속도센서 내장 Wii 구동하기
학습 내용
조이스틱기능과 가속도센서를 내장한 WiiController의 센서값을 PC에서 시리얼통신을 통해 디스플레이 할수 있습니다.
배선도 & 회로도
배선 사진
코딩

#include "I2CConfig.h"
#include "WiiNunchuckReader.h"
#define LOOP_DELAY 1 // seconds
// global declarations
Serial serial(USBTX, USBRX);
void ReadAndReport(WiiNunchuckReader* const nchk, const char* const portname)
{
int bufSize = 0;
char* bufPtr = NULL;
bool debug = true;
nchk->RequestRead();
serial.printf("%s: ", portname);
if (debug)
{
bufSize = nchk->getBufferSize();
bufPtr = nchk->getReadBuf();
if (bufPtr != NULL)
{
for (int i = 0; i < bufSize; i++)
{
serial.printf("%x ", bufPtr[i]);
}
serial.printf("\r\n");
}
}
serial.printf("%d\t", nchk->getButtonZ());
serial.printf("%d\t", nchk->getButtonC());
serial.printf("%d\t", nchk->getAccelX());
serial.printf("%d\t", nchk->getAccelY());
serial.printf("%d\t", nchk->getAccelZ());
serial.printf("%d\t", nchk->getJoyX());
serial.printf("%d\r\n", nchk->getJoyY());
serial.printf("\r\n");
}
int main()
{
WiiNunchuckReader nchkA(I2CPort_A::SDA, I2CPort_A::SCL);
WiiNunchuckReader nchkB(I2CPort_B::SDA, I2CPort_B::SCL);
while (true)
{
ReadAndReport(&nchkA, "PORT A");
ReadAndReport(&nchkB, "PORT B");
wait(LOOP_DELAY);
}
return EXIT_SUCCESS;
}
라이브러리
A program allowing the output of one or two Wii Nunchucks to be read via I2C and decoded for use.
학습 참고
Please log in to post comments.
