LilyPad用圧電ブザー
  今回は、LilyPad用の圧電ブザーを使用します。圧電ブザーですので音として鳴らすためには、音の高さに応じた周波数のパルス信号を加える必要があります。ディジタル出力をブザーのプラス端子に接続します。ブザーのマイナスは電源のGND(-電源)に接続します。
 この状態で、パルスの周期の半分の時間 ディジタル出力をHIGHにして、残りの半分の時間 出力をLOWにします。ブザーを鳴らしている間、この操作を続けます。この処理のためのスケッチではブザーを鳴らすための関数を作ってみます。

発振周波数はドレミファ
 発振周波数はC7からのドレミファの4音を繰返すことにします。ドは2093Hz、レは2349Hz、ミは2637Hz、ファは2794Hzとなります。

「スローステップ運動」のテンポを決めるブザーを作る
  このブザーを何に使うか考えていると、2009年8月5日放送の「ためしてガッテン」でスローステップ運動のことが紹介されていました。約20cmの高さの台の上り下りを繰り返すだけでウォーキングの1.4倍のカロリーを消費し、太もも、大腿四頭筋などの筋力を増加することができる優れものとの話です。
 ちょうど良い踏み台は手元にありました。あとは、一分間に80回の足を動かすテンポが良いとのことですから、このテンポでブザーを鳴らすことを考えていました。運動不足、体力維持のため何かマシンの購入が必要かと思っていました。しかし、踏み台とLilyPad用の圧電ブザーでテンポを作ればそれで済みそうです。

        音が小さいのでデニムに縫いつけ、肩にかけて使用する。電源はUSBから


lilypad220010.jpgブザーから音を出すためのスケッチ
 発振周波数から、パルスの周期を求めます。周期の単位はμsとします。1秒で百万μsですから、この周期を表すデータはintの整数では桁が足りなく倍精度longを使用します。この倍精度のlongを使用しないと正しい答えが得られませんので注意が必要です。
 音を鳴らすためのパルス:

    パルスの周期=1000,0000(μs)/周波数 (サイクル/sec)
 
  ドの場合
      ドの周期=1000,000/2093
             =477μs


  オン/オフの時間はこの半分で 477/2=238μs

所定の時間鳴らすための仕組み
  bms(m秒)ブザーを鳴らしたいとすると、発振パルスの数が次のように決まります。
     必要とする発振パルス数=b(ms)/(パルス周期)
  この回数、パルスのオン/オフを繰返します。所定の回数繰返すための処理は
for 文で行います。
 パルスのオンとオフのそれぞれの時間待ちは、μs単位の待ち時間を指定できるdelayMicroseconds(us)の関数を使用します。

音を鳴らす関数を作る

 独自に必要な関数を作ることができます。ここでは、ブザーの接続されているポート番号、発振周波数(Hz)、音を出す持続時間(ms)を与えると指定された周波数の音で所定の時間、ブザーを鳴らします。
 関数名を定義して、関数に渡すデータをbuzpinはポート番号、freは周波数、timel1は時間の受け渡しを行います。

void beep(int buzpin,int fre,long timel1){

 変数xはブザーの吹鳴時間を決めるループ・カウンタの変数。
int x;
long delayHL = (long)(1000000/fre/2);

 変数 delayHLは発振周波数の周期を示します。
long loopn = (long)((timl1*1000)/(2*delayHL);

 所定の吹鳴時間、吹鳴するために必要な発振パルス数を計算し変数loopnに格納します。
for (x=0; x < loopn; x++) {
  digitalWrite(buzpin,HIGH);
  delayMicroseconds(delayHL);
  digitalWrite(buzpin,LOW);
  delayMicroseconds(delayHL);
 }
}


  この関数で、任意の周波数、任意の時間ブザーを鳴らすことができます。

  次回、この関数を利用して、ステップ運動のタイミングを決めるブザーを作ります。

<神崎康宏>


トラックバック(0)

このブログ記事を参照しているブログ一覧: 連載22縫って作るコンピュータLilyPad Arduino オプション・パーツ2

このブログ記事に対するトラックバックURL: http://www.eleki-jack.com/mt/mt-tb.cgi/3278

コメントする

カテゴリ

このブログ記事について

このページは、kanzakiが2009年8月21日 12:27に書いたブログ記事です。

ひとつ前のブログ記事は「GPS受信機シールド」です。

次のブログ記事は「エレキジャックNo.14「FunnelとPepperを使って省エネ・センサを作ろう」フォローアップ記事(2)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Creative Commons License
このブログのライセンスは クリエイティブ・コモンズライセンス.