プログラミング教室「プロラボ唐津」では、ロボットを使ったプログラミング教育を行っています。
使用しているプログラミングロボットは、「クムクム」です。
今回は、こちらのロボットを使ったプログラミングの例を紹介します。
こちらは弊社で販売しているプログラミング教材「Qumcum(クムクム)」
scratchでプログラミングすることで動かすことが出来ます。今回は無料で公開しているコンテンツをご紹介します。
「いろんな楽器の音を鳴らそう!」#プログラミング教育#scratch https://t.co/2yiqlnLZ7V pic.twitter.com/qEhcnFsqKg— クレタリア@プログラミング教育 (@cretaria_inc) February 20, 2019
こちらの動画を見ると、「クムクムロボットとScratchを使って、クリックした楽器の音色を鍵盤で音を出す」プログラムのようですね。
最後は、クムクムロボットをクリックして、ロボットに搭載されているスピーカーから音を出しています。
「いろんな楽器の音を鳴らそう!」のプログラムを考える
まず、こちらのプログラムの特徴をまとめると、以下の通りです。
- 楽器をクリックすると、その楽器の音色に代わる
- 特定のキーを押下すると決まった音階の音が出る
プログラムの特徴しては、この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倍)になるのです。
法則性が見えてくると、音楽が突然、数学に近づいたように感じませんか?
音階については、こちらの動画が数学で分かりやすく解説しているので、とても面白いです。
プログラミング教室「プロラボ唐津」では、子供たちに、学校で学ぶ分野も織り交ぜながら教育していきます。