RaspberryPIの汎用IOをJavaで制御するには,Pi4Jというライブラリを使うことが一般的のようです.ここではインストールと初期設定について述べます.インストールする方法として,オンラインでインストールする方法と,インストールするパッケージをダウンロードしたのちにオフラインでインストールする方法があります.ここではその両方を説明します.
オンラインによるインストール
こちらのインストールでは,curlというコマンドを使います.これを使えば,指定したURLからダウンロードとインストールを続けて行ってくれます.具体的には下に示すようにコマンドラインに打ち込みます.
curl -s get.pi4j.com | sudo bash
Pi4J公式ホームページによれば,上記の方法で次のことができるそうです.
- ローカルのAPTレポジトリにPi4J APTレポジトリを追加します.
- 署名の確認のため,Pi4JのGPG公開鍵をダウンロードとインストールします.
- ローカルパッケージデータベースを更新するため,Pi4J APTレポジトリで"apt-get update"コマンドを実行します.
- ダウンロードとインストールを実現するために,"apt-get install pi4j"コマンドを実行します.
この後,一般ユーザでもPi4Jを利用できるようにするための設定を行います.詳しくはこちらをご覧ください.
オフラインによるインストール
-
ダウンロード
RaspberryPiへのインストールにはdebファイルを用いることとします.このファイル(pi4j-1.2.deb)は,こちらからダウンロードできます.なお,2019年11月現在,安定版のバージョンは1.2です. -
インストール
インストールには,dpkgコマンドを使います.下記のようにしてインストールを行います.
sudo dpkg -i pi4j-1.2.deb
-
初期設定
初期設定として,Pi4Jのパスを通しておく必要があります.先ほど行ったインストールにより,/opt/pi4j/libディレクトリの下にライブラリが入っています.そこで,この中に入っているライブラリをjavaの外部ライブラリにシンボリックリンクします.今回,jdk-8-oracle-arm-vfp-hfltを用いているため,外部ライブラリの位置は以下のようになります.
/usr/lib/jvm/jdk-8-oracle-arm-vfp-hflt/jre/lib/ext
ここにシンボリックリンクを張るには下のようになります.
sudo ln -s /opt/pi4j/lib/pi4j-* /usr/lib/jvm/jdk-8-oracle-arm-vfp-hflt/jre/lib/ext/
これで,コンパイル時にいちいちパスを通さなくてもよくなります.
一般ユーザによるPi4Jの利用
Pi4Jの内部ではWiringPIという低レベルなIO操作用ライブラリを利用しており,このライブラリが基本的にroot権限でしか動作しないようになっています.そこで,次に示す設定を行うことで一般ユーザでもPi4JによりIOの操作を行うことができます.
まず,/usr/binの下にあるeclipseを起動するためのスクリプトを変更します.そのために
sudo vi /usr/bin/eclipse
上記スクリプトを開きましたら,2行目に次のようにして環境変数を設定します.
export WIRINGPI_GPIOMEM=1
次にGPIOピンのデバイスファイルに対し,一般ユーザでも読み書きできる権限を追加します.
sudo chmod o+rw /dev/gpiomem