3色電子ペーパー(2.9inch)

micro:bitで3色電子ペーパーを制御してみる

micro:bit用のブレークアウト用のスロットがないのでとりあえずThingiverseで見つけたスロットを印刷してみた。

waveshareの商品紹介ページによると電源とGND以外に6本の配線が必要。

Arduino用のコードを見ると4本は番号指定可能で、残りの2つはSPIのクロックと送信機能があるPINに限定されている模様。

DIN D11、CLK D13、CS D10、DC D9、RST D8、BUSY D7

D7~D10は自由に設定できて、D11とD13はmicro:bitのDINとCLKのPINにしないといけない。

https://microbit.org/ja/guide/hardware/pins/を見るとDIN(mosi)がP15、CLKがP13。3Dプリント製のスロットは精度低くて両隣のPINが接触してしまいそうなので、P13とP15が一個飛びなのはありがたい。

ということで配線してみたけどうまく動かず。接触不良なのかなにかが間違っているのかわからず。まともなブレークアウトスロットが届くまで保留。。。

とりあえずM5Stackにつないでみたら普通に動いた。書き換えに10秒以上かかるけど表示はとてもキレイ。

(2018/10/06 追記)
その後、ちゃんとしたスロットが届いたのでスロットから出ているピンに配線をはんだ付けして、micro:bit再挑戦。D7~D10ピンの割り当ても機能がなさそうなところに変更してみたところ、一瞬動いた気がしたけど、なんかおかしな雰囲気。PCにつなぐとmaintenanceになってる様子。

 

VRで部屋つくり その4

プロジェクションペインティングの覚書

参考にしてる動画は↓

動画から大事そうなところをメモ。

頭部をUV展開してテクスチャを割り当てするところまでは普通にやる。

UV Mapsを新しく追加する。

投影用の画像を開いて3Dモデル側でU-Project From View

Texture PaintでSlotsタブを設定、Painting Mode: Image で Canvas Imageにテクスチャになる画像を選択。UV Mapは顔を展開したときの一つ目のUV Mapを選ぶ。

Toolsのほう球体の絵のところをクリックしてBrushをF Cloneにする。Clone from imageにチェックをいれて、投影用の画像を選ぶ。Source Clone UV Mapは新しく作ったほうのUV Mapを選ぶ。

これでプロジェクションペイントできるはず。正面画像、横画像などいいかんじでぬりぬりする。

そして、先日XR部ロゴの部屋をお試しで作ってOculus GOで見えるようにしたはずなのに、Unity開きなおしたらキレイに消えてた。保存できてなかったのだろうか。まだまだUnityの基本がわかってない。

VRで部屋つくり その3

Blenderのテクスチャ(Blender Renderのほう)だいぶわかった

メッシュ(メッシュの一部の場合もあり)に直接紐づくのが、

  • UV展開の形情報
  • マテリアル

で、マテリアルに紐づくのが

  • テクスチャ

で、テクスチャに紐づくのが

  • テクスチャ画像

メッシュをUnwrapしてUV展開情報を確定するのとほぼ同時にテクスチャ画像を作ることができるけど、これは画像ができただけでメッシュ-マテリアル-テクスチャ-テクスチャ画像というリンク構造が出来上がるわけではない。

メッシュへのマテリアルの割り当てについて、別々のメッシュでマテリアルもテクスチャも別に割り当てて、最後にCtrl-jでメッシュを合体させた場合、メッシュとしては一つだけだけど、マテリアルはそれぞれ部分的に割り当てたときと同じ状態になる。

テクスチャはマテリアルに紐づくので、つまりは一つのメッシュオブジェクトに複数テクスチャ(≒複数マテリアル)が割り当てられた状態ということになる。

ついでに、VRChat用の骨埋め込みに関して、とても参考になるページを見つけたので試してみたところ、VRChatへのアバターUploadできた!

 

VRChat用人型アバターを作ってみた

 

のだけれど、一時期不調から復活していたSamsung Odysseyが再び動かなくなったので動作確認できず。デスクトップモードで見れなくはないけど腕うごかせないので、とりあえずBlenderでの画像をはりつけておく。

2018/9/11追記 いただいたコメントによるとデスクトップモードでもEmoteすれば身振りが見れるとのこと。確かに!

前回のに比べると大改善。

VRで部屋つくり その2

VRで部屋つくりの続き

Blender難しい。

Unityに持ってくる前提ならレンダラーはCyclesにしないほうがいいのかな。

UVマッピングするためのUnwrapとSmart UV Projectの違いもよくわからず。

なんとかテクスチャ書いてpngファイルとfbx同時にD&Dしたらいちおうテクスチャ付きでBlenderから取り込めた。なんかおぞましい感じになってしまったけども。口の色も赤のはずがえらく暗い。

fbxのエクスポートの時にMesh以外のチェック外し忘れるとCameraとかも取り込まれる模様。罠が多い。

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のテクスチャがいまひとつよくわかってない。もっとシンプルな箱にテクスチャを張り付けたようなやつで試してみるか。

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