Wiiヌンチャクをハックしてコントローラにする。
うす、今月の目標はPV数300です。がんばるのは読者の貴方です、100回くらいリロードしてください
Wiiのヌンチャクです。
まあこれっすね。アフィ載せて
Wiiスポーツとかでサンドバックをぼこぼこにはりたおすための左手用デバイスです。
じつはこれのハックってけっこうメジャーなことなんですよね。
というのも
これ自体に
- 加速度センサ
- ジョイスティック
- ボタン二つ
がついてるんですよね、入力用のデバイスとしてはかなり完成度が高いんです。
すいません天下の任天堂様が出しているデバイスに「完成度が高い」とは.....。
しかもデザインも完成されてますし既存のものをいじくるのってクッソ楽なんですよ。
今回はこれをArduinoで扱おうと思います。
して
ヌンチャクを扱うに至ってこれから逃げてはいけないってものがあります。
I2C通信というものです。まあ簡単に書くと通信規格のひとつですね、まちがってたらごめん。
僕これめっちゃ嫌いなんですよ、使うモジュールはわざわざI2Cを使ってるものじゃないものを選んでましたし(抵抗値とかを読み取ってた)正直逃げてました。
でも今回のヌンチャクはどうやらI2C通信をする必要があるみたいです。逃げちゃだめだ...じゃないですけどさすがにできないことから目をそらし続けるのもストレスなので今回はやってみようと思います。
家にあったヌンチャクを切ります。中から緑、赤、黄色、赤のコードが出てきました。
それらが細い銅線の束に包まれるようになっていました。オーディオ機器とかに使うコードには外からのノイズを遮断するために2重になったコードを使うときもあると聞いたことがありますが、それのやつですかね。わかんね
ヌンチャクとの通信のためのプログラムです。
ネットからヌンチャクのためのライブラリを引っ張ってきます。Arduino公式で紹介されているのにはビックリしました。
でもその公式で紹介されてるライブラリって今のIDEとバージョンが違って?使えないんですよね(書き換える必要有り?)
めんどくさいこと抜きにして書けたのが上に載せたGithubのやつです。
そのままArduinoのライブラリに突っ込んでよきです。
スケッチ例をそのまま書き込んで動作確認です。
わかりますかね...今使ってるGIF変換が6秒までって制限があるのでわかりにくいかもしれませんが完全に加速度センサ、ジョイスティック、czボタンの状態を検出しています。
して
はい、検出はできましたがこれでなにかコントロールしてみたいですよね。
そこで。
物置にあったトラック・ホイールセット(この後リンク先張っとくんで興味あったらそこから買ってね)を引っ張り出して...
どどーん!
はいっ!タミヤの技術結集ってかんじですね。簡単。
Arduinoに直接ぶっ刺せるようにした基板ですが、モータードライバを使いまわせるようにピンソケットをハンダ付けしただけの簡単なものです。
これでドライバICにハンダ付け時の熱を余計に伝えることなく、かつ、今回の工作が終わったら即ドライバICをとりだしてぶっ壊せるようにしてあります。
動かしてみましょう。
は???????
いろいろやってる内に単三電池消耗しちゃったかなあ...ギアなんか噛んじゃったかなあなんて試してみます。
なんかベルトが張りすぎだったんですかね...? ベルト使った車ってそれだけでかっこいいんで次回はこれの研究にしましょうか。
ヌンチャクですけどしっかりコントローラーとしてコントローラーしてますね!(?)
モニタ上で数値の変移を見るのもいいですけど、こうやってラジコンみたいにしてうごかすのも良さげですね。
まとめ
I2C通信を克服すると言いましたが今回は完全にコピペですね...まあでも今はこれで良いかなって...。
結構完璧に動きましたしね(人のプログラムでなに言ってんだって感じありますが;)
Wiiヌンチャクですが、傾きジョイスティックさらに2個のボタンと本気で便利ですよね!
ちょっと応用して何か作ってみたいです。既製品ということだけあってデザインも完成されててグッドです。
今回使ったタミヤ製品達です。
[ この記事はブログ投稿者の憶測や考えによりつくられています。
よって書いてある内容に誤りや言い間違いがあるかもしれません。もし修正したほうがいい場所や「こういった言い方のほうが”ソレっぽい”よ」などがありましたら後に記載してあります、リンク先のツイッターアカウントに教えてくださると嬉しいです:) ]