入門Scratch

11.VOICEコントロール⑤【計算ロボット】

はじめに:クムクムロボットがあなたの計算機に!

プログラミング教育で人気の「Scratch(スクラッチ)」と、愛らしいプログラミングロボット「クムクム」を組み合わせて、インタラクティブな作品を作ってみましょう。今回のテーマは、ズバリ「計算ロボット」です。

キーボードから入力した2つの数字をクムクムが受け取り、頭の中で計算を行い、その式と答えを声に出して教えてくれるプログラムを作成します。このプロジェクトを通じて、プログラミングの基本である「順次処理」「変数(データの記憶)」「入出力」「演算」といった重要な概念を楽しみながら学ぶことができます。

「ロボットに計算させるなんて難しそう…」と思うかもしれませんが、Scratchのブロックを使えば驚くほど簡単に実装できます。大きな桁の計算も瞬時にこなすクムクムの姿は、子供たちにとっても驚きの体験になるはずです。それでは、さっそく作り方を見ていきましょう。

この記事で学べること(概要)

本記事では、以下のステップで「計算ロボット」の開発を進めていきます。

  • 変数の基礎:数字を記憶しておくための「箱」の作り方と使い方。
  • ユーザー入力の取得:「調べる」ブロックを使って、外部からのデータを受け取る方法。
  • 演算処理:受け取ったデータをプログラム内部で計算する方法。
  • 音声コントロール:計算結果や数式をロボットに喋らせるためのテクニック。
  • ロボット演出:LEDやビープ音を使って、計算中の「考え中」の雰囲気を出す演出方法。

プロジェクトの準備:変数の作成

計算を行うためには、入力された数字を一時的に保存しておく場所が必要です。プログラミングではこれを「変数」と呼びます。今回は3つの変数を用意します。

必要な3つの変数

  1. 数値1:1つ目に入力された数字を保存する場所。
  2. 数値2:2つ目に入力された数字を保存する場所。
  3. 答え:計算結果を保存する場所。

変数の作り方

Scratchの画面左側にある「変数」カテゴリーを選択し、「変数を数くる」ボタンをクリックします。最初は「my variable」などの名前になっているかもしれませんが、管理しやすいように名前を変更しましょう。変数のブロックを右クリックして「変数名を変更」を選び、それぞれ「数値1」「数値2」「答え」と名付けます。また、これらの変数は画面上に表示しておくと、プログラムが正しく動いているか確認(デバッグ)しやすくなります。

プログラミング手順詳細

準備ができたら、実際にブロックを組み立てていきましょう。処理の流れは「入力」→「計算」→「出力(動作・発話)」の順になります。

1. ユーザーからの入力を受け取る

まず、ロボットがユーザーに数字を尋ねる部分を作ります。「調べる」カテゴリーにある「(あなたの名前)と聞いて待つ」というブロックを活用します。

  • まず、「1つ目の数字は何?」と質問するようにテキストを変更します。
  • ユーザーが数字を入力してEnterキーを押すと、その値は「答え(調べるブロック専用の変数)」に入ります。
  • この値を、先ほど作った変数「数値1」に保存します。「(変数)を(値)にする」ブロックを使い、「数値1を答えにする」と設定しましょう。
  • 同様に、「2つ目の数字は何?」と聞き、その結果を「数値2」に保存する処理も続けて作成します。

2. 計算処理を実装する

2つの数字が変数に入ったら、次は計算です。今回は足し算を行います。

「演算」カテゴリーから「(〇)+(〇)」という足し算のブロックを取り出します。この左右の空欄に、変数カテゴリーから「数値1」と「数値2」のブロックをそれぞれはめ込みます。これで「数値1 + 数値2」という計算式ができました。

この計算結果を、変数「答え」に保存します。「答えを(数値1 + 数値2)にする」というブロックを組み立てれば、計算処理の完了です。コンピュータは一瞬でこの計算を終えます。

3. ロボットに結果を喋らせる・演出を加える

