4.1 PWMでブザーを鳴らそう
PWMを使って圧電スピーカでをブザー音を出します。
PWMは周波数を変えることが出来ますので、ドレミ等の音を出すことも出来ます。
(1) ブザーの回路を作ろう
①組立
下の配線図、回路図をみて、回路を組立て下さい。
(2) ブザーを鳴らそう
①電源を入れます。
RaspberryPiB+にACアダプタを繋ぎ、電源を入れます。
②ログインします。
Raspbianが立ち上がったら、ログインして下さい。
③「nano」エディター立ち上げます。
「nano rpi_bp_pwm_bz1_1.py」コマンドを実行して下さい。
画面が「nano」エディターの画面に変わります。
サンプルプログラム
④入力を終わります。
「ctrl+X」を実行します。
次に、「y/n」は「enter」を入れます。
⑤入力したプログラムを実行します。
「sudo python rpi_bp_pwm_bz1_1.py」を実行します。
*ブザーが最初は1KHzでなります。約3秒後に500Hzに変わります。
最後にデューティが10%になり音色が変わります。
その後に、「bz1b done」のメッセージが出ます。
(2) 部品を作ろう
ブザーの初期化、開始、停止、周波数変更、デューティ変更を部品(関数)にします。
①「nano」エディター立ち上げます。
「nano rpi_bp_pwm_bz1a_1.py」コマンドを実行して下さい。
画面が「nano」エディターの画面に変わります。
②プログラムを入れます
サンプルプログラムj
入力を終わります。
③「ctrl+X」を実行します。
次に、「y/n」は「enter」を入れます。
④入力したプログラムを実行します。
「sudo python rpi_bp_pwm_bz1a_1.py」を実行します。
*ブザーが最初は1KHzでなります。
約3秒後に500Hzに変わります。
最後にデューティが10%になり音色が変わります。
その後に、「bz1a done」のメッセージが出ます。
(3) モジュールを使おう
(2)で作った部品(関数)の入ったファイルをモジュールとして使います。
①「nano」エディター立ち上げます。
「nano rpi_bp_pwm_bz1b_1.py」コマンドを実行して下さい。
画面が「nano」エディターの画面に変わります。
②プログラムを入れます
サンプルプログラム
③入力を終わります。
「ctrl+X」を実行します。
次に、「y/n」は「enter」を入れます。
④入力したプログラムを実行します。
「sudo python rpi_bp_pwm_bz1b_1.py」を実行します。
*ブザーが最初は1KHzでなります。
約3秒後に500Hzに変わります。
最後にデューティが10%になり音色が変わります。
その後に、「bz1b done」のメッセージが出ます。
(4) ドレミをならそう
ドレミファの周波数をリストを使って作ります。
*Pythonの新しい命令を使います。
*リスト
*書き方
変数名=[要素0、要素1、…、]
使用例:
doremi = [220.0, 246.9, 277.2, 293.7, 329.6 ,370.0, 415.3, 440.0]
*変数名に使える文字は「アルファベット」、「数字」、「_」の3種類の半角文字になります。
また、最初の文字はは「アルファベット」、のみです。
①「nano」エディター立ち上げます。
「nano rpi_bp_pwm_bz1c_1.py」コマンドを実行して下さい。
画面が「nano」エディターの画面に変わります。
②プログラムを入れます
サンプルプログラム
入力を終わります。
③「ctrl+X」を実行します。
次に、「y/n」は「enter」を入れます。
④入力したプログラムを実行します。
「sudo python rpi_bp_pwm_bz1c_1.py」を実行します。
(5) 記号でドレミをならそう
辞書型を使って、”Do”,”Re”,”Mi”で演奏が出来るようにします。
*Pythonの新しい命令を使います。
*辞書型
*書き方
変数名={キー0:要素0、キー1:要素1、…}
使用例:
doremi = {“Do”:220.0, “Re”:246.9, “Mi”:277.2, “Fa”:293.7, “Sol”:329.6 ,”La”:370.0, “Si”:415.3, “D0_”:440.0}
*変数名に使える文字は「アルファベット」、「数字」、「_」の3種類の半角文字になります。
また、最初の文字はは「アルファベット」、のみです。
①「nano」エディター立ち上げます。
「nano rpi_bp_pwm_bz1d_1.py」コマンドを実行して下さい。
画面が「nano」エディターの画面に変わります。
②プログラムを入れます
サンプルプログラム
③入力を終わります。
「ctrl+X」を実行します。
次に、「y/n」は「enter」を入れます。
④入力したプログラムを実行します。
「sudo python rpi_bp_pwm_bz1d_1.py」を実行します。
⑤電源をきります。
「sudo shutdown -h now」を入力して下さい。
*ステータスLEDの点滅が終わり、消えてからマイクロUSBのDC5Vを抜いて下さい。