【発展編】16-b DJミキサー

Q1. ☆問題☆

サウンド録音をして、「music01」と名前で保存したよ。さらにもう一種類つくろうと録音したものを「music02」という名前で保存したら、「music01」が見当たらなくなってしまった!原因として考えられるものを、次からすべて選んでね。

  • music01を保存したプログラムとは別のプログラムでmusic02を録音したから
  • music01を録音したブロックと同じブロックでmusic02を録音したから
  • 本当は、1つのプログラムで2つ以上の録音をすることはできないから
  • 録音した音を再生する専用のプログラミングブロックを、レゴのホームページからダウンロードしてこなければならないから
  • music01のうしろにmusic02がくっついているから

正解

  • music01を保存したプログラムとは別のプログラムでmusic02を録音したから
  • music01を録音したブロックと同じブロックでmusic02を録音したから
  • 本当は、1つのプログラムで2つ以上の録音をすることはできないから
  • 録音した音を再生する専用のプログラミングブロックを、レゴのホームページからダウンロードしてこなければならないから
  • music01のうしろにmusic02がくっついているから

解説

まず、サウンドブロックの「録音」を使うと、音を録音して使えることはワークブックでも扱ったよね。
録音した音は、そのサウンドブロックを使うと再生できることも経験してくれた通り。

さて、それでは、2つ以上の音を録音して使うにはどうすればよいか?
もう一つ別のサウンドブロックを使って録音し、別の名前で保存することで2つ以上の音を録音することができるんだ。
ただし、録音した音はそのプログラムファイル(同じ画面内)でしか使えないことには注意が必要だ。

このことがわかっていれば、見当たらない原因は
「music01を保存したプログラムとは別のプログラムでmusic02を録音したから」
「music01を録音したブロックと同じブロックでmusic02を録音したから」
が正解だとわかるね。

image-1

Q2. ☆問題☆

上のようなプログラムを実行したところ、一度音が鳴り始めると、それぞれのセンサーが反応していなくても音が鳴り続けてしまったよ。
「センサーが反応したときだけ音が鳴る」ようにするには、どのような修正が考えられるかな。次の中からもっともふさわしいものを選んでね。

  • ループ回数を「3回」などと決める。それに加えて、もうひとつ「全体をくり返すループブロック」を入れる
  • ループブロックの後ろに1秒の待機ブロックを入れる
  • 2つのプログラムをワイヤー接続でつなぎ、超音波センサーの条件を「未満」ではなく「以上」にする
  • サウンドブロックをループブロックの外に出す
  • ループブロックの前に1秒の待機ブロックを入れる。それに加えて、「全体をくり返すループブロック」を入れる。

正解

  • ループ回数を「3回」などと決める。それに加えて、もうひとつ「全体をくり返すループブロック」を入れる
  • ループブロックの後ろに1秒の待機ブロックを入れる
  • 2つのプログラムをワイヤー接続でつなぎ、超音波センサーの条件を「未満」ではなく「以上」にする
  • サウンドブロックをループブロックの外に出す
  • ループブロックの前に1秒の待機ブロックを入れる。それに加えて、「全体をくり返すループブロック」を入れる。

解説

実際に試してみよう。

正解は
「ループ回数を「3回」などと決める。それに加えて、もうひとつ「全体をくり返すループブロック」を入れる」
だとわかる。
それ以外のプログラムでは、問題の解決にはならないよね。
下にプログラム例をのせておくので、自分でも試してみよう。

ループブロックやスイッチブロックを使うときには、「どこをくり返しているのか」「どの部分はどの場合に実行されるのか」などをよく考えないと、思ってもみない動きになることがある。どのような動きをするのか、プログラムからも考えてみることが大事だよ。

image-2

Q3. ☆問題☆

「ミッション3 サウンド機能を試してみよう」で、待機ブロックを入れると音がちゃんと聞こえるようになったよね。
どうして待機ブロックが必要だったのだろうか。次の中からもっともふさわしいものを選んでね。

  • 待機ブロックには「音を最後まで再生する」という機能があるから
  • 音がうまく鳴らないのは、音を鳴り始めたしゅんかんに次の音を鳴らすようになっているためなので、音が鳴り始めたら少しだけ待つことで音がちゃんと鳴るようになったから
  • 音がうまく鳴らないのは、鳴らそうとした音が大きすぎることが原因なので、待機ブロックを入れて音の大きさを小さくすることができたから
  • 待機ブロックを入れることで、EV3が冷静に考えてプログラムを実行できるようになったから
  • 待機ブロックを入れることで、サウンドブロックの機能が少し変わったから

正解

  • 待機ブロックには「音を最後まで再生する」という機能があるから
  • 音がうまく鳴らないのは、音を鳴り始めたしゅんかんに次の音を鳴らすようになっているためなので、音が鳴り始めたら少しだけ待つことで音がちゃんと鳴るようになったから
  • 音がうまく鳴らないのは、鳴らそうとした音が大きすぎることが原因なので、待機ブロックを入れて音の大きさを小さくすることができたから
  • 待機ブロックを入れることで、EV3が冷静に考えてプログラムを実行できるようになったから
  • 待機ブロックを入れることで、サウンドブロックの機能が少し変わったから

解説

「ブブブブブブブ」という音が鳴っていたのは、「ブラボー」と言おうとしたしゅんかんに、また「ブラボー」と言おうとすることを
くり返していたから、だよね。だから、とちゅうまででも「ブラボー」と言わせてあげれば、音はきちんと聞こえるはずだ。

そう考えれば、答えは
「音がうまく鳴らないのは、音を鳴り始めたしゅんかんに次の音を鳴らすようになっているためなので、
音が鳴り始めたら少しだけ待つことで音がちゃんと鳴るようになったから」
だよね。

待機ブロックには、「音を最後まで再生する」機能はないし、音を小さくするはたらきも、サウンドブロックの機能を変えるはたらきもないよ。
EV3は「言われた通り(プログラム通り)」のことしかできないから、冷静に考えてプログラムを実行する、なんてこともないよね。