materealにはAndyと呼ばれるProcessing用のラッパーライブラリがあります。Java用のAPIよりも移動・物押しに関する機能にフォーカスしたライブラリで、移動ロボットの基本的な機能を簡単に呼び出せるように設計されています。
Arduinoでロボットを製作し、matereal for Processing (Andy)でロボットをコントロールすることによって、ロボットを用いたアプリケーションのプロトタイピングがこれまでになく簡単になります。
まずは、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); } |
ピンバック: Tweets that mention matereal for Processing (Andy) | matereal -- Topsy.com