VR KIT ハッカソンに行ってきた

Nintendo Labo VR KIT でわいわい楽しむ 1Day ハッカソンに行ってきた。

会場はこの間のxR Tech Tokyoと同じ、六本木ヒルズ – メルカリさん。

心構え

「VR KITのラボ機能を使ってオリジナルVRコンテンツを作る集まり」なんだけど、CONNPASSのイベント説明ページに”段ボール等の持ち込みは大歓迎です”とあったので、段ボール工作をするつもりで参加申し込みした。

VR KITは基本のHMDだけ。あとはAmazonの段ボール。

もくもく作成

切断装備がアクリルカッターとアートナイフだけだったので段ボール相手としてはかなり苦しかった。まともなデカいカッターがあればもうちょっと楽に切れたはず。

あと、どうしても段ボールくずが出てしまうので、コロコロ代わりにダクトテープでこまめに集めてたつもりだけど、ちょっとは回収しきれてないのが残ってるかも・・・申し訳なし。。。

今回初めてダクトテープ使った。銀色でかっこええ。

つくったものは

段ボール製のVRホルダーをつくった。これは去年のMakerFaireTokyoに出展したハッピーフォンホルダーと、そのあとに作ったハッピーフェイスマスクに続くハッピーシリーズ第三弾!ハッピーVRホルダー。

ハッピーフォンホルダー。今回のVRホルダー作成はこれを逆向きに掛けたときの目隠しされてる感覚がヒントになった。
ハッピーフェイスマスク。一応これも内側にVRのHMD入ってるのでVRホルダーと言えなくもない。

現地で完成品だけをキレイに撮影してなかったので、帰ってから取り直した写真が↓コレ。

ダクトテープ巻き巻き、かつ角ばってるのでメカ感がある?
手の部分は自分の手を段ボール上でなぞってカッターで切り抜いたので実物サイズ。
あと、見切れてて映ってないけど背面端っこのところにカウンターウェイトとして水入りペットボトルを差し込むようになってる。
こだわりポイントはダクトテープで作った切り文字の”LABO”。あと縁取りも幅を測ってVR KITに合わせてる。

最後に

twitterにいくつか写真や動画があげてもらってるけど、皆さん興味を持ってくれて順々に試してもらえたので大満足。ほかの参加者の方々が作られた、まっとうな?VRコンテンツはどれもよくできていて素敵だった。

今回は自分も含めて参加者の皆さん全体的にラボ慣れしてない人ばかりで、みんなで手探りしながらノウハウを物理でつぶやいて共有していく感じが楽しかった。

前々からVRホルダーの試作をしようとおもってたので、今回のハッカソンがちょうどよい機会になって無事試作完成できてよかった。もし次回があって参加できそうだったら今度はちゃんとしたコンテンツ作りもやってみたい。良い機会をつくってくださった@ikkouさんに感謝。

電卓づくり現状

ぼちぼち進んできたのでいったん記事にまとめる

キーパッド部分をつくった

キーパッドはメカニカルキーを使う。キースイッチは基板へのハンダ付けだけで固定するのと、基板との間に固定用のプレートをいれる方法があるらしい。

今のところ基板つくってないので固定用プレートが必要!ということで、先日入手したレーザー彫刻機でボール紙をカットしてプレート作成。彫刻用なのでG-code的な動きに対応してなくて、かなり時間がかかった。四角く切り取るだけなのに・・・

Banggoodで買った1万円ちょいのレーザー彫刻機(3W)でボール紙をカット
キースイッチをはめこんだ様子。紙製と思えないぐらいいい感じ!

ボール紙のプレートでいけそうな感触だったので、今度は3Dプリンタで土台を作ってみた。

おためし4キー。コンパクトでかわいさがある。
電卓用に4×5。細長いキーは支えるのが面倒なのでこんかいは全部1uサイズ。
キーを押したときにフチがぴったりくるようにしてみた。
裏面は空中配線。線がかさばりすぎたので、このあとUEWに置き換えました。

