京都市立芸術大学 美術学部 構想設計

Arduinoワークショップ

2015.06.11-12 長嶋洋一


こんな人にとって嬉しいです(概要)

(事前のリクエスト打診のやりとりより一部転載)

> 昨年、Arduino、スピーカー、加圧センサーを使用した作品をつくったのですが
> センサーや情報量などの要素を増やしていくと制御がうまくいかず失敗してしまいまいた。
> 基本的なことが分かっていないので基礎から解説していただけると嬉しいです。

これは貴重な情報で、まさに、このあたりが多くの学生の引っかかってくる、いいテーマです。(^_^)

Arduinoのサイトなどのサンプルは、話を簡単にするために、
 「1個のLEDを点灯させる」
 「1個のセンサを監視する」
みたいになっていますが、実際に具体的な作品に応用しようとすると、
 ・たくさんのLEDを点灯させたい
 ・たくさんのセンサに反応したい
 ・プログラミングが下手で重く(遅く)なる
というあたりの「壁」に突き当たります。ここにある、色々なテクニックとコツを伝授しましょう。

上記の状況だと、まずはおそらく、たくさんの要素(入力[センサ]、出力[LED、スピーカ等])を
組み合わせてリアルタイムに動作させるという「時分割多重化」というものが大きな壁になっている
ものと思います。半日*2だと、そこを突破するだけでもその半分ぐらいかかります。

あと、標準的なArduino Uno(http://www.arduino.cc/en/Main/ArduinoBoardUno)は、
 ・センサ(アナログ電圧) 6チャンネル
 ・ディジタルポート 12ビット (うちPWM[連続値]のLED出力が6ビット)
です。「たくさん使いたい」については、「標準的なArduino Unoが持っているポート数の範囲内で、
それらを同時にたくさん使いたい」という範囲にします。それ以上の拡張はちょっとAdvencedです。

> また、LEDの制御について理解できず昨年の作品では光を使用できなかったので、

これはたぶん、例えばArduinoのポートとしてPWM出力で連続値制御(ON/OFFでなく、じわーっと変化)
して、そこにLEDリポンのように多数のLEDがあるやつを繋いで一斉に同じようにじわーっと変化させたい・・・と
いうような事ではないかと思います。こういう感じです。
 http://www.youtube.com/watch?v=Af210cqoh5c
 http://www.youtube.com/watch?v=991jm_JEWIQ
 http://www.youtube.com/watch?v=Z4fgXdpbkmY
 http://www.youtube.com/watch?v=ZC_pI9Q-O8Q
 http://nagasm.org/1106/installation3/kabayama.mp4
これは、Arduinoに直接LEDを繋ぐと、ドライブできる電流の制限からポートごとにLEDを1個程度しか
繋げないので、ドライブ回路(トランジスタ1個でOK)を入れれば、一気に表現力が拡大します。

ちょうど上のYouTubeの作品のような感じで、最大6個の赤外線距離センサで体験者の近接を検知して、
最大6系統のPWMポートからドライブ回路を経て、6種類の別々に光る多数のLED、というようなことであれば、
半日*2でもなんとか伝授できると思います。

2日間のメニュー

「Arduino+電子回路」の電源をどうするか

LEDを確実に点灯させる「定電流ダイオード」

多数のLEDを点灯させる電流ドライブ回路

センサとスイッチの繋ぎ方と調べ方

同時にいくつもの処理を行うプログラム手法

参考情報リンク1

参考情報リンク2

1日目の様子

2日目の様子