ファミコンハンガー:「みんなのハンガー展」参加作品

薬院に新規オープンした雑貨屋「SOMEWARE」の店内で開催された「みんなのハンガー展」に作品を出品させていただきました!
お誘いいただいた下村さん、ありがとうございます!

「みんなのハンガー展」はMDFという木製の板(厚さ5mm)を、SOMEWAREと隣接するMUTSUKADO FAB STATIONのレーザーカッターでカットして、ハンガーを作ろうという企画です。

ファミコンハンガー

カット以外に刻印も使わせていただきました!(ON・OFFの文字)

上の写真は僕が出品したファミコンハンガーです。
十字キーの左右ボタンを押すとハンガーが動きます。
もちろんBダッシュもできます。
Aボタンでファミコンっぽい音のブザーも鳴るのですが、カバーの中に入れたらほとんど聞こえなくなりましたw

制作工程の記事もあります。

↓実際に動かしている動画

みんなのハンガー展
会期:2013年5月18日(土)- 5月26日(日)6月2日(日)
    12:00 – 20:00 (最終日は18:00まで)
    5月29日(水)は店休日
金額:入場無料
場所:SOMEWARE

ファミコンハンガー制作工程

ファミコンハンガーのざっくりな制作工程です。

ファミコンハンガーの概要はファミコンのコントローラーでハンガーに着いているタイヤを回して、棒に掛けたハンガーを動かすぞー!というものです。

以前、ArduinoでDCモータを動かすテストは済んでいたのでArduinoのプログラムと電子回路まわりは、下の図のように組めば大丈夫だろうと想定できたのですが、
(Japaninoを使っているのは既に乾電池で動くように出来ているからという理由です)

「モータ - ギヤ - タイヤ」の位置固定をどうすればいいか考えていた所、カホパーツセンターでタミヤの「ユニバーサルプレート」なるのもを見つけて、これでなんとか位置固定できるんじゃないかと思い、同じくタミヤのスリックタイヤセットマブチモータ等といっしょに購入して試してみました。

本来ならここで事務所の3Dプリンタを活用すればCool!(サングラスマーク)だったのですが、3Dプリンタは経験不足の為、タミヤのキットを使った方が早いし確実っぽいということでキットで制作することにしました。

購入したユニバーサルプレート等

こんな感じで組んでみると、固定の仕方が良くないのかタイヤの回り方がちょっと力不足みたいでした。

力不足問題をどうしようと考えていると、タミヤの「ミニモーター標準ギヤボックス」というギヤ比を8速まで調整できて、モータとギヤがコンパクトにまとまっている、今回の用途にピッタリなものを見つけたのでこちらを使うことにしました。

8速の中で一番パワーの出る「87.8:1」でセット

これで、ハンガーが動くくらいのパワーが出るようになりました。

一緒に入っていたグリスがかわいい

そうこうしている内にオークションで購入したファミリーコンピューターが到着!

やっぱりかっこいいな、ファミコン!

早速Arduinoとコントローラーの連携テストを行います。

ありがたいことにArduinoでファミコンコントローラーの信号を読み取る「NESpad」というArduinoのライブラリがあったので、それを使わせていただきました。

お次はMDFのカット用データを作成します。

Illustratorの画面

MUTSUKADO FAB STATIONでレーザーカットしてもらいます。

「みんなのハンガー展」主催者の宇佐さんがカットの仕上げをしているところ

カットされたMDFの板

さっそく仮組

基板にハンダ付け(ド下手でお恥ずかしい)

板を重ねて木工用ボンドで固定させます。

タイヤの部分はこんな感じ

裏面だけは電池を変える時に取り外せるように、ボンドではなく両面テープで固定します。

出来上がったファミコンハンガーの紹介は次の記事
 ・ファミコンハンガー:「みんなのハンガー展」参加作品

制作事例: ティーハート フルーツティー工場見学

AGFさんのプロモーションで代官山T-SITE「GARDEN GALLERY」に5月2~12日の間だけオープンしていた、「ティーハート フルーツティー工場見学」の制作をプロトタイプさんよりお誘いいただき、アニメーションパートをお手伝いさせていただきました。

小人がフルーツの種からフルーツティーのスティックを作っていく過程を見学するという、とても楽しい内容となっています。
詳しくは下の動画でご覧になれます。

僕は3箇所のモニタに表示されるアニメーションの制作を担当させていただきました。
素敵なイラストはしょうじさやかさん。

モニタ1

モニタ2

モニタ3

こちらに詳しい記事が出ていました。

 ・サイネージとゾートロープを使ったAGFの紅茶工場アトラクションがすごい : ギズモード・ジャパン