表示器は悩みすぎた

TENTAKUを参考に7セグLEDを使おうとしたのだけど、ちょうどいいサイズのが見つからず迷い始める。10桁表示目指そうとするとどうしても、ちっちゃくなって数字が見づらいし、でかくすると横幅はみ出すし・・・

結局、まずは秋月で500円ぐらいで買ったLCD(2行16桁)をつかってみることにした。

2行16桁のLCD、文字も表示できる。

マイコンはPro mini Nono(もどき?)

先日の記事ではPro microを買ったと書いてたけど、ちょっとお値段が高くてもったいない気持ちになったので、AmazonでPro mini Nano 5個セットを購入。一つ370円。

電池1本で動かしたかったのでDCDC昇圧モジュールというのも買った。

とりあえず合体

背面プレートは段ボール製。プロトタイプ感がある。
とにかく電池ケースがでかくてツライ。LEDじゃなくて液晶だからコイン電池でもそこそこいけるのかな。

最後に

いちおうハードウェア部分はなんとか形になってきたので、ようやくソフトのほう作る気持ちになってきた。とりあえず四則演算ぐらいはできるようにしよう。

形になってきたといいつつ、実はキーパッドの右端の列がおかしい(左端の列と同じキー押したことになってしまう)。隣の列ならまだしもなんで両端同士が?と不思議だけど。。。 どこかがショートしてるのだろうか。

なんにしても、こうやって単独で動かせる形でモノつくるのはいろいろわからないことが多くて、いろいろと楽しめました。基板も設計して発注してみたいし、ケースもカッコよくしたいし。自作電卓、たっぷり楽しめそうです。

電卓つくってみようかな!

前回の記事で、TENTAKUを作った話を書いたけど、電源スイッチが操作しづらいのと、キー同時押ししたときに0が入力されるのをなんとかしたいと思った。

自作するしか・・・

TENTAKUのソースコードが手に入れば、同時押しのほうは対処出来るかと思ったのだけどやはりコード公開は難しい様子。

ということで、自力で作ってみる。

マイコンはなににする?

マイコンは、自作キーボード界隈をちょっとだけ調べてみるとPro microというボードがよく使われている様子。TENTAKUは今手元にないので詳細見れないのだけどマイコンチップ単品で乗ってたような気がする。

とりあえずお手軽にPro microを使ってみる。とりあえず遊舎工房で売ってたスイッチサイエンス版Pro microというのを買った。
(下のリンクはスイッチサイエンス販売の SparkFun版 )

表示器はどうする?

こちらはまだ迷い中。白黒LCDが電池持ち最高っぽいけど、青色7セグLEDの見た目の良さも捨てがたい。LCDはi2cコントローラ付きで簡単制御できそうだけど、7セグのほうは別途コントローラIC使わないとピンの数的に苦しそう。

ひとまず

いくつか部品を買ってきたのでブレッドボードでお試し動作してみよう。電源どうするかも動かしながら考えてみよう!

こうやってひとまとまりのモノとして電子工作しようとすると、いろいろと難しいポイントが見えてくる・・・。センサーとか有機ELとかを単品でお試しで動かすだけなら簡単だけど。ちゃんとつくるって大変だ。たくさん作ろうとなるといよいよ大変。

HicarixバッジとかTENTAKUとか、本当にすごいなあと思う。

TENTAKUを買ってレーザー刻印した

電卓自作キット

最近、自作キーボードが流行ってますが、その流れ?で電卓の自作キットというのも販売されてます。

テンキー型 電卓自作キット”TENTAKU”

気になってたけど買ってなかった

以前からメカニカルキーの電卓が欲しいなと思っていたので、気になってたけど、キースイッチとキーキャップが付属してなくて、別途入手しないといけないというのが面倒で、手を出してなかった。(このあたりをカスタマイズできるのがキットのいいとこだと思うので付属してないのが当然とは思いますが)

