前回に引き続き、ジャイロセンサで半音、オク上げ実装をします。
1. 実装
|
わかりやすい図 |
画像にするとこんな感じです。 オルタネイト(トグル)は、タクトスイッチによる実装の場合チャタリング(スイッチの動作のぶれ)の処理などが大変そうですが、今回は角速度をスイッチにするのでその辺考えなくてすみました。if文で0→1の立ち上がりのときのみオクターブや半音の状態を True にし、各状態が True のときのみ対応した処理を行い…というふうにするだけなので、比較的楽です。
if gyro1 != gyro1_pre and gyro1 == True:
if ocstatus == False:
ocstatus == True
else:
ocstatus == False
もちろんセンサ側の感度調整やプログラム側の短縮など改善点は多そうです。
2. でもなんか違くない?
と、一応仕様通りに動くようにできたものの、思い通りでない部分が多いです。角速度の検出なので、腕を下にブンと振ってもオクターブは上がるし、ひねって半音上げたあとソロリソロリと元にもどしてもう一度ひねると半音下がります。そうではなくて、ひねっている間だけシャープにしたり、腕を上げたときだけオクターブ上げたりしたかったはず。
|
悲しい |
Ardubone でチルトセンサを使ってやっていた、モーメンタリ動作のほうが仕様にあってるんですよね。ジャイロセンサでは1.での実装が限界なのかな?と思います。センサの追加購入も考えていますが、とりあえずはジャイロセンサだけで頑張ってみます。
買ってみたいセンサ:
パララックス 4方向チルトセンサー
0 件のコメント:
コメントを投稿