現場で作業中にティーハートのいい香りが漂ってきて以来、ほぼ毎日ティーハートを飲んでいるのでしたw

AIR Native Extension(ANE)の速度を試す

今回はANEを試してみました。

ANEとは、AIRからデバイスのネイティブコードと連携できる仕組みのことで、今回のテストではAIRから複雑な計算処理だけをネイティブコードに任せて、AIRを爆速で動かしてみます。

今回のテスト内容は↓この記事をかなり参考にさせていただきました。ありがとうございます。

Air Native Extension(ANE) 実行速度実験2 + 画像処理 » Every day is Carnival

テスト内容は、

(1) 動画を毎フレームごとに
(2) 1200×800px のBitmapDataにdrawして
(3) 緑色以外の部分だけグレースケールに変換する

というものです。

(3) の部分だけをネイティブコードにお任せします。
元の動画はこちらを使いました。

ネイティブコード(C++)で計算してみた動画です。環境はWindows7です。

FPSは 30 出ています。
これ以上BitmapDataのサイズが大きくなると、フレームレートが落ちてくるのですが、2010年に買ったノートPC(Core i7)なので、最新のデスクトップPCだともう少し大きなBitmapDataも処理できるはずです。

C++での画像変換処理のコードはこんな感じです。(参考blog記事に少し手を加えただけです。)

FREObject grayScale(
    FREContext ctx,
    void* funcData,
    uint32_t argc,
    FREObject argv[]
) {

	FREByteArray ba;
	int32_t w, h;

	FREAcquireByteArray(argv[0], &ba);
	FREGetObjectAsInt32(argv[1], &w);
	FREGetObjectAsInt32(argv[2], &h);

	uint32_t *p, *data = (uint32_t*)(ba.bytes);
	int r, g, b;

	p = data;

	for(int y = 0; y < h; ++y) {
	    for(int x = 0; x < w; ++x) {
	        r = *p >> 8 & 0xff;
	        g = *p >> 16 & 0xff;
	        b = *p >> 24 & 0xff;
			if(r>g || b>g){
				r = g = b = (r+g+b)/3;
			}
	        *p = b << 24 | g << 16 | r << 8 | 0xff;
	        p++;
	    }
	}

	FREReleaseByteArray(argv[0]);
	return FREObject();
}

そして、比較用にAS3だけで同じ画像変換処理を行ったものはこちらです。

FPSは 2 しか出ていません。
AS3には暴力的な計算処理みたいです。
AS3での画像変換処理のコードはこんな感じです。

private function grayScale(bmpData:BitmapData):void{
	bmpData.lock();
	var color:uint;
	var r:uint;
	var b:uint;
	var g:uint;
	for(var i:int = 0; i < bmpData.height; i++){
		for(var j:int = 0; j < bmpData.width; j++){
			color = bmpData.getPixel(j, i);
			r = color & 0xFF;
			g = (color>>8) & 0xFF;
			b = (color >> 16) & 0xFF;
			if(r>g || b>g){
				r = g = b = (r+g+b)/3;
			}
			bmpData.setPixel(j,i, (b<<16)|(g<<8)|r);
		}
	}
	bmpData.unlock();
}

ネイティブコードの方がかなり早いことが実感できました!
次は、openFreamworksのライブラリ等とも連携してみたいなー!

3Dプリンタがやってきた~!

3Dプリンタのキットを購入しました。
Lunavast Prusa 3Dプリンターキットっていう商品です。

届いた部品

部品をよく見ると、3Dプリンタで出力されたようなプラスチックのパーツ(左側の黒い物体)も入っています。
後は、ボルトやナットやステッピングモーター等、市販で買えるようなパーツが結構入っています。
ということは、ボルトやナットをうまく組み合わせて、足りないパーツだけ3Dプリンタで出力すれば、また別のオリジナル機械が作れてしまうんじゃないかと夢が広がっていきます。
こりゃ~テンションマックスやー!

これを組み立てていきます。

なんとか完成!

緑色のホースみたいなのがプリントされる樹脂で、これを熱で溶かしながら目的の形を作っていきます。
ではさっそくテストプリント、スイッチオン!

モーターの音「キュイーンキュイーン」
僕「すげー!」

モーターの音「デロデロデロデロ」
僕「たまらーん!」

結果

途中で底面がズレて移動してしまいこんな感じになっちゃいましたが、ズレ対策をとったり、ハードもソフト側の設定も微調整してもう少し精度を上げていきたいと思います。

それにしても自分で組み立てた機械が動くというのは実に気持ちがいいですな!

ABOUT

GAMES

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

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

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

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

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

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

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

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

TAGS

SNS

FEEDS