読者です 読者をやめる 読者になる 読者になる

RasPiに Processing を入れたけれど重すぎた

RasPiを使ったインスタレーション的なものを作りたかったので、RasPiに視聴覚表現用プログラミング言語の Processingを入れて試してみた。 結果としては、Raspberry Pi Type B では 1.3フレーム/秒程度の描画しかできず、重くて私の用途には使い物にならなかったので、ボツにするつもり。 X over ssh経由だったので表示負荷も比較的小さかったと思うので、RasPi + Java + 画像処理系言語 ってのがきつかったのかなと思っている。 あとアプリケーションをエクスポートして実行しても、ほぼ描画速度は変わらなかった。またRasPi2でやっても重かった。 ただ、やったことは念のためメモしておく。

Processing は下記のリリースページから最新の 3.3の arm版 (processing-3.3-linux-armv6hf.tgz) をダウンロードした。 github.com

上記のリリースページは、こちらの記事から、辿れた。 makezine.jp

下記のように、ダウンロードして展開・実行すると、Processingの IDEが立ち上がってコードの入力や編集ができ、特に問題なくエディタも動作した。

$ wget https://github.com/processing/processing/releases/download/processing-0257-3.3/processing-3.3-linux-armv6hf.tgz
$ tar xzvf processing-3.3-linux-armv6hf.tgz
$ cd processing-3.3
$ ./processing

黒字に白文字が右から左にスクロールする下記のサンプルを書いて動かしてみたけど、かなりもっさり。 Windows版 Processing でも試してみたら、30フレームでもぬるぬる動いたのに比べ、RasPiでは1.3フレーム/秒がせいぜいだった。

int x,y;
int speed;

void setup() {
size(640, 480);
frameRate(10);
background(0);
x = 0;
y = 30;
speed = 2;
}

void draw() {
  if(x==0){
    x+=400;
  }
  x -= speed;
  background(0);
  text("text print sample",x,y);
}

書き方も何か重いのかもしれないけれど、やはり RasPiは RasPiか。適材適所ということで、Processing は母艦に任せよう。

あと、Processing のテキストやオブジェクトの動かし方に関する処理もメモしておく。

・文字の描画は text関数で行える。 www.d-improvement.jp

・テキストエリアの幅は、textWidth関数で取得できる。
textWidth() \ Language (API) \ Processing 2+

・日本語のフォントを単純に processingで使うと文字化けするけど、下記の手順でフォントのデータを出力しておくと、表示できた。
Processing で日本語を表示する

・オブジェクトを動かす処理はここも参考になった。 www.d-improvement.jp