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.