matereal for Processing (Andy)

materealにはAndyと呼ばれるProcessing用のラッパーライブラリがあります。Java用のAPIよりも移動・物押しに関する機能にフォーカスしたライブラリで、移動ロボットの基本的な機能を簡単に呼び出せるように設計されています。

Arduinoでロボットを製作し、matereal for Processing (Andy)でロボットをコントロールすることによって、ロボットを用いたアプリケーションのプロトタイピングがこれまでになく簡単になります。

Andyは、materealに輪をかけて単純なAPIで移動ロボットを操作できます。

まずは、materealのサンプル同様、実機ではなくHakoniwaシミュレータで動作するスケッチを用意しました。お手持ちのProcessing環境で動かしてみてください。

スケッチのソースコードは以下の通りです。実機で動作させる際は、Hakoniwaの代わりにCameraとMarkerDetectorを初期化することになりますが、他は変わりありません。

import jp.digitalmuseum.mr.andy.MrImage;
import jp.digitalmuseum.mr.andy.Position;
import jp.digitalmuseum.mr.hakoniwa.Hakoniwa;
import jp.digitalmuseum.mr.hakoniwa.HakoniwaRobot;
 
Hakoniwa hako;
MrImage hakoImage;
MobileRobot robot;
 
void setup() 
{
  // 箱庭の準備
  hako = new Hakoniwa(640, 480);
  hako.start();
 
  // 箱庭を表示する準備
  hakoImage = new MrImage(hako);
 
  // 箱庭にロボットを置く
  robot = new MobileRobot(new HakoniwaRobot("Test bot"));
 
  // 画面の大きさを箱庭に合わせる
  size(hako.getWidth(), hako.getHeight());
}
 
void draw() 
{
  // 箱庭の様子を表示する
  background(255);
  image(hakoImage, 0, 0);
 
  // ロボットが目指しているゴールを表示する
  Position goal = robot.getGoal();
  if (goal != null) {
    strokeWeight(5);
    stroke(0);
    int x = goal.getScreenX();
    int y = goal.getScreenY();
    line(x-5, y-5, x+5, y+5);
    line(x-5, y+5, x+5, y-5);
  }
}
 
void mouseReleased() {
  // クリックされたらロボットにゴールを指示する
  robot.moveTo(mouseX, mouseY);
}
カテゴリー: サンプル・コード   パーマリンク
Share 'matereal for Processing (Andy)' on Delicious Share 'matereal for Processing (Andy)' on Digg Share 'matereal for Processing (Andy)' on Evernote Share 'matereal for Processing (Andy)' on Facebook Share 'matereal for Processing (Andy)' on Hatena Bookmarks Share 'matereal for Processing (Andy)' on Tumblr Share 'matereal for Processing (Andy)' on Twitter

matereal for Processing (Andy) への1件のコメント

  1. ピンバック: Tweets that mention matereal for Processing (Andy) | matereal -- Topsy.com

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>