== ギタコンの自作 試作4 [[PageOutline(start=3)]] === 試作4の内容 ごちゃごちゃしてきた配線をすっきりさせます。 また、加速度センサーを追加して、wailing操作に対応します。 === 試作4で使うもの一覧 試作1,3で使ったものに加えて、以下を使います。 追加費用は、合計で 1300円+発送費用くらい。(別の方法で配線を整理するのであれば、線材の追加は不要) ||名称||値段||(参考)秋月電子の通販コード|| ||~~加速度センサーモジュール x1 ~~[[Thumb(accelerometer.jpg, size=120x125)]] ||~~1個850円程度~~||~~[http://akizukidenshi.com/catalog/g/gM-05153/ 3軸加速度センサモジュール KXR94-2050]~~|| ||各種長さが揃ったジャンパワイヤー [[Thumb(IMG_3643.JPG, size=256x93)]] || 400円程度 ||[http://akizukidenshi.com/catalog/g/gP-05160/ P-05160] || === 配線をすっきりさせる 新しく入手した「短いジャンパーワイヤー」を使って、GNDや5Vの配線を置き換えました。 ジョイスティックのところへの信号線は適当な長さのケーブルが無かったので、やむなく反対側(手前側)のL/R端子に接続を迂回しました。 これで、ケーブルを手前側でまとめれば、そこそこすっきりするかなと思います。 [[Thumb(gtcon-05.jpg, size=512x384, caption=すっきりさせる前。これで実際にギターパートをプレイしろというのは無謀ですね。)]] [[Thumb(IMG_3644_.jpg, size=512x238, caption=短いジャンパーワイヤーを使って、配線をすっきりさせた後。そこそこすっきりした。画面奥側(実際に指が出てくるところ)を邪魔するケーブルはなくなりました。))]] === wailingに対応させる まずは配線から。 [http://myct.jp/arduino/index.php?%E5%8A%A0%E9%80%9F%E5%BA%A6%E3%82%BB%E3%83%B3%E3%82%B5%20KXR94-2050 ここ]を参考にして、加速度センサーモジュールの1,2番ピンに5Vを、3,5番ピンにGNDを接続。6番ピン(Out X)をArduino MicroのA1ピンに、7番ピン(Out Y)をA2に、8番ピン(Out Z)をA3に接続。OutのX,Y,Zの内、どれをどう使うかをまだ決めかねているので、とりあえず全部接続します(苦笑)。 [[Thumb(gt-con-06_bb_.png, size=512x288, caption=配線図。左端に加速度センサーモジュールを設置。)]] [[Thumb(IMG_3648_.jpg, size=512x301, caption=実際に配線してみた。ついでにワイヤーを束ねてみたところ、ずいぶんとすっきりした。)]] === スケッチ修正 難航しています。 とりあえず、この加速度センサーモジュールを上記のように取り付けた場合は、 Out Y (Y軸方向の加速度 / 角度) だけを見ればよさそうなことは分かりました。しかし、試してみると以下の問題が噴出。 * 「勢いよくコントローラーを上げた時」を検出するのは簡単です。「Out Yが一定値以上に素早く上がる」ことを検出すればよいです(下図の(1)のところ)。[[br]]しかし、注意してほしいのが、(1)でクワッと上がった(上方向の加速度が働いた)直後に、下方向にぐわっと加速度が働いていることです。これは、上方向に上げたコントローラーを、どこかの角度で止めようとするために、逆方向(=下方向)の それだけだと、「勢いよくコントローラーを下げた時」にも反応してしまいます。(コントローラを下げて、止めた時に、止めようとする力=上方向への加速度が掛かるため。この時も「Out Yが一定値以上に素早く上がる」ように見えてしまう。下図の(2)'。)[[br]]従って、この下げ止まった時の反射には反応しないように工夫する必要があります。 * ノイズが乗る。例えばピックを上に目一杯上げた時に、カツンとスティックが行き止まりますが、この「カツン」に加速度センサーが反応します(下図の(3)')。[[br]]従って、一瞬だけの加速度入力は無視する必要があります。 [[Thumb(acc-y_rawdata.png, size=406x335, caption=実際のOut Yデータの推移。グラフのX軸は時間(5割増しの値にすると、ms相当の時刻になります))]] [[Thumb(acc-g.png, size=451x225, caption=通常維持時と、Wailing維持時の、重力の掛かり方の違い。Wailing中の方が、Out Yが小さくなる理由がこれ。))]] [[BR]] [[BR]] [[BR]] [[BR]] [[BR]] ・・・・・などと書いていましたが、どうやら「加速度センサー」ではなく「ジャイロセンサー」を使うのがよいらしい・・。 * 加速度センサー: 加速度を取得できる。自身を故意に動かされるような場合は、ここまでに記載したような問題が出て使い物にならない。 * ジャイロセンサー: 角速度を取得できる。自身を故意に動かされても、上記のような問題は出ない。しかし、代わりにドリフト(*)が発生する (*) ドリフト: 誤差が蓄積して、プラマイゼロと見なす基準値がどんどんずれていく現象 ジャイロセンサーを入手の上、もう少し勉強・試行し直してみます。 [[BR]] [[BR]] [[BR]] [[BR]] [[BR]] 更に困ったことに・・・ 秋月電子通商で入手できるジャイロセンサーは、以下の2つがあります。 * [http://akizukidenshi.com/catalog/g/gK-13010/ BMX055を使用したモジュール] (約1300円; 3軸ジャイロセンサーだけでなく加速度センサー・磁気コンパスも内蔵; I^2^C接続) * [http://akizukidenshi.com/catalog/g/gK-04912/ ENC-03RCを使用したモジュール] (約400円; 2軸のジャイロセンサー; アナログ接続) しかし、これらのどちらも、ピンヘッダが接続された形では販売されていないため、 実際に使用する際には自分でピンヘッダをはんだ付けする必要があります。 しかし、このギタコン制作では、最初に「はんだ付けはしない」というコンセプトにしました。 従い、これらのモジュールを使うことはできず、wailingを実現できません。残念!! # 別のモジュールもありましたが、どれも数千円のお値段だったので、購入して試してみる気にはなれませんでした・・・ 仕方がないので、Wailingはボタンとして作っておいて、はんだ付けをしてもいいという人だけはジャイロセンサーを使った回路を追加できる・・・ という形の説明にします。 以下、お安い方の[http://akizukidenshi.com/catalog/g/gK-04912/ ENC-03RCを使用したモジュール]を使って、Wailing機能を実装する例を説明します。 (Wailingボタンを追加する方法は省略。ここまでちゃんと読んでいる人なら難しくない対応のはずなので。) === 複数の入力をまとめて1回で出力する その方が効率的、1ms感覚の出力もキープできる === まとめ