プログラミング教室「プロラボ唐津」の教育法②

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

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

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

プログラミング教室「プロラボ唐津」は、このクムクムロボットを使って、プログラミングだけでなく、ロボットの機能の仕組みや関連知識も一緒に教えていきます。

プログラミング教室「プロラボ唐津」の教育法①』では、クムクムロボットのLEDを使ったプログラミング教育について紹介しましたが、今回はもう一つ、「スピーカー(音)」で、どのように教えているのか紹介します。

クムクムロボットのスピーカー(音)

クムクムロボットのお腹についているのが、「スピーカー」です。

スピーカーとは、簡単にいえば音を出す装置ですよね。

オーディオ機器、信号機、学校のチャイム、スマホなど、生活する中で、スピーカーはさまざまなところで使われています。

クムクムロボットのプログラミングでは、周波数を設定することで、さまざまな音階の音を出すことができます。

周波数で、音階やキーの上げ下げの調整もできますので、「かえるのうた」のようなメロディーも作れます。

ちなみにこちらは、スピーカーを使って、DeepPurpleの代表作「Smke on the water」を演奏しながら、踊っているクムクムロボットです。

こちらは、C言語でプログラミングしていますが、スピーカーでメロディーを作っています。

音の正体は「振動」です。

空気の揺れが、耳の鼓膜に届き、ふるわせることで、音として聞こえてきます。

空気のような音を伝える物質のことを「媒質」といいます。

つまり、振動を伝えるための「媒質」がなければ、音は伝わらないということです。

音が伝わらない空間といえば、真空の宇宙空間ですよね。

音の3要素

音が伝わる仕組みは分かりましたが、音ってさまざまな音がありますよね?

音には、「音の3要素」と呼ばれている「高さ」「大きさ」「音色」があり、人はこの3要素からさまざまな音を感知しています。

音の高さ

「音の高さ」は、空気がどれだけ速くゆれるかで変わります。

このゆれる速さの事を、電気の世界では「周波数」とよび、1秒間にゆれる回数を「Hz(ヘルツ)」という単位で表します。

周波数の数値が大きければ、たくさんゆれるので高い音が、小さければ、あまりゆれない低い音となります。

人間は、20Hz~20,000Hzの音を聴く事ができるとされています。

ただし、年齢とともに、周波数の高い音は、徐々に聞き取りにくくなります。

こちらは、耳年齢チェックの動画ですが、お子さんと一緒にテストしてみてください。

子供はすぐに聞こえるはずですが、大人は高い周波数の音をまったく聞き取れません。

音の大きさ

「音の大きさ」は、空気がゆれる大きさで変わります。

手を軽くたたくと小さい音が、強くたたくと大きな音がでますよね。

これが、「音の大きさ」です。

音の大きさは、周波数の波の大きさで表されます。

小さな音は波が小さく、大きな音は波が大きくなります。

音の「高さ」「大きさ」については、こちらの動画が分かりやすいです。

音の音色

「音の音色」は、波の形で決まります。

小さい波や長い波、短い波などいろいろな形があり、いろいろな形を組み合わせて、一つの音を作っているのです。

厳密には、周波数の整数倍の振動「倍音」が重なることで、「音色」が構成されているのですが、大人でもよく理解できないですよね。

こちらの動画は、色々な楽器とクムクムのスピーカーを使ったプログラムです。

簡単にいえば、楽器が「音色」で、ドレミファソラシドが「高さ」です。

子供が理解できない場合は、イメージのみを伝えて、理解できるようになった時に、詳しく教えていきます。

ちなみに、「倍音」については、こちらをご覧ください。

大人でも初見では、理解するのが難しいですよね、、、

周波数

クムクムロボットは、周波数を設定することで、「音の高さ」を調整していきます。

「ドレミファソラシ」の音階は、この音の高さで決まっています。

こちらは、音階の周波数一覧です。

こうやって音を数字に置き換えると、数学の世界のように感じますよね。

実は、音は法則性があり、数字だけで理解できるのです。

音の高さ

例えば、「音の高さ」で、周波数が大きくなるほど、高い音がでましたよね。

「ドレミファソラシ」と周波数を見ていくと、数値が大きくなっています。

