video モジュールは、WIRELESS CAMERA Shieldに接続されたカメラの制御や映像信号の取り込みを行います。
"ov7725" - GR-PEACH Wireless CAMERA Shield画像の取り込みは、マイコンに搭載されたハードウェアリソース(VDC5)を用いてプログラムとは非同期に実行されます。
config {Object} カメラの設定width {number} 画像の横幅(ピクセル数)。必須項目です。height {number} 画像の高さ(ピクセル数)。必須項目です。format {string} 希望するピクセルフォーマット。"ycbcr422", "rgb565", "rgb888"のいずれかが指定できます。必須項目です。type {string} CMOSカメラの種類を示す文字列。"ov7725"のみ指定できます。(省略時: "ov7725")callback {Function} コールバック関数err {Error|null} エラーオブジェクト(失敗のとき) または null(成功のとき)。videoSource {Object} VideoSourceクラスのインスタンス (成功のとき)CMOSカメラに接続します。処理は非同期で行われ、処理が完了または失敗すると、コールバック関数が呼び出されます。
注意: ハードウェアリソースを排他で使用するため、複数の
VideoSourceインスタンスを同時に使用することはできません。別のカメラを接続する場合は、先に生成されたインスタンスに対してclose()を実行してください。
var video = require('video');
var AlignedBuffer = require('aligned_buffer').AlignedBuffer;
var buf = new AlignedBuffer(480*272*2, 32);
video.openCMOSCamera({
width: 480, height: 272, format: 'rgb565', type: 'ov7725'
}, function(err, videoSource) {
if (err) {
/* video.openCMOSCamera 失敗... */
console.log(err);
return;
}
/* video.openCMOSCamera 成功... */
videoSource.start(buf, function(err) {
if (err) {
/* videoSource.start 失敗... */
console.log(err);
return;
}
/* videoSource.start 成功... */
videoSource.stop(function(err) {
if (err) {
/* videoSource.stop 失敗... */
console.log(err);
return;
}
/* videoSource.stop 成功... */
videoSource.close(function (err) {
if (err) {
/* videoSource.close 失敗... */
console.log(err);
return;
}
/* videoSource.close 成功... */
});
});
});
});
config {Object} カメラの設定video.openCMOSCamera()の説明を参照VideoSourceクラスのインスタンスvideo.openCMOSCamera()の同期版です。処理は同期で行われ、処理が完了するとVideoSourceクラスのインスタンスを返却します。失敗すると例外をスローします。
var video = require('video');
var AlignedBuffer = require('aligned_buffer').AlignedBuffer;
var buf = new AlignedBuffer(480*272*2, 32);
try {
var videoSource = video.openCMOSCameraSync({
width: 480, height: 272, format: 'rgb565', type: 'ov7725'
});
/* video.openCMOSCameraSync 成功... */
videoSource.startSync(buf);
/* videoSource.startSync 成功... */
videoSource.stopSync();
/* videoSource.stopSync 成功... */
videoSource.closeSync();
/* videoSource.closeSync 成功... */
} catch (err) {
/* 失敗... */
console.log(err);
}
カメラの制御や映像ソースの取り込みを行うクラスです。
"ycbcr422", "rgb565", "rgb888"のいずれかです。buf {AlignedBuffer} カメラ入力を取り込むバッファ。32バイトのアライメントである必要があります。callback {Function} コールバック関数err {Error|null} エラーオブジェクト(失敗のとき) または null(成功のとき)。カメラの撮影/信号の取り込みを開始します。処理は非同期で行われ、処理が完了または失敗すると、コールバック関数が呼び出されます。
buf {AlignedBuffer} カメラ入力を取り込むバッファ。32バイトのアライメントである必要があります。videoSource.start()の同期版です。処理は非同期で行われ、処理が完了すると呼び出し元に戻ります。失敗すると例外をスローします。
callback {Function} コールバック関数err {Error|null} エラーオブジェクト(失敗のとき) または null(成功のとき)。カメラの撮影/信号の取り込みを停止します。処理は非同期で行われ、処理が完了または失敗すると、コールバック関数が呼び出されます。
videoSource.stop()の同期版です。処理は同期で行われ、処理が完了すると呼び出し元に戻ります。失敗すると例外をスローします。
callback {Function} コールバック関数err {Error|null} エラーオブジェクト(失敗のとき) または null(成功のとき)。カメラの制御/信号取り込みに関するハードウェアリソースを解放します。videoSource.start()によりカメラの撮影/信号の取り込みが開始されている場合、この関数の内部で自動的にvideoSource.stop()が呼び出されて停止されます。処理は非同期で行われ、処理が完了または失敗すると、コールバック関数が呼び出されます。
注意: この関数を呼んだ後には、この
VideoSourceインスタンスに対していかなる操作も行えません。このとき各プロパティの返す値は未定義であり、各関数の呼び出しを行うとエラーが発生します。
videoSource.close()の同期版です。処理は同期で行われ、処理が完了すると呼び出し元に戻ります。失敗すると例外をスローします。