CameraS88

はじめに

CameraS88のチュートリアルをご紹介いたします。CameraS88を使って、気楽に自動運転をしよう!という試みです。Webカメラとパソコン、DSmainもしくはDCC/MM2シールドがあれば、すぐに試せます。

Desktop StationとCameraS88をダウンロード

英語でかかれてますが、赤枠の2箇所からダウンロードできます。バージョンがあがっている場合は、最新版をお使いください。

TutorialCS88_01.png

ダウンロードしたファイルを解凍する

ファイルを選択し右クリックして、ZIPファイルを解凍してください。

線路を準備する

線路を用意してください。なお、車両はまだ置かないでください

dictionary.png

DSmainと線路、PC間を接続します。

USBケーブル、線路との配線を行います。配線作業をしていると、カメラのケーブルを引っ掛けてずれてしまうリスクがあるため、先に線路とPCとを繋いでしまいます。

Webカメラの置き場所を決めて、カメラを置く。PCと接続しておく。

線路が見渡せるところ、もしくはセンサで反応させたい範囲が映る位置にカメラを置きます。

WebCamPosition.jpg

DSmainまたはDCC/MM2シールド(Arduinoと合体済)を用意する

ブースター・トラックボックスとなる、DSmain等を用意しておきます。

CameraS88を起動します。

CameraS88.exeをダブルクリックして起動します。

TutorialCS88_02.png

Webカメラの動作チェック

CameraS88のStartボタンを押して、Webカメラの映像が表示されているか確認します。
ここで、位置等を調整してください。カメラの位置や向きが確定したら固定して、簡単には動かないようにしてください。

TutorialCS88_03.jpg

車両を置かない状態で、CameraS88のRegisterボタンを押して現在の状態を登録します。

車両を置いた状態では、絶対にRegisterボタンを押さないでください。この場合、車両がいなくなるとセンサが反応してしまいます。

CameraS88でセンサ範囲登録

CameraS88で、センサ範囲の登録をしていきます。画面上をDragすることで、センサ範囲を新規追加していけます。ダブルクリックで、細かい調整ができます。センサのアドレス(仮想的なS88アドレス)を、きちんと割り振ってください。Desktop Stationで使用します。
以下のビデオで示すように、線路上に領域を登録していきます。位置の微調整は選択してドラッグするとできます。サイズの微調整は、ダブルクリックしてWidthとHeightを編集します。

車両を軽く動かして、センサが反応するか確認してください。

車両と背景の色が似ていて溶け込んでしまう場合や、ある程度、大きな面積でないと反応しない場合があります。
反応すると、登録した領域が黄色に変わります。赤色は選択している領域です。

線路に機関車を置きます。

CameraS88はそのまま起動しておき、Desktop Stationを起動します。Startボタンを押して、線路に電力を供給します。
Desktop StationとCameraS88は自動的に通信します。特に設定は不要です。CameraS88が起動していない時は、Desktop StationはDSmainのS88の入力を優先します。なお、Desktop Station上のS88の取り込み周期の設定の有無に関わらず、CameraS88のセンサ情報は取り込まれます。

機関車を動かして動作確認

機関車を動かして、CameraS88上で反応していることを確認します。同時に、Desktop Stationのイベントスクリプト画面の中にあるS88センサ情報を確認し、該当するセンサアドレスが反応していることを確認します。

CameraS88でセンサ3領域に電車がいるとき、メーター下のセンサ3が緑になっている:
TutorialCS88_05.jpg

CameraS88でセンサ1領域に電車がいるとき、メーター下のセンサ1が緑になっている:
TutorialCS88_04.jpg

DesktopStationでのイベントスクリプト編集

イベントスクリプトを編集していきます。
操作例のビデオを参考に、機関車の速度や進行方向などを編集していきます。

操作例:

TutorialCS88_06.png

サンプルスクリプト

以下に、そのままコピペできるスクリプトを掲載します。


センサ1 (STATION-1):
DESKTOPSTATION,SCRIPT,2013
SPEED,0,64,0
WAIT,2,,0
SPEED,0,64,0
WAIT,2,,0
DIRECTION,0,2,0
WAIT,20,,0
SPEED,0,128,0

センサ2 (STATION-2):
DESKTOPSTATION,SCRIPT,2013
SPEED,0,128,0
WAIT,2,,0
SPEED,0,64,0
WAIT,2,,0
ACCESSORY,6,0,0
DIRECTION,0,1,0
WAIT,20,,0
SPEED,0,128,0


センサ3 (STATION-3):
DESKTOPSTATION,SCRIPT,2013
SPEED,0,128,0
WAIT,2,,0
SPEED,0,64,0
ACCESSORY,6,1,0
WAIT,2,,0
DIRECTION,0,1,0
WAIT,20,,0
SPEED,0,128,0

・実際に動かしている様子

・実際に動かしている様子2

うまく動かないなあという場合

CameraS88の反応レベルを微調整することが可能です。使用するのは、Thresholdのボックス内の2つのパラメータです。

TutorialCS88_07.png

Matchingの値:
色の変化量の閾値を示します。たとえば、予め登録した画像と、監視中のカメラの画像を比較し、色の違いがこの閾値以上ある場合、変化があると見なします。0~255の値を指定します。初期値は32です。およそ、12.5%の色の変化がある場合に反応します。この値を大きくすると、反応しにくくなります。反応が過敏な場合に、たとえば48とか64のように少しずつ値を調整してください。

Blockの値:
領域内で反応したブロック数のボーダーラインを規定します。0~255の値を指定します。128とすると、半分の領域が反応したとき、ブロックに変化が起こったと見なします。64の場合、1/4以上が反応した場合に領域に変化が起きた(機関車が入ってきた or そこにいる)と判断します。この値を大きくすると、反応しにくくなります。

Go to top.