入門Scratch

22 距離センサー②【距離判定】

スクラッチでロボットを動かそう!距離センサーを活用した「距離判定」プログラミング完全ガイド

プログラミング教育の定番ツール「Scratch(スクラッチ)」を使い、実際のロボットを制御する楽しさは格別です。今回は、ロボットプログラミングの中でも特に重要な「距離センサー」を使った「距離判定」について詳しく解説します。

障害物との距離に応じてロボットの動きを変えるアルゴリズムを学ぶことで、自動運転の基礎や、インタラクティブな工作の仕組みを理解できるようになります。本記事では、初心者の方でも分かりやすいように、具体的なプログラムの組み方から応用方法までを網羅しました。

1. 学習の概要:距離センサーで何ができるのか?

距離センサーとは、ロボットの前方にある物体までの距離を数値として測定する装置です。スクラッチ上でこの数値を取得し、「もし〜なら」という条件分岐と組み合わせることで、以下のような動作が可能になります。

・物体が近づいたら止まる ・距離に応じてLEDの色を変える ・近づくほど警告音を速く鳴らす

動画では、クムクムロボットを使用し、障害物との距離が10cm未満、および10cm〜20cmの間で異なるアクション(発話、光、音)をさせるプログラムを構築しています [00:02]。

2. 実装の詳細:距離判定プログラムの作り方

プログラムの構築は、大きく分けて「基本ループの作成」と「多段階の条件分岐」の2ステップで行います。

ステップ1:基本の距離計測ループ

まずは、常に最新の距離を測り続ける仕組みを作ります [00:16]。

「ずっと」ブロックの中に「距離を測る」コマンドを配置します。

測定が速すぎると処理が不安定になるため、「0.1秒待つ」などの短いウェイトを入れます。

測定した数値を画面上に表示させ、現在の状態(デフォルトは999など)をリアルタイムで確認できるようにします [00:38]。

ステップ2:10cm未満の「危険」判定

次に、物体が非常に近い場合の処理を書きます [00:46]。

・条件式: 「距離 < 10」 ・アクション:  - ロボットに「危険(キケン)」と言わせる [01:32]。  - LEDを赤色に点灯させる。  - 低い音(ラなど)を短く鳴らす [01:50]。

ステップ3:10cm〜20cmの「注意」判定

さらに、少し離れているが注意が必要な範囲の判定を追加します [02:48]。ここでは、2つの条件を組み合わせる「かつ(AND)」の考え方が重要になります。

・条件式: 「距離 > 9」かつ「距離 < 20」 ・アクション:  - ロボットに「ちょっと危険」と言わせる [03:37]。  - LEDを緑色に点灯させる [03:53]。  - 音の高さを変えて鳴らす。 これらの条件を順番に並べることで、ロボットは距離に応じて「危険」「ちょっと危険」「安全(無反応)」と状態を切り替えることができるようになります [04:06]。

3. プログラミングの注意点とトラブルシューティング

距離センサーを使ったプログラミングでは、以下の点に注意が必要です。

1. 数値の境界線の設定 プログラムで「10未満」と「10以上」という条件を作る際、境界となる「10」がどちらに含まれるかを意識しましょう。動画では、10cm未満(2〜9cm)と、10cm以上20cm未満という形で整理しています [03:00]。

2. 反応速度(ウェイト設定) 「〇秒待つ」の時間が長すぎると、ロボットが障害物に気づく前に衝突してしまいます。逆に短すぎるとCPUに負荷がかかります。0.1秒〜0.2秒程度が適切です。

3. センサーの特性 センサーには測定可能な最小距離と最大距離があります。近すぎると正しく測れない(動画では2cm以下など)場合があるため、実機で数値を確認しながら調整しましょう。

4. 応用への道:さらに高度なロボット制御へ

この「距離判定」をマスターすると、さらに面白い応用が可能です。

・自動停止システム 距離が5cm以下になったら、モーターの出力を0にして強制停止させる「衝突防止機能」が作れます。

・音階の変化(テルミンのような楽器) 「距離」の数値をそのまま「音の高さ」の変数に入れることで、手を近づけたり遠ざけたりして演奏する楽器ロボットが作れます。

・獲物を追うロボット 「距離が20cm〜30cmなら前進する」というプログラムにすれば、一定の距離を保ちながら後ろをついてくる「ペットロボット」のような動きも再現可能です。

まとめ

距離センサーを使ったプログラミングは、現実世界の情報をコンピュータに取り込み、それに対して判断を下すという「センサー入力・演算・出力」の基本を学ぶのに最適です。スクラッチの視覚的なブロックを使えば、複雑な論理演算も直感的に理解できるはずです。

まずは動画の通りに「危険」と「ちょっと危険」の2段階判定から始めてみましょう。自分のアイデア次第で、ロボットの性格や機能は無限に広がります! [04:37]

コメント

タイトルとURLをコピーしました