VRで部屋をつくる

VR空間を自由につくれるようになりたい

GearVRとかDayDreamとかWindowsMRとかOculusGOとか、デバイスはそろってきたのでコンテンツを作れるようになりたい。

とりあえずトライしたいのは次の2つ。

モデリングしたものをVR空間でじっくり見てみたい

3Dプリント前にVR空間で手元でじっくり見てみたい。

VR空間でグラフを描画したい

VR空間内でログを立体表示してデバッグしてみたい。

ということで、まずは

Unityの勉強。

いろいろチュートリアルとか本とかあって目移りしてしまうので実現したい機能を決める。

  1. OculusGO向けにビルドする。
  2. BlenderでモデリングしたものをUnity空間に配置する。
  3. 空間内を移動できるようにする。(WindowsMR風)
    1. タッチパッド左右押しで視点回転
    2. トリガ押しでテレポート
  4. タッチパッドクリックでものをつかむ。
    1. クリックで保持
    2. パッド前後スワイプで距離変更(VirtualVirtualReality風)

OculusGO向けのビルドは適当にやったらできたので次はオブジェクトをUnitiy内におくのを試してみる。

とりあえずfbxで保存してみたら置けたけど、テクスチャがなくなってしまった。画像ファイルをfbxと同時にD&Dというのも試してみたけどなんかうまくいかず。

BlenderのほうでDecimateというので頂点数を少なくしたのが影響してるような気もする。もともとBlenderのテクスチャがいまひとつよくわかってない。もっとシンプルな箱にテクスチャを張り付けたようなやつで試してみるか。

中途半端だけどとりあえずここまでで記事公開。

つくると!5のヘボコンに出場した

2度目のヘボコン出場

準備時間ほぼなしでしたが、つくると!5のヘボコンに出場してきました。

前回の機体

前回出たのはつくると!3のヘボコン。デュプロでつくった車体に小型ドローンをくくりつけてNexus7を乗っけたもの。

Nexus7の画面にどん太君のアニメーションを表示していた。必殺技は一定時間待つとから揚げを投げるアニメーション表示。もう少し待つと、から揚げ投げのラッシュアニメーション。あくまで画面上なので物理的な効果はなし。

今回の機体

機体ネタ探しに部屋の中を見回してたらふと目に留まったレゴテクニックのトラック。手で前後に動かすとフロントに搭載されたエンジン部分のファンが連動して回る仕組みになってたので、逆にここをモーターで回せばタイヤが動くかも?というアイデア。

モーター取り付けにちょっと苦労したけど、もともとウインチがついてた部分を若干延長&幅を狭めるとぴったりモーターがはまった。

モーター制御

コンティヌアスサーボなので、以前買った激安サーボテスターで操作してもよかったのだけれど、せっかくなので最近はやりのM5Stackを使う。

https://www.amazon.co.jp/dp/B00JK9UFZC

構成としては、どん太君表示&からあげ発声&モーター操作のPWM発生用に1台を車体に積む。そのままだと車体のM5Stackのボタンを押さないといけなくなってしまうので、もう一台M5Stackを用意してUartでつないで前進・後進・停止の信号をおくる。(有線なのでペナルティ対象の遠隔操作ではない。と信じている。)

へぼいところ、へぼかったところ

  • ステアリングは成り行き任せなので、一度曲がりだすとまっすぐ動けない。
  • 手でもって操作するほうのM5Stackは最新のFIREだけど初期不良でLEDが一つ点灯しっぱなし
  • どん太君の必殺技、から揚げ。今回は画面の絵だけじゃなく「から揚げ」発声つき。当然攻撃効果ゼロ。
  • 試合直前まで動いてたのに車体搭載側のM5Stackがバッテリー切れ。しかたなくモバイルバッテリーを乗せたので、もしかすると制限の1㎏を超えてたかもしれない。
  • 車体重量かなりあるので負けることはないと思っていたのにコントロールがへたくそで勇み足的に土俵外に落ちて一回戦負け。ベストエイト。
  • ビッグから揚げに切り替わったときの画面、下のほうが崩れて表示されている。なんでか。。

通常からあげと必殺技からあげの動画

M5StackをArduinoとして使うまでの手順

M5StackをArduinoとして使う手順、2018年6月28日時点版

公式サイトの手順はarduino-esp32のインストールとm5stackライブラリのインストールでページが分かれていて、すこしややこしかったので現時点での手順を1ページにまとめてみました。

注:以下の手順は古いです。Arduino IDEのボードマネージャからESP32を選べるようになったそうです(2018/8/8 追記)

続きを読む M5StackをArduinoとして使うまでの手順

M5Stack使ってみた

2か月ほど前に買ったまま放置していたM5Stackを使ってみる。

M5Stackであそぼう

とりあえずお手軽にM5Cloudでお試し。

jpg画像表示は簡単にできたので、二酸化炭素センサー MH-Z19をつないでみる。

前回MBEDでこのセンサーを使ったときはPWMでデータを読んだので今回はUARTで接続。

M5StackのTX2とRX2という端子がUART2の送受信端子なので、そこにMH-Z19のRXとTXを接続してあとは5VoutとVin、GとGNDをつなぐだけ。

仕様書に書かれた通りのコマンドを送ると値が読み取れたので、そのままCO2濃度としてディスプレイに表示。

外付けセンサーがかなり不格好だけど最初からディスプレイとバッテリがついてるのはお手軽でいい感じ。

センサーをスタックできるようにケースつくればいいんだろうけど・・・

一応コードも張り付けておく。

Windows Mixed Realityが気になる

先週、ebayでMRゴーグルを落札したのでもうすぐ届くはず

