デジタル・シューティング・ターゲットの作成

メモ




RaspberryPiとUSBカメラでスポットビーム光をセンスし、
スポットビームが最後に消灯したポイントが最終得点ポイントとなります。

半透明の的の裏側からUSBカメラでビーム光をマイコン(RaspberryPi)でセンス・処理し、
同マイコンのwebサーバまたはVNCにて(無線LANで)PC,IPAD等で操作、確認します。

的の下部はバッテリーです。
赤いボタンのワンプッシュで電源on(linuxの立ち上げ)を行い、
白いボタンを十数秒押すことで電源off(shutdown処理)を行います。
バッテリーの充電器は内部に入れてあります。

赤いLEDの点灯:5vDC-ON
青いLEDの点滅:log-on中
白いLEDの点滅:的の処理プログラム実行中


レーザービームはトイガン(APS-2)のトリガーを引いた時にビームが切れるようにしています。




得点は、IPADまたはPCのVNCビュアーにて確認します。VNCの為多少時間のずれがある。


的のハードは、
  ・RaspberryPi-typeB
  ・USB無線LANドングル
  ・広角のUSBカメラ
  ・スイッチによる電源on/off回路
  ・5vバッテリー
  ・的をプリントしたOHPシート(2枚)
  ・ケース等(CDケース、B6カードケース等)

webの画像です。





NVCビュアーの画像です。

通常の画面です。
10回で得点はファイルにセーブ&メールsendして画面のクリアをします。

Re-Displayをダブルクリックすると、その時のぶれ具合(経過)が表示されます。

Spot-Adjustmentをダブルクリックすると、
・RasspberryPiに接続したカメラと表示画面との位置調整を行います。
 画像を見ながら設定ファイルの値を変更します。
・hi-scoreがクリアします。

小さいスクリーンはカメラで読み込んだ画像に直接ポイントを書き込んだものをdisplay




ソフトウェアについて

・RaspberryPi プッシュスイッチによるON/OFF

@電源on:赤いボタンスイッチのプッシュで、赤いLEDが点灯し、青いLEDが点滅しDCが入る
 これは電源on/off用のマイコンが正常に動作していることを示す
A白いLEDが点灯又は消灯している
 これはこのアプリが動作していない事を示す
B白いLEDが点灯・消灯
 無線LAN環境を探している時に点灯
C白いLEDが点滅
 これはアプリが動作していることを示す
注:上記の状態にならない場合は、LOGファイルをみること
/xxxx/yyyyy_camera_log.txt
LOGはTera-Term(ip:192.168.0.xxx SSH2)又はftpで接続して/ramdisk/のxxx.logで確認する

D電源off:白いボタンスイッチを数秒押し続けるとshut-down後電源がおちる


・RaspberryPi 無線LANのSSID接続

・RaspberryPi GPIO:LED点灯シェル
 表示のLEDは、赤が5VDC、青がpicマイコンが動作中
 白がRaspberryPiが表示するLEDである。

・得点のついて

@ スコアは表示の'10th'の時点で自動でファイルにSAVEされる
SAVEする場所はファイル"/home/xxxx/xxxxxx/xxxxxx/Point_data2.txt"
ファイル内容の例は以下の通り
【出力例】
Score : 20140114185018
1 5 5.5
2 4 4.3
3 0 0.0
4 9 9.7
5 11 11.0
6 7 7.6
7 10 10.7
8 11 11.1
9 8 8.1
10 9 9.6
AVL 7 7.7

A メニューの「SaveDATA」をダブルクリックした時も、その時点のスコアがファイルにSAVEされる


・スポットアジャスト

Spot_Adjustment 使用方法
// ----------------------------------------------------------------------------

メニューの「Spot_Adjustment」をダブルクリックする

 カメラデータがスポットのクロス表示とともに表示される
 表示画像にもスポットのクロス表示とともに表示される
 hi-scoreをリセットする

ファイル "Point_data2.txt"の内容
-------------------------------------------------------
# #=コメント
# filename Point_data2.txt
# カメラが読み込んだデータとのマッチングテーブル
#
A 20 # 的の表示残像数(After_Image)
w 160 # w=320のx中心点 160+-n
h 117 # H=240のy中心点 120+-n
# 9〜0 : 中心からの距離で9=>9点で最も内側のサークルの位置
a 0 # a=10 中心からの距離 10点を意味する
9 9 # 9 中心から2番目までの距離 9点を意味する
8 18
7 28
6 37
5 46
4 56
3 65
2 74
1 83
0 92 # 一番外側の円の位置
X 92 # サークル間間隔x10の値 XYnの値
b 1 # bright : 明るさをセンスする時の対象カラー 0:青 1:緑 2:赤
end 9999
-----------------------------------------------------
1.カメラデータの確認と調整
カメラデータwindowをずらしてから、スポットデータが中心及び円上にあるか確認する
-----
(1)中心の調整
ファイル "Point_data2.txt"の以下の行の数値を変更してデータを更新する
更新方法はエディタかftpやWinSCR等で行う
w 160 # w=320のx中心点 160+-n
h 117 # H=240のy中心点 120+-n

w はx方向,hはy方向の中心値
更新後数秒で反映されるのでデータを確認し、中心を合わせる
-----
(2)各円の値の調整
中心と同様にファイルの値を変えて調整する

// 9〜0 : 中心からの距離で9=>9点で最も内側のサークルの位置
a 0 // a=10 中心からの距離 10点を意味する
9 9 // 9 中心から2番目までの距離 9点を意味する
8 18
7 28
6 37
5 46
4 55
3 65
2 74
1 83
0 92 # 位置外側に円の位置
-----
(3)その他の値
A 20 # 的の表示残像数(Spot_data[After_Image])<=CPUの処理スピードに影響するので間隔は不明
-------------------------------------------------------
2.表示データの確認と調整
点数表示を服も表示画像の中のスポットの位置を調整する

上記同様に、ファイルe "Point_data2.txt"の以下の行の数値を変更してデータを更新する

X 92 // サークル間間隔x10の値 Spot_data[XYn]の値

数値を変更して更新し、数秒で反映されるので、データを確認しながら値を変える

以上で確認&調整は終了

メニューの「Spot_Adjustment」を再度ダブルクリックで終了する


・OpenCV

【Open Source Computer Vision Library】を使用して、カメラのデータや文字を
RspberryPiのウインドウ画面に表示しています。

アルゴリズム等