研修(移行中)

マイクロマウス研修 プログラミング3

さて、前回初めて自分でちょこちょことっとプログラムをいじって、
LEDを交互に点滅させられたshibuです(ドヤァ)

でもプログラムを理解しないままやっているので、同じ道で引っかかりそうです。

今回はマイクロマウスの「ブザーを鳴らしてみよう」です。
音を写真に写すことは出来ないので・・・写真がありません。地味な記事です。

例のアオキ師匠の丁寧な資料を読んでいきます。
2016-11-11

流石に文字が小さいので、こちらに概要を書くと・・・

ブザーには、電源を入れて音が鳴るものと、ON/OFFを繰り返さないと音が鳴らないものがある、と。
電源を入れるだけのタイプは色々な音を出せない為、今回はON/OFFを繰り返すタイプを使用する、と。

ON/OFFでなぜ音が鳴るかというと、音というのは空気などの媒体が周期的&連続的に
運動した時に聴覚に伝わるものだから、だそうです。
2016-11-11 (2)

ふ~ん。薄ぼんやり分かったような気がします。

音って視覚化すると蛇がうねっているような波型のイメージですよね。
それがプログラミング的に理解するとON/OFFってイメージなのかな?と勝手に理解した気になる。

それでは早速ブザーのプログラムソースを見てみましょう。(←あ、なんかかっこいい感じ!)

while(1) //無限ループ
{
BUZZER = 1; //ブザーに1を出力
for(i = 0; i < 0x3000; i++); //時間待ち(空ループ)
BUZZER = 0; //ブザーに0を出力
for(i = 0; i < 0x3000; i++); //時間待ち(空ループ)
}

わ~、分からない!!

とりあえず、私が書かなくても元から入っているサンプルプログラムを
ミニーちゃんにセットしてブザーを鳴らしてみると、無事「ピ――――」と鳴りました。

でもこれだけじゃつまらない。だって何もしていないもん。
プログラムをいじって、LEDの時みたいにちょっと音に変化を付けて見たいところ。

どうやら資料を読んでいくと、ちょこっと数字をいじるとブザー音の高さを変えられるそう。
アオキ師匠が上のプログラムソースを説明してくれているのが頭に入ってきません。

LEDの時は「0=LEDが消灯」「1=点灯」だったので
ブザーも「0=音が鳴らない」「1=音が鳴る」かと思いきや、「そうではない」とのこと。なんと!

えぇっと、0と1を何度も行き来して(つまり波形になって)初めて音が鳴るそうです。
0だけだと音が鳴らない、1だけでも音が鳴らない。
そしてプログラミングソースの上の方に「無限ループ」と書いてあるので、
きっとON/OFFを永遠に繰り返しているから「ピ――――」と連続したブザー音に聞こえるのでしょう。
不思議です。

LEDみたいに目で見て体感出来るならいいですが、
音の波形を体感することは出来ないですからね。音叉では出来ないことはないけど・・(多分)

プログラムソースに戻りますが、どうやら3000と数字がある所を変えると音の高さが変わるらしい。

まず3000から5000に書き換えてミニーちゃんで実際に音を出してみると・・
3000の時よりも低い音がしました!!
そして数字の所を1000に変えてみると、高い音!!面白い!!

ということで、今回はブザー音の変更まで(一応)出来ました。

来週から遂にアオキ師匠は「マイクロマウス休暇」に入ってしまいます。
それなので、次回は今回学んでここに書ききれなかったことなどを頭の整理の為に書こうと思います。

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