tutuurara のすべての投稿

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ピカピカ編に書く。

つくると in 織りなすラボ に出展した

出展は「つつうらら」と「トンガリズム」の2つ

つつうららのほうは個人的活動のつつうららで作った作品を出展。トンガリズムのほうは会社の人達と一緒にグループ出展。

つつうらら

今回は3Dプリント作品とフェルト手芸作品の展示。3DプリントのほうはHappyPhoneHolderHappyFaceMask。フェルト手芸は、つつうららのマスコットキャラクターどん太君の人形とクッション。

左側に映ってる黄色いハッピーフォンホルダーは展示中に机から落下してバラバラになってしまったけど、内部の様子が見えるからちょうどいいやと思って接着しなおさずにそのまま展示してたら、パズル的に組み合わせて遊ぶ子供が続出してたので、あえて未完成なのも楽しめる要素があっていいなと思った。

3Dプリントしたものを見慣れてない来場者も多かったようなので、廉価なプリンタでもこれぐらいできますよというのを紹介できてよかった。あと、こんな大きな作品って感じのものだけではなくて、カーテンレールのフックのような日用品も(100均で十分なんだけど)家でさっと印刷するのに使えて便利ですよアピールもできた。

ハッピーフェイスマスクはプロジェクションできる状態にセットすると、プロジェクターの充電口がふさがってしまうことに展示設営中に気づいたけど時すでに遅し。電池切れになるたびに取り外して充電してたので、プロジェクションありの完全な状態での展示はかなり短時間しかできなかった。これは大失敗。会場はかなり明るかったけど写真に写ってるぐらいの感じで肉眼でも見えてたのはマル。

どん太君人形は左手のところに鳴き笛を仕込んでもらって、押すとキューキューなる仕様。今回は小さい子供の来場者が多かったのでキューキュー鳴らすとめっちゃ興味持ってもらえてよかった。クッションのほうは鳴き笛なしだったけど、音が鳴るのを期待して押してくれるキッズが多かった。

トンガリズム

こちらはつくると!5で展示してたベルトさんアナライザーに加えて、アクリルのリングとLEDテープで作ったキラキラクリスマスツリーに、アクリルやMDFをレーザーカッターで切り抜いて作ったオーナメントに絵をかいてもらって飾るというものを展示。

アクリルリングをツリー状にぶら下げる方法をいろいろと考えて、テグスをクリップで引っ掛けたり、3Dプリントした柱で吊り下げたり、シンプルにテグスを巻き付けた摩擦だけでいけないかと試したりしたけど、結局リングごとにテグスを結び付けて6リングx4本=24本のテグスを個別に長さ調節するという一番力技でしんどい方法に落ち着いてしまった。当日朝から吊り下げ準備してくださったトンガリズムメンバーに感謝。

展示が始まってからは、想像していた以上に子供たちのお絵かきの勢いがすごくて、昼過ぎには用意していたオーナメントが全部なくなって、ツリーのほうも飾る場所がなくなってしまった。ほとんど書いてもらえないかもと思っていたのでかなり驚き。

LEDツリーの作成についてはNeo Pixelを使いこなしたいの記事のほうに書いていく。

Neo Pixelを使いこなしたい その1

Neo Pixelキレイですよね

大量LEDを光らせてみたいと前々から思っていたけど、難しそうな印象があってトライしてなかった。

難しそうポイント1

電力供給と配線。LEDがたくさんになるとそれなりの電源とそれなりの太さの電線が必要になるみたいで、なんとなく恐ろしいと感じている。

難しそうポイント2

キレイに光らせるパターンを作るのが難しそう。そもそも虹色に循環させるみたいなのが難しそう。RGBそれぞれを順番に強めて弱めるとかだけでもひ弱なマイコンではメモリが足りなくなりそうで怖い。

難しそうポイント3

実はAliexpressで安いテープLED(5m,300LED)を買って間接照明を作ってみようとしたことがあるけど、数か月放置してただけで9割ぐらいのLEDが壊れて?光らなくなった。NeoPixelは数珠繋ぎなので壊れたとこから先は一切光らず、ちょっとずつチョキチョキして光るLEDを探すみたいなことをやったのがつらかった。

といった難しそうポイントがあったのだけど、今回、「つくると! in 織りなすラボ」に出展するのをきっかけに、大量Neo Pixelをキレイにピカピカする!にトライしてみることになった。

以前、スティックタイプのNeo PixelをM5Stackに接続して光らせたことはあるけど、その時は数が少なかったので電源・電線は考慮しなかったし、光らせパターンもArduinoのNeoPixelライブラリ内蔵のやつにおまかせ。スティックタイプなので?配線のはんだ付けもしやすかった。

 

 

目標

