はじめに

この文書では,RPiCarに備わるビーパの制御方法について述べています.非常に簡単なデバイスですのですぐに使えると思います.

環境

  • OS: Raspberry Pi OS Bulleyes
  • Java: OpenSDK Version 11
  • GPIO Controller: Pi4J Version 2.2
  • プログラミングを行うパソコン: Ubuntu 20.2
  • IDE: Visial Studio Code Version 1.72.2

なお,すでに開発環境であるVisual Studio Code を使ってリモート開発ができる状態であることを前提としています.また,ファームウェアをダウンロードしていることを前提にしています.もしまだダウンロードをしていないようであれば,こちらにある記事を見て行ってください.

ビーパ

電子的に音を鳴らすデバイスには何種類かのものがあります.代表的なものとして圧電スピーカがあります.この場合,与える電気信号の周波数により音に高低をつけられます.これに対してビーパは音の高さが固定されていて変化させられません.RPiCarではクラクションとしてビーパを備えてあります.音の高低はつけられませんが制御が大変簡単です.

下の図はビーパのクラス図です.LEDの操作と同じような感じでピン番号があること,シングルトンであることが共通しています.違いとしてはstartBeepとstopBeepメソッドがあることです.

ClassDiagram

動作例

では動作例を考えていきましょう.今回は.5秒ならして1秒無音を1セットとしてそれを3セットするプログラムを作ります.Main.javaのmainメソッドは次のようになります.

    public static void main(String[] args) throws Exception {

        for(int i=0; i<3; i++){
            Beeper.getInstance().startBeep();
            Thread.sleep(500);
            Beeper.getInstance().stopBeep();
            Thread.sleep(1000);
        }
        Pi4J.newAutoContext().shutdown();
    }

上記のプログラムを実行するにまずはビルドします.下の図のようにinstallの右にある再生ボタンを押します.

02

その後,実行します.実行するにはターミナルにmvn antrun:cと打ち込みます.音が鳴ったでしょうか.

03