塚本・寺田研究室新聞がきました。

私の所属している研究室である

神戸大学塚本・寺田研究室の研究室新聞が無事出来上がりました。

2016年春号

2016年春号

 

実は私、この研究室新聞の編集・デザインを担当している。

今回背景に使った色は3種類

黄色:Jaune de Provence(C:0, M:26, Y:96, K:0)

灰色:Gris d’argent(C:33, M:25, Y:27, K:0)

紺色:Bleu nuit(C:99, M:86, Y:51, K:20)

この黄色はゴッホの「ひまわり」の黄色の色と言われているそうです。

 

ついでに文字の色もBleu nuitです。

 

背景のデザインは、ファッションショーのランウェイから着想していて

表面、裏面を別々で見ると客席側から見た構図になるようにしていて(真ん中の灰色部分がランウェイだと思えば見える。)

表面、裏面を横に並べて見るとステージ側から見た構図見えるような仕組みを考えてみた(今度は灰色部分が客席)

 

一見適当にやってるように見えますが、意味をもたせたデザインです。

といってもいろいろ見方があるので、このへんはなんでも好い。

 

とにかく多くの人々にみていただけるとええなー。

 

 

ArduinoとOpenframeworksのシリアル通信。

arduinoでセンサのデータを取得

シリアル通信でOpenframeworksにデータ送信して、ビジュアライズ
という検索すればめちゃくちゃ出てくるあれ。

Arduinoから得られるセンサデータは0~1023の10bitで表現されるけど
シリアル通信はけったいなことに1byteずつしか送られへん。

センサ値を÷4して、0~255の8bitにしたら何ら問題あらへんのやけど
分解能は高いほうがええなと特に理由なく思ったから、2byteに分けて送る。

参考にしたサイトはここ。
http://d.hatena.ne.jp/kougaku-navi/20141008/p1

上の参考サイトでは、
2byteのデータを2bit, 7bit, 7bitに分けて2bitのところにheaderを入れてる。
自分のやりたいことは10bitのデータを送るだけやから2bitは無視して(どうせ00)、おまけにfooterをつけて4byteでデータを送る。

参考サイト通りに
headerは128にして、センサデータの上位7bit(0*******)2、下位7bit(0*******)2、フッターに129を使って
この順番で送る。

<Arduinoのコード>
#define SENSORPIN 0
void setup() {
Serial.begin(9600);
pinMode(SENSORPIN, OUTPUT);
}

void loop() {
int sensorData = analogRead(SENSORPIN);

byte low = sensorData & 127;
byte high = (sensorData >> 7) & 127;
byte header = 128;
byte footer = 129;

Serial.write(header);
Serial.write(high);
Serial.write(low);
Serial.write(footer);
}

sensorData & 127とは2進数でAND計算することらしい。
例えばsensorData = 900とすると

900 = 11|10000100
+  127 = 00|01111111
00|00000100となって1byteなので、low=(00000100)2となる。

sensorData >> 7 はsensorDataを7bit右シフトするということ。
900 = 11|10000100 → 00|00000111となる。
これを127とANDをとるから、high=(00000111)2となる。

127でANDをとって、7bitに分割してる。

<OF側のコード>
(シリアル通信のところだけ)

void ofApp::update(){
//シリアル通信で受信
//4バイトのデータ(head, data_high, data_low, foot)が来たら読み込み開始
if (serial.available() >= 4) {
for (int i = 0; i < 4; i++) {
receiveData[i] = serial.readByte();
}

//headerとfooterがちゃんと順番通りならデータを復元
if (receiveData[0] == 128 & receiveData[3] == 129) {
sensorData = (receiveData[1] << 7) + receiveData[2];//上位ビットを7ビット左シフトさせて下位ビットと連結
cout << “データ来ました” << endl;
cout << receiveData[0] << endl;
cout << receiveData[3] << endl;
cout << sensorData << endl;
}
}
}

receiveData[0]:header
receiveData[1]:上位bit
receiveData[2]:下位bit
receiveData[3]:footer
とはいる。
データの復元は
receiveData[1] << 7で上位bitを左シフトさせてからreceiveData[2]とORをとってる。
high = (00000111) →(000001110000000)2
(0000011|10000000)2 + (00000100)2 = (00000011|10000100)2
と900にもどる。

bitやbyteでやり取りできるようになるとできることの幅が広がって好い
と特に理由なく思いましたわ。

Webページ開設。

GWも終盤に差し掛かった5月6日金曜日。

自分のwebページを開設しました。

http://ryoizu.com

 

それに加えて、ついに私もブログをちまちまやっていこうと決意。

(ちゃんと続くかわからんが。)

 

主に、研究のためのTipsとして、また趣味でもある服飾関連のことなど

ゆるくやっていくつもりです。

 

「誰が興味あるんやっ!!」て感じやけど、一人でも少しでもこのページを踏んでくれることを願ってやっていこう。