ゲイテッドレーザーサイト その1 (トリガーの検出のために) [PIC]
一般的なレーザーサイトは、常時点灯しており、撃発の前後で動作をかえることはない。
ディレイドレーザーサイトと名をつけたが、何かに関して遅延して発光するわけではないので、良く考えると間違いなので、これからは、ゲイテッドレーザーサイト(Gated Laser Sight)ということにする。
#いきなり仕様変更などとは言わないように。
ゲイテッドとは、門で囲われたということで、昔のシンセドラムのゲイテッドリバーブ(時間幅を限定したリバーブ)という音もあったし、発想は良く似てるので。
レーザーサイトの発光時間に幅を持たせるには、まずトリガーの時刻を検出する必要がある。時刻といっても何時何分何秒みたいな数字が必要なのではなく、
”いま、発射した”
がわかればいいだけではあるが。
APS-3で、検出できそうなトリガーの検出方法は、
・ストライカーがレシーバへ接触したことを電気的に検出する(いわゆるスイッチ)
・ストライカーがレシーバへ激突したことを音響的に検出する(マイクによるスイッチ)
・ストライカー、レシーバを改造し、光学的に検出する
・トリガーの位置を工学的に読み取り、撃発後最終位置を検出する
があげられる。
あげたけど、実質的には、激突音を音響的に検出する以外は、APS-3に対しての改造が必須になるので、不適である。
そこで、銃近傍で、録音した音声により、
再生できない場合、ダウンロードは🎵こちらは、以下のようになっている。
これは、プレートの第一ターゲットへ射撃時の周囲音を、銃近傍で、録音したものである。
開始から、”プレートスタンバイレディ”の音声
3.5秒付近からプレートブザー音
6.4秒付近からストライカー音と、銃の共振音
8.0秒付近からコッキング音
が観測される。
検出しなければいけない音声は、6.4秒付近で観測されるが、問題はそれ以外の音も聞こえてしまうことだ。ストライカー打撃音だけでしか聞こえないのであれば、スレッショルドを超えた音が検出された時点から数秒発光するようにすればいいだけ出会った。
しかし、今回の音をみてみると撃発とほぼ同じ量の音が存在する。コッキング動作だ。
コッキング動作の音は、質量の大きな部品がきっちり動いた結果なので、これを消すことは至難の業となりそうだ。そこで、この波形をみながら、何回も何回も聞きなおして、対策を考えることとしよう。
音の特性を見てみると、撃発を終わり、コッキング操作を終わるまで、約4秒。コッキング動作だけを見ると約2秒となっている。
ということは、フォロースルーを3秒に設定し、直後に5秒間の音声検出禁止区間をつけることで、うまく避けることができそうである。
つまり、
撃発検出後、 フォロースルー時間経過後、音声検出禁止区間を得て、検出待ち状態に戻る。
これを案1とする。
一見、案1はうまく動作するように見える。しかし、弾を発射する動作の前には、必ずコッキングをしなければいけないので、そこで検出されて、フォロースルー期間が開始される。コッキングを開始してあと、ふぉロスルー時間3秒、撃発禁止時間5秒間は、使えないことになる。高々8秒間なので、このままでもいいかもしれないが、もう少し短くしたい。
そこで、
撃発検出後、1秒以内に音を検出した場合、そこで、即座に消灯し、2秒間の音声禁止区間を置いた後、検出開始、すなわち、案1の初期状態に戻ることとする。
これを状態遷移図に示すと以下のようになる。
ここで、この状態遷移図の記載方法はちょっと一般的なものと違うが、わかると思う。
これをどのように実装するかを次回以降で考える。
メモリが少ないからこれは大きすぎるかもしれないが。
ディレイドレーザーサイトと名をつけたが、何かに関して遅延して発光するわけではないので、良く考えると間違いなので、これからは、ゲイテッドレーザーサイト(Gated Laser Sight)ということにする。
#いきなり仕様変更などとは言わないように。
ゲイテッドとは、門で囲われたということで、昔のシンセドラムのゲイテッドリバーブ(時間幅を限定したリバーブ)という音もあったし、発想は良く似てるので。
レーザーサイトの発光時間に幅を持たせるには、まずトリガーの時刻を検出する必要がある。時刻といっても何時何分何秒みたいな数字が必要なのではなく、
”いま、発射した”
がわかればいいだけではあるが。
APS-3で、検出できそうなトリガーの検出方法は、
・ストライカーがレシーバへ接触したことを電気的に検出する(いわゆるスイッチ)
・ストライカーがレシーバへ激突したことを音響的に検出する(マイクによるスイッチ)
・ストライカー、レシーバを改造し、光学的に検出する
・トリガーの位置を工学的に読み取り、撃発後最終位置を検出する
があげられる。
あげたけど、実質的には、激突音を音響的に検出する以外は、APS-3に対しての改造が必須になるので、不適である。
そこで、銃近傍で、録音した音声により、
再生できない場合、ダウンロードは🎵こちら
これは、プレートの第一ターゲットへ射撃時の周囲音を、銃近傍で、録音したものである。
開始から、”プレートスタンバイレディ”の音声
3.5秒付近からプレートブザー音
6.4秒付近からストライカー音と、銃の共振音
8.0秒付近からコッキング音
が観測される。
検出しなければいけない音声は、6.4秒付近で観測されるが、問題はそれ以外の音も聞こえてしまうことだ。ストライカー打撃音だけでしか聞こえないのであれば、スレッショルドを超えた音が検出された時点から数秒発光するようにすればいいだけ出会った。
しかし、今回の音をみてみると撃発とほぼ同じ量の音が存在する。コッキング動作だ。
コッキング動作の音は、質量の大きな部品がきっちり動いた結果なので、これを消すことは至難の業となりそうだ。そこで、この波形をみながら、何回も何回も聞きなおして、対策を考えることとしよう。
音の特性を見てみると、撃発を終わり、コッキング操作を終わるまで、約4秒。コッキング動作だけを見ると約2秒となっている。
ということは、フォロースルーを3秒に設定し、直後に5秒間の音声検出禁止区間をつけることで、うまく避けることができそうである。
つまり、
撃発検出後、 フォロースルー時間経過後、音声検出禁止区間を得て、検出待ち状態に戻る。
これを案1とする。
一見、案1はうまく動作するように見える。しかし、弾を発射する動作の前には、必ずコッキングをしなければいけないので、そこで検出されて、フォロースルー期間が開始される。コッキングを開始してあと、ふぉロスルー時間3秒、撃発禁止時間5秒間は、使えないことになる。高々8秒間なので、このままでもいいかもしれないが、もう少し短くしたい。
そこで、
撃発検出後、1秒以内に音を検出した場合、そこで、即座に消灯し、2秒間の音声禁止区間を置いた後、検出開始、すなわち、案1の初期状態に戻ることとする。
これを状態遷移図に示すと以下のようになる。
ここで、この状態遷移図の記載方法はちょっと一般的なものと違うが、わかると思う。
これをどのように実装するかを次回以降で考える。
メモリが少ないからこれは大きすぎるかもしれないが。
銃が水平(以上?)になったら検出開始、なんていうのはダメですかね?(素人考え
by deli (2015-02-01 02:59)
deli様、コメントありがとうございます。
水平を検出するのはある意味あると思いますが、現在の技術だと、3次元加速度センサを用いて、水平を検出することができると思いますが、でもあれ、コッキングするときも水平というかターゲットのほうに向いていないと。。見たいな話もあり、シビアに検出すると、プローンで使えないとか。
なにより、センサが800円もするので。
水銀スイッチとかで検出ってのもありではあるんですが。
ありがとうございました。
by siojake (2015-02-01 17:24)