大量のテープLED(300個ぐらい)を立体的に配置してピカピカする。ピカピカのパターンも単純な流れるレインボーではなくて、かっこいい感じにする。インタラクティブなのもやってみたい。

配線編に続く

UnityのTutorialをやってみた

きっかけ

VR部屋作りが滞っている。もともとVRデバイスを活用したかったのに、Odysseyが壊れたとか、FAB3Dコンテストに応募したとかでいろいろ横道にそれてしまった。

OculusGOとかWindowsMRとかUnityで作るにしてもいろいろSDKとか違うぽくてどれを選ぶのか迷いもあるけど、結局のところそもそもUnity慣れしてないのでまずはUnity公式のTutorialを試してみることにした。

公式チュートリアル

ページはこちら

まずは Interactive Tutorials から始める。UnityのProject作成ダイアログにLearnというタブがあって、そこを選ぶとこのサイトのチュートリアルと同じコンテンツが選べる。Downloadを押してしばらく待つとボタンの表記が「Start」に変わって、Startを押すとチュートリアル開始。

あらかじめ途中まで作成済みのプロジェクトが開かれて、クリック可能な場所が明るく表示されるので、それに従ってポチポチ押していくことでレッスンが進む形式。最初の2つをやった感じではかなり細かい単位でチュートリアル分割されている印象。

ひとまずの目標は「モデリングしたものをVR空間でじっくり見る」なので、そこに向けてVR要素なしの状態からすすめていくような感じ。Interactive Tutorialsが終わったら玉転がしをやるとして、そのあとどうすべか。

FAB3DCONTESTに応募した

今年もFAB3DCONTESTに応募した

今回も去年と同系統?のカテゴリー4。去年との違いをあらためて見直してみると、去年は「エンターテイメント部門 テーマ:笑(わら)ファブ 対象:クリエイター」だったのが、今年は「IoT × FAB テーマ:笑顔を誘う 対象:全般」になっている。気が付いてなかったけど対象の間口が広がってる。

今年の作品はこちら。

ハッピーフェイスマスク

応募のきっかけ

去年はグッデイファブ大名で3Dプリント部の活動があって、みんなで集まってこつこつ進めて、応募という流れだったけど、今年はそういう集まりもなさそう。募集が始まったのは知っていたけどなんとなく今年はもういいかなという気持ちだった。

やっぱり応募してみようかなという気になったのは、MakerFaireTokyo2018に去年のFAB3DCONTESTに出した作品をもっていって展示してたら、最終日の終了時間間際にブースに来てくれた中学生が、「FAB3DCONTESTに出してた作品ですよね?」って声をかけてくれて、「今年も出しましょうよ」と声をかけてくれたから。そのときFAB3DCONTESTのパンフレットもくれた。

まだ作り続けている

詳しくはFabbleのページを見てもらうといいけど、本当は頭を全部覆う形にしたかった。ということで引き続き残りの部品を印刷中。来週末には全部印刷終わるだろうか。まだ頭やVRヘッドセットへの固定部分、プロジェクターの固定部分など課題もたくさん残っている。本当は全部接着じゃなくて分解できる方式にしたいというのもある。持ち運びが大変すぎるので。

カテゴリー4応募の様子

去年と変わらず、Fabble投稿時のタグとかタイトルが規定されていないので、どんな作品が応募されているのか把握するのがむずかしい。fabbleを検索して見つけた範囲でカテゴリー4っぽいものを列挙してみる。

*の印をつけたのがGoodayFab大名が関係してそうなもの。ハッピーフェイスマスクも応募するときに、関係ファブ施設としてGoodayFab大名の名前を書いておいたので、カテゴリー4の半分近くがGoodayFab大名絡み (見つけた範囲では)。

感想

今回のオフィシャルおすすめIoTデバイス、MESHを使ってるのは4つで、そのうち2つは高校生枠。MESHもう少し安くなるといいのだけれど。

個人的な感想としては、タイマーの逆襲が見た目も機能も面白い。3Dプリントしたものの機能という意味ではMENNDAKOロッカーがよくできてる。PartyTimeは記事がしっかりしていて見せ方がうまい。IoTらしさという意味ではCactifyかなぁ。

あとは、自分の作品も含めてIoTの条件ってなんなんだというところが難しい。Thingsのほうは3Dプリントした時点で満たせると思うけど、Internetのほうはどうなんだろうか。あまり深く考えないほうがいいのかも。

とりあえず今年も応募できてよかった。こういう機会がないとなかなか大きなもの印刷してみようという気にもならないので。

去年はちょっと太さのあるものを輪切りで印刷して接着する方式だったけど、今年は薄い板状のものをたくさん印刷して接着する形だったので、カットしたときの角度次第でサポート有無が変化して印刷時間が倍以上変わるので工夫のし甲斐があった。

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とかも取り込まれる模様。罠が多い。