正規のオンライン小売業者:

AMAZON
AMAZON
amzuk

紹介
このレッスンでは、Raspberry Piを使用してアクティブブザーを鳴らす方法を学びます。

ハードウェアの準備

1 * Raspberry Pi

1 * ブレッドボード

1 * ブザー ジャンパーワイヤー

1 * T-Extension Board

1 * 40ピンケーブル

ソフトウェアの準備
getting started for raspberry piを参照してください。

実験原理
アクティブブザーとパッシブブザーがありますが、アクティブブザーとパッシブブザーの違いは何でしょうか?アクティブブザーには発振器があり、DC電源に接続すると音が出ます。パッシブブザーは単なるトランスデューサーであり、音を出すにはパルス状の電圧で駆動する必要があります。このプロジェクトではアクティブブザーを使用します。ブザーの長いリードは正極(アノード)であり、短いリードは負極(カソード)です。


ハードウェアのセットアップ

回路を以下の接続グラフに従って組み立て、負極をRaspberry PiのGPIO1(BCM_GPIO 18)に、正極を3.3Vに接続します。

 

サンプルコード:

C言語ユーザーとPython言語ユーザー向けに2種類のコードを提供します。

C言語ユーザーの場合、以下の手順を実行してください。


まず、wiringPiライブラリがインストールされていることを確認してください。インストール方法がわからない場合は、Lesson 3: Prepare GPIO tool-WiringPi utilityを参照してください。

Step 1)  次のコマンドを入力して、breathing_led.cのサンプルコードをダウンロードしてください:

cd  ~
sudo  wget http://osoyoo.com/driver/pi3_start_learning_kit_lesson_8/buzzer.c

Step 2) コードのコンパイル

C言語は高水準言語です。プロジェクトを実行する前に、コードを実行可能ファイルとしてコンパイルする必要があります。次のコマンドを入力してください。

gcc: はGNUコンパイラコレクションです。自分でCコードを書いてコンパイルして実行するには、gccをマスターする必要があります。gccについての詳細はこちらをご覧ください  here
-Wall: コードをコンパイルするときにエラーが発生した場合、詳細なエラーを取得するためのものです。
-o: コンパイル後のファイル名を任意で指定できます。ここでは、flow_ledという名前を指定します。
flow_led.c: コンパイル元のファイルを意味します。
-lwiringPi: ライブラリwiringPiをロードするためのもので、lはlibrary(ライブラリ)の略です。

Step 3) プログラムを実行する

sudo  ./buzzer

4) 実行結果

プログラムを実行すると、ブザーから異なる音色が聞こえます。

C言語コードの解析

//Beginning of pi3_start_learning_kit_lesson_8/buzzer.c
#include < wiringPi.h>
#include < stdio.h>
#include < stdlib.h>

 // defined Buzzer pin1 connect to GPIO1(BCM GPIO 18)
#define BuzzerPin 1

for(;;){
        for(i=0;i<70;i++){
            //beep on
            digitalWrite(BuzzerPin, LOW);
            delay(3);// delay 3 ms to make tone in low frequency

            //beep off
            digitalWrite(BuzzerPin,HIGH);
            delay(3); // delay 3 ms to make the tone in low frequency
        }
        delay(100);
            for(i=0;i<100;i++){
            //beep off
            digitalWrite(BuzzerPin, HIGH);
            delay(1); //delay 1 ms to make the tone in high frequency
            //beep on
            digitalWrite(BuzzerPin,LOW);
            delay(1);//delay 1 ms to make the tone in high frequency

        }    }
// end of pi3_start_learning_kit_lesson_8/buzzer.c

Python言語ユーザーの場合:


Raspberry PiがHDMIケーブルを介してモニターに接続されている場合、Python 3(IDLE)GUI環境で直接プログラムを実行できます。詳細については、次のページを参照してください。

Piがモニターに接続されていない場合、sshクライアントを使用してコマンドラインでPiにリモートアクセスできます。詳細については、次のページを参照してください。

Step 1) ターミナルで以下のコマンドを入力して、buzzer.pyファイルをダウンロードしてください。

cd  ~

sudo  wget http://osoyoo.com/driver/pi3_start_learning_kit_lesson_8/buzzer.py

Step 2) プログラムの実行

sudo  python  ./buzzer.py

Ste[ 3) テスト結果:

プログラムを実行すると、ブザーから音が聞こえます。

Python言語コードの解析

import RPi.GPIO as GPIO
import time

# Set #18 as buzzer pin
BuzzerPin = 18

PythonのGPIOライブラリとtimeライブラリをインポートします。GPIOライブラリはPythonでGPIOを操作するためのライブラリで、プロセスを簡素化する役割を果たします。timeライブラリは、遅延を入れるために使います。ブザーのピンをGPIO1(BCM GPIO 18)に接続します。

 def setup():
    # Set the GPIO modes to BCM Numbering
    GPIO.setmode(GPIO.BCM)
    # Set BuzzerPin's mode to output, 
    # and initial level to High(3.3v)
    GPIO.setup(BuzzerPin, GPIO.OUT, initial=GPIO.HIGH)

BuzzerPinを出力モードに設定し、初期レベルを高レベル(3.3V)に設定します。

 def main():
    print_message()
    while True:
      GPIO.output(BuzzerPin, GPIO.LOW)
      time.sleep(0.3)
      GPIO.output(BuzzerPin, GPIO.HIGH)
      time.sleep(0.3)

レベルを0.3秒ごとに低レベル(0V)と高レベル(3.3V)の間で交互に切り替えて、ブザーを断続的に鳴らすようにします。