はじめに:スクラッチでロボットに「命」を吹き込む!乱数を使った制御への挑戦
プログラミング教育が必修化され、子供たちがスクラッチ(Scratch)を通じて論理的思考を学ぶ機会が増えています。しかし、画面の中の猫を動かすだけでは物足りないと感じていませんか?
本記事では、プログラミングロボット「クムクム(Qumcum)」を使い、まるでロボットが自分の意思を持っているかのように「勝手に動く」プログラムの作り方を解説します。今回のテーマはズバリ「乱数(らんすう)」と「変数(へんすう)」です。
このチュートリアルを通じることで、以下のスキルが身につきます。
- 予測不能な動きを作る「乱数」の使い方
- プログラムの裏側を可視化する「変数」の活用法
- 複数のモーターを同時に制御する並列処理の基礎
ロボットがランダムに動く様子は、生き物のような愛嬌を感じさせます。ぜひ、楽しみながらプログラミングの深淵に触れてみましょう。
1. 乱数(ランダム)とは?ロボットを不規則に動かす魔法
規則正しい動きからの脱却
通常のプログラミングでは、「右に90度回る」「10歩動く」といった具合に、明確な数値を指定します。これは正確な動作には不可欠ですが、生き物のような「ゆらぎ」や「予測不能な面白さ」には欠けます。
そこで登場するのが「乱数(Random Number)」です。
スクラッチでの「乱数」ブロック
スクラッチには「1から10までの乱数」というブロックがあります。これを使うと、プログラムを実行するたびに、サイコロを振るように違う数字が選ばれます。
今回の動画のチュートリアルでは、この乱数をロボットの「関節の角度」に適用します。毎回違う角度に首や腕が動くことで、ロボットがまるでキョロキョロと周りを見渡したり、勝手気ままに体操をしているような動作を実現できるのです。
2. 実践ステップ1:顔(首)をランダムに動かしてみよう
まずは基本となる「顔(首)」の動きから作っていきます。
基本設定と初期化
ロボットを動かす前の準備として、必ず「初期化」を行います。
- モーター電源ON:ロボットを動かす準備をします。
- 位置のリセット:ロボットが今どこを向いているかわからないため、一旦「1秒で全パーツをまっすぐ(0度)」に戻すプログラムを入れます。
これにより、毎回正しい姿勢からスタートできるようになります。
乱数ブロックの組み込み
次に、顔を動かすブロックの「角度」の部分に乱数を入れます。
- 範囲の指定:動画では「0から180までの乱数」としています。
- 動作の確認:ブロックをクリックするたびに、顔が右を向いたり左を向いたり、毎回違う角度に動くことを確認します。
これを「ずっと」ブロックで囲むことで、ロボットは永遠に首を振り続けるようになります。
3. 実践ステップ2:手足も連動させて全身運動へ
顔だけでは物足りないので、両腕も動かしてみましょう。
プログラムの複製(コピー&ペースト)
スクラッチの便利な機能である「複製」を使います。顔のプログラムができたら、それを右腕用、左腕用にコピーします。
- 左腕の制御:同様に0〜180度(または可動域に合わせて調整)の乱数をセット。
- 右腕の制御:左腕と同じく乱数をセット。
動きのスピード調整
動画内では、動きが遅すぎると感じたため、動作時間を「1秒」から「0.5秒」に変更しています。これにより、ロボットがキビキビと、あるいはパニックになったように素早く動くようになります。数値を変更するだけでロボットの「性格」が変わって見えるのも面白いポイントです。
4. 重要テクニック:変数の可視化(デバッグの基礎)
ここが本記事の最も重要な学習ポイントです。
「今、何度に向いているの?」問題
乱数を使ってロボットを動かすと、人間が見ていても「今、右腕が何度に動いたのか?」が分かりません。プログラムが勝手に決めている数字だからです。
そこで役立つのが「変数(Variable)」です。
変数の作成と活用手順
動画では以下の手順で変数を設定しています。
- 変数の作成:「顔」「左腕」「右腕」という3つの変数を作ります。
- 変数の表示:スクラッチのステージ上に、これらの変数を表示させておきます。
- ロジックの変更:
- いきなりモーターを動かすのではなく、まず「変数に乱数をセット」します。
- その次に、「モーターの角度にその変数をセット」します。
なぜこの手順が必要なのか?
直接乱数ブロックをモーター制御ブロックに入れてしまうと、後から「さっき何度だった?」と確認することができません。
一度「変数」という箱に数字を保存してから、その箱の中身を使ってモーターを動かすことで、「現在ロボットがどのような数値で制御されているか」を画面上でリアルタイムに監視(モニタリング)できるようになります。
これは実際のシステム開発でも「ログを取る」「デバッグを行う」といわれる非常に重要な工程です。
5. 応用:ここから広がるプログラミングの世界
今回の「勝手に動くロボット」は、単なるランダムな動きですが、少し工夫するだけで高度な作品に進化します。
応用アイデア
- ダンスロボット:乱数の範囲を調整して、特定のリズムでポーズを決めさせる。
- じゃんけんゲーム:乱数で「グー・チョキ・パー」のポーズを決めさせ、ユーザーと勝負する。
- あっち向いてホイ:顔の向きを乱数で決め、センサーで指の動きを読み取る組み合わせ。
まとめと注意点
今回のチュートリアルでは、クムクムロボットを使って以下のことを学びました。
学んだポイント
- 乱数の面白さ:プログラムに偶然性を取り入れることで、生き物のような動きを表現できる。
- 変数の重要性:内部で起きている計算(今回は決定された角度)を見える化することで、プログラムの理解と確認がしやすくなる。
- 並列処理:顔、右腕、左腕を同時に制御する方法。
注意点
ロボットを動かす際は、モーターの可動域に注意してください。乱数で無理な角度(物理的に動かない角度)を指定してしまうと、モーターに負荷がかかり故障の原因になることがあります。必ずロボットの仕様に合わせた数値範囲(例:0〜180度など)を設定しましょう。
スクラッチとロボットを組み合わせることで、画面の中だけでは味わえない「物理的なフィードバック」を得ることができます。ぜひ、あなただけのユニークな動きをするロボットを作ってみてください。



コメント