MENU

Raspberry Pi + Processing (+pi4j) 〜OpenECHOの下準備〜

Raspberry PiでOpenECHOを動作させる前準備として、Raspberry PiへのProcessingのインストールにチャレンジ。といっても、今回も基本的に先駆者の後を追うだけなのですが。

JavaでRaspberry PiのGPIOを制御する

こちらを参考に、と思ったら、さらにこちらも参考にされているところがあったので、以下、下記を参照しながら進めることにする。

Processing and GPIOs on Raspberry Pi

基本的には書いているとおりに進めるだけなのだけれど、違ったのは以下の箇所。

・手順通りにJDK8をインストールしたつもりでjava -versionをチェックしたら、なぜか1.8.0ではなく1.7.0_40が入っていた。でも動作には問題なし。

・echo export PATH=$PATH:$JAVA_HOME/bin >> .bashrcで、なぜかPATHに/opt/java/jdk1.8.0/binが入ってくれなかったので、$JAVA_HOMEをベタ書きで対処。

・Processingのソースのパスが古かったので、新しいところからインストール。これで正しく動作する。

[code language=”bash”]
wget https://processing.googlecode.com/files/processing-2.1.1-linux32.tgz
[/code]

あとは記載の手順どおりで、同じページに記載されているサンプルプログラムをProcessingで動かしてみると…GPIOのアクセス権限云々でエラーになる。

[code language=”text”]
wiringPiSetup: Unable to open /dev/mem: 許可がありません
Unable to change ownership of /sys/class/gpio/gpio27/value: 許可されていない操作です
Unable to change ownership of /sys/class/gpio/gpio27/edge: 許可されていない操作です
[/code]

どうやら、Raspberry Piでは仮想ファイルにアクセスすることでGPIOを制御するとのことなので、スーパーユーザ権限が必要なよう。

ということで、sudo suでスーパーユーザになってProcessingを起動し、サンプルプログラムを実行すると…今度はpi4jのライブラリがないと怒られる。どうやら、Processingでは、プログラムの実行ユーザの持つsketchbookディレクトリの中のlibrariesを参照する模様。ということで、サンプルプログラムのディレクトリとpi4jライブラリのディレクトリを、それぞれ/root/sketchbookと/root/sketchbook/librariesにコピーして、再度スーパーユーザで実行すると、ようやく起動成功。

サンプルプログラムの回路の実装。

th_samplecircuit

Processingの画面。タクトスイッチを押すと、ランダムで円が現れる。

th_snapshot1

とりあえずはこれでOK…ではあるのだけれど、いちいちスーパーユーザになったりrootフォルダに放り込むのは面倒なので、できればノーマルユーザのままで実行できるようにしたい。ということで、WiringPiをインストール。インストール方法はこのあたりを参照のこと。これにくっついてくるgpioユーティリティを使えば、スーパーユーザにならずにGPIOを制御できるらしい。

今回のサンプルで使用したGPIOの番号はWiringPiでの2番、すなわちGPIO27なので、Processingの実行前にコマンドラインで以下を実行。

[code language=”bash”]
$ gpio -g mode 27 in
$ gpio export 27 in
[/code]

ls -l /sys/class/gpio/gpio27/ でチェックすると、確かにedgeとvalueのファイルオーナーがrootからpiに変わっていたので、これでいけるかな…と思いきや、確かにGPIO27について怒られることはなくなったものの、まだ

[code language=”text”]
wiringPiSetup: Unable to open /dev/mem: 許可がありません
[/code]

のエラーが残る。うーん、もう少し原因を突き詰めた方が良い気もするけれど、一旦はここまで。とりあえず、スーパーユーザでまかなう。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメント一覧 (1件)

  • […] 前回、無事にRaspberry PiでのProcessing起動と、JavaでのGPIO制御ができるようになったので、あとはOpenECHO for Processingのライブラリを突っ込んでやるだけ。ライブラリはここからmasterのzipをと […]

コメントする

目次