Processing上のボタンをクリックし、その指令をArduinoへ伝え、Arduino上でLEDを点灯させる 連携の例を考えると必要な要素は次の図のようになります。
Processing側の処理から順に作っていきます。
ボタン表示は、Processingでの画像表示で理解したとおり、ボタンの画像ファイルを表示することで可能です。
使用する画像は、下記の画像です。On と Off を用意しました。
準備として画像を扱う場合には、スケッチと同じ階層にdataフォルダを用意し、その中に画像ファイルを配置するお約束でしたね。
スケッチは、次のように書きます。
PImage img;
void setup() {
size(200, 100);
img = loadImage("On.png");
image(img,50, 20);
}
void draw() {
}
復習として、念のため、各行を見ていきます。
PImage img; ・・・ 画像ファイル情報を格納するための変数(変数名 : img)を宣言しています
void setup(){ } ・・・ 初期設定用でした、初回に1度だけ実行されるんでしたね
size(200, 100); ・・・ 画面表示範囲の指定です
img = loadImage("On.png"); ・・・ 画像ファイルを変数へ読み込みます。
ファイル名の指定には大文字小文字の区別があります
image(img,50, 20); ・・・ 読み込んだimg変数の内容を表示します
次に表示したボタンのクリックをスケッチに組み込みます。
Processingにはボタンがクリックされた際にだけ実行されるvoid mouseClicked()関数が用意されています。
[構文]
void mouseClicked(){
//クリックすると、ここの処理が実行
//マウスの位置情報を取得 mouseX,mouseY
}
これを組み込みます。画像ファイルのサイズは、80×40で作成しています。
表示位置は、(50,20) なので、画像の範囲は、(50,20) と (130,60) の四角い範囲となります。
クリックされた時に、マウスカーソルがこの範囲内にあれば、ボタンをクリックしたと判断できます。
PImage img;
void setup() {
size(200, 100);
img = loadImage("On.png");
image(img,50, 20);
}
void draw() {
}
void mouseClicked(){
//クリックすると、ここの処理が実行
//マウスの位置情報を取得 mouseX,mouseY
if(mouseX>=50 && mouseX<=130 && mouseY>=20 && mouseY<=60){
println ("Mouse Click");
}
}
void mouseClicked() 内のif文によって、マウスの範囲を読み取り判定しています。
AND条件は、&&で表します。なお、OR条件は|| で表します。
mouse カーソルのX座標は、50以上130以下、カーソルのY座標は20以上60以下を判別しています。
判定した結果、ボタンの上と判断した場合には、println命令を使ってコンソールに Mouse Clickの文字を表示しています。
実行例 |
今回はここまでです。次回は、マウスがクリックされたあとの処理として、OnボタンをOffボタンへの表示の書き換えを実装します。
・Processingをはじめよう
・Processing アニメーション
・楽しく学ぶコンピュテーショナルデザイン
Processingプログラミング入門―Javaベースのオープンソース統合開発環境
posted at 2012.11.16
田原 淳一郎
カットシステム
売り上げランキング: 292836
カットシステム
売り上げランキング: 292836
0 件のコメント:
コメントを投稿