遊舎工房なら一気に全部揃えられそう

TENTAKUは通販のみと思ってたけど、自作キーボード専門店の遊舎工房でも売られてるというのを知って、トライしてみようという気持ちが強まった。

無事ゲット、そして少し困った

福岡から横浜に出張中なので、秋葉原は1時間かからずに行ける。ということで遊舎工房で人気のキースイッチとTENTAKUで使えるキーキャップを教えてもらって、一式購入。

キーボードは好きだけどキースイッチやキーキャップには詳しくなかったのでいろいろ教えてもらったんだけど、一つ困ったのがテンキー部分が印字されたキーキャップのセットというのが存在しないということ。

英字のとこまで含めたフルキー分の印字ありセットを買えばテンキー部分もついてくるけど、いらない英字キー部分までついてくるのでかなり割高になってしまう。

お店の人のアドバイスで、無刻印のキートップとデカールのキットを買った。これを張り付ければ一応それっぽくなるはず。

組み立てとはんだ付け

こまかいチップ部品とかははんだ付けされた状態で、キースイッチだけはんだ付けすればいいのでかなり簡単に完成できた。

どうせならレーザー刻印

デカールは張り付けた後にコーティングが必要だったりとかで、ちょっと手間がかかりそうだったのと、前々からレーザー刻印が気になってたので、よい機会と思って格安レーザー彫刻機を買ってみることに・・・

レーザー彫刻機

Bang goodは値引きの変動が激しいのでよくわからんけど、1万3千円ぐらいで買ったはず。。。

レーザーレーザー

ファブ施設にあるようなすごいのに比べると、めちゃくちゃパワーが弱いので瞬発力に欠ける。ということでゆっくりビームあてると今度は焦げてしまう。のだとおもう。

それでもどら焼きの焼き印みたいなのはできた。

肝心のキートップはどうだったかというと

なんだか焦げ焦げ。さすがに市販キーボードのレーザー刻印みたいにはいかないと思ってたけど、焦げすぎ感がひどい。

レーザー強度と移動速度が調整できるのいろいろいじってみたけど、まったく刻印できない状態の次が真っ黒こげ。ちょうどいい中間状態みたいなのが実現できず。

なんとかぎりぎり妥協できるラインをさぐってできあがったのがこちら。

ソフトのバグなのかレーザーの特性なのか、印刷し始めの上端がかすれ気味(とくに4がひどい)だけど、焦げ跡もふくめて味がある感じに仕上がったということで。。

最後に

電卓自作キットをきっかけにレーザー刻印にも挑戦できてよかった。キットの電源スイッチがちょっと操作しづらいので改造するか、電卓の完全自作にも挑戦してみたい。

ARCore1.7触ってみた その2

先週の土曜日に福岡工業大学で開催されたXR制作会 in 八耐に参加してきたのでその記録。

作ろうとしたもの

ARCoreのAugmented Faces紹介記事によく出てきてる、顔がミスティークみたいなアニメーションで金色になるのと、Developersサイトに載ってる、顔の上にメッシュが透過で描画されるものを作ろうとした。

できなかったこと

イチからのARCoreアプリ作成

新規のシーンからAugmented Facesのアプリを作れなかった。UnityのARCore SDKから、Examples – Augmented Faces – Scenes – AugmentedFacesだとうまく顔認識されるのに、新しいシーンを作って、そこにAR Core Deviceを追加する方法ではうまく動かなかった。

公式サイトの手順通りに新規作成したつもりで、Exampleのシーンと、一から作ったシーンで、オブジェクトのInspectorの内容を一つずつ見比べたりしてみたけど、違いを見つけられず。
https://developers.google.com/ar/develop/unity/augmented-faces/developer-guide
新規シーンを一から作れるようになりたかったので3時間ぐらい、いろいろと試したけどどうにもならなかったのでいったんあきらめた。

透過のワイヤーフレーム表示

透過のワイヤーフレーム表示ができなかった。

「Unity ワイヤーフレーム表示」で検索して出てきたページを参考に、meshにsetIndiciesでMeshTopology.LineとかLineStripとかを設定してみた。
https://qiita.com/2dgames_jp/items/231a18454348cfebd49d

最初、ARCoreAugmentedFaceMeshFilter.csのAwake()でSetIndiciesしてたけどまったく反映されず、_UpdateMesh()のとこで都度都度更新されているようだったので、UpdateMesh()に、

m_Mesh.SetIndices(m_Mesh.GetIndices(0),MeshTopology.LineStrip, 0);

というのを追加してみたら、ひどいことになった。

点をつなぐ順番がめちゃくちゃになってしまってるぽい。何が悪いのかよくわからず。 前回記事に書いた方法でFaceTextureを描画させると、透過はしてないけど、いい感じのMeshに見えるのに。

できたこと

顔が金色になるのモドキ

顔を覆う白色マスクがブラインドチックなアニメーションで動くもの。(ワールド座標基準なので顔を傾けたりしてもブラインドは傾かない・・・)

作り方は次回に続く・・・

ARCore 1.7を触ってみた

テーマ変えたせいか、タイトルのところアルファベット大文字しか入らない。なんでか。

ARCore 1.7がでた

ARCoreがアップデートされて1.7になったそうです。紹介記事で女の人の顔が認識されて金色になる動画がめっちゃかっこいい。しかもすごくきれいに顔の形がとれてるようにみえる。

ぜひ試してみたいということで、ひさびさUnityを起動してAugmented Facesのサンプルアプリを動かしてみました。

手順は完全に公式サイト通り。

UnityにARCoreのSDKを導入

Augmented Facesのサンプルシーンを開く

スクリーンショット取り忘れたので貼りませんが、スマホアプリのSNOWみたいな狐の耳と鼻がオーバーレイ表示されるというサンプルでした。

金色の顔メッシュはどうやれば・・・

Unityど素人なのでまったくどうすればいいのかわからないまま、サンプルシーンのCSファイルを読んでみたり、シーンに配置されているオブジェクトのInspectorのところを見て回った結果、なんとなくARCoreAugmentedFaceMeshFilter.csというところでAugmentedFaceのVerticesとかから顔のMeshを作り上げてるような気がした。

「Unity MeshFilter」とかでググってみたところ、MeshFilterというのがMesh情報の生まれてくるところで、MeshRendererでそれをどうやって描画するか決めるっぽい。あとシェーダーはよくわからん。

よくわからないままサンプルシーンのオブジェクトをいじりまわした結果、FaceTextureというのだけいじればよさそうなので。狐耳鼻のオブジェクトは削除。

サンプルアプリの状態だとFaceTextureに隈取みたいな絵が入ってるようなので試しに黄色一色に置き換えてみたのがこちら。

あと一歩!

FaceTextureのMaterialのShaderというところ、TransparentになってるのをVR/SpatialMapping/Wireframeに変えてみたらそれっぽくなった!(何が起きてるのか理解していない)

最後に

Unity素人すぎてなんか変なことやってる気もするけど、試してみたかったことはできたので満足。次はこのメッシュを保存してBlenderとかで表示してみたい。

あと、MeshFilterとMeshRendererのこともすこしだけ学べてよかった。AR関係なしでシンプルなプリミティブ図形を生成するようなアプリも試してみよう。

スクリーンショットをTwitterに投稿してたやつ、全部Augmentedの綴りを間違っとった。恥ずかしい。

OpenSiv3Dを使ってみた その2

先週に引き続きOpenSiv3Dをほんの少しだけ。

|1/2 * x^2| と |3/2 * |x| | のグラフを見ようとして、www.wolframalpha.com でちょちょっと試してみたら、簡単に表示はできたのだけど、拡大表示は有料のようなので自力で描画してみることに。(WordPressにMathJax入れてみたけど数式表示されない・・・)

