言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

「按摩の達人」とりあえず動作確認完了。

P1060261

来週の11月3日(日)、4日(月) Maker Faire Tokyo 2013 http://makezine.jp/event/mft2013/ で出展するものがとりあえず動いた。去年「ミクの肩たたき」を作った時に遊んでくれた人(多分服部さん?)が「太鼓の達人と組み合わせたらいいんじゃない?!」とアイデアをくれたのでそのまま作りました。私としては技術的な部分に興味があって、ネタは何でも良かったんだけど、それなりに面白い物が出来ました。それぞれ部品を解説して行きます。

TOLTON (YAMAZEN マッサージャー YHM-82)

この肩にかける方式のマッサージャーは去年から注目していました。「ミクの肩たたき」で採用したオムロンのハンディマッサージャHM-164 と比べて、腕で持つ必要が無いのと両肩同時に叩ける所が利点です。しかし去年の段階では肩掛け型のマッサージ器は時間的に間に合わないと思ったので採用を見送りました。結果的にそれは正解でした。というのも思ったよりも制御が複雑だったからです。もしも去年肩掛け型を採用していたら「ミクの肩たたき」は完成しなかったでしょう。

以前「ミクの肩たたき」に採用したオムロン HM-164 の場合、制御は単純で、マイコンからサイクリスタ経由で必要なだけモーターを駆動します。連続して信号を加えると振動になり、短いパルスを与えると叩く動作になるので大変シンプルです。

一方で今回の TOLTON のモーターを駆動するには、交流電源の位相とタイミングをあわせる必要があります。TOLTON では、位相を使ってモーターの強弱をコントロールしているため、タイミングを間違えると全くモーターが動きません。このモーターの強弱制御がこの開発における一番の難関でした。

ちなみに、TOLTON では標準でリズムマッサージ機能を備えています。これはあたかも音楽に合わせて叩くようなリズムでモーターが動作すると言うもので、コンセプトとしては「ミクの肩たたき」と非常に似ています。機会があれば開発担当者に発想のヒントを伺ってみたいです。

HM-164 にせよ、TOLTON にせよ、モーターは電源交流の周期に従って動作するので、東日本の場合最大 50Hz の振動を発生させる事が出来ます。一方で、これでは 50Hz の整数倍でないリズムの曲に同期させる事が出来ません。「ミクの肩たたき」ではこの事を知らないで作ったので微妙にテンポがずれてしまう問題が残っています。今後の課題です。

太鼓の達人コントローラー

P1060247

太鼓の達人コントローラーは非常に解析が楽でした。3.3V で動作するという事もあり感電のおそれも無く、回路も素直です。一番の気苦労は「太鼓の達人」コントローラとしての機能を生かし、ゲームをしながらでも TOLTON を動かせるよう、元の回路に影響を与えないで魔改造を行う事でした。

この太鼓の達人コントローラーは Wii リモコンの周辺機器として設計されていて、電源は Wii リモコンから取ります。

ちょっとトリッキーだったのは、太鼓の達人ゲームが動いている時だけコントローラーの電源が入るという作りになっていた所です。開発のためには、ゲーム中もゲームが無い時でも同じように動いて欲しかったので、Wii リモコンからの給電には頼れません。幸い Arduino には 3.3V 電源出力もあるので、そのまま太鼓の達人に供給すれば良いのですが、Wii リモコン側の電源が切れている時に無理やりコントローラー側から供給して壊れないだろうかという事が一番気を遣いました。結果としてはエイヤで何とか動かしてしまいました。

Arduino

P1060270

制御には Arduino UNO R3 とマルツパーツ館で購入したサンハヤトのプロトシールド UB-ARD01 を使いました。最終的な回路図はこんな感じ。フォトカプラ TLP504A を買い足して TOLTON からの交流 SYNC 信号を受け取っています。太鼓からの入力はデジタルピンで受けているのですが、太鼓センサは 3.3V 駆動なので、何もしないでデジタルピンで受けるのは良くないかも知れません。

基板として最初は Sparkfun のプロトシールドを検討したのですが、嵩張るので途中で変えました。他に今回苦労したのは圧着コネクタの利用です。さすがにこれだけ線が増えると RCA プラグを使うのは無理なので色々なコネクタを試しました。コネクタは千石電商が一番便利でした。圧着にはエンジニア 精密圧着ペンチ PA-20 を使いました。

P1060243

P1060239 P1060235 P1060250

QI コネクタ

ピンヘッダにそのまま挿せる形をしています。前後ろがわからないのが不便です。

XH コネクタ http://www.jst-mfg.com/product/detail.php?series=277

ボードに複数の線を繋げるのに便利です。コネクタの形で向きも明確になりま
す。私にはちょっと圧着が難しくいくつも無駄にしました。

SM コネクタ http://www.jst-mfg.com/product/detail.php?series=238

線同士を接続するのに使います。工作はわりと簡単でした。

工作のコツ

今回色々細かいノウハウが溜まりました。

Arduino のプログラムはデバッグ用にいくつも用意する。

本番用、TOLTON テスト用、センサーテスト用と三つのプログラムを用意しました。本番はそれぞれのデバイスを全て接続させないと正しく動作しませんが、TOLTON テスト用は TOLTON のみで、センサーテスト用は太鼓の達人コントローラのみがあれば動作します。問題の切り分けに必須です。

最初からモニタ用 LED を接続しておく。

「按摩の達人」には、モーターと連動して 左右それぞれの LED 接続されています。LED は上記デバッグプログラムとペアになって動作確認に非常に大きな力を発揮します。例えば、LED が点灯するのにモーターが作動するといった場合、問題はプログラム的な物では無くハード側にある事がわかります。

残り作業

そんなこんなで結構進みましたが、まだまだ作業が残っています。ショートしないように部品を配置して固定したり、ケースを作ったり、果たして間に合うのかまだまだ気が抜けません。