Arduino日記
長嶋 洋一
(一部 GAINER日記かも)
(一部 AKI-H8日記かも)
(一部 Propeller日記かも)
2008年5月30日(金)
2008年5月29日(木)の 音楽情報科学研究会 でインスタレーション事例と Propeller について発表したところ、 「プラットフォームとして最近はArduinoが有名なのでは」とのコメントをもらった。 これは知らなかったが、翌日、京都精華大の平野先生から、 ここ だ、とのメイルが届いて、さっそくサイトに行ってみた。 どうやらGAINERと同じような1チップCPUを載せた、スタンドアロンのボードらしい。 さっそく業者に、いくつか発注してみた。 注文したのは、の3つである。 写真を見ると、なんともイタリア的である。 さてさて、どんなものだろうか。
- AR001 Arduino Diecimila
- AR002 LiliPad Arduino
- AR003 Arduino XBEE Shield
2008年6月3日(火)
夕方になって、注文していたArduinoが届いた。
今どきのサイズであるが、シングルインラインのソケットの角度が微妙にズレていて、 いかにもイタリアという感じである。 基板の裏面には、わざわざシルクでイタリアの地図が印刷されているのも、 いかにもイタリアという感じである。
ツールはWindows版とMac版とLinux版と、全てあるらしい。 とりあえず、サイトからMac OSXのツールをダウンロードするが、 56MBほどのサイズのダウンロードに数分もかかった。 よほど、サイトのネットワークが細いらしいのも、 いかにもイタリアという感じである。
GAINERを使っていたため、既に同じシリアルドライバは入っていたので、 ツールをダウンして解凍して、適当にシリアルポートを選んでいたらハードウェアを認識して、 サンプルの「ボード上のLEDを点滅させる」というプログラムが走るまでに、 5分もかからなかった。さすがである。
明日はちょうど、講義のない水曜日なので、ちょっとじっくり、遊んでみよう。 Propellerのライバルなのかどうか、これは楽しみである。
2008年6月4日(水)
考えてみれば、Propellerは+3.3V電源だけれど、Arduinoの電源はUSBから取るので+5Vらしい、 というぐらい、まったくArduinoの詳細について知らないまま、回路図も見ずに動かしていたことに気付いた。 それから、「Arduino」って、なんて発音するんだろう。 Propellerを「ぷ」としたのと同様に、「あ」でArduinoを辞書登録してしまったので、 まったく脳内で発音したことのない名称である。「アルドゥイノ」???発注するのに調べたサイトで、MAKEという雑誌の4号に、GAINERの小林さんがArduinoについての解説記事を書いている、 とあったので、たまたま先週届いた、MAKEのvol.2からvol.4までをまず、ザッと眺めることにした。
MAKEを読もうとしていたら、注文していたパーツケースが届いたので、 一念発起して、これまでの3倍の分量に研究室のパーツ棚を増設した。 あわせて多量のゴミが出て、4時間ほどの大仕事となってしまったが、 いよいよ製作三昧の準備が整って来た。
そしてMAKEをナナメ読みしてみると、なんと、vol.3に、Propellerの記事があった。 開発者の熱い気持ちが伝わってきたが、やはり、Propellerに惚れたのは間違いではなかった。 とりあえず、Arduinoをサッサと片付けて、Propellerに戻ることにしたいものだ。
やはりここはちょっときちんと調べてみよう、と、Arduinoのサイトをチェック。 ここ を眺めてみると、やはり、学生あたりが色々とメディアアートの作品を作るプラットフォームとして、 活用されているようである。
また、 ここ を見ると、ちゃんとMIDI outとMIDI inのサンプルがあるようである。 これはさっそく、試してみよう。 MIDIを出したり受けたりというのは、まぁシリアル通信の基本だけれど、 そこそこのトラフィックでもデータを落とさずに、きちんと「受信→バッファリング→解釈→バッファリング→送信」するかどうか、 これは基本的なテストとなる。
ここ から、ArduinoのCPUはアトメルのAVRであることがまず、分かった。 そして、 回路図 を見たことで、グッとArduinoが身近になった。
電源は+5V、USBでプログラムをダウンロードするシリアルのポートは1つのようで、 その後は共用でアプリにも使うようである。 A/D入力のアナログポートは6本とちょっと少ないが、まぁ4051を外付けすればいくらでも増設できるか。 要するに、PICとかAKI-H8に比べてのメリットは、オープンソースでProcessingと似せたIDEにある、 ということのようである。 Propellerのspinを見た後だと、普通のCなので、別に何とも感じなくなっているのが不思議である。
一緒に買ってみた、 Xbee Shield が面白そうである。 これがArduinoとやりとりする部分をハックすれば、AKI-H8やPropellerでもXbeeが使えるだろう。 ちょうど、ゼミ学生の作品のためにRFIDを使っていたところだが、もっと面白いことが出来そうだ。
まず最初に、 ここ にある回路図に従って、Propeller Demo Boardの上にあるブレッドボード上に接続した。
しかし、このシリアル出力はたぶんTTLレベルなので、厳密にはカレントループのMIDI規約に違反している(^_^;)。 とりあえず動くには、まぁそれでもいいのかなぁ。 ソースは以下であり、一発で、MIDIが定期的に出力されて、Maxで確認できた。
char note = 0; // The MIDI note value to be played int ledPin = 13; // LED connected to digital pin 13 void setup() // run once, when the sketch starts { Serial.begin(31250); pinMode(ledPin, OUTPUT); // sets the digital pin as output } void loop() // run over and over again { for (note = 30; note < 90; note ++) { noteOn(0x90, note, 100); digitalWrite(ledPin, HIGH); // sets the LED on delay(300); noteOn(0x90, note, 0); digitalWrite(ledPin, LOW); // sets the LED off delay(1000); } } void noteOn(char cmd, char data1, char data2) { Serial.print(cmd, BYTE); Serial.print(data1, BYTE); Serial.print(data2, BYTE); }
とりあえず、ソフトタイマーで周期的にMIDIが出たので、 ここ を参考にして、次には、アナログ入力に0-5Vの電圧を連続的に与えて、 MIDIコントロールチェンジで送れるかを試した。
+5VとGNDの間に10KΩのボリュームを入れて、変化する電圧をアナログ入力の0番(J2の1ピン)に繋いで、 ソフトは以下のようなものにしてみた。
int old_data = 0; int new_data = 0; void setup() // run once, when the sketch starts { Serial.begin(31250); } void loop() // run over and over again { new_data = analogRead(0) / 8; if ( new_data != old_data ) { midiOut(0xb0, 0, new_data); old_data = new_data; } } void midiOut(char cmd, char data1, char data2) { Serial.print(cmd, BYTE); Serial.print(data1, BYTE); Serial.print(data2, BYTE); }すると、ボリュームをかなりグルグルと回転させても、綺麗にMIDIデータが送られて、 受けるMaxのスライダーがスムースに動いた。 とりあえず、これでMIDI送信の機能については、単独では合格、としよう。
そこで余勢をかって、MIDI受信を調べてみることにした。 ここ には、なかなかファンキーな回路図があった。
しかし、ここはPropellerでも使った以下の回路として実験することにした。
しかし、Propellerではプログラムダウンロードのためのシリアルポートと、MIDIに使うシリアルポートは別である。 AKI-H8でも、やはり別である。 ところがArduinoではシリアルポートが1ペアしかないので、このサイトにも
IMPORTANT: your arduino might not start if it receives data directly after a reset, because the bootloader thinks you want to uplad a new progam. you might need to unplug the midi-hardware until the board is running your program. that is when that statusLed turns on.などと書いてある。 確かに、プログラムをダウンロードしたポートをそのままシステムのシリアル受信に使う・・・というのは、 AKI-H8でやろうとしてトラブった遠い記憶がある。 とりあえず、まずは以下のプログラムでやってみたところ、ウンともスンとも言わなかった。
int old_data = 0; int new_data = 0; byte incomingByte; byte status; byte note; byte velocity; int ledPin = 13; // LED connected to digital pin 13 void setup() // run once, when the sketch starts { Serial.begin(31250); pinMode(ledPin, OUTPUT); // sets the digital pin as output } void loop() // run over and over again { if (Serial.available() > 0) { incomingByte = Serial.read(); // Serial.print(incomingByte, BYTE); digitalWrite(ledPin, HIGH); // sets the LED on delay(500); // waits for a second digitalWrite(ledPin, LOW); // sets the LED off } /* new_data = analogRead(0) / 8; if ( new_data != old_data ) { midiOut(0xb0, 0, new_data); old_data = new_data; } */ } void midiOut(char cmd, char data1, char data2) { Serial.print(cmd, BYTE); Serial.print(data1, BYTE); Serial.print(data2, BYTE); }やっぱり、MIDI送信との共存の以前に、まずMIDI受信で手こずりそうである。 ここで時間切れとなったので、また週末にでもトライしてみよう。
2008年6月5日(木)
午前に大学院の講義、午後に委員会が3つあって時間が取れなかったが、合間に昨日のプログラムをちょっとだけ改造した。 以下は、6チャンネルのA/D入力をMIDI出力するという、もっとも定番のMIDIセンサである。 データは敢えて解像度を半分にして、チャタリングを抑止している。 このデータをFLASHメモリに焼いたArduinoボードは、そのまま汎用のMIDIセンサとして使うことにしよう。 プログラムは以下である。int new_data[6] = {0,0,0,0,0,0}; int old_data[6] = {0,0,0,0,0,0}; void setup() // run once, when the sketch starts { Serial.begin(31250); } void loop() // run over and over again { for(int i=0;i<6;i++){ new_data[i] = analogRead(i) / 16; if ( new_data[i] != old_data[i] ) { midiOut(0xb0, i, new_data[i]*2); old_data[i] = new_data[i]; } } } void midiOut(char cmd, char data1, char data2) { Serial.print(cmd, BYTE); Serial.print(data1, BYTE); Serial.print(data2, BYTE); }2008年6月6日(金)
なんとなく「今日は製作の日」と思い立って、いろいろやってみた。
まずは、昨日プログラミングを完了したArduinoのMIDIセンサである。 さすがに、MIDI規約に違反した簡易回路ではイマイチなので、 定番の74HC05を用いた以下の回路によるMIDI出力とした。 これで、MIDI規約の通りに、MIDIケーブルを15メートルまでは延ばせるだろう。
あれこれやって、とりあえず以下のように完成した。 6つのアナログ入力の[0]にはボリュームを、残りの[1]-[5]には GNDに繋いだ100KΩを繋いであり、ここを差し換えるだけで色々なセンサに使える。
次には、このところ懸案だった、AKI-H8の書き込み機の小型軽量化を目指した。 以下が、これまでの書き込み機である。 スイッチング電源の上に載せていたが、Sketch03に持参するとなれば、 もっと軽くしたい。 だいいち、最初はDSUBの25ピンでWindows95に繋いでいたのが、 次にVirtualPC(Windows98)でMacのシリアル(8ピン丸型)に繋いで、 その後はWindowsXPで9ピンのDSUBへ、とコネクタ付近がパラに鈴なりになっている。 これを何とかしたい。
・・・ということであれこれやって、ついでに10枚ほどAKI-H8を量産して、 無事に午後のハンダ付けも終了した。 まだまだAKI-H8は捨てたもんじゃない、現役だ。
だいぶ環境がスッキリしてきたので、いよいよ宿題のシステムを2つほど、製作することにしよう。 ここはリハビリを兼ねてAKI-H8でやるか、あるいはPropellerで作ってみるか、 それともArduinoでやってみるか・・・なかなか悩ましい。(^_^;)
2008年6月7日(土)
昨日の実験で、MIDI受信サンプルのプログラムが不調だったので、 まずはこれを確認することにした。
せっかくなのでWindowsマシンにもArduinoの開発環境を入れようとしてみたところ、 何故か起動しない。 Java環境も入れてみたが、駄目であった。 駄目ならMacでいいので削除したが、原因は不明である。 インテルでなくトランスメタのCPUであるから・・・とは思えないが、 まぁWindowsでは不思議なことは茶飯事なので、気にしない。
昨日の実験では、トグルLEDかMIDI送信のプログラムと混在させていたので、 今回は これ を完全にそのまま、ブレッドボードに再現してみた。 プログラムは以下である。
/* Midi In Basic 0.2 // kuki 8.2007 * * ----------------- * listen for midi serial data, and light leds for individual notes IMPORTANT: your arduino might not start if it receives data directly after a reset, because the bootloader thinks you want to uplad a new progam. you might need to unplug the midi-hardware until the board is running your program. that is when that statusLed turns on. ################################################ SOMETHING ABOUT MIDI MESSAGES midi messages start with one status byte followed by 1 _or_ 2 data bytes, depending on the command example midi message: 144-36-100 the status byte "144" tells us what to do. "144" means "note on". in this case the second bytes tells us which note to play (36=middle C) the third byte is the velocity for that note (that is how powerful the note was struck= 100) example midi message: 128-36 this message is a "note off" message (status byte = 128). it is followed by the note (data byte = 36) since "note off" messages don't need a velocity value (it's just OFF) there will be no third byte in this case NOTE: some midi keyboards will never send a "note off" message, but rather a "note on with zero velocity" do a web search for midi messages to learn more about aftertouch, poly-pressure, midi time code, midi clock and more interesting things. ################################################ HARDWARE NOTE: The Midi Socket is connected to arduino RX through an opto-isolator to invert the midi signal and seperate the circuits of individual instruments. connect 8 leds to pin2-pin9 on your arduino. ################################################ */ //variables setup byte incomingByte; byte note; byte velocity; int statusLed = 13; // select the pin for the LED int action=2; //0 =note off ; 1=note on ; 2= nada //setup: declaring iputs and outputs and begin serial void setup() { pinMode(statusLed,OUTPUT); // declare the LED's pin as output pinMode(2,OUTPUT); pinMode(3,OUTPUT); pinMode(4,OUTPUT); pinMode(5,OUTPUT); pinMode(6,OUTPUT); pinMode(7,OUTPUT); pinMode(8,OUTPUT); pinMode(9,OUTPUT); //start serial with midi baudrate 31250 or 38400 for debugging Serial.begin(31250); digitalWrite(statusLed,HIGH); } //loop: wait for serial data, and interpret the message void loop () { if (Serial.available() > 0) { // read the incoming byte: incomingByte = Serial.read(); // wait for as status-byte, channel 1, note on or off if (incomingByte== 144){ // note on message starting starting action=1; }else if (incomingByte== 128){ // note off message starting action=0; }else if (incomingByte== 208){ // aftertouch message starting //not implemented yet }else if (incomingByte== 160){ // polypressure message starting //not implemented yet }else if ( (action==0)&&(note==0) ){ // if we received a "note off", we wait for which note (databyte) note=incomingByte; playNote(note, 0); note=0; velocity=0; action=2; }else if ( (action==1)&&(note==0) ){ // if we received a "note on", we wait for the note (databyte) note=incomingByte; }else if ( (action==1)&&(note!=0) ){ // ...and then the velocity velocity=incomingByte; playNote(note, velocity); note=0; velocity=0; action=0; }else{ //nada } } } void blink(){ digitalWrite(statusLed, HIGH); delay(100); digitalWrite(statusLed, LOW); delay(100); } void playNote(byte note, byte velocity){ int value=LOW; if (velocity >10){ value=HIGH; }else{ value=LOW; } //since we don't want to "play" all notes we wait for a note between 36 & 44 if(note>=36 && note<44){ byte myPin=note-34; // to get a pinnumber between 2 and 9 digitalWrite(myPin, value); } }これを走らせてみると、注意書きにあった「起動してLEDが点灯した後にMIDIからのシリアル入力に差し換える」 という方法により、Max/MSPからのMIDIを受信してLEDが点滅した。 ただし、「受け落とし」がとても頻繁に起きた。 これは経験的に言えば「使えない」レベルである。 シリアルポートへのMIDI入力に対して、おそらく割り込みによるバッファリングを行っていないからだろうか。 このような受け損ねがあっては、まず使えたものではない、と確認できた。 写真にあるように、makenoteによってON-0FFを1000msecのdurationで送っているのもかかわらず、 OFFで消える筈のLEDが累々と点灯したままであった。
要するに、Arduinoは「センサ→MIDI」には使えるが、MIDIを受けて何か行う、という用途には使えない。 PropellerのCogでソフトウェア受信を行うか、あるいはAKI-H8で割り込みによってキチンと受けるか、 という事である。
さて、ここで作業テーブルの上を整理しなおして、新しい製作に取りかかることにした。 M2の鈴木絢の修了制作の一端となる、あるインスタレーションのインターフェースの製作が宿題であった。 これは完成すれば、おそらくセンセーショナルな作品となる予感がある。 とりあえずザッと見積ってみたが、74HC574が50個、74HC245が2個、74HC138が8個ほど必要である、 と判明した。
これは、またまた例によって長いハンダ付けの道のりである。 かつて、黒幕としてインターフェースを作ってあげることで完成した、 学生のインスタレーション作品がいくつも思い浮かんだ。 メディアアートにおいて、「数」はある種の主張であり、多数の同じモノが並ぶことは重要である。 そのためには、AKI-H8に多数のポートを増設することがどうしても必要になる。
スイッチ 64個
LED 240個
LED 123個
発光オブジェ/センサ 32個
プラグ/ジャック 256個
リレー 100個
スイッチ 384個
LED 192個Max/MSPからMIDIを受けて、かなり厳しい細かいタイミングで100個のステッピングモータを個別に制御するので、 Arduinoではまったく無理。経験的にはGAINERでもほぼ無理である。 センサ情報を8系統ほどMax/MSPに送る必要もあり、Propellerを使ってみたい気もあるものの、 ここは慣れたAKI-H8を使うことにした。 とりあえず、基板は全4枚となりそうである。574のソケットだけ仮に取り付けてみたところで、 今日はおしまい。 これから、長い長いハンダ付けの日々が始まる。(^_^)
2008年6月8日(日)
↓
上の写真が下の写真になるのに30分。 いよいよ、鈴木絢マシンの製作がスタートした。 ここで、「この手の作品では学生に製作の下請け(配線用線材の量産作業)をしてもらいますので 近日中に1106に来るアポを入れて下さい」と絢にメイル。 これまでも、回路の配線に手を出せない学生たちは、 配線のためのカラーケーブルの線材(両端をハンダメッキ)とか、LEDに延ばす配線などについては、 たくさん量産して、少しは手伝った、という手応えを体験させてきた。 ここ とか ここ とか ここ とか ここ とか ここ とか ここ とか ここ とか ここ とか ここ とかに、その片鱗があるが、眺めてみると、いやー、懐かしい(^_^)。
とりあえずまず1枚、ソケットのピンと電源回り(パスコン)をハンダ付けして、 ICを挿してみると、まだまだ配線はこれからなのに、ちょっといいカンジ。(^_^)
そして、とりあえず3枚の同じ基板と、マスターとなる基板(+5V6Aの電源モジュールも搭載)に、 およそのICソケットが並んだ。
これだけ並んでいるとスッキリしているが、このICの間に、ICあたり8個ずつのパワートランジスタが割り込み、 空中配線となる。 さらに基板の裏側には、いつものジヤングル配線が待っている、と思うと、ちょっと立ちすくむ。 明日は講義が2つあるので、今日はここまでとしよう。
2008年6月18日(水)
前回から10日が経過した。 いろいろに追われて何も出来なかったが、この日は講義も無いので、 4回生の相談を受けた以外は、ほぼ終日、ぼちぼち作業を進められた。 前日にとりあえず16個(モーター4回路分)だけ、 モータードライブのパワートランジスタとダイオードを付けてみたのが、 以下の状態である。そしてさらに1列、24個(6回路)を増設したのが以下である。
そしてさらに1列、24個(6回路)を増設したのが以下である。
これはまだまだ、「配線」以前の下準備であるが、ここをキチッとやらないと、回路は動いてくれない。 午前中にはいろいろ雑事もあったものの、基板1枚分、16回路が終わったところでほぼ1日となってしまった。
せっかくなので、AKI-H8の載るメイン基板の4回路分も作ってみた。
これで、あと64回路、つまりこの満タン基板をあと2枚、作らないといけない。 インスタレーションはまさに「数との戦い」である。
2008年6月21日(土)
いよいよ週末、集中して作業できる唯一の時間である。 昨日までにチラチラとやっていたのが以下である。 2枚目の最終ラインに着手するところまで、頑張って進めてきた。そして、ちょっと頑張って、ようやく2枚目が完成した。
ここからが長い。 最後の3枚目の最初の1列(1ビット・モーター4回路)が終わったところで、 気分転換に、この「下準備」のハンダ付け作業を詳細に記録してみることにした。 まず、パワートランジスタの足をラジオペンチで曲げる。 ヘタに曲げると壊すので、慎重に一気に曲げる。
まずエミッタをぐいと上に曲げて
次にベースとコレクタを、基板のDIN(2.54mm)で4ランドになるように拡げて
このように 基板に挿す。
2個並ぶとこうなるが、トランジスタはわずかにDINより厚いので、ときどきランドをとばす。
4個並んだところ。これでステッピングモーターを1個、ドライブできる。
ラッチの74HC574の8ビットで8個並んだところ。モーター2回路分。
12個並ぶと、モーター3回路分。このトランジスタは特価で1個90円。500個買った。
ラッチの74HC574を2個で16ビット、16個並んだところ。モーター4回路分。
1列にはラッチの74HC574を3個で24ビット、24個を並べる。モーター6回路分。
裏側はこんなカンジなので、さっそく落ちないようにハンダ付け。
まずは2個の足を綺麗にハンダ付け。後で誤動作しないためには、ここをキチンと進める。
単純にハンダ付け、ここはまぁ簡単。
リードはちゃんとカットする、接触するのは避けたいのでこれも必須。
トランジスタが固定されたので、74HC574の出力からトランジスタのベースに3.3KΩないし4.7KΩの抵抗を接続。
574ごとに、つまり8本の抵抗を入れたら基板を裏返してハンダ付け。
同様にして隣の574の8ビットにも抵抗を繋いで
1列の最後の574にも抵抗を繋いで、ようやくベース抵抗は完了。
次に取り付けるのは、トランジスタのコレクタから+5Vラインへの、逆電流防止用ダイオード。
これを数ミリの長さにカットしてハンダめっきして
このようにトランジスタのコレクタのところに直立させてハンダ付け。
ダイオードが2本になり
4本になり
574の1個分、8個になり
574の2個分、16個になり
これで3個分、1列、24個なり。
このリードを1センチほどにカット
ここからはまたラジオペンチの活躍で、リードを基板の+5Vラインに接触させる。 ダイオードを2個単位で接触させるのがコツ。
毛細管現象により、綺麗にハンダが付く。
これを1列すべてに行う。
ここで基板を再び裏返す。トランジスタで残っているのはエミッタのリード。
これはGNDに繋がるので、スズメッキ線にて空中配線。 このハンダ付けが、この作業の中では唯一、難しい。 ハンダ不良になるので、素人はこれはやらないこと。(^_^;)
これにて、1列、24ビット、モーター6回路分の下準備が完了。ふぅ。
iPodを聞きながら、まったく同じことをやって、次の1列が完成。 これでようやく、最後の基板の半分。
さらに16ビット4回路の短い列を作って
さらに次の1列、24ビット、モーター6回路分を作って
最後の1列も黙々と作って・・・ようやく完了。 「完成」ではなくて、あくまで配線の下準備。
基板を4枚、並べると、なかなか壮観。 すでにズッシリと重い。
ここに、絢が内職でたくさん作ったこのリード線で、 いよいよ明日から「配線」である。
インスタレーションはまさに「数との戦い」である。
2008年6月22日(日)
昨日の作業はかなりの疲労を招いたようで、きっちり12時間の睡眠。 翌日の講義2コマの準備もあり、この日は午後に学内で会議があるので、 実質的な作業時間はほとんど取れない、と判明したが、とりあえずの配線スタートを切ることにした。いつものように回路図らしい回路図は無いので、ここからは考えながらの作業となり、iPodは撤去して、集中モードである。
まずはスペーサで「足」を付けて
AC-DCコンバータに電源ラインを接続。 感電防止のためにきっちりとテープで絶縁。
+5V6Aの電源なので、電源スイッチは省略して、コンセントに繋げば電源はONとなる。
まず最初に、AKI-H8の出力ポートからバッファ74HC245にバスの8ビットを接続。
この245の出力は、同じ基板上の2個の574の入力とともに、 基板間ケーブルを経て、残りの3枚にも行くことになる。
会議に半分だけ出席したりしたので、ここまでで本日の作業は時間切れとなった。 ここ にも鈴木絢が写っているが、さすが技術造形学科でハンダ付けを仕込んだだけのことはある、 なかなか使いやすいリード線を量産してくれたので、 ここからの作業は快調に進む予感がした。
2008年6月24日(火)
3限に講義があり、前日の講義ページの改訂などもあって、作業は半日ほどしかできなかった。 とりあえず、AKI-H8からデータバスとして送られる8ビットを、全ての574の入力に繋ぐところまで出来た。 写真を身比べると、だんだんバスが延びて行くのが分かって面白い。明日の予定は、いよいよPropellerを使ったインスタの制作が「27虎」として始まるミーティングだけなので、 さらにこちらの制作を進めていこう。
2008年6月25日(水)
講義のない水曜日、製作日和である。 作業中のテーブルとともに、現在、抱えているプロジェクトの写真も取ってみた。これは4回生の村松さんの制作プロジェクトに関してバラして調べた「お天気センサ」。
これは4回生の岡元さんの制作プロジェクトのインスタレーション作品で使う予定の、 「ピリピリ」MIDI制御マシン。 ネタばれするので詳細は秘密。(^_^;)
これは4回生の秋津さんと松永さんのそれぞれの制作プロジェクトのインスタレーション作品で使う予定の、 RFIDのレシーバ。 現在のところMax/MSPでシリアルから受けているが、作品をFLASHで作る関係で、 このRFID情報をGAINERに渡すマシンをそれぞれに作る必要がある。 たぶんAKI-H8で作る予定。
これが現在、格闘中のM2の鈴木絢のインスタの実験マシン。 最終的にはAKI-H8になるものの、この実験回路はGAINERによって、 Max/MSPからモータを制御している。
これは、オープンキャンパスで最初のバージョンのお披露目となる、 オリジナルのインスタレーションのグラフィクス開発用の実験機。 Propellerである。 本番ではPropellerを12個、搭載する予定である。
これは、これは4回生の松永さんの制作プロジェクトに関して「超低音で不快にさせる効果」の実験のために、 ストックしていた振動スピーカとアンプ。 作品には使わないかもしれないが、別にちょっと企画を考えているところ。
これはM2の鈴木絢のインスタのために2ロール買った、ケーブル。 230メートルもあれば、なんとかなるだろうか。
・・・ということで、ようやく作業開始。 ひたすらのハンダ付けである。
ここで、オリジナルのインスタレーションの共同制作者、3回生の小畑さんと任田さんが来てくれた。 彼女たちの「数理造形」のセンスとPropellerのパワーがどのように組み合わさるか、 楽しみである。
・・・そして、今日の作業はここまで。 まだまだハンダ付けの分量としては、半分程度である。 ここからは、574のポート番号と138からのラッチパルスと、 「照合」の作業が加わってくる。
学生とともに、1106研究室は、頑張っていくのであった・・・。
2008年6月26日(木)
この日は一転してあれこれドタバタした一日となったが、それなりに進展した。 まず朝7時前から、Propellerを使ったインスタのグラフィック制作のため、 Arduinoで作ったボリューム→MIDIマシンを接続して、 リアルタイムにパラメータを渡せるように改良した。そして、次にメイン基板のモーター部分への配線を完了。
せっかくなので、MIDI入力とMIDI出力の部分の製作を開始。
すると1限になり、大学院のメディアデザイン特論の時間に。 ところが、4人のM2が受講しているのに、この日は鈴木絢だけが来たので、 完全に現在製作中の絢マシンのテストとなった。 回転する造形は、ステッピングモータのトルク特性と戦いながら、 いろいろに変貌し、洗練されていく。
絢が院生室での作業に入ったので、再びMIDI回りの製作を再開。
ソフト開発のモニタ用に、AKI-H8に8ビットのLEDも繋いでみた。
ここでいちょっとハンダ付けを進めていると、午後には学科会議、教授会などいろいろ。
さらには映像ゼミの学生が、オープンキャンパスの教員紹介ビデオの制作のために映像の収録に来た。 その合間には、任田さんと小畑さんが来て、Propellerのインスタのグラフィクス開発も進めた。 新しい道具として、ボリュームと照度センサの情報も使えるので、 面白いグラフィクスがどんどん生まれてきそうである。
2008年6月29日(日)
10時間カラオケ、10時間睡眠など激動の週末を経て、 とりあえず梅雨前線活発化の大雨の中、作業を続けるべく研究室へ。この日はまず、任田さんと小畑さんにグラフィクスの開発を頼んでいるインスタに関連して、 超音波センサからおよその距離データをArduinoボードの2ポート目に取り出して、 ボリュームに続いてパラメータとして使えるようにしてみた。
久しぶりにArduinoの写真が登場して、「Arduino日記」らしくなった。(^_^;)
そして、3枚重ねるボードのうちの1枚のハンダ付けが終了したところで、 本日はおしまい。 さらにボチボチと進めていくことになる。
2008年7月2日(水)
講義の合間に少しずつ作業を進めて、前日までに基板の2枚目まで出来た。 眺めに代わり映えしないようでも、ここまで進むとちょっと感慨がある。この日はまず、朝からテーブル上のレイアウトを変更した。 いよいよ鈴木絢マシンのAKI-H8のソフト開発もぼちぼち始まるが、 インスタのPropellerのグラフィクスの開発もあるので、 同じノートパソコンでは仕事が重複してしまう。 そこでまず、もう1台のWindowsノートに、Propellerの開発環境をダウンロードして インストールした。Versionが1.2に上がっていた。 そして午前中で、最後の基板の配線の半分まで進めた。
午後にちょっと外出して戻り、作業を続けていると、注文していた2GBのUSBメモリが届いた。
やがて27虎の任田さん、後に小畑さんが研究室にやって来た。 グラフィクスの開発とハンダ付けが並行して進行した。
そして遂に、基板の配線、メイン基板からの引き出しまで、 とりあえずのハードが完成した。
明日は大学説明会で岡崎に出張なので、 チェックとAKI-H8のソフト開発は、まだ先である。
2008年7月4日(金)
ゼミなどがあり製作はストップしているが、今日はArduinoに関する情報が届いた。Machinecollective という、電子ブロックみたいなモジュールを繋いでシステムを作るプロトタイピングのWebをよく見ると、 ちゃんと中心にArduinoがあった。(^_^)
やはり、世界中に似たような好きモノは、たくさんいるようである。
2008年7月5日(土)
朝から夕方まで、息をつめるような集中の中、 A/D入力、ディジタル入力のMIDI出力をまず完成させ、 モータ制御のソフト開発とともにハードの若干のバグを修正して、遂に、 鈴木絢マシンが 完成した(^_^)。まだまだここから、100個のモータに約500本の配線があるが、 いよいよ、凄いインスタの実現が「見えて」きた。
これを機に、この「Arduino日記」もオシマイとする。 続きはまた何か、別の「○○日記」があるかも。
「日記」シリーズ の記録