2016年12月19日月曜日

舞踏(BUTOH)×vvvv その2(PC2台、プロジェクター3台、ESP-WROOM-02を使った時のお話)

こんばんは。
空きがあったので、vvvv Advent Calendar 2016の19日目の記事を書きます。
恐縮です。

前日は、@AquaLampさんの「Arduinoが無線で接続できたらいいのに…と思っている方」へでした。
奇遇ですね。私もESP-WROOM-02について書かせてもらいます!(笑

vvvv Advent Calendar 2016の6日目の記事で6月に開催された田仲ハルさんの舞踏公演で映像を担当したお話をしましたが、次のオファーを頂きまして。ありがたい話でございます。

公演はこちら、
10月30日に開催しました「ひかり蜘蛛」です。
今回はなんと、琴似パトスというかなり本格的なイベントホールです。

この公演では舞台背面の映像の他に床面への投影をvvvvを使って行いました。
vvvvはかなりライトな使い方なので参考にならないかもですがよろしくお願いします。

■背面への投影(メインプロジェクター1台、プロジェクターシャッター装置、ノートPC1台)
舞台背面への投影はパトスのプロジェクターを借りました。
本番2週間前くらいに投影テストもさせてもらっていたので、こちらは何の心配もありませんでした。

舞台では「暗転板付き」というステージを真っ暗にしている間に所定の位置に演者さんが移動してライトがつくと演者さんがパッと舞台に現れるという演出がありますが、プロジェクターの光があるとこの演出ができません。
パトスではプロジェクターの光を遮る自作の装置がありました。こちらは有線のスイッチで操作します。すごい。


ステージ背面へのプロジェクターはこの装置を借りて適宜プロジェクターの光を遮りました。


映像の内容は以下のようになってます。

シーン1:ハルさんが壁に張り付く映像
シーン2:暗転フェードインから蜘蛛の映像+床面への蜘蛛の巣の映像(Photo:yixtape)


シーン3:生首・手の浮遊の映像(Photo:yixtape)

シーン4:ハルさんが分身する映像→蛇柄の人体へのプロジェクション(Photo:yixtape)

シーン5:細胞のような映像(oF+GLSL→vvvv)(Photo:yixtape)

パッチは「IKI」の時よりはかなりシンプルになりました。
安心感があります。



■床面への投影(プロジェクター2台、自作シャッター装置2台、ノートPC1台)
シーン3の平面へ蜘蛛の映像を流すときに床面へは蜘蛛の巣の映像を投影しました。
床面へのプロジェクター2台での投影は初めての事でかなり不安要素がありました。

まず、メインプロジェクターと合わせると3台のプロジェクターを使用することになるのですが、私の使っているノートPCからは2台までしか投影できませんでした。ディスプレイポート×2とHDMIがあるので行けるかなぁと思って試してみたのですが、OS的にかGPU的になのか分からないですが、3台目に接続したプロジェクターが有効にならない状態です。

TripleHead2Go(TripleHead2Go を使う際の注意点)を使う方法も検討してしてみましたが、この機材特有のトラブルも考えられるのでこの方法は回避しました。メインの映像は最低限ノントラブルで出力したいので。
そんな訳で私が昔に使っていたXPのノートPCを用意して映像を投影。投影する映像は静止画だけだったので、PCについているD-SUBのディスプレイポートの他にUSBのディスプレイポートつけてを使いました。

プロジェクターの配置図はこちらになります。図面はJW-CADを使って書いてます。常設ではないプロジェクターを使用する場合は図面を作成することをお勧めします。なんとなーく現場に行ってプロジェクターを設置してというのはリスクがありすぎます。「計画無くして施工無し」ですね。



次にプロジェクターの吊り下げですが、パトスではこんな感じで自作のPC吊り下げ装置を作成してましたので、私も2台分のPC吊り下げ装置を自作しました。


作成した吊り具はこちらになります。特殊な部品はサウンドハウスで買った落下防止用のワイヤーとダボ金具だけで、それ以外はホーマックで購入しています。



機材的にはこの他に自作シャッター装置を作成して設置しました。詳細は次の項目で説明します。

vvvvのパッチはこんな感じです。今回は単純な蜘蛛の巣だけだったのでMultiScreen使いませんでした。




■自作シャッター装置(ESP-WROOM-02+SG90)
自作シャッター装置はESP-WROOM-02を使いました。
Arduinoで作ろうかなぁと思っていたのですが、タイミングよく@AquaLampさんのFacebookでESP-WROOM-02の記事を目にし、これは使えそうということで早速購入。さらにタイミングよく東京から@AquaLampさんと@Junky_Incさんが来るということでOFF会を札幌で開催することに。その際に@AquaLampさんが作った18日目の記事の物を持ってきてくれたのでかなり参考になりました。
ありがとうございます。

ESP-WROOM-02にSG90という5個で2,160円の安いサーボを2個つけて、電源は本体とサーボそれぞれをUSBから取得しています。
最初は本体とサーボで電源を共有していたのですが、動きが安定していなかったので、電源を別々にしたら安定してくれました。
それで完成したのがこちら。ESP-WROOM-02はSoftAP Modeで動かして、WEBサーバを立ち上げた状態にしておきます。
シャッターの操作はスマフォから

http://192.168.4.1/gpio/1 にアクセスするとシャッターが開く
http://192.168.4.1/gpio/0 にアクセスするとシャッターが閉じる

という感じの簡単なつくりになっています。
ソースはこちら。
#include 
#include  
 
const char *ssid = "aterm-155410-g";
const char *password = "1549ca2329993";
// モータードライバーのIN1を接続するピン
const int servoPin = 12;

// サーボモーターのインスタンス
Servo servo;

// Create an instance of the server
// specify the port to listen on as an argument
WiFiServer server(80);
 
void setup() {
    Serial.begin(115200);
    delay(10);
    // デジタル12番ピンをサーボモーター用として設定
    servo.attach(servoPin);

    // prepare GPIO2
    pinMode(2, OUTPUT);
    digitalWrite(2, 0);
  
    // Connect to WiFi network
    Serial.println();
    Serial.println();
    Serial.print("Connecting to ");
    Serial.println(ssid);

    WiFi.begin(ssid, password);
  
    while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
    }
    Serial.println("");
    Serial.println("WiFi connected");
  
    // Start the server
    server.begin();
    Serial.println("Server started");
 
    // Print the IP address
    Serial.println(WiFi.localIP());
}
 
