【スクラッチ×クムクム】距離センサーでロボットが挨拶!インタラクティブなプログラムの作り方
プログラミング教育において、視覚的なフィードバックだけでなく「物理的な動き」を伴うロボットプログラミングは、子供たちの好奇心を刺激する最高の教材です。今回は、プログラミングロボット「クムクム」とスクラッチ(Scratch)を使い、距離センサーを活用した「挨拶ロボット」の作り方を詳しく解説します。
目の前に誰かが来たら「こんにちは!」と話し、腕を上げて喜ぶ――。そんなインタラクティブな動作を、センサーの仕組みを学びながら実装していきましょう。AI時代に求められる、センサー技術とロジックの組み合わせを基礎から身につけることができます。
1. 距離センサーの基本と数値の読み取り方
クムクムには、目のような形をした「距離センサー(超音波センサー)」が搭載されています。このセンサーは、音波を飛ばして跳ね返ってくる時間から対象物との距離を測ります。
- 999という数値: センサーの正面に障害物がない状態です。
- 2〜30という数値: 障害物(人や物)が2cmから30cmの範囲にあることを示します。
スクラッチ上の「距離を測る」コマンドにチェックを入れると、現在の数値をリアルタイムで確認できます。まずは、手を近づけたり遠ざけたりして、数値がどのように変化するかを観察することから始めましょう。
2. プログラムの核となる「ずっと」と「0.1秒待つ」の重要性
ロボットに「いつ人が来ても反応する」ようにさせるには、常にセンサーの値を監視し続ける必要があります。ここで使用するのがスクラッチの「ずっと(無限ループ)」ブロックです。
しかし、ここで非常に重要な注意点があります。「ずっと」の中に必ず「0.1秒待つ」というコマンドを入れてください。
なぜこれが必要なのでしょうか?コンピュータの処理速度は非常に速いため、待ち時間なしで通信を繰り返すと、ロボットとPCの間で通信渋滞(ビジー状態)が発生し、動作が不安定になったり、フリーズしたりする原因になります。0.1秒の「間」を作ることで、スムーズで安定した通信を維持できるのです。これは実社会のシステム開発でも通用する、大切な「制御」の考え方です。
3. 条件分岐で「こんにちは」を実装する
次に、「もし〜なら」という条件分岐を使って、特定の距離に何かが来た時の処理を書きます。
ロジックとしては、「距離センサーの値が999より小さくなったら(=何かが近づいたら)」という条件を設定します。この条件が満たされたときに、以下のブロックを組み合わせます。
- 発話コマンド: 「こんにちは」と喋らせる。
- 音のコマンド: 2000Hzなどの高い音を鳴らして、注意を引く。
- 動作コマンド: 右腕と左腕の角度を180度にする(万歳のポーズ)。
動画内では、腕を上げた後に少し待ってから、元の位置(垂直)に戻す処理も追加しています。これにより、一度きりの動きではなく、繰り返し挨拶ができる一連のアクションが完成します。
4. 学びの応用:挨拶ロボットから広がる未来
この距離センサーの基本をマスターすると、以下のような応用プログラムにも挑戦できるようになります。
- 防犯アラーム: 知らない人が近づいたら「だれだ!」と警告し、目が赤く光る。
- 自動停止カー: 障害物を検知して、ぶつかる前に自動で止まる自動運転の基礎。
- ソーシャルディスタンス・チェッカー: 人が近づきすぎたら音で知らせる。
センサーから得た「データ」を元に、ロボットに「判断」をさせ、具体的な「アクション」につなげる。この一連の流れは、現代の自動ドア、産業用ロボット、さらにはAI搭載家電にも共通する基本原則です。
5. まとめと注意点
距離センサーを使ったプログラミングのポイントを振り返りましょう。
- センサーの「無検知状態(999)」を理解し、しきい値を設定する。
- 通信の安定のために、必ずループ内に短い待ち時間を入れる。
- 音声・音・動作を組み合わせることで、表現力豊かなロボットにする。
プログラミングは「失敗」と「調整」の繰り返しです。動画でもあったように、片腕しか動かなかったら「なぜだろう?」と考え、ブロックを修正する。その試行錯誤こそが、論理的思考力を養う一番の近道です。ぜひ、自分だけの挨拶ロボットを完成させてみてください!



コメント