つまり、同じ音階では、最初の「ド」より「シ」の方が音が高い(周波数が大きい)ということです。

ピアノの鍵盤をイメージしてみてください。

ピアノは、右にいくほど高い音が、左に行くほど低い音がでますよね。

楽器のチューニングは、一つ一つの音を決められた周波数で設定しているというわけです。

オクターブ

もう少し数字をみていきましょう。

「ド」という音には、高い「ド」もあれば、低い「ド」もありますよね。

この違いは、周波数の大きさですが、ここにも法則性があります。

440Hzの「ラ」に注目すると、上の「ラ」は220Hz、さらにその上は110Hzで、上に行くほど数値が1/2倍(半分)になっています。

逆に、下の「ラ」は、880Hz・1760Hzと、下にいくほど2倍になっています。

表の「ド・ド#・レ・レ#・ミ・ファ・ファ#・ソ・ソ#・ラ・ラ#」の12音を1オクターブといい、1オクターブ高くなると周波数が2倍になり、1オクターブ低くなると1/2倍(半分)になるのです。

これだけでも、音を数字で理解できるようになりましたよね。

オクターブについては、こちらの動画が、数学で分かりやすく解説しており、とても面白いです。

こういう法則を知ると、プログラミングする際に、より効率よく考えることができます。

こちらは、子供でも簡単にプログラミングができる「Scratch」のブロックです。

左のブロックが、Scratchに元々ある音を鳴らすブロックです。

右側のブロックは、クムクムロボット専用のブロックです。

左のブロックは、ピアノの鍵盤で、好きな音を選びプログラミングしていきます。

子供たちは、単に音が出る道具としか見ていませんし、他のプログラミング教室も音について詳しく教えることはしないはずです。

ドには「C(60)」と書いてありますが、「C」はアメリカなどの音名表記です。

音名とは「ドレミファソラシ」のことですが、日本語表記は「ハニホヘトイロ」、英語表記は「CDEFGAB」となります。(440Hzの「ラ」が基準)

つまり、ドは英語表記で「C」というわけです。

「60」というのは、単なる連番です。

こちらのブロックは、0~130の連番が振られており、この「ド」は、60番目の音ということです。

Scratchで曲のプログラムを作る場合、このブロックを大量に並べる人が多いです。

YouTubeで「Scratch 曲」で検索するといくつか紹介されていますが、ほとんどの方は、ブロックを大量に並べています。

音の法則性が分かれば、リストを作ることで、少しのブロックでどんな曲でも簡単に作れます。

中には、こちらのように、リストの音階をブロックの連番に合わせて曲づくりをしている作品もありました。

これがプログラミングの世界です。

並べて作るだけなら誰でもできます。

このように「音」を分解・分析して、論理的に考えれば、ものすごく効率よく実現させることができます。

こちらの動画紹介文では、以下のように書かれていました。

はじめは音を鳴らす命令ブロックを積み上げていたのですが、これは無理!!と思い、MIDIデータを取り込んで、演奏する仕組みを作りました。

この感覚が、非常に大切です。

プログラミングは、やりたいことを具現化させる手段ですが、人間がやっていた、面倒な作業をなくすために活用されることが多いです。

大量のブロックを並べていくことが、まさにその面倒な作業であって、もっと楽な方法がないか考えて仕組みを作るのが、プログラミングです。

結果だけ見れば、どちらも同じ結果になりますが、効率の面では、圧倒的に仕組みを考えたプログラムの方が、凌駕します。

【ロボットプログラミング教育】ロボット×C言語でロボットを踊らせる」でも書いていますが、プログラマーは、めんどくさがりで楽することばかり考えていて、楽するためなら苦労もいとわないぐらい、めんどくさいことをやりたがりません。

この楽することを考える行動は、常に頭の中で論理的にその方法を模索しています。

それを実現させるためには苦労もいとわず、そういう人は必ず具現化させます。

これが、論理的思考であり、問題解決力です。

プログラミング教室「プロラボ唐津」では、子供たちに自由にプログラミングさせますが、作ったプログラムの中身を一緒に見ながら、効率の良い仕組みができないか、論理的な思考を養っていきます。


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