せっかくなので日本で販売されてないSamsungのを落札した。

LenovoとSamsungが掛け心地良いと言われていて、先日のFukuoka AR勉強会でLenovoは試させてもらったので、Samsungがどんな感じか試すのが楽しみ。

Samsung Odyssey、リュックに入れて雑に持ち運んだせいか、正常動作しなくなってしまった。
PCに接続してもMR Portal起動せず、緑LED点滅のみ。Vol+-キーでの音量変更はできるという状態。ファーム更新ソフトでは正常に認識してるっぽく表示される😢。 (2018/11/9 追記)

とりあえずやってみたいこと

  • 360度カメラで撮影した写真を貼り付けた空間に入ってみたい。
  • ZenfoneARでスキャンした部屋に入り込んでみたい。
  • BlenderとかでモデリングしたものをVR空間内で触ったり見たりしてみたい。
  • VRChatも試してみたい
  • リアルタイムなデータビジュアライズを3D空間に表現してみたい。

予習

おそらくだけどWindows MRはまだまだ環境の変化が激しい状態なのでオフィシャルサイトの情報が一番信用できると思っている。

Microsoft様のMixed Realityのページ

を読みつつ、適宜Qiita記事とかを参考にしながら開発環境を準備しておけばよいかな。

今のThinkpadでWindows MRできるといいんだけど性能的にすこし難しいようなので、とりあえずはデスクトップでやる。

事前確認

事前といってももう注文しちゃったけど、Mixed Reality ポータルを起動するとWindows MRを動かすのに必要なスペックを満たしているかどうか、チェックしてくれる。

デスクトップの方はGTX1060があるので大丈夫なはずだったが・・・ドライバがちょっと古いとNGになる模様。ドライバ更新したら起動できるようになった。とりあえずシミュレーションのセットアップを実行。

平面ディスプレイ内にMRポータルが表示できた。

あとはUnityとかかな。

IoTLT#6で自動給餌機とスマートスピーカー連動の話をしてきた

2018/02/16(金)19:00 〜 21:00
福岡版IoT縛りの勉強会 vol.6@Fukuoka Growth Next
で初LTしてきた。

発表に使った資料はこちら。しかじろうさんの代わりにガヤ芸お願いしたとこの個人名と艦長の写真は削除。Googleスライドから変換したら画像遷移のアニメーションもなくなってしまった。

 

 

しゃべりなしの資料だけだとわけがわからないけど、流れとしては、スマートスピーカー・IoT・3Dプリンタを組み合わせると世界が広がってとってもいいですよというのを感じてもらいたい⇒実例紹介⇒モデリングの苦労編、という感じ。

単にスマートスピーカー連動のIoT餌やり機を作りましたで話し始めると、へーってなってしまいそうだったので、色々導入方法を考えて、夢は大きく現実でずっこけ感でるように、スタートレックのレプリケーターを真似したいというのを(後付)動機にしてみた。

一番がんばったのはイラストやさんを使わず、オール手描きイラストで資料つくったところ。スケッチブックにHB鉛筆でがんばって描いた。自信作はスポックさんと紅茶飲んでる艦長かな。

ESPとかIFTTTの使い方とかは調べたりすればすぐわかるのであっさり流し。モデリングの苦労と言うか、変化の過程も見てもらいたかったのと時間余るのが怖くてプレゼンの最後にモデリングの過程資料を付け足したけど、モデリングパートにたどり着いたときにすでに5分経ってたので、完全に時間オーバー、蛇足だった。

発表直前に思いついてしかじろうさんツイートを盛り込んだおかげか、手書きイラストのおかげか、聴講者のみなさんが話した内容に対してしっかり反応かえしてくれて、いい雰囲気でLTできた。一番の失敗は動画撮影をお願いしていたつもりが、動画ってちゃんと伝えてなくて写真撮影してもらってたこと・・・ガクー。

LT後の懇親会では前々から話を聞いてみたかったIoT主婦さんとがっつりお話できたのがよかった。なんにでもばんばん飛び込んでいく姿勢、刺激を受けました。とりあえずアレクサスキル公開したくなった。

スライドにはソースコード一切でてこないので、一応ちょっとだけコードがでてくるQiitaのリンクも貼っておく。

esp8266でSlackBotを作ってIFTTTからのメッセージを待ち受けする

最後に、福岡版IoT縛りの勉強会 vol.6の他の登壇者の資料へのリンク。IoT主婦山田さんの「Voice」と、Blenderの師匠宮田さんの「攻めの可視化」。

宮田さんの方は装置?の写真がないと意味不明なので写真もつけておく。

 

自動給餌器のハードウェア構成

マイコンとサーボまわり。サーボは次のURLで紹介されている初心者向けおすすめのEMAX ES08MAIIを利用(2017年4月頃に買ったまま放置してたのを活用)。マイコンは手元にあったArduino LEONARDOを使った。

Arduino、Raspberry Pi等で使える1000円以下の安サーボモータ比較~我々はどのサーボを使うべきか

サーボは2つだけならArduino直結でもよさそうだったけど、少しでも不安定要素を除きたかったのでサーボコントローラーを購入。Amazonで検索してPCA9685 16Channelというやつ。Adafruitの互換品で980円ぐらい。

電源は手元にあった5V2Aぐらいの秋月のACアダプタ。サーボコントローラに給電してそこからArduinoに配る形。サーボコントローラのVCCはどこからつなげていいかよくわからず、5V-outと直結でいいような気もしたけど、なんとなくArduinoの5Vをお返しする形でつないだ。

あとはサーボをコントローラにつないで、コントローラとArduinoのI2Cをつないで、配線はできあがり。

つつうらら