2020年4月18日土曜日

TouchDesignerを使ってZoomに映像を出すときに参考にしたURLメモ


TouchDesignerの出力でZoomミーティング参加
https://qiita.com/makoragi/items/5fbeafe4728fa59a5472

TouchDesigner初心者のための外部連携まとめ
https://qiita.com/ToyoshiMorioka/items/51de02be491c1d33efc0

TouchDesigner なら超簡単!動画の輪郭(エッジ)を抽出して色をつける方法
https://blog.creative-plus.net/archives/8151

TouchDesigner基礎基礎メモ1
https://www.nogson.blog/entry/2017/08/20/235936




2019年9月10日火曜日

M5StackとNeoPixelで作った光る帽子をM5StickCに移植した



一年ほど前 Maker Faire Tokyo 2018 への出展作品として光る帽子を作ったのですが、その際に採用した M5Stack Gray を M5StickC に変更することで従来の光る帽子の要件を満たしつつ、より軽量化が見込めるのではないかと考えて移植作業をおこないました。

参考:M5StackとNeoPixelで光る帽子を作ってみた
http://ajimitei.blogspot.com/2018/09/m5stackneopixel.html

光る帽子の要件をおさらい

  1. 帽子全体がフルカラーで光るようにLEDを配置した上で制御ができること
  2. 帽子を雑に扱っても怪我をしにくいこと
  3. 帽子は子供が被れるくらいの重さであること
  4. 帽子を落としてもなるべく壊れにくいこと、もしくはすぐに修復できること
  5. 自分がなるべく開発しやすい環境であること

光る帽子を作る上でどんなことを大事にするかのおさらいです。今年の Maker Faire Tokyo は終了してしまいましたが、NTなど他イベントでの展示も考えているので要件は変更しません。また、光る帽子は製作者本人が被るだけでなく来場者にも被ってもらい、自分の写真を撮ってもらうことをイメージしているので帽子の重さや帽子を被る際に怪我をしないといったことも重要なポイントです。

M5Stack Gray から M5StickC に変更することによる改善点

一番の改善点は本体の軽量化です。M5Stack Gray から M5StickC にすることで重さが 1/8 になるので 、M5Stack Gray 3つ分の重さ 360g から M5StickC 3つ分の重さ 45g へ、 315g の軽量化を実現することができます。頭上に身につけるものなので300g以上の軽量化は被った際の印象を大きく変えることができます。

自身の重さで沈むM5Stack Gray


その他のM5Stackを選んだ際の理由はすべてM5StickCでも満たしており、M5Stack Gray の9軸センサについてもM5StickCは6軸センサを搭載しているので問題ないという判断ができました。
最初にM5Stackを選んだ際の理由を下記に再掲します。
  • 基板がむき出しではないこと
    • 落としたときでも壊れにくそう
    • 来場者が作品を触ったときに怪我をしにくそう
  • 外部ピンがケースの開け締めなく接続できる
    • 帽子に無理な力がかかったときもケーブルが抜けるだけで基板本体へのダメージが少なくてすみそう
  • バッテリーを内蔵していること
    • NeoPixel用の電源を別途用意する必要がない
  • ESP32を搭載していて、Arduinoの開発環境が使えること
    • 自分が慣れている環境で開発できる
  • (M5Stack Grayのみ)9軸センサを備えていて、帽子の動きにあわせてNeoPixelを制御できること

M5Stickを使ったNeoPixelの制御方法

それではハード側、M5StickCとNeoPixelを接続してみます。M5Stack Gay を使った際は NeoPixelの3pin(緑・赤・黒)をそれぞれ5番、3.3V、Gに接続しましたが、M5StickCでは26番、3.3V、Gに接続します。相変わらず配線はこれだけ完了です。

前回と同じくNeoPixel にある電源用の出線は使いません

