2012年8月18日 星期六

Wii Nunchuk 在 Arduino 的使用方法

500x378xmotionxs-controller.jpg.pagespeed.ic.Kwc0VzEbAO B000IMYKQ0-2-lg

Wii Nunchuk 左手把是任天堂 Wii 遊戲機的附件,它搭配 Wii Remote 搖桿用於許多互動遊戲,主要是用來控制遊戲角色的遊動。Nunchuk 上有兩軸 Joystick 搖桿,C 和 Z 兩個按鈕,而且還內建一個可以計算位移的三軸加速計。

Wii Nunchuk 很便宜,很適合作為互動工具。於是,便有人想到可以結合 Nunchuk 與 Arduino 來做一些互動的應用,並且還做出專門用來連接 Arduino 與 Wii Nunchuk 的轉接板 WiiChuck:

wiichuck_adapter2

Wii Nunchuk 走的是 I2C 通訊介面,WiiChuck 它就是把 I2C 用到的腳位 (SCL, SDA, GND, VCC) 拉出來,讓你方便連接 Nunchuk 與 Arduino。

WiiChuck 硬體的連接非常簡單,首先把 WiiChuck 接到 Nunchuk 上:

wiichuck_adapter3

然後再把 WiChuck 接到 Arduino 上就可以了 (注意!必須把 WiiChuck 接到 Arduino 的 Analog Pin 2, 3, 4 5 這四支腳位上!):

wiichuck_adapter1 

接下來就是如何撰寫程式了。在以前,你必須對 I2C 的通訊有一些了解,然後用比較硬派的方式寫程式(比較接近硬體底層的意思,參考這裏)。還好現在已經有比較方便的 WiiChuck Library 可以使用了。

範例

請先到底下的連結取得 Wiichuck library,然後裝到 Arduino 安裝目錄下的 libraries 裏面:

https://github.com/coopermaa/Wiichuck

輸入底下的程式碼 (可在 WiiChuck 的 examples 裏找到,程式名稱為 WiichuckDemo):

將程式上傳到 Arduino 板子上執行,接著打開 Serial Monitor 視窗,便會看到 Wii Nunchuck 傳回的資料了,包括 X, Y 搖桿、XYZ 三軸加速度、C 和 Z 按鈕狀態等:

image

本文圖片大部份取自 http://todbot.com/blog/2008/02/18/wiichuck-wii-nunchuck-adapter-available/

參考資料

0 意見: