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

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

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

以前、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プリンタで出力すれば、また別のオリジナル機械が作れてしまうんじゃないかと夢が広がっていきます。
こりゃ~テンションマックスやー!

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

なんとか完成!

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

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

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

結果

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

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

階段の照明スイッチ

階段の照明スイッチって、下の階と上の階の両方についていることが一般的だと思いますが、このスイッチの回路が臨機応変な感じで僕は大好きです。
夜中に思い出してドキドキしたりします。

階段の下の階のスイッチが上の図のA、上の階のスイッチがBだとして、照明が点いているときにどちらのスイッチを切り替えても照明は消えて、次にどちらのスイッチを切り替えても照明は点きます。
臨機応変な仕組みですね。

この回路はスイッチが2か所あるとき用のものですが、スイッチが3か所あるときはどうなるんだろうと、ふと思ったので考えてみました。
20分ぐらい考えてみたんですが、3か所すべてのスイッチのどれを押してもオンオフ切り替えれるというところまでなかなか行き着きません。。

ついにギブアップしてインターネットで調べてみると、下の4路スイッチなるものを使えば可能ということが分かりました。

このスイッチだけ見てもまだピンとこなかったのですが、回路を見ると納得!

スイッチBが4路スイッチですね。こいつはすごい!
考えていた時はもっと複雑な回路になるのかなと思っていたのですが、実にシンプルです。ドキドキします。

そしてこの4路スイッチのような、パッと見ただけでは何の役に立つのか分からなさそうな部品も、存在を知っているかどうかでいざというときに出てくるアイデアの差になるんでしょうな~。
と、部品は普段からいろいろチェックしておこうと思ったのでした。

ABOUT

MY APPLI

サッカーピープル
サッカーピープル

操作のしやすさ最優先の
自由自在なサッカーゲームです
iOS版 / Android版

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

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

CATEGORIES

ARCHIVES

TAGS

3Dプリント AIR ANE Arduino Away3D client work DIY Flash Funnel JavaScript Kinect LED openFrameworks PhotoShop Progression Qubicle Unity Xcode アプリ インターバル撮影 カメラ キャラ ゲーム制作 コロッコトロッコ スクリーンセーバー デバッグ フットサル ミニマル ランニング レーザーカッター 事務所 低山部 作品 動物 塗装 展示会 文字 料理 福岡てら子 美食家 街ぶらり 道具 鉄道 電子工作

FEEDS

SNS

--

Arduinoをはじめよう
Arduinoをはじめよう

電子工作が未経験の人にも
分かりやすい入門書

Arduinoをはじめようキット
Arduinoをはじめようキット

上の書籍の内容が
一通り試せるツールセット

Prototyping Lab ―「作りながら考える」ためのArduino実践レシピ
Prototyping Lab

「Arduinoをはじめよう」より
深く掘り下げた内容の実践書

Make: Electronics
Make: Electronics

電子工作の基礎から実践まで