はじめに
この文書では,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メソッドがあることです.
動作例
では動作例を考えていきましょう.今回は.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の右にある再生ボタンを押します.
その後,実行します.実行するにはターミナルにmvn antrun:cと打ち込みます.音が鳴ったでしょうか.