Wiiヌンチャクの動作確認しました
以前購入したWiiヌンチャク用(多分ぱちもん)の
ブレッドボードやArduinoに接続するアダプタが到着したので動作を確認しました。
動作確認にはちょっとハマりました。
アダプタはこんな感じの製品です。
Wiiヌンチャクの端子にこんな感じで接続します。
早速、arduinoに接続して動作を確認します。
arduinoでの使い方は次のサイトを参考にしました。
todbot blog - “WiiChuck” Wii Nunchuck Adapter Available
A2 : Lレベル 0V出力 (GND)
A3 : Hレベル 5V出力
A4 : I2C SDA
A5 : I2C SCL
電圧は、3.3V推奨のようですが、5Vでも動作します。

次にプログラムを参考サイトのリンクから入手しArduinoの書き込みます。
todbot/wiichuck_adapter - https://github.com/todbot/wiichuck_adapter
早速動かして見たのですが...
値がちゃんと取れません。プログラムを修正してエラーを返すようにしても
エラーは発生していないようです。
アダプタを抜くと、I2Cの通信エラーとなるのでI2Cのアドレスが正しく、かつ
データ取得も正常のようです。
そこで、以前製作したUART-I2C変換モジュールで動作確認してみました。
接続して、TeraTermからサンプルソースを参考にして、I2Cのコマンドを
送信してみます。
@gA406がデータ取得です。
ただし、読み取り値がFFFFFFFFFFと正常な値ではありません。
「うーん、これは不良品ではないだろうか」
取りあえず、WiiヌンチャクのI2Cコマンド仕様を探して調べてみることに...
多くのサイトで紹介されており、今回使ったコマンドで問題ないようです。
下記のサンプルやI2Cの解説も同じ感じです。
http://www.robotshop.com/media/files/PDF/inex-zx-nunchuck-datasheet.pdf
ところが、下記の資料の中で
http://web.engr.oregonstate.edu/~sullivae/ece375/pdf/nunchuk.pdf
次の文面を発見
To communicate with the Nunchuk,we must send a handshake signal.
If you are using a black Wii Nunchuk, send 2 bytes 0xF0, 0x55 to initialize
the first register and 0xFB, 0x00 to initialize the second register of the Nunchuk.
On a white Wii Nunchuk, send 0x40, 0x00 followed by 0x00.
サンプルソースや、出回っている情報は「白ヌンチャク」のものだけです。
私のは「白ヌンチャク」ですが、ぱちもんなので「もしかしたら...」と思い
「黒ヌンチャク」用のハンドシェイクを行ってみると、
私のは「黒ヌンチャク」のようです。
この修正をArduinoに反映してみると、それっぽい値が取れました。
加速度センサーもちゃんと動いているようです。
I2Cで送信するコマンドは単純なので、IcihoJamでも使えそうです。
(追記)
IchigoJamに、データ取得だけを行うコマンドがありません。
I2CR(I2Cアドレス、送信データアドレス、データ長、受信データアドレス、データ長)
というコマンドは、データ送信付きの受信コマンドのため使えませんでした。
データ長に0を指定すると256バイト送信されます。
今回は諦めることにします。
※上記のIchigoJamに関する記載は古いです。
最新のファームウェア1.2.2βでは利用できます。
(参考情報)
関連記事
LPC810を使ったUART-I2Cブリッジの改良版が出来ました (16/07/21)
LPC810を使ったUART-I2Cブリッジの機能拡張の検討中 (16/07/13)
UART-I2Cブリッジの使い方 - リアルタイムクロックの調査 (15/05/17)
Wiiヌンチャクの動作確認しました (15/05/17) [この記事です]
LPC810を使ったUART-I2Cブリッジがやっと出来ました (15/04/15)
ATtiny13AでUART-I2Cブリッジを試作したが微妙 (15/03/29)
ATtiny13AでUART-I2Cブリッジの製作 - まずその準備3 (15/03/26)
ATtiny13AでUART-I2Cブリッジの製作 - まずその準備2 (15/03/25)
ATtiny13AでUART-I2Cブリッジの製作 - まずその準備 (15/03/24)
公開・ダウンロードサイト
GitHub - LPC810 UART-I2Cブリッジモジュール
« Wii用ヌンチャクを購入しました | トップページ | UART-I2Cブリッジの使い方 - リアルタイムクロックの調査 - »
「arduino」カテゴリの記事
- Arduino IDE+Arduino STM32環境で指定と異なるgccが使われてしまう(2025.01.23)
- Zorin OSでArduino Uno互換機(CH340)が認識しない(2025.01.19)
- Arduino IDE 2.3.4でArduino STM32を利用する(2025.01.12)
- Arduino用 SKK日本語変換ライブラリの開発 その1(2024.12.28)
- NeoPixel(WS2812B)の制御 その5(2024.09.15)
「LPC810」カテゴリの記事
- MCUXpresso IDEのインストール(2019.02.12)
- LPC810を使ってIchigoJamで赤外線リモコン受信を行う(4)(2016.08.17)
- LPC810を使ってIchigoJamで赤外線リモコン受信を行う(3)(2016.08.15)
- LPC810を使ったUART-I2Cブリッジの改良版が出来ました(2016.07.21)
- LPC810を使ったUART-I2Cブリッジの機能拡張の検討中(2016.07.13)
« Wii用ヌンチャクを購入しました | トップページ | UART-I2Cブリッジの使い方 - リアルタイムクロックの調査 - »
コメント