次にソフト側を設定します。M5StickCも中身はM5Stack Gray と同じESP32なので、以前と同じ AdafruitのNeopixel Libraryを使うことができます(参照元:https://qiita.com/tomorrow56/items/fcf5ea7bfd2056e8f88f)。
上記のライブラリのページからZipファイルをダウンロードして解凍、Arduino IDE でライブラリをインポートすると、スケッチ例を読み込むことができるようになります。以前インポートしたままになっている場合は、ツール -> ライブラリを管理 を選択して新しいバージョンのライブラリに更新するなどすると良いでしょう(原稿執筆時点での最新バージョンは1.2.4)。

そして今回もスケッチ例の Adafruit Neopixel -> simple を参照しながら開発を進めます。

M5Stickはピン配置がArduinoやM5Stackとは異なるので、simple をそのままM5Stickで実行してもNeoPixelを光らせることはできません。スケッチ例11行目の
#define PIN            6

#define PIN            26 
に修正することで制御が可能になります。また、NeoPixel を制御する個数はスケッチ例16行目の
#define NUMPIXELS      16
 を編集することで変更することができます。上記例では16個までのNeoPixel を制御しています。

インタラクティブにLEDを制御する

M5Stack Gray を使っていたときと同じく、M5StickCのセンサの値を使ってNeoPixelの色や明るさを制御することにしました。M5StickC は加速度とジャイロを計測できるMPU6886を搭載しているので、ジャイロのX軸, Y軸, Z軸の各値をNeoPixelのR, G, B に対応させて制御することにしました(ジャイロの値は上限を決めた上でNeoPixelの設定値として利用しています)。
スケッチ例の M5StickC -> basics -> MPU6886 に加速度とジャイロの値を取得するプログラムがあるので参照ください。



光る帽子完成

帽子の周りにNeoPixelを巻きつけることで無事光る帽子を完成させることができました。ジャイロの値でNeoPixel を制御しているので、帽子を置いているときはNeoPixelが消灯していて、帽子を被っているときはカラフルに光るようになりました。

M5StickCを2個しか入手できなかったので2個(LED120個)運用です


所感と今後の展望

Maker Faire Tokyo 2018 への出展以降、度々光る帽子を持ってイベントに参加したこともあり、光る帽子の人という認知が多少を進んだのではないかと思っています。今後は自分が被るだけでなく、他の人にも積極的に光る帽子を被ってもらうため、軽量化をメインの目的としてM5Stack Gray からM5StickC への機能移植をおこないました。

今回も簡易にプロトタイピングができるM5Stick、NeoPixelを使うことで無事完成させることができました。また、Web上に記載されている数多くの先人たちの知恵を借りることでトライアンドエラーの回数を大幅に減らすことができました。ありがとうございます。
今回の製作は移植作業がメインだったので次の試作では

  • NeoPixelの数をさらに増やして帽子全面が光るようにする
  • NeoPixelの電源を外部から取得して、M5Stack1台でNeoPixelを制御する
  • さらなる軽量化への挑戦
  • インタラクティブ要素の追求

といったことに挑戦してみようと考えています。

2019年9月9日月曜日

M5StackとM5Stickの機種別GROVE端子情報まとめ

M5シリーズを使うときに便利なGROVE端子ですが、形状は同じでも対応している信号が異なるため、接続を間違えると正しく動作させることができません。そこでどの機種がどの信号に対応しているのかをまとめてみました。
※便宜上、GROVE端子数1の場合のポート名をPORT Aとしています
※ピン配はディスプレイ面を上に左から記載しています


M5Stack BASIC / M5Stack GRAY / M5Stack FACES
  • GROVE端子数:1
  • PORT A:I2C
    • ポート詳細:SCL(G22), SDA(G21), 5V, GND

M5GO / M5Stack FIRE
  • GROVE端子数:3
  • PORT A:I2C
    • ポート詳細:SCL(G22), SDA(G21), 5V, GND
  • PORT B:I/O
    • ポート詳細:ADC(G36), DAC(G26), 5V, GND
  • PORT C:UART2
    • ポート詳細:RXD2(G16), TXD2(G17), 5V, GND

M5STiCK
  • GROVE端子数:1
  • PORT A:I/0
    • ポート詳細:GPIO(G13), GPIO(G25), 5V, GND

M5StickC
  • GROVE端子数:1
  • PORT A:I/0
    • ポート詳細:GPIO(G33), GPIO(G32), 5V, GND

M5StickV
  • GROVE端子数:1
  • PORT A:I/0
    • ポート詳細:GPIO(G34), GPIO(G35), 5V, GND

M5CAMERA(バージョンにより一部異なる場合あり)
  • GROVE端子数:1
  • PORT A:I2C
    • ポート詳細:SCL(G13), SDA(G4), 5V, GND

2019年6月25日火曜日

Macで TidalCycles のセットアップをするまでにやったこと(2019年6月版)


概要

「TidalCyclesのインストール2018年版」の情報をベースに

TidalCyclesのインストール2018年版
https://qiita.com/yoppa/items/fe21d7136f8f3aafd55c

途中のエラーで詰まったところを下記のURLを参考に進めた結果、無事動作させることができた。(いろいろインストールしたので、余計なものまで入っているかもしれない)

TidalCyclesインストール
https://qiita.com/mk668a/items/0e32235f1ea0bab3c881

MacでHaskellを始める
https://qiita.com/dyoshikawa/items/533e172bb215c1fb0f77

SuperDirtをセッティングする
https://qiita.com/moxuse@github/items/df922fba6852ff240719

TIDALCYCLES インストール 悪戦苦闘記
http://livecodingmemo.blogspot.com/2018/05/tidalcycles.html

Tidalでライブコーディング! - セットアップ編
https://qiita.com/yoppa/items/41805cc6af62b1047a34

初期状態


  • Mac:Macbook Pro 2014
  • OS:MacOS Mojave
  • セットアップ済のソフトウェア
    • Git
    • Homebrew
    • Atom


やったこと


  • Tidal-bootstrap をダウンロード
  • ダウンロードしたファイルを解凍して、 tidal-bootstrap.command をダブルクリックして実行。このTidal-bootstrap一連の流れは「TidalCyclesのインストール2018年版」と同じだったが、[Process Completed]という表示がされてもインストールは必ずしも完了はしておらず、実行したログを見てエラー 文言が表示されていないかを確認する必要がある
  • 私の場合は「Error: Cask 'haskell-platform' is unavailable: No Cask with this name exists.」というエラーが出ていたので、haskell-platformのインストールを実行(したけど、どれが正解なのかはわからず…)
    • $ brew install ghc cabal-install stack
    • $ brew install ghc
    • $ brew install cabal-install
    • $ cabal update
    • $ cabal install cabal-install
    • $ cabal install tidal
  • tidal-bootstrap.command をダブルクリックして実行した結果、エラー系のログがでてこなくなったら、SuperDirtのセットアップを開始する
    • 解凍したファイルから、 install-superdirt-quark.scd を実行
    • SuperColliderのエディタ画面から「include("SuperDirt")」の行に移動して、command + Enterキーを入力するとSuperDirtのインストールが開始される
  • SuperDirtの起動とAtomの起動、動作テストと特にトラブル無く実行できた

2019年5月4日土曜日

深センに行ってきた 3/3 (ニコ技深セン観察会&茂ツアー)


ちょっと前の話ですが、2/28から3/3までの4日間、深センへ行ってきました。4日目です。
(ひとまず写真のみアップ、文言はこれから追記します)

地下鉄で皇岗口岸駅へ、湾仔行きのバスに乗ってすぐ下車してイミグレを通り、再度湾仔行きのバスに乗る。


生憎の曇り空

香港の中心部に近づくにつれて街の雰囲気も変わっていく

ユニクロとメイソウの悪魔合体

朝はお粥が嬉しい身体になりました

湾仔駅近くの太原街 (玩具街)を散策

ゴディバに寄る余裕はなかった

湾仔から铜锣湾に向かう途中に良さげな茶器の店を発見

2階建路面電車

脈絡なく欲しい

隙間なくミッチリ建物が詰まっている

赤地に白を見ると反応してしまう
香港のリラックマ


香港の小米へ、残念ながらmi9はまだ未発売

香港のApple Storeへ

香港空港へは香港駅から特急で

香港発成田行き、LCC故に出発ゲートははじっこ

LINEキャラクターのコラボカフェ

うさぎも働いている

昼食は香港空港のフードコートで

無事帰宅