Pythonのmatplotlibで簡単にできるはずだけど、OpenSiv3Dで線引くのを試してみる。double型そのまま使うと誤差でてしまうだろうけど、適当なので気にしない方針で。

単純にxを0.01ずつ増やしていきつつ、直前の座標との間に線を引く方式。ガウスなのでほんとは途切れたグラフだけど、この引き方だと途切れないのも気にしない。

Line関数使って線引き。重なったところが見やすいように線の太さを少し変えてみた。
(赤の半透明丸はサンプルアプリのまま。。)

OpenSiv3Dを使ってみた

先日、昼休みにp5jsとOpenFrameworksの話をしてたらOpenSiv3Dというのを教えてもらったので少しだけ触ってみた。

https://github.com/Siv3D/OpenSiv3D

詳しいことはグーグル検索したらでてくるので、ちょっとだけ調べてみた印象としては、言語がC++なのでOpenFrameworks(触ったことないけど)に近い。Windows・Mac・Linuxそれぞれ用に実行バイナリがつくれるというのがうれしい。 個人的にはC++になじみナシなのでかなりとっつきづらいけど、OpenFrameworksよりは記述量すくないっぽい?

続きを読む OpenSiv3Dを使ってみた

Neo Pixelを使いこなしたい LEDピカピカ編

その1はこちら
配線編はこちら

LEDぴっかぴか

ぱっと思いつくのは、単色点灯しっぱなし、単色明暗変化、虹色変化、ランダムぽく点滅あたり。

当初の構想

発光のパターンを表現するようなDSLみたいなのをつくって、好きなパターンをそれで表現してみたいと考えていた。パターンを確認するためにp5jsでピクセルをリング状に立体配置して、パターンを確認するための簡単なシミュレータちっくなのもつくってみたりしていた。

↑はリングごとに色が変わるパターンと、全リング同じ角度で円の色が変わっていくパターン。p5jsで試したコードをMicro:bitに実装したら実物LEDも同じ感じでピカピカしていた。

VJ系のソフトが気になった

一個一個のパターンをコーディングしていくのはなんか今一ついけてないなと思ってたところ、つくるけぇの大下さんの投稿でTouchDesignerというVJに使われるソフトの存在を知る。

このソフトで生成した画像をLED発光に使えたらかっこよさそう!ということで、唯一?のTouchDesigner日本語書籍をKindleで買って使い方の勉強を開始。


ノードのつなぎ方など、基本操作から応用編まで、この本のおかげでとりあえず触ってみるとこまでいけた。感謝。

あとは「映像音響処理概論 2018」のページ。第十四回のPythonのとこを見てPCに接続したMicro:bitにシリアルでLED色の情報を順次送るところまで到達したけど、どうにも速度が出ない。LED138個で秒間1回更新みたいな速度で、FPSあげると通信が詰まってしまうような現象になったので、Micro:bit使用をあきらめてm5stackさんに乗り換え。

DMX/artnetとかいうプロトコルが使えるようなので、少し調べてみるとクリスマスが近いせいか、まるで僕のために書いてくれてるの?と思えるmgo-tecさんの記事を発見。記事内で紹介されているJinx!というソフトがかなり素晴らしかったのでTouchDesignerもあきらめるか?となりかけたけど、プロジェクションマッピングにも興味あるのでJinx!は使わずTDで頑張ることに。

最初はmgo-tecさん作のコードを使ってたのだけど、LED138個だと、データ受信ごとに色反映するとなんかおかしくなる?ようなので、Arduino用のartnetライブラリについてたサンプルコードのほうに乗り換え。こちらは全LED分のデータ受信してから1回発光更新しているようす。

勢いでnano Kontrol2とnano pad2を購入。かなりあっさりTDへの入力として使えるようになった。線アリは不便なので無線のやつにしたほうがよかったかも。。

