加速度センサーで演奏

上の映像で、PCモニタに映っているのはswfファイルです。
手に持っているやつは3軸加速度センサー×FIO×XBee無線モジュールです。
これでswfファイルのスティックの動きをコントロールします。

本当は手に持っているやつの動きとまったく同じ動きが出せれば良かったのですが、3軸加速度センサーからの情報だけでは厳しいようです。
3軸加速度センサーの値からは、XYZの3軸の角度情報が割り出せるので、2軸分の角度情報だけを使ってswfのスティックを動かしています。

加速度センサーとFIO

2軸分の動きしかしないんだったら特にflashを3Dにする必要もなかったんですがね。
と、後で気付きました。

福岡てら子 3 「音に反応する何か」に行ってきただ!

今回はお酒を飲みながらのパーティースタイルの発表会でした。

自分が発表したのは↓これです。再生ボタンを押すとWebカメラとマイクが作動します。


このページのコンテンツには、Adobe Flash Player の最新バージョンが必要です。

Adobe Flash Player を取得


マイクから拾った音のボリュームが大きくなるにつれて最大で10秒前にカメラが拾った映像が再生されます。
音のボリュームが0の時は現在(0秒前)の映像が再生されます。

【下部のコントローラー説明】
・volume:白いバーはマイクが拾った音量。
     下の赤いバーはスケーリング後の音量。
・min, max:音量のスケーリングコントロール。

・volume増加量:急に音が大きくなったときに反応します。
・change:この設定値まで「volume増加量」がくるとカメラ映像が「1→4→9」と分割されます。

【遊び方】
ノリノリな曲をかけてカメラの前で酔拳するのがオススメな遊び方です。

FIOのセッティング

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無線モデムが引っかかってうまく差さらないので注意!

加速度センサーの出力値を受け取る

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側でいろいろ面白そうなことが出来そうですね。

福岡てら子2「オレ流テクニックの種明かし」に行ってきました

福岡てら子は今年から始まったFlashの勉強会です。
今回は第2回目になりますが、第1回に引き続き今回も参加してきました。

いやー。濃かったです。
4時間じゃ足りなくて、1時間近く延長戦となりました。

僕が発表したのは、Flashでカメラから拾った映像をアスキーアート風に変換して映し出す手法です。
↓こんな感じになります。

このページのコンテンツには、Adobe Flash Player の最新バージョンが必要です。

Adobe Flash Player を取得


※注意。再生ボタンを押すとPCのビデオカメラが作動します。録画とかする訳じゃないのでご安心を。

ソースFLAファイルダウンロード

発表してみて思ったことは、発表しっぱなしじゃなくて質問がどんどんきたり、もっと効率のいいソースコードの提案を逆にもらったり(しかもプログラマーさんから!)して、なんかいいなーと思いました。

ひとつのソースコードについて10人以上の人達で論議するという中々できない経験ができて楽しかったです。

1 ... 7 8 9 10 11 12 13

ABOUT

GAMES

サッカーピープル
スライムパズルストーリー

倉庫番ライクパズルと
冒険のゲームです
※制作中

止まるなコロッコ2
止まるなコロッコ2

止まるなコロッコの
続編です
iOS版 / Android版

止まるなコロッコ
止まるなコロッコ

石ころのコロッコが転がるように
セッティングする脱出ゲームです
iOS版 / Android版

コロッコトロッコ
コロッコトロッコ

石ころのコロッコを転がしながら
サラリーマンを会社へ運ぶゲームです
iPhone版 / Android版

TAGS

SNS

FEEDS