MTUでブザーを鳴らして、“あの”レベルアップ音を再現したい!マイクロマウスで始める組み込み開発入門(9)(1/3 ページ)

マイクロマウスの市販組み立てキットを完成させた北上くんとえみちゃん。サンプルのソースコードに頼らず、オリジナルプログラムをイチから組もうと奮闘中。今回は、MTUのPWMモードを使ってブザーの制御にチャレンジする。

» 2013年01月09日 10時00分 公開
[三月兎,MONOist]

前回のあらすじ

 組み込み技術者に要求される要素が“ギュッ”と詰まった「マイクロマウス」。北上くんと新入社員のえみちゃんは、スキルアップを兼ねてマイクロマウスの開発を始めることにしました。「階層構造」を意識したオリジナルプログラムを開発することになったえみちゃんは、北上くんの指導の下、どうにかスイッチのチャタリング問題も解決し、LEDを光らせることに成功しました(前回の記事へ)。


本連載の登場人物

北上 篤人(きたがみ あつと)
26歳、男性。次期プロジェクトリーダーとして期待されている(と、本人は思っている)。専門は、ソフトウェア開発。電気回路やハードウェアに苦手意識を持っていて、いつか克服したいと考えている。

物江 えみ(ものえ えみ)
22歳、女性。この4月に入社したばかりの新入社員。C言語は大学の授業で学んだ程度なので、仕事についていけるかどうか不安を抱えている。性格は明るく、好奇心旺盛。早く一人前になりたいという強い熱意を持っている(ようだ)。



ブザー発音の仕組み

――ピンポーン!(チャイムの音)

えみ

こんにちはー!


北上

いらっしゃい! あれ、何だか楽しそうだね?


えみ

センパイ、今日は「ブザーを制御する」って言ってましたよね!

ワタシ、やりたいことがあるんです〜。


北上

へぇー。一体何をやりたいのかな?


えみ

ブザーで「ちゃららっ、ちゃっちゃっちゃーん♪」って鳴らしたいんです!


北上

よーし、分かった!! 「レベルアップ」目指してやってみよう。


えみ

はいっ!!



 階層構造プログラムに戸惑っていたえみちゃんも、ようやく自分のやりたいことを考える余裕が出てきたようです。そうなると、がぜん開発が楽しくなりますね。

 今回は「ブザー」を制御します。詳しい内容に入る前に、ブザーの仕組みを簡単に紹介します。

 そもそも「音」とは、空気などの振動として伝わるものです。“ブザーの音が聞こえる”ということを、もう少し細かくかみ砕いて説明してみましょう。まず、ブザーの中に組み込まれている振動板の動き(音源)が空気の振動(音波)として伝わります。そして、それを受けた人間の鼓膜(中耳)が振動し、聴覚神経(内耳)に伝わることによって、「音」として感じ取ります。

 このように音が振動となって伝わるときの空気の圧力のことを「音圧」と呼び、その時の気圧の変化が1秒間に何回あるかを「周波数」と呼びます。音圧が大きければ音は大きく聞こえ、周波数が高ければ音は高くなります。つまり、周波数を一定のルールに従って変化させれば、ド・レ・ミ……の音階が作れるのです。1939年に国際会議で「ラ」の音の周波数が“440Hz”に定められました。一般には、これを基準に他の音程の周波数を求めます(表1)。

十二平均律音階 表1 国際基準「ラ」=440Hzに基づく十二平均律音階。「音程が1オクターブ上がると、周波数が倍になる」という法則があり、「ラ」の440Hzを基準に計算で求められる

 ちなみに、マイクロマウスの市販組み立てキット「Pi:Co Classic」に搭載されているブザーは、電磁型(マグネチック型)です。電気信号を加えることで、音源部を振動させて音を出します(画像1)。

電磁型ブザー 画像1 電磁型ブザーの内部構造。所定の周波数で電気信号を入力すると、コイルに電流が断続的に流れる。このとき発生する磁界により、振動板が上下に震動して音を発する

 ブザーが音を出す仕組みと、音階と周波数の関係を理解したところで、プログラムに必要な情報をデータシートでチェックしておきましょう(表2、画像2、画像3)。

基板ポート一覧 表2 基板ポート一覧(※Pi:Co Classic 取扱説明書_ver1.08.pdfより抜粋)
ブザー部分 画像2 STK-7125回路図のブザー部分(ピンク色の箇所)
ブザーの回路図 画像3 ブザーの回路図

ブザー制御に「MTU」のPWMモードを使うと何がうれしいのか?

えみ

まさか、マイクロマウスのプログラミングで、音階の勉強をするとは……。


北上

「ちゃららっ、ちゃっちゃっちゃーん♪」と鳴らしたかったら、音階は必要でしょ。


えみ

そういえば、ワタシちゃんと調べてきたんですよ。レベルアップ音は「ソ・ソ・ソ・ファ、ラ・ソ〜」って音階です。半音があると面倒かもって思って、変調してきたんですよ!


北上

おー、準備万端だね!


えみ

それでセンパイ、どうやってプログラムでブザーを鳴らすんですか?


北上

前回ちょっと説明した「MTU」を使うんだよ!


えみ

MTUって、確かタイマーですよね? タイマーを制御して音が鳴るんですか?


北上

うん、そうなんだよ!!



       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.