void loop() {
    // Check if a client has connected
    WiFiClient client = server.available();
    if (!client) {
        return;
    }
  
    // Wait until the client sends some data
    Serial.println("new client");
    while(!client.available()){
       delay(1);
    }
  
    // Read the first line of the request
    String req = client.readStringUntil('\r');
    Serial.println(req);
    client.flush();
    // 回転角度
    int angle = 0;

    // Match the request
    int val;
    if (req.indexOf("/gpio/0") != -1) {
        for (angle = 0; angle <= 180; angle++) {
          // サーボモーターを回転
          servo.write(angle);
          // 処理を10ミリ秒停止
          delay(100);
        }
    }
    else if (req.indexOf("/gpio/1") != -1)
    {
        for (angle = 180; angle >= 0; angle--) {
            // サーボモーターを回転
            servo.write(angle);
            // 処理を10ミリ秒停止
            delay(100);
        }
    }    
    else {
        Serial.println("invalid request");
        client.stop();
        return;
    }
 
  
    // Set GPIO2 according to the request
    digitalWrite(2, val);
   
    client.flush();
 
 // Prepare the response
 String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n\r\n\r\nGPIO is now ";
 s += (val)?"high":"low";
 s += "\n";
 
  // Send the response to the client
 client.print(s);
 delay(1);
 Serial.println("Client disonnected");
 
 // The client will actually be disconnected 
 // when the function returns and 'client' object is detroyed
}


装置を動かしている状況の動画はこちらです。

回路図らしきものはこちらです。素人ですみません。fritzingの使い方もまだよくわかってません(汗



本当はすべてvvvvから操作したかったのですが、PCからのESP-WROOM-02へのWiFi接続が安定しないので断念。
PCやスマフォからだとインターネットにつながっていないWiFiとの接続だと10分くらいすると自動的に切断しちゃうんですかね・・・しばらく放っておくとESP-WROOM-02への接続が切れてしまう状況でした。
そんな訳でESP-WROOM-02への接続はかなりシビアなタイミングでスマフォから接続しシャッターを操作してました。

■反省点
・映像の投影は、ほぼ100%のオペレーションが出来ました!
・予算の関係もあり今回は出来ませんでしたが、プロジェクターの吊り具については調整がしやすい装置にしときたいところです。
高所でスパナーやモンキーを使って微調整するのは時間的にも厳しいものがあります。
・今回は舞台監督さんが図面通りにプロジェクターを吊るしてくれて配線し、ある程度投影を調整してくれていたので助かりました。・床面への投影は映像を合わせる調整が難しかったです。舞台からPCまで15m近くあり、2台のプロジェクターからの映像がきっちり合致しているのかがPCの位置からだとよくわからないんですよね。舞台とPCを何往復もしましたが、結局完璧には出来ませんでした。もう少し工夫が必要そうですね。
・自作シャッター装置は奇跡的に完璧。でも今度機会があったら有線の物理スイッチにするかも。
 パトスの有線シャッター装置は安心感が違いました。シーンごとにタイミングを見計らって、
 シャッターを上げ下げするのにスマフォでの操作は無理だなと思いました。まあ、nanokon使えればよいかな。


札幌国際舞踏フェスティバル
2017年2月12日(日)の田仲ハルさんの公演で映像を担当させてもらえそうです。
是非、お越しくださいませ!


札幌国際舞踏フェスティバル2017

舞踏公演
日程:2017年2月11日(土)、12日(日)
会場:生活支援型文化施設 コンカリーニョ
※全4回公演、国内外から8組が出演

公式ホームページ  http://sapporo-butoh.com/
FACEBOOKページ https://www.facebook.com/sapporobutohfestival/
TWITTER https://twitter.com/butoh_north_sap


あー、長くなってしまいました。申し訳ありません。
ご覧いただきありがとうございます。
以上、vvvv Advent Calendar 2016の19日目の記事でした。



0 件のコメント:

コメントを投稿