【ロボットプログラミング教育】ロボット×Scratchでいろんな楽器の音を鳴らそう!

プログラミング教室「プロラボ唐津」では、ロボットを使ったプログラミング教育を行っています。

プログラミングロボット「クムクム」

使用しているプログラミングロボットは、「クムクム」です。

今回は、こちらのロボットを使ったプログラミングの例を紹介します。

こちらの動画を見ると、「クムクムロボットとScratchを使って、クリックした楽器の音色を鍵盤で音を出す」プログラムのようですね。

最後は、クムクムロボットをクリックして、ロボットに搭載されているスピーカーから音を出しています。

「いろんな楽器の音を鳴らそう!」のプログラムを考える

まず、こちらのプログラムの特徴をまとめると、以下の通りです。

  1. 楽器をクリックすると、その楽器の音色に代わる
  2. 特定のキーを押下すると決まった音階の音が出る

プログラムの特徴しては、この2つです。

どちらのプログラムも、条件分岐のif文を利用します。

ifは、英語で「もし~ならば」という意味で、Scratchでは、「もし~なら●」というブロックを使います。

ただし、今回の楽器は、「フルート」「ピアノ」「トロンボーン」「チェロ」「クムクムロボット」の6種類あります。

Scratchのif文のブロックは、「もし~なら●」「もし~なら●でなければ▲」の2つのブロックだけですので、「もし~なら●」ブロックを使うと同じブロックが6つ並ぶことになります。

プログラミングで条件分岐が多い場合は、if文ではなく、switch文やselect文など、他の構文で書くこともあります。

if文とswitch文の使い分けは、ソースコードの読みやすさや実行速度の速さなどがありますが、switch文やselect文のブロックは、Scratchにはありません。

逆に、キーボードのキーが押されたときに使うブロックで、「●キーが押されたとき」というScratch独特のブロックもあります。

「押されたとき」というのは、条件分岐になるため、右側の「もしスペースキーがおされたなら●」という書き方が、本来のプログラミングの書き方です。

すでに用意されているブロックは便利ですが、プログラミング教室「プロラボ唐津」では、なるべくソースコードを記述するプログラミング言語に沿った書き方で、プログラミングを教えていきます。

少し話がそれましたが、「いろんな楽器の音を鳴らそう!」のプログラムは、if文を使った簡単なプログラムです。

また、「ドレミファソラシド」の音階の音は、Scratchの「●の音符を▲拍鳴らす」というブロックを使います。

あとは、「ド」のキーを押下すれば、「ド」の音が出るよう設定するだけです。

そんなに難しいプログラムではないですよね?

ちなみに、音階の選び方は、鍵盤が出て、そこから選びますが、クムクムロボットから音を出す場合は、「Hz(ヘルツ)」で指定します。

音は空気の振動により発生し、周波数の「Hz」で表せます。

音階は、このHzで表されるので、クムクムロボットのブロックでは、「Hz」で指定しているというわけです。

ブロックには、440Hzと書いてありますが、音楽に携わっている方にとっては、よく見る数値ですよね。

440Hzは「ラ」の音です。

ギターなど楽器のチューニングをするときも、440Hzを基準にすることが多いですよね。(440,441,442Hzなどもあり)

これは、1939年にロンドンで行われたISAによる国際会議で決められたものです。

音階の周波数表を見て何か法則があることに気づきませんか?

「ラ」に注目すると、上に行くほど1/2倍になり、下にいくほど2倍なっています。

実は、1オクターブ高くなると周波数が2倍になり、1オクターブ低くなると半分(1/2倍)になるのです。

法則性が見えてくると、音楽が突然、数学に近づいたように感じませんか?

音階については、こちらの動画が数学で分かりやすく解説しているので、とても面白いです。

プログラミング教室「プロラボ唐津」では、子供たちに、学校で学ぶ分野も織り交ぜながら教育していきます。

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