Processingによるプログラミング

//色の変化の総数
int maxColor=7;

//色の変化(RGB)
int[][] col = {
  {200, 200, 0}, 
  {200, 200, 20}, 
  {250, 250, 200}, 
  {255, 255, 230}, 
  {200, 20, 20}, 
  {200, 200, 0}, 
  {50, 50, 200}, 
};

//各変化のスピード
float[] speed={
  0.05, 
  0.05, 
  0.05, 
  0.05, 
  0.05, 
  0.05, 
  0.05, 
};

//クリックで進むカウンタ変数
int count;


void setup() {
  size(600, 600);
  noStroke();  
  background(0);
}

void draw() {
  fill(col[count][0], col[count][1], col[count][2], 255*speed[count]);
  rect(0, 0, 600, 600);
}

void mousePressed() {
  count++;
  if (count>=maxColor) {
    count=0;
  }
}




DMX基板のはんだづけ

完成イメージ


部品はこれだけです。

3つの部品のうち、以下の順番(部品の背の低い順)ではんだづけします。

1. 抵抗

2. IC

3. コネクタ

裏側ではんだづけしたところです。

 


 

マイクロビットに、ネジとスペーサをつけます。

組み立てた基板を取り付けて、ナットで固定します。

DMX基板ができるまで、色を作る練習

DMXの基板が組み立て終わるまで、他のメンバーは、色を変えるプログラムをおこなってください。DMXの基板の代わりに、画面の色を変えるようにします。

 


1. マイクロビット2台を準備する

・1台目(電池ボックス付き):無線で送信する

・2台目(電池ボックスなし):無線で受信してシリアル通信に変換する

無線のグループの番号を適宜変更してください。

 

2. 2台目のマイクロビットとPCをUSBでつなぐ

 

3. Processingで以下のプログラムを実行する

https://github.com/mathrax-s/dmx_microbit/archive/master.zip


 

DMXとは

DMX(ディーエムエックス)は、「DMX512-A」という名前の通信規格です。

この通信のメリットは主なものは以下です。

  • 1本の線で、最大512台までコントロールできること
  • 0~255までの信号を扱えること
  • ノイズに強いこと

 

これらのメリットは、デメリットを知らないと貴重さがわかりませんので、DMX以外のものを見てみます。

 

DMXに対応する機器は、扱いやすさからたくさん市販されています。

サウンドハウス

 

ELATION DP-415という、AC100Vの電気を調光する機材は、市販のものを使い、コントローラを自作しました。今回はこのコントローラ部分をmicro:bitで作ります。

 

下のは、これを無線化したやつ。micro:bitは、簡単に無線にできますね。

 

これを実際に使ったイベントです。

炎の噴射装置は、酸京クラウドさんのDMX装置です。それを無線コントロールしています。


 

おまけ

似たような通信規格に、「MIDI(ミディ)」というものがあります。

これは電子楽器に使われる通信で、楽器の音階や音色、演奏のタイミングや強弱をコントロールできます。

これを舞台照明にも使えるようにした機材があります。

ただし、0~127までの信号しか扱えないので、照明操作をするとカクカクしてしまうことがあります。

でも、打ち込み音楽ができれば、音に合わせた照明演出ができますし、楽器のMIDIキーボードなどから照明をコントロールすることもできます。

MIDI楽器を持っている人はこちらがオススメです。

ELATION ( イレーション ) / CYBER PAK

DMX・MIDI両対応

https://www.soundhouse.co.jp/products/detail/item/87771/

 

音を出す

マイクロビットのセンサによって、パソコンから音を出します。

ちょっとややこしくなりますが、サウンドクオリティを考えて、音を鳴らす部分には「SonicPi」を使います。

SonicPiがシリアル通信できればよかったのですが、それができないので、Processingと組み合わせて、2段階で変換します。

マイクロビット > Processing > SonicPi

 

マイクロビットとProcessingは「シリアル通信」でやりとりし、

ProcessingとSonicPiは「OpenSoundControl」でやりとりします。


Processingのサンプルをダウンロードする

Githubにあるサンプルをダウンロードし「すべて展開」してください。

 

※ライブラリ「oscP5」が必要です。大学のPCにはインストール済みです。

 


SonicPi側のプログラム

マイクロビットに電池ボックスをつける

電池ボックスをとりつけること自体は簡単です。

しかし、このままでは少し邪魔になってしまい、手に持ったりするのに不便です。そこで、電池ボックスを固定する方法を考えました。

マイクロビットの裏面の中央あたりは、部品がなく基板パターンのみになっています。ここに厚みのある両面テープを貼ります。

写真のように少しだけで十分です。このとき、マイクロビットの部品に重ならないように両面テープを貼ってください。

両面テープは3Mのこちらがおすすめです。

https://goo.gl/YtkzvG

電池ボックスを両面テープで固定します。

電池ボックスにはスイッチがついていません。

使わないときは、電池を少し浮かして電源オフにします。

無線の使い方

マイクロビットの「無線」は、マイクロビット同士に限り、無線通信ができます。

本日の流れ

  1. 準備するもの
  2. 無線グループ分け
  3. 受信側のマイクロビット
  4. 送信側のマイクロビット
  5. つなぎかた
  6. 動作確認
  7. 発展〜3軸加速度を取得する〜

 


1. 準備するもの

  • マイクロビット   2つ
  • USBケーブル   2つ
  • 電池ボックス   1つ
  • 単3電池     2本

2. 無線グループ分け

無線のグループ番号を決めたいので、グループ分けします。

大きく5つに分けて、10番代、20番代、30番代、40番代、50番代とします。

10番代のグループは、さらにグループ内で個人個人が個別の番号になるように、各グループ内で話し合って決めてください。

例)10番代のグループは、
1人目:10、2人目:11、3人目:12、4人目:13、5人目:14…


3. 受信側のマイクロビット

まず「受信側」を作ります。

無線のグループは、先ほど決めた、自分だけのグループ番号にしてください。

プログラムができたら書き込みを行ってください。


 

4. 送信側のマイクロビット

無線のグループは、受信側と同じ、自分だけのグループ番号にしてください。

プログラムができたら書き込みを行ってください。


 

5. つなぎかた

受信側のマイクロビット

USBケーブルでパソコンとつないでおきます。

送信側のマイクロビット

乾電池で動作するように、電池ボックスと電池を取り付けます。

電池が消耗するので、使わないときは、電池を浮かして電源オフにしておきます。


6. 動作の確認

「Arduino」のシリアルプロッタで、グラフ化して表示してみましょう。


 

7. 発展〜3軸加速度を取得する〜

送信側マイクロビットだけ、プログラミングを書き換えます。

加速度の計測範囲を「8G」まで増やしてみました。

これを、Arduinoのシリアルプロッタで確認したところです。