前回の続きです。
今回はこの振動モーターをヌンチャクコントローラーに内蔵してみます。
小さいのでコントローラー内部の隙間に入れることが可能です。内側にグルーガンでしっかりと固定しました。
電源コードはコントローラーの後方を少しだけ削って引き出しました。
電源コードが邪魔にならないようにコントローラーのケーブルにまとめます。あとはコントローラーをPro Microに接続してPlaystation Classicにつなぐのですが、ヌンチャクコントローラー単体ではボタンが少なすぎてプレステゲームでの使用には無理があります。
そこで以前にPlaystation Classicにつないだこともある、マイコンソフト製のジョイスティックと組み合わせて1つのコントローラーに仕上げることにしました。このジョイスティックは中の電子部品は取り除いてあり、ボタンの配線を外に引き出してあるものです。スティック・ボタン✕9、スライドスイッチ✕1、GNDの11本の線が出ています。
ヌンチャクコントローラーだけが振動するのではつまらないので、壊れたUSBジョイパッドから取り出した振動モーター2個もこのジョイスティックに付けてみます。
合計3個のモーターを回すことになりますが、1つのモーターに100mA流したいので300mAの電流をスイッチングする必要が有ります。前回まではトランジスタ2SC1815を使っていましたが、これだと電源が3Vのとき最大133mAしか流せません。モーターごとに2SC1815を用意するという手もありますが、部品も配線も増えてしまい面倒なので、今回はNチャネルパワーMOSFET(IRLU3410PBF)を使います。
FETは(バイポーラ)トランジスタと同じように使えますが、トランジスタが電流でスイッチングを行うのに対して、FETは電圧でスイッチングを行います。
使用するパワーMOSFETは大電流を扱えるFETです。許容損失79Wなので、300mA程度の電流は余裕で流せます。元々赤外線リモコンに使うつもりでしたが、必要なくなったので使わずにほったらかしになっていた部品でした。今回、使うことが出来て無駄にならずにすみました。
MOSFETを使った振動モーター周りの回路はこうなります。
電源はモーター3個動かすのに乾電池3Vでは心もとないので、リチウムイオンバッテリー(3.7V)を使うことにしました。モーターは3個並列につなぎます。逆起電圧を逃がすダイオード1N4148は平均順電流200mAなので、各モーターにつけることにしました。
Arduinoとゲート間の1kΩの抵抗はスイッチング動作安定のために入れるそうです。10kΩはプルダウン抵抗です。
ヌンチャクコントローラーはこれまでは3.3Vで動作させていたのですが、5Vでも大丈夫らしいので今回は5V動作のPro Micro(互換機)を使用してみます。
配線は多いですが、簡単な回路なのですぐに基板に部品をハンダ付けしてしまいました。
この基板にヌンチャクコントローラーとジョイスティックをつなげました。
大きめ振動モーターはジョイスティックのケースの側面にグルーガンで固定しました。
特殊な構成のデバイスなので、利用価値はないでしょうが一応スケッチをアップしておきます。
ProMicroNunchuckStickXinput.ino
ヌンチャクコントローラーはPro MicroとI2Cで接続しています。スケッチで使用しているキャリブレーション値は、こちらのキャリブレーション用スケッチを手直しして計測しました。
マイコンソフトのジョイスティックはデジタル入力でスイッチのON/OFFを読み取ります。Xbox360コントローラーと比べるとまだボタン数が少ないので、使用頻度の低いボタンは割り当て済みのボタンに重複して割り当てて、ジョイスティックのスライドスイッチの切り替えによって使えるようにしました。切り替え時にLEDも点灯させて、ボタンの状態を確認できるようにしています。
それでは実際にゲームで使用してみます。いつものように鉄拳3で遊んでみると、3つのモータが一斉に振動しました。ヌンチャクコントローラーの振動はシャープな感じで手のひらにビンビン伝わってきます。ケースに取り付けたモーターは左右の重りが違うので、ケースがガタガタと不安定に振動します。振動だけでなくモーターの重りがクルクル回転しているのも見えるので、なんだか賑やかで楽しいデバイスになりました。
特に賑やかなのがGダライアスで遊んでいるときで、敵をキャプチャーするとショットのたびに振動するようになり手に伝わってくる衝撃とガタガタと回り続けるモーターでかなり楽しい感じになります。
ちなみにプレイステーションエミュレータでヌンチャクコントローラーのアナログスティックを使うときは、Retrobootのメニューで"設定→入力→ポート1コントロール→アナログのデジタル化のタイプ→左のアナログ"を設定しておきます。必要なら"メインメニュー→メイン設定ファイル→現在の設定を保存"を実行しておきましょう。
ここまで振動モーターで色々楽しめました。まだまだモーターは残っているので、そのうちにまた何か振動させて遊びたいと思います。
最新の画像[もっと見る]
- ラスベリーパイのベアメタル環境でLVGLを使う 6日前
- ラスベリーパイのベアメタル環境でLVGLを使う 6日前
- ラスベリーパイのベアメタル環境でLVGLを使う 6日前
- ILI9341搭載のタッチパネルをLVGLで利用する 2週間前
- ILI9341搭載のタッチパネルをLVGLで利用する 2週間前
- ILI9341搭載のタッチパネルをLVGLで利用する 2週間前
- ILI9341搭載のタッチパネルをLVGLで利用する 2週間前
- ILI9341搭載のタッチパネルをLVGLで利用する 2週間前
- ILI9341搭載のタッチパネルをLVGLで利用する 2週間前
- ILI9341搭載のタッチパネルをLVGLで利用する 2週間前
※コメント投稿者のブログIDはブログ作成者のみに通知されます