
エアソフトガンから発射されたBB弾の銃口付近の動きを観察する
はじめに
エアソフトガンから発射されたBB弾の銃口付近のBB弾の動きを観察したい。目的は、ホップアップによるBB弾の回転数を測るなどである。今回はマルチストロボ(高速に点灯と消灯を繰り返す照明)を製作し、これを用いてBB弾の軌道を照射してデジタルカメラで撮影する方法を採用した。結果、BB弾の回転数を計測することに成功した。
方法
構成
装置構成は以下の通り。実際に装置の写真を撮れば早いのだが汚部屋なので割愛。

試行錯誤するなかで画質を良く撮影するポイントが見えてきたので以下に羅列する。(お財布へのダメージが少ない順)
射線と光源をなるべく近づける
カメラと照明を同軸になるよう配置する。ハーフミラーを使用してもよかったかもしれない。
背景をなるべく黒くする
照明を光量を大きくする
照明回路
以下のような回路を作成した。左側が照明、右側がマズルにとりつけるBB弾のフォトインタラプタ(通過検知回路)である。ヒューズはバッテリーラインの直下に挿入するつもりだったが、配線の都合上で面倒になって変な位置に入れた。CNZ1023は実際にはニッパーで切ってLED部とフォトトランジスタ部をバラバラにして使用した。VRは通過するBB弾の検知感度調整用。

※誤って入力ピン(フォトインタラプタ)に5Vが印加されかねない状態で実験してしまいましたが、入力ピンの定格は3.3Vです。破損は免れましたが、真似しないようご注意ください。
ソフトウェア
Seeeduino XIAOに以下の機能を実装した。
フォトインタラプタの信号(PIN_TRG_IN)を検知してLED発光を開始する
上記信号を検知後、LED(PIN_LED_OUT)を10us間点灯、90us間消灯する動作を100回繰り返す
点灯周期は内蔵タイマーにより制御し、消灯間隔にはdelayMicroseconds関数を用いた。元々10us周期のタイマーを使用する予定だったが、CPUの処理が追いつかないようだった。最終的なスケッチは以下。
#include <TimerTC3.h>
#define PIN_LED_OUT 0
#define PIN_TRG_IN 2
int8_t trigger = 0;
int8_t counter = 0;
void setup() {
TimerTc3.initialize(100);
TimerTc3.attachInterrupt(TimerCnt);
pinMode( PIN_LED_OUT, OUTPUT);
pinMode( PIN_TRG_IN, INPUT_PULLUP );
digitalWrite(PIN_LED_OUT, LOW);
}
void TimerCnt(){
if(counter > 0)
{
digitalWrite(PIN_LED_OUT, HIGH);
delayMicroseconds(10);
digitalWrite(PIN_LED_OUT, LOW);
--counter;
}
}
void loop() {
trigger = digitalRead(PIN_TRG_IN);
if(trigger == HIGH && counter == 0)
{
counter = 100;
}
}
撮影手順
エアソフトガンの発砲を準備
カメラのセルフタイマー(10秒)を開始
部屋の照明をOFF
シャッターが開いた音を聞いたら発砲
結果
東京マルイ スペリオールバイオBB弾 0.28gを用いて0Clickから20Clickまで撮影を試みた。


上記撮影結果から回転数を見積もると以下のようになった。
0Click 57rps
5Click 156rps
10Click 208rps
15Click 278rps
20Click 263rps
20Clickで回転が15Clickより落ちているし、0Clickでも結構回転がかかっている。箱だしノーメンテのVSRなのだが、そろそろメンテしないとまずいかもしれない。ともあれ、1発撮りでは信頼できる結果は得られないようだ。
まとめ
とりあえずBB弾の回転数が測れた。しかし撮影にはそれなりに段取りが必要なため、省力化が課題。特に、光量不足を補うために射線と光源を近づけるのが結構面倒であった。BB弾の回転数を測ることに特化するのであれば、キセノンフラッシュを2灯か3灯用意して順に点灯させたほうが手軽に撮れるかもしれない。あと100us周期だと弾がたくさん写ってわかりやすいし楽しいのだが、数えるのが面倒だった…。
とはいえ、いったんセットアップが決まってしまえば流れ作業でデータが取れるので当面はこれでいいや、と思っている。