Scratch言語を勉強していくと,簡単に侮れない内容であることが分かってきた.
キーボード,マウス以外にも音やカメラ信号を対象にしたプログラミングが可能である.準備されているブロックを眺めていると,いろいろな応用ができそうである.最近のパソコンは音声や映像の入出力に対応しているので,それらに対応したプログラミングが初心者でも可能になっているわけである.
日頃使用している Mac mini 2012 (core i5 2.5GHz) にはUSB接続のマイク付ウエブカメラ (エレコム社製 UCAM-DLK130TRD)を接続しているので,さっそく動体検知プログラムを作ってみた.
カメラの接続を確かめるためには,左下隅の「ビデオ」にチェックを入れる.正常ならば「背景」がカメラ画像(半透明)に変わる.カメラから取り込めるように準備されている「新しい背景」や「新しいスプライト」のカメラボタン(赤矢印)をクリックすると,鮮明な映像が映し出される.
Scratch には,ビデオモーション>◯のときというイベントが用意されている.モーションが指定した数値以上なら実行するというイベントである.そのブロックの後に,「猫の鳴き声」や「楽器音を指定秒数ならす」というブロックを配置すれば,カメラの映像が変化すると警告音を鳴らすことができるはずである.実際にやってみると,2行で機能する.ビデオの透過度を調整するブロックを入れても3行(ブロック)ですむ.感度は,◯に適当な数値を入力してテストして決めればよい.
以下の映像は透明度を50%にしてボカした映像である.0%に近付けるとはっきりした映像になる.
カメラをテレビに向けると,画面の動きを検知してネコがニャーンと鳴き,回転する.なお,画面の動きを検知するのはネコの部分である.
Scratch3における実行
右はバージョン3に変換されたプログラム.
ビデオ関連ブロックの色は緑色に統一された.
Scratch3
左右に移動しながら画面の動きを監視させる場合は以下のようにする.
カメラ映像ではなく音を検知してネコが知らせるようにしたい場合は「音量」を使用すればよい.
CPU が Core 2duo の Mac の場合は,動きが重たい感じはしないが,Core duo の古い iMac(カメラ内臓)では,CPUの力不足の感がある.Scratch はグラフィック処理をベースにしているので,それなりの CPU が必要である.