【明日MV解禁】絶対領域拡張計画「光るスカート」×妄想キャリブレーション
絶対領域拡張計画「光るスカート」シンクロ を作りました。
「光るスカート」が妄想キャリブレーションとコラボレーションする事で
光が歌とシンクロする「光るスカート」に進化しました。
6つのスカートが完璧なシンクロをしながらMVの世界を彩ります!
絶対領域拡張計画「光るスカート」とは
ミニスカートの下(スカートの内側)からニーソックスの上部分にある「絶対領域」に対して光を照らす事で太ももに光があたり「絶対領域」から「こもれび領域」へ進化する新感覚のスカートになります。
スカートのバージョンアップは三回目になります。
・光るスカート α版
・光るスカート β版
・光るスカート シンクロ
いよいよ明日公開です!自分もめっちゃ楽しみです!
どうぞよろしくお願いします。
Simple Maker’s Kitで3Dプリンターやりました。
このSimple Maker’s Kitを使いました。
Simple Maker’s Kit | Printrbot
この動画が参考になりました。
Printrbot Simple(Maker's and Metal) 操作説明 - YouTube
Cura
https://software.ultimaker.com/
Cura日本語化
http://www.thingiverse.com/thing:265492
3Dプリンターでプロペラ部分を作ってみたのでモーターにつけてまわしてみた。
天野清之 テストルーム
ボタンでLチカ
電流は、プラスからマイナスに流れます。
5Vから0Vに向かって流れるので、VCCからGNDに電流を流すだけども
抵抗入れないで直結すると無限大に電流が流れるのでarduinoとか再起動しまくります。
オームの法則
V(電圧) =I(電流)×R(抵抗)
→R = V/Iとかになる。
5Vから抵抗で制御してボタンのオンオフでLEDを制御しています。
#define LED 13 #define BUTTON 7 int val = 0; void setup(){ Serial.begin(9600); pinMode(LED,OUTPUT); pinMode(BUTTON,INPUT); } void loop(){ val = digitalRead(BUTTON); Serial.println(val); if(val != HIGH){ digitalWrite(LED,HIGH); } else{ digitalWrite(LED,LOW); } }
天野清之 テストルーム
%をうまく使う方法
例えば、%の計算をif文に使うと結構使えます。
%を使えば指定の数字の値の時の自乗はゼロになります。
(変化する値) % (ゼロにしたい値)
1%10=1
2%10=2
10%10=0
20%10=0
12%12=0
13%12=1
24%12=0
みたいな感じです。
ProcessingでOSCを使おう!
OSCとは、コンピュータ音楽のための通信プロトコルです。
OpenSound Control - Wikipedia
利点としては、双方向通信ができる。パターンマッチングができる。
帯域幅の制限がなく、多くのソフトウェアに実装されている事にあると思う。
通信機能には7階層の構造があります。
【階層】
第七層:物理層、電気信号の変換
第六層:データリンク層 通信機器間の直接的な信号の受け渡し
第五層:ネットワーク層 ネットワークにおいて通信経路の選択
第四層:トランスポート層 ネットワークにおける通信管理
第三層:セッション層 通信プログラム間の通信の開始から終了までの手順
第二層:プレゼンテーション層 データの表現方法
第一層:アプリケーション層 ユーザーが操作するインターフェイス
OSCは、7から5層に入ります。
【IPとポート番号について】
IPとは、インターネットやイントラネットなどのIPネットワークに接続されたコンピュータ1台1台に割り振られた識別番号(127.0.0.1自身のアドレス)
ポート番号とは
複数の相手と同時に接続を行うためにIPアドレスの下に設けられたサブアドレス
(0から65535)まで使用可能。
【OSCメッセージの仕組み】
URIと同様に/で区切ることで階層構造を表現しています。
/1/fader1 みたいな感じ。
processingだと、theOscMessage.checkAddrPatternで受け取れます。
では、メッセージを受け取って適当に処理されるプログラムを書いてみました。
import oscP5.*; import netP5.*; // VARIABLE ////////////////////////////////////////////// float xA = -100; float yA; float csXY = 40; OscP5 oscP5; NetAddress myBroadcastLocation; // SETUP ////////////////////////////////////////////// void setup() { size(320, 240); background(0); smooth(); //osc oscP5 = new OscP5(this,12000); //myBroadcastLocation = new NetAddress("127,0,0,1",32000); } // DRAW ////////////////////////////////////////////// void draw() { noStroke(); fill(0, 30); rect(0, 0, width, height); plus(); } // PRIVATE ////////////////////////////////////////////// void plus() { yA = sq(xA)/60; noStroke(); fill(255, 255, 255, 80); ellipse(xA+width/2,yA,csXY,csXY); xA++; //println(yA); if(xA > 200){ xA = -200; } } void oscEvent(OscMessage theOscMessage) { println("### received an osc message with addrpattern "+theOscMessage.addrPattern()+" and typetag "+theOscMessage.typetag()); theOscMessage.print(); if(theOscMessage.checkAddrPattern("/1/fader1") == true){ println("true"); float value = theOscMessage.get(0).floatValue(); println(value); csXY = 100*value; }else{ println("false"); } } ||> 今回は、送信側はiphoneで済ませています。 500円しますが適度でいいです。 [https://itunes.apple.com/jp/app/touchosc/id288120394?mt=8:embed]
エンテックのDMXUSB PROを使ってみました。
エンテックのDMXUSB PRO
ENTTEC(エンテック) DMX USB PRO DMXコントローラー・インターフェース 激安価格販売:アカリセンター
DMXUSBを使えば照明をコントロールしたり、レーザーをコントロールしたりできるので
ちょっといじってみました。
こちらの照明は、設定をA001にすることでDMXのコントロールができるようになります。
import dmxP512.*; import processing.serial.*; DmxP512 dmxOutput; boolean LANBOX=false; String LANBOX_IP="192.168.1.77"; boolean DMXPRO=true; void setup() { size(245, 245, JAVA2D); dmxOutput=new DmxP512(this,universeSize,false); if(LANBOX){ dmxOutput.setupLanbox(LANBOX_IP); } if(DMXPRO){ dmxOutput.setupDmxPro("/dev/tty.usbserial-EN150882",115000); } } void draw() { background(0); int[] values = new int[5]; if(keyPressed == true){ background(255); values[0] = 255; values[1] = 255; values[2] = 255; values[3] = 255; values[4] = 0; dmxOutput.set(5,values); println(values); } }
ProcessingでAndroidのBluetooth通信テスト
Android>Sketch Permissionsから以下をチェック
スクリプトはこんな感じで書いて書き出し。
import android.bluetooth.BluetoothAdapter; BluetoothAdapter bluetooth = BluetoothAdapter.getDefaultAdapter(); void setup(){ //orientation(LANDSCAPE); } void draw(){ if(bluetooth.isEnabled()){ background(255,0,0); } else { background(0,0,0); } }
通信が出来たらAndroidの画面が赤くなるのでそれで成功です。
Linino Oneを購入してつなげてみました!
wifi接続してnode.jsなどを使う為に、Linino Oneを購入しました。
購入先はこちら
Linino ONE: マイコン関連 秋月電子通商 電子部品 ネット通販
接続します。
まず,
linino oneをmicro usbでPCと接続。
ターミナルを起動します。
以下でusbと接続しているlinenoの名前を確認!
ls /dev/tty.usb*
linino oneに接続されます。
$ screen /dev/tty.usb******** 115200
wifiの設定にlinino oneが表示されるので
今度はブラウザで以下にアクセス
http://192.168.240.1
ログインを求められるので説明書に記載されている
パスワードを入力します。
ブラウザの設定画面からconfigureのボタンを押して設定変更
ここの赤丸を入れているwifiを任意のものにして
wifiのパスワードを入力します。
configure&restartボタンを押せば設定変更が面に切り替わるので
しばらく待ちましょう!
完了したらターミナルに戻って
$ screen /dev/tty.usb******** 115200
lininoに接続
ifconfig
でipアドレスが付与されているのかを確認して問題がなければ
ping google.com
これで接続されれば成功!
ちなみに、lininoのwifiリセットボタンは、
押してから5分くらいでリセットされるっぽいです。
arduino leonardoでシリアル通信できない時の解決策
arduino unoで動くけども、leonardoで動かない!!!!
って事があったのですが
解決方法は、シリアルピンがleonardoは2つあるので
SerialをすべてSerial1に変更すればよいという事でした。
以下参考のソースになります。
int LED = 13; char inByte = 0; void setup() { Serial1.begin(9600); // while (!Serial) { // ; // シリアルポートが開くのを待つ。 //Leonardoでだけ必要らしいが使わなかった。 // } pinMode(13,OUTPUT); } void loop() { // digitalWrite(LED,HIGH); if(Serial1.available() > 0) { inByte = Serial1.read(); if(inByte >= 100){ digitalWrite(LED,HIGH); } else{ digitalWrite(LED,LOW); } Serial1.println(inByte, DEC); delay(40); } }