ここがロボットプログラミングの一番楽しい部分です。ただ画面に数字が出るだけでなく、クムクムロボットが実際に喋って動くようにします。

読み上げのフローを作る

計算式と答えを順番に喋らせます。クムクムの音声合成ブロック(「〇〇と発話する」や「携帯読みで〇〇」など、環境に合わせたブロック)を使用します。

  1. 「数値1」を読み上げる。
  2. 「たす」と発話させる。
  3. 「数値2」を読み上げる。
  4. 「は」と発話させる。

「計算中」の演出を入れる

「は」と言った直後にすぐ答えを言うのではなく、ロボットが計算しているような演出を入れると、よりリアリティが増します。

  • ビープ音:「ピッ」という音(0.1秒程度)を鳴らします。
  • LED点灯:計算している合図として、LEDをピカッと光らせます。
  • 待機時間:「1秒待つ」などのブロックを使い、少し「溜め」を作ります。これにより、ロボットが一生懸命計算しているように見えます。

結果の発表

演出の後に、いよいよ正解を発表します。

  1. 変数「答え」の内容を読み上げさせる(下読みモードなどを活用)。
  2. 最後に「です」と発話させる。
  3. 終わりの合図として再度ビープ音を鳴らし、LEDを消灯します。

動作確認と注意点

実際に動かしてみる

プログラムが完成したら、緑の旗を押して実行してみましょう。 「1つ目の数字は?」と聞かれたら、例えば「100」と入力。「2つ目の数字は?」に対し「200」と入力します。 クムクムが「100、たす、200、は…(ピッ!ピカッ!)、300、です」と喋れば大成功です。

億単位の計算も可能?

Scratchの内部計算は非常に優秀です。動画内のデモでも実演されている通り、「1億」を超えるような桁数の多い数字でも正確に計算し、読み上げることができます。 「15億2014万… + 69億…」といった複雑な計算をさせて、クムクムが早口言葉のように長い数字をスラスラと言う様子は見ていて圧巻です。ぜひ限界に挑戦してみてください。

注意点:通信環境と発話の遅延

ロボットを動かす際、PCとロボット間の通信状態によっては、発話がスムーズにいかない場合があります。 特に、連続して「発話」ブロックを並べると、前の言葉が終わる前に次の命令が送られてしまったり、通信ラグで言葉が詰まったりすることがあります。 その場合は、発話ブロックの間に「0.5秒待つ」などの短いウェイト(待ち時間)を入れることで、聞き取りやすく安定した動作になります。動画でも、スムーズに喋らせるために微調整を行っています。

応用への道:四則演算やクイズへの発展

今回の「足し算ロボット」が完成したら、次のような応用にもチャレンジしてみましょう。

  • 四則演算の切り替え:足し算だけでなく、引き算、掛け算、割り算もできるように改造してみましょう。「どの計算をしますか?」と最初に聞く機能を追加すると良いでしょう。
  • 計算クイズロボット:逆にロボットから問題を出して、ユーザーが答える形式にするのも面白いです。「正解!」「残念…」といった判定機能を追加します。
  • お買い物計算機:「リンゴが〇個、ミカンが〇個」と入力すると、合計金額を計算してくれるプログラムに発展させることも可能です。

まとめ

今回は、Scratchとクムクムロボットを使って、入力された数字を計算して喋らせるプログラムを作成しました。 変数の使い方から、ユーザー入力の処理、そしてロボットならではの演出まで、プログラミングの重要な要素が詰まったプロジェクトです。

画面の中だけで完結するプログラムとは違い、実際にロボットが光ったり喋ったりすることで、自分が作ったプログラムが「世界に働きかけている」という実感を得ることができます。これは学習のモチベーション維持において非常に強力な要素です。

ぜひ、この計算ロボットをベースに、あなただけのオリジナルロボットへと進化させてみてください。AI時代の入り口として、まずは「計算」という基本的な知能をロボットに吹き込んでみましょう。

コメント

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