カイワレスタイル

ゲーム、アニメ、プログラム、興味のあることをツラツラと。

自作全方向移動型ラジコン戦車完成までの記録 ~動機編~

Maker Faire Tokyo 2016に「自作全方向移動型ラジコン戦車『ウィーヴィル』」を出展した。

www.nicovideo.jp

www.youtube.com

なんだかんだで完成するまで1年ほど掛かってしまったので、その記録を何回かの記事にして残すことにした。
今回は、作るきっかけについて書く。
よって技術的な話はほとんど出てこないと思う。

続きを読む

Maker Faire Tokyo 2016 おつかれさまでした!

Maker Faire Tokyo 2016 お疲れ様でした&見て頂けた方ありがとうございました!
当日は自作の全方向移動型ラジコン戦車を出展していたんですが、本当に直前まで本体の開発や動画の作成等をしていたため、全然告知が出来ませんでした。
それでもたくさんの方に見て頂けてとても嬉しかったです。

会場で上映していた動画をアップロードしたので貼り付けておきます。

www.nicovideo.jp

ラジコン戦車完成までの道のりは、別途当ブログでまとめていこうと思います。


youtube版はこちら

www.youtube.com

今更旧Raspberry Pi Zeroをセットアップした時のメモ

Maker Faire Tokyo 2016に向けて、もう一つ何かを作る必要が出てきたので、発売当初に買ったまま放置していたRaspberry pi Zero(以下、パイゼロ)のセットアップを行った。

現在のパイゼロは、カメラモジュール用の端子が付いているが、自分が買ったものはそれより古い初期バージョンなので端子は付いていない。

以下は、セットアップの際に行った作業のメモ書きである。

続きを読む

teamLab主催インタラクティブ・プログラミング・ハッカソン

5/28〜6/5にかけて、teamlab主催のインタラクティブ・プログラミング・ハッカソンに参加してきた。
結果、チームラボ賞を貰う事が出来た。

5/28〜6/5のチームラボインタラクティブハッカソンで作った、ボールを投げて当たった所にインクが着くインタラクティブ作品。誤検出であらぬ所にインクが着くけど、子供はそんな事お構い無しに無我夢中でボールを投げまくってくれて嬉しかった。

概要

ルールは「とにかく子供のテンションを最高にする作品を作る」のみ。
プロジェクターやkinectは借りることができるが、それ以外に必要なものがあればなんでも使っていいらしい。
優勝賞品は、CASIOのプロジェクター。

作ったもの

ボールを壁に投げて、ぶつかった所にスプラ◯ゥーンのようにインクをぶちまける。
飛び散ったインクの色に応じて様々な生き物が飛び出す。
インクの色が混ざるとレアな生き物が飛び出すことがある。
生き物にボールをぶつけると弾けてエフェクトが飛び出す。
といった単純明快な作品。

構成

  • プロジェクター
  • 加速度センサー(ボールの衝突検知)
  • kinect(ボールの位置検出)
  • webカメラ(ボールの色検出)
  • PCその1(kinectと加速度センサーの制御)
  • PCその2(メインアプリとプロジェクターへの投映)

PCその1には、kinectと加速度センサーがつながっている。 PCその2には、プロジェクターとWebカメラがつながっている。 PCその1とその2は、USBでつながっている。 メインのアプリは、openFrameworksで作られている。

仕組み

壁の後ろに加速度センサーを貼り付け、ボールが衝突した時の振動を検知する。
検知したら、kinectの方で円形を検出してボールの座標を取得する。
ボールの座標と衝撃の強さを、シリアル通信でPCその2へ送信する。
PCその2では、メインアプリが動いている。
メインアプリは、座標の位置へインクを描画したり、生き物を動かしたり音を鳴らしたりする。
PCその1から、座標データが送られてきたら、webカメラの画像から座標の位置周辺の大まかな色を取得し、インクの色としてぶちまける。
ぶちまけたインクの色に応じて、様々な生き物が出現する。

担当箇所

webカメラの画像処理周りと生き物の挙動を少し担当。
今回初めてopenFrameworksを使ったが、思った以上に簡単に使えて驚いた。
openFrameworksのアドオンのOpneCVで画像処理をしたが、カメラに映った傾いた壁の画像を4点指定して射影変換して真っ直ぐな壁の画像を作るのが、凄く簡単にできた。
画像のピクセルデータも配列でアクセスできるし、なんかDirectX初期の頃みたいな感覚が蘇った。 画像処理するならOpenCV

結果と感想

一定時間毎に作品を変えて遊んでもらう形だったが、延々ボールを投げ続ける子供がいて嬉しかった。
惜しくも優勝は逃したものの、チームラボ賞をゲット。
賞品はチームラボTシャツだった。

今回、審査員が子供ということで、建前を抜きにした純粋かつ公正な審査だったと思う。
子供の動くものに対する好奇心と、そのリアクションの良さは素晴らしい。
正直な所、我々の作品は誤検出でボールが当たった所と違う場所にインクが付いてしまったりしていたが、子供はそんな事お構いなしで必死になってボールを投げ続けていた。
あまりにも子供達が楽しそうに触ってくれるので、作った大人達が感動するという不思議な光景もちらほら。
Webサービス全盛の昨今、お客さんの反応がダイレクトに見られる経験は中々に貴重だと思う。
また子供向けのハッカソンがあったら参加したい。

