この文書では,ディジタルカメラをRaspberry Piをはじめとするコンピュータで操作するlibgphoto2をJavaで制御する方法について書かれています.
-
実行環境
- コンピュータ : Raspberry Pi 3 type B
- OS : Raspbian Stretch (2018.11版)
-
概要
libgphoto2はCで書かれたライブラリであり,Linuxであれば*.so,Windowsであれば*.dllのような動的ライブラリで提供されます.つまり,ネイティブコードで書かれているわけです.これをJNA(Java Native Access)により動かします. -
手順
まず,JNAをインストールします.sudo apt-get install libjna-java
上のようにすると,jna.jarが/usr/share/javaに配置されます.もちろん,これをIDEでライブラリのパスに追加すればよいのですが,RemoteVMを利用する時,同じプロジェクトに入っていた方がいろいろと都合がいいため,上記のディレクトリからjna.jarをコピーし,ローカルへ置いた方が良いです.
つぎに,libgphoto2をインストールします.sudo apt-get install libgphoto2-dev
つぎに,libgphoto2-javaをダウンロードとjar化します.こちらにあるサイトからgphoto2-javaをダウンロードします.これをeclipseなどでプロジェクトで新規作成し,srcフォルダに入れ,ライブラリ化します.ここではlibgphoto2-java.jarとしました.
最後にgvfsによるカメラ内部にあるメディアの自動マウントを停止します.gvfs-gphoto2-volume-monitorが自動的に動作してしまうため,カメラの制御が行えません.そこで,下のようにしてgvfs-gphoto2-volume-monitorを動作できないようにします.sudo chmod -x /usr/lib/gvfs/gvfs-gphoto2-volume-monitor