上の映像で、PCモニタに映っているのはswfファイルです。
手に持っているやつは3軸加速度センサー×FIO×XBee無線モジュールです。
これでswfファイルのスティックの動きをコントロールします。
本当は手に持っているやつの動きとまったく同じ動きが出せれば良かったのですが、3軸加速度センサーからの情報だけでは厳しいようです。
3軸加速度センサーの値からは、XYZの3軸の角度情報が割り出せるので、2軸分の角度情報だけを使ってswfのスティックを動かしています。
加速度センサーとFIO
2軸分の動きしかしないんだったら特にflashを3Dにする必要もなかったんですがね。
と、後で気付きました。
2010 年 1 月 5 日|制作|2 Comments
今回はお酒を飲みながらのパーティースタイルの発表会でした。
自分が発表したのは↓これです。再生ボタンを押すとWebカメラとマイクが作動します。
マイクから拾った音のボリュームが大きくなるにつれて最大で10秒前にカメラが拾った映像が再生されます。
音のボリュームが0の時は現在(0秒前)の映像が再生されます。
【下部のコントローラー説明】
・volume:白いバーはマイクが拾った音量。
下の赤いバーはスケーリング後の音量。
・min, max:音量のスケーリングコントロール。
・volume増加量:急に音が大きくなったときに反応します。
・change:この設定値まで「volume増加量」がくるとカメラ映像が「1→4→9」と分割されます。
【遊び方】
ノリノリな曲をかけてカメラの前で酔拳するのがオススメな遊び方です。
2009 年 12 月 28 日|制作|2 Comments
FIOをPCと無線で通信できるようにする為の設定を行いました。
以下のページを主に参考にしました。
・FIO: funnel.cc
・Funnel Set up!: labo
FIOにFirmataのコードをアップロードするところで思いっきりハマッてしまいました。
最初は、はんだ付けに失敗したのかなーと思い、「XBeeエクスプローラUSB」を買いなおして再度はんだ付けしましたが、またもうまくいかなかったので途方にくれていました。
これまでMacBook ProからBoot CampでXPを立ち上げて作業していたのですが、試しにMac OSXのArduino IDE からアップロードしてみたところ一発でアップロード成功しました。ははは
多分、Boot Campに罠があったようです。
FIOとブレッドボードの接続方法をどうするか迷ったんですが、結局下の写真のような感じで落ち着きました。
FIOにピンヘッダをはんだ付けします。
小型ブレッドボードを2個つなげて、そこにFIOを差します。
※番号やアルファベットが振ってある標準的なブレッドボードだとXBee無線モデムが引っかかってうまく差さらないので注意!
2009 年 12 月 23 日|制作|No Comments
3軸加速度センサー「KXM52-1050」のアナログ出力値を、ArduinoとFunnelを使ってswfファイルでキャッチするテストです。
緑の基板が「KXM52-1050」で、緑のワイヤーがX軸の出力、黄色がY軸、青がZ軸です
AS3ドキュメントクラスのコードはこちら。
出力値を受け取ってテキストフィールドに表示します。
package {
import flash.display.Sprite;
import flash.text.TextField;
import funnel.*;
public class Main extends Sprite {
private var aio:Arduino;
private var xTx:TextField = new TextField();
private var yTx:TextField = new TextField();
private var zTx:TextField = new TextField();
public function Main() {
var config:Configuration = Arduino.FIRMATA;
aio = new Arduino(config);
var myX:Pin = aio.analogPin(0);
var myY:Pin = aio.analogPin(1);
var myZ:Pin = aio.analogPin(2);
myX.addEventListener(PinEvent.CHANGE, xChange);
myY.addEventListener(PinEvent.CHANGE, yChange);
myZ.addEventListener(PinEvent.CHANGE, zChange);
set_text(xTx, 50, 50);
set_text(yTx, 50, 100);
set_text(zTx, 50, 150);
}
//テキストフィールド作成
private function set_text(tx:TextField,_x:int,_y:int):void {
tx.x = _x;
tx.y = _y;
tx.width = 200;
tx.height = 20;
addChild(tx);
}
//Xの値が変化
private function xChange(e:PinEvent):void {
xTx.text = "X: " + String(e.target.value);
}
//Yの値が変化
private function yChange(e:PinEvent):void {
yTx.text = "Y: " + String(e.target.value);
}
//Xの値が変化
private function zChange(e:PinEvent):void {
zTx.text = "Z: " + String(e.target.value);
}
}
}
この出力値さえ取り込めれば後はFlash側でいろいろ面白そうなことが出来そうですね。
2009 年 11 月 26 日|制作|No Comments
福岡てら子は今年から始まったFlashの勉強会です。
今回は第2回目になりますが、第1回に引き続き今回も参加してきました。
いやー。濃かったです。
4時間じゃ足りなくて、1時間近く延長戦となりました。
僕が発表したのは、Flashでカメラから拾った映像をアスキーアート風に変換して映し出す手法です。
↓こんな感じになります。
このページのコンテンツには、Adobe Flash Player の最新バージョンが必要です。
|
※注意。再生ボタンを押すとPCのビデオカメラが作動します。録画とかする訳じゃないのでご安心を。
ソースFLAファイルダウンロード
発表してみて思ったことは、発表しっぱなしじゃなくて質問がどんどんきたり、もっと効率のいいソースコードの提案を逆にもらったり(しかもプログラマーさんから!)して、なんかいいなーと思いました。
ひとつのソースコードについて10人以上の人達で論議するという中々できない経験ができて楽しかったです。
2009 年 7 月 19 日|制作|1 Comment