オール3Dプリントラジコン戦車(仮)製作日記 その4

随分日が空いてしまったが、ラジコン戦車製作の進捗メモ。


WEBから操作

Raspberry PiをWEBサーバーとして、スマホのブラウザからカメラのストリーミングやBluetoothのOn/Off、モーター制御プログラムのOn/Offなど各種の操作ができるようにした。
中身は、node.js+expressという構成で、一応レスポンシブデザイン対応で、スマホから見てもボタンやストリーミング画面が小さくならないようにしている。
最終的に、無線LAN親機+DHCPサーバとしてスマホから直接接続できるようにして、持ち運びやすくする予定。


足回り改修

今までタミヤのハイパワーギヤーボックスHEを使っていたが、どうしても3つあるギアボックスのうち、一つだけやたらギアが硬い物があってまっすぐ走れなくなっていた。
仕方がないので、ダイセンのロボサイトモーターとオムニホイールに交換した。
それに伴い、モーター固定用のフレームも設計しなおし。
ちょうど3Dプリンタも故障していた為、DMM.makeで出力。
しかし、いざ組み合わせてみたら既存のフレームと干渉する事が判明。
ホビーソーで干渉部分を切り取ったが、普段日曜大工とかしないので非常に疲れた。
123Designでパーツの干渉を事前に検出することは可能なんだろうか?
それができれば今回みたいなミスは無くせると思うが…。

なんとか組み合わせての動作確認。

久し振りのラジコン戦車進捗。足周りを変えたので動作テスト。まっすぐ走れるようになった気がする。

これによってまっすぐ走れるようにはなった気がする。
しかし、ギア比によってどのくらいの速度とトルクなのかわからなかったため、ギア比1/60のものを買ってしまったが、そのせいか結構速度が落ちてしまった感じ。
マブチモーターのように、おいそれと買い直せる値段ではないので今回はこのまま行こうと思う…。
今回の改修に掛かった費用のことは考えたくない…。


Maker Faire Tokyo 2016

今年もMaker Faire Tokyoがやってくる。
今まで客として参加してたが、今回はMaker枠で、今作ってるラジコン戦車を出展してみたいと思っている。
申し込み締め切りは5/9までなので、それまでになんとか形にしたい。
頑張れ自分!

makezine.jp

プロジェクションシューティングゲームを作ってみた

モバイルプロジェクターとスマホを組み合わせて投影式の3Dシューティングゲームを作ってみた。
まずは動画から。

youtu.be

暗くてわかりにくいが、壁の中を懐中電灯で照らして、敵を撃破するようなゲームになっている。


ゲームルール

実験なのでゲームと呼ぶにはあまりにも単純だが、
前方から迫ってくる敵の方にカメラを向けて狙い、画面をタッチでショット発射。
目の前まで敵が迫ってくるとダメージ。
3回ダメージを食らうとゲームオーバー。
一応徐々に敵が増えて難しくなるようにはしている。


仕組み

仕組みは非常に単純。

f:id:kaiware007:20160321031702p:plain

スマホとモバイルプロジェクターを一緒に持つ。
スマホの傾きをジャイロセンサで検出し、ゲーム中のカメラの向きに反映させる。
その映像をスマホからHDMIケーブルで接続したモバイルプロジェクターで壁に投影。
見たい方向にスマホとプロジェクターを向けることで、懐中電灯の光で壁の中の世界を覗いているような感覚を味わえる(当社比)
ゲーム部分はUnity製。
最大の利点は、必要機材がモバイルプロジェクターとスマホと接続ケーブルだけなので取り回しが非常に楽な点。 壁と暗闇があればどこでもプレイ可能。
今回はiPhone6Plusを使用した。
ちなみに、画面の左下に見えるのはカメラの向きのリセットボタン。


作ってみて

壁の中を覗いてるような感覚はまぁまぁ出せたと思う(動画ではわかりにくいのが辛い)
iPhone6Plusのジャイロセンサはそこそこ精度はいいが、やはり急激な変化には追従できないようで若干ずれる。
まぁ簡単に作れるのでそこら辺はトレードオフか。

当初はスマホにヘッドホンを付けて左右の音で敵が出てくる方向を察知できるようにしたかったが、HDMI接続のせいで音声がプロジェクターのモノラルスピーカーで再生されてしまった。
プロジェクターにもヘッドホン端子はあったがノイズが酷いのと音声がモノラルになってしまっていて聞き分けできなかった。
敵の出現音がソナー音っぽいのはその名残。
まぁ簡単に作れるのでそこら辺はトレードオフか(2回目)

初めはメディアアート的な作品にするつもりだったが、気がついたらゲームになっていたのは職業病だと思う。


使用素材など

シェーダー

壁や敵の格子状の模様は、こちらのシェーダーを参考に頂点&フラグメントシェーダーに書き起こし、輪郭線を追加した。

wonderpla.net

効果音

on-jin.com

pocket-se.info

www.skipmore.com

commons.nicovideo.jp

commons.nicovideo.jp