画像の各ピクセルをDMX用データに並び変えてつなげるところがちょっと苦戦したけどなんとかできたのが展示日の朝3時。なんでかわらかんけど結局シリアルの時と変わらないぐらい更新頻度は遅くなってしまった・・・。完全に詰まってしまわないのだけが救いだったけど。

ということで、すこし不満足な出来だったけど初TDでの作品づくり体験ができて満足。LEDだと解像度的には激低だったので、つぎはプロジェクターで映像うつすのもトライしてみたい。

Neo Pixelを使いこなしたい 配線編

その1はこちら

配線編

時間かけすぎると記事書く元気なくなりそうなので、ささっと書く。

今回作るのは6つのアクリルリングを吊り下げて、リングの内径のところにテープLEDを張り付けたクリスマスツリー風のオブジェ。一番上のリングはLEDなしにしたので、まずは大きさの違う5つのLEDリングを配線するところから検討開始。

テープLEDはこれを買った。(10年以上前につくったアソシエイトアカウント。超久しぶりに見たらまだ500円到達してなかった)

5メートルで300LED、1メートルあたり60個、LED同士の間隔は100(cm)/60(個)で1.66cm。アクリルリングの大きさは外径10cm、15cm、20cm、25cm、30cmで幅2.5㎝なので、内径はそれぞれ外径-5cm。内径の円周から、それぞれのLED個数を計算すると9個、18個、28個、37個、47個。なので、計算上は合計139個になる。(最終出来上がったものは9,18,28,37,46の138個だった。ほぼ計算通り)

スイッチサイエンスのページでみると1LED当たりの最大消費電力は18mA。18*139は2.5A。なるべく細い電線のほうが取り回ししやすいけど、LEDの数が多いのでどれぐらいの太さの電線がいるのか調べてみると、2倍ぐらいのマージンをみるとAWG22という太さぐらいで4.7Aまで。ただ、AWG22ってかなり太いので、もう少し細い線を使えるように電源の線を分けてみることにした。

5つのリングのLED個数は、あまりきれいにグループ分けできなかったけど、とりあえず9+18+28=55個、37個、47個の3つにグループ分け。これで最大でも18*55=0.99で、1Aを超えないのでAWG26でよさそう。

Fritzingでそれっぽく書いてみたけどLED数合わせられなかった。信号線は全部直線上につながっていて、電源の5VとGNDは3つに分割。5VとGNDを5V2AのACアダプタに接続。信号線とGNDをマイコンに接続という構成。

電源もかなりごっついのがいるかと思ってスイッチング電源とか調べたり、複数ACアダプタ使う方法とかを考えてたけど、実際に点灯させて測ってみたら、全部を白色でMAX発光させるような使い方をしてないせいか、138個を光らせても1Aいかなさそうだったので、やや大きめのACアダプタ1つでいくことにした。

テープLEDをリング状に形成しつつ、次の段につなげられるように配線を上下方向に出すというのもかなり大変で、テープ端にはんだ付けした線同士が接触しないように3Dプリンタでケーブルガイド的なのを作ってみたりした。下の画像の左端の穴が6つ開いてるパーツがそれ。線を誘導する穴の角度がいまいちで、ちょっと使い勝手が悪かった。

下の画像で水色になってるのが、LEDの発光源中心とアクリル(5mm)厚みの中心を合わせるためのガイドパーツ。こっちはまあまあうまくできた。もうちょっと大きく作って、このパーツだけでアクリルリングに両面テープ止めできるようにしたり、アクリルを挟み込んで固定できるようにすればもっとよかったかな。

一番下にうつってるコの字型パーツはテグスを使ってアクリルを吊り下げるときのフックのつもりだったけど、あまりうまくいかなかったのでプリントしたもののボツにした。配線編はとりあえずこれぐらいかな。続きはLEDピカピカ編に書く。

つつうらら