[No.7]入力パーツを足してみよう〜人が通ったら反応する「オカエリ」装置

Inquiry-Based Study

小さなものづくりコンピューター「SPACEBLOCK(スペースブロック)」は、いろいろなパーツを足して自分でさまざまな機能を作ることができます。続々と追加されている拡張パーツから、今回は「赤外線モーションセンサモジュール」というパーツを使って動きに反応する装置を作ります。[SPACEBLOCK-6]で作った「オカエリ」装置をアレンジしますよ。

Elementary School ~ Beginner 40分

必要なもの&準備

左上:SPACEBLOCK通常パッケージ、右上:LEDパネルとジャンパーワイヤ、左下:圧電スピーカー、右下:赤外線モーションセンサモジュール

SPACEBLOCKに拡張パーツを接続する

まずは、今回使用するLEDパネル、圧電スピーカー、赤外線モーションセンサをSPACEBLOCKに接続してみましょう。
接続の全体像

細かい部分は次の図を参考にしてください。LEDパネルと圧電スピーカーは[SPACEBLOCK-6]と同じつなぎ方です。赤外線モーションセンサからは3本のワイヤが出ていますので、黄色ピンソケットの図の通りの位置に接続してください。

ジャンパーワイヤの色とピンソケットの位置に注意して接続する

赤外線モーションセンサをプログラムするには?

赤外線モーションセンサは、センサから3〜4mの範囲で何かが動くと、動いたことを検知できます。何も動いていない状態か、何かが動いたのかを判定してコンピューターに情報を渡すことができますが、動いた距離や速さなどの情報は渡しません。このように「動いた」「動いていない」など2つの情報だけを渡すことをデジタル入力と呼びます。

赤外線モーションセンサは、何かが動いたと検知すると、SPACEBLOCKに挿したピンヘッダの電圧を上げることで「動いたよ」という情報を伝えます。通常動きがないときは「電圧なし」で、動きがあると「電圧あり」になります。動きがあった場合、2〜3秒経つと自動的に「電圧なし」に戻ります。

なお、今回は使いませんがプログラミングではtrue(トゥルー)とfalse(フォルス)という値を使うことがあり、デジタル入力の場合、電圧が高いときはtrue、電圧が低いときはfalseという値がプログラムに渡されます。

電圧を上げたり下げたりしてコンピューターに渡す情報を切り替える

プログラミングには、[入力]カテゴリーの[《A0》の電圧が《上がった》]というブロックを使います。

赤外線モーションセンサのプログラムには電圧のブロックを使う

ブロックのピンソケット名をクリックすると一覧が表示されます。赤外線モーションセンサからはジャンパーワイヤが3本出ていてワイヤの根本に「G」「V」「S」と文字がついているのでこれらを参考に3本のワイヤをつなぐ場所を判断してください。「G」のワイヤは「GND」に、「V」のワイヤは「5V」か「3.3V」に、「S」のワイヤはハイライトしている箇所のどれかに接続できます。

ピンソケットの名称と位置を確認して接続する

今回使用するのは、黄色ピンソケットの「GND」と「5V」と「B0」です。[《A0》の電圧が《上がった》]ブロックでは、ワイヤを挿したピンソケットと同じ「B0」を選択しましょう

マメ知識
圧電スピーカーにはジャンパーワイヤが2本しかありませんが、赤外線モーションセンサには3本あります。赤外線モーションセンサが動くためにはより高い電圧が必要なので、「5V」につないだワイヤから電気を供給しているのです。「GND」は電気の流れる先で、「B0」はデジタル情報の入力に使われます。なお、赤外線モーションセンサは「3〜5V」で動くので、「5V」の代わりに「3.3V」のピンソケットにつないでも動きます。
次の図のように、[プログラムを開始]ブロックに[繰り返す]ブロックをつないでプログラムを動かし続ける設定をします。そして[《B0》の電圧が《上がった》]ブロックの内側にLEDと音で演出するプログラムを作成しましょう。電圧が上がったときというのは、赤外線モーションセンサが動きを検知したときです。
赤外線モーションセンサが動きを検知したら、LEDと音の演出部分が実行される

このプログラムを実行すると、動きを検知したら LEDに「!」が表示され、高いラの音が鳴ります。

動画で見てみましょう。

「オカエリ」電光表示を自動装置に変えよう

それでは、[SPACEBLOCK-6]で作った「オカエリ」音声付き電光表示装置のプログラムをアレンジしましょう。次の図が、前回のプログラムです。このプログラムでは、ボタンを押すという入力に応じて「オカエリ」を表示していましたが、赤外線モーションセンサに応じて表示するように変更します。
[ボタン(PA8)が押された]ブロックを[《B0》の電圧が《上がった》]ブロックに交換する

[ボタン(PA)]が押されたブロックを[《B0》の電圧が《上がった》]ブロックに変更すると次の通りのプログラムになります。

完成したプログラム

これで、動きに応じて「オカエリ」が流れる電光表示になりました。動画で見てみましょう。

もっと素敵な見た目にしたい!

完成したものの、このままではちょっと材料そのまま、という感じです。少し装置らしさを出すべくアレンジ工作をしてみましょう。白いプラスチックケースにちょうど赤外線モーションセンサのセンサ部分が外に出る程度の穴をあけます。SPACEBLOCKにつながったすべてをケースの内側にいれて、赤外線モーションセンサをケースの内側から穴の位置に固定し、LEDパネルは外から透けて見えるのにちょうどいい位置に固定します。
白いプラスチックケースに穴を空ける
すべてプラスチックケースに入れ、LEDパネルと赤外線モーションセンサをデープで固定したところ

すっきりとした白い箱の装置になりました。

見た目はシンプルな白い箱

人が通るなど動きを検知すると自動的に動き出します。

誰かが帰ったら自動的に動く

これで誰かが前を通るだけで自動的に「オカエリ!」と光と音で迎えてくれる装置ができました。動画で見てみましょう。

これを玄関に設置しておけば、誰もいない家に帰ってきても寂しくありませんね!!

SPACEBLOCKは、スタンドアローンモードでプログラムを転送しておけば、こんなふうにパソコンから切り離して単独で動かすことができます。100円ショップのプラスチックケースにちょっと穴をあけるだけで簡単にオリジナル装置を作ることができました。みなさんんもアイデアを膨らませていろいろな発明品を作ってみましょう!