スクラッチで始めるロボットプログラミング:センサをつかってみる

Pocket

 前回は、はじめの一歩ということで、マイコンボードなどの解説の王道的内容である、LEDを光らせるいわゆる「Lチカ」までを解説しました。スクラッチをベースとしたプログラミング環境を使うことができるため、マイコンプログラミングで、初心者がつまずきやすい部分には触れることなく、実機を使ってプログラミングができることがわかっていただけたと思います。今回は、いくつかの種類のセンサをご紹介しつつ、センサを使ったプログラムについて書いてみたいと思います。

1.センサとは?

 前回も述べましたが、センサとは周囲の状況を取得する機器のことをいいます。センサにはいろいろな種類がありますが(随分以前、某展示会のセミナーでセンサーネットワークのプレゼンの冒頭で「センサでも千差万別」とドヤ顔でかました人を思い出しましたが)、今回対象としている環境でもいろいろな種類が用意されています。例えば、光センサであれば、周辺の輝度を電子的に取得して、その値を数値として出力します。スタディーノでは、この数値を取得する機能が、ブロックとして実現されています。センサの値を取得して、その値の大小で処理をするかどうかを決めるといった使い方ができます。次以降で、具体的な例を示しつつ、見ていくことにします。

2.テストモードを使う

 先に述べたように、センサは環境のある情報を数値化します。環境は当然場所によっていろいろ異なりますので、実際に今いる場所でどのような値をとることができるかを知る必要があります。簡単に状況を確認できる機能として、テストモードというのが用意されています。このテストモードを利用することで、実際に動かしながらセンサの値を確認することができます。

2.1. テストモードの起動

テストモード

テストモードの起動は、機械をUSBケーブルで接続した後に、実行のところにある「テストモード開始」を選んでください。すると次の図に示すような、窓が右側に現れます。

テストモードでセンサの値を見る

センサに対応しているポートである、A0 から A7 までの数字が表示されます。ここの表示は、入出力設定で設定されている内容が表示されます。この例では、A0からA3はボタンに割り当てられていて、A4からA7はそれぞれ、LED、ブザー、光センサ、音センサに割り当てられています。

2.2. センサの値をみる

 光センサの値をみてください。値が96になっています。96というのはどういう意味があるのでしょうか?この光センサは、明るさを0から100 までの数値で表現しています。数字が高ければ明るく、数字が低いと暗いという意味になります。ただ、実際に動作させてみますと、通常の太陽光が差し込んでいる室内においては、図にもありますように90以上の高い数字が出力されていました。受光部分を手で覆ってみるとどうなるでしょうか。
(本来は、デバイスの特性などを詳しく調べて数字の根拠を知った上で使用するのですが、デバイスの特性までは公開されていないので、実際に動作させてみて数値を確認しつつ使用していくことにします。)

光センサの値がかわる

A6の光センサの部分の数字が小さくなっていることがわかります。このように暗いと値が小さくなり、明るいと値が大きくなります。実際に使うときは、明るさを変えて照度計などと照らし合わせながら使うと数値的な意味合いもわかるのでしょうが、子供向けプログラミングという観点では、真ん中の50より大きいと明るい、小さいと暗い、という程度でも十分かもしれません。

このように実際の機器を動かしながらセンサの特徴を理解しつつ、使ってみてください。

3. センサの値で動かす

3.1. 光センサで光らせる

では、センサの値を使ってLEDを光らせてみたいと思います。

光センサのプログラム

上の図のようなプログラムを準備しました。ステップとしては少ないのですぐにご理解いただけると思います。ここで大事な点は、「もし < > なら」の部分に、センサの数値を使った比較演算が入っているところです。光センサの値をある値と比較します。そして、比較結果で動作を変えます。ある値と書いてますが、専門用語で書くと閾値 (threshold) と呼びます。ある値を境目にして、動きを変える閾(しきい)の値ということです。

暗くすると光る

これで動作させるとどうなるでしょうか。写真に示すように明るい時はLEDは点灯しませんが、センサ部分に光が当たらないようになると LED が光ります。このようにして周囲の環境でアクションを変えることができます。

3.2 音センサをつかってみる

 次に違うセンサを使った時はどうなるでしょうか。ここでは、音センサを使った場合の例を示します。

音センサのプログラム

「もし < > なら」の部分を音センサの値に変更しました。ここで使っている音センサは、0 から 50 までの値をとり、値が小さいと音が小さく、値が大きいと音が大きいというセンサです。そこで、先ほどの光センサと同様に真ん中になる25で動作を変えてみることにします。

音を鳴らすと光る

実際にやってみるとどうでしょうか。音なので写真ではわかりにくいのですが、集音マイクの部分で音がすると光るのが確認できます。ただ、この音センサはかなり近接した状態で音を出さないと値が変わらないようで、結構頑張ってマイク部分を叩いているのですが、写真では伝わらないですね。。。このように、センサと動きを連動させて動作することができました。

4.まとめ

今回は、センサをつかってプログラムを書く方法に関して説明しました。センサに連動してLEDの動きが変わるのが確認できるかと思います。写真などではなかなか伝わりにくいのですが、実際にやってみるとわかると思います。次回は、DCモータなどをつかってもう少し動きのあるものを作ってみます。お楽しみに。


東京都文京区小石川で小学生、中学生、高校生を対象としたプログラミング&ロボット教室を開校しています。コース概要のページで説明しております。創造性や協調性などこれからの時代に必要となる素養を育てるコースです。ご興味ありましたらぜひお問い合わせください。

また、夏休みの企画として、サマースクールを実施します。ここで取り上げているスクラッチやロボットプログラミングを体験できる内容となっています。詳細はこちらでご確認ください。ご参加お待ちしております。

お問い合わせはこちら!

問い合わせをする

Pocket

この投稿へのコメント

コメントはありません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL