制作ツール
デジタルオーディオ基礎
センサ・アクチュエータ,Arduino
インタラクティブアートにおける入力,処理,出力
インタラクティブアート作品は,基本的に以下の3つの要素で構成されます:
- 入力(センシング) --- 体験者の行為や環境の変化を検知する.センサが担当
- 処理(プロセッシング) --- 入力された情報をもとに,どのような出力をするかを計算・判断する.Arduino やPCが担当
- 出力(アクチュエーション) --- 計算結果を物理的な動き・音・光などとして表現する.アクチュエータが担当
Arduino は,センサからの入力を読み取り,アクチュエータを制御するためのマイコンボードです.プログラミングによって「どんな入力があったら,どんな出力をするか」を自由に設計できます.電子工作の経験がなくても比較的手軽に扱えるため,インタラクティブアート制作で広く使われています.
様々なアクチュエータ
アクチュエータとは,電気信号を物理的な動きや力に変換する装置です.作品の「出力」を担います.
| アクチュエータ | 動き方 | 作品での使用例 |
|---|---|---|
| DCモーター | 軸が連続回転する | プロペラを回す,オブジェクトを回転させる |
| サーボモーター | 指定した角度まで回転して止まる | 腕や首を特定の角度に動かす,弁を開閉する |
| ステッピングモーター | 指定したステップ(角度)ずつ正確に回転する | 精密な位置決め,時計の針,CNCやプロッタの駆動 |
| ソレノイド | 軸が直線的に押し出される/引き込まれる | ものを叩く,ロックを解除する |
| DCファン | 羽根が回転して風を起こす | 風を感じさせる演出,空気の流れを作る |
| 振動モーター | 本体が振動する | 触覚フィードバック,振動による通知 |
| スピーカー | 振動板が振動して音を出す | 音響表現,効果音の再生 |
| LED | 光を発する | 光の演出,状態の表示 |
様々なセンサ
センサとは,物理的な現象(力,距離,温度など)を電気信号に変換する装置です.体験者の行為や環境の変化を検知する「入力」を担います.
| センサ | 何を検知するか | 作品での使用例 |
|---|---|---|
| 圧力センサ | 押す力の強さ | 踏む・握る・押す操作の検知 |
| 距離センサ | 対象物までの距離 | 手や体の接近を検知,非接触操作 |
| ピエゾ素子 | 振動・衝撃 | 叩く・弾く操作の検知,接触の検出 |
| 加速度センサ | 傾き・動きの加速度 | 振る・傾ける操作,ジェスチャー検知 |
| 傾きセンサ | 傾いているかどうか | オブジェクトの姿勢変化 |
| 温度・湿度センサ | 温度と湿度 | 環境に応じた演出の変化 |
| 水位センサ | 水面の高さ | 水を使ったインタラクション |
| タッチセンサ | 人が触れたかどうか | 触れることで反応する作品 |
| 曲げセンサ | 曲がり具合 | 曲げる・しならせる操作 |
さまざまな機構
センサやアクチュエータの動きを目的の動きに変換するための仕組みです.
| 機構 | 特徴 | 動きのイメージ |
|---|---|---|
| リンク機構 | 複数の棒(リンク)をピンでつないで動きを伝える | 回転運動 → 往復運動などの変換 |
| ギア(歯車) | 噛み合う歯車で回転を伝える | 回転速度の変換,回転方向の変換 |
| プーリー | ベルトと滑車で離れた場所に回転を伝える | 離れた位置への動力伝達 |
| カム | 回転する板の形状で往復運動を作り出す | 回転 → 上下運動の変換 |
回路基板,ケーブル
センサ・アクチュエータとArduinoをつなぐための部品です.ブレッドボード(はんだ付け不要の試作用基板)を使えば,配線の試行錯誤が簡単にできます.作品として完成度を上げる段階では,ユニバーサル基板にはんだ付けして固定します.
インタフェース制作
- センサ・アクチュエータを固定する筐体
- 3Dプリンタ,特殊フィラメント
- レーザーカッターによる画像彫刻
- ATOMSTACK A5 PRO, LightBurn(ゼミ室所有レーザーカッター)
- Mayku FormBox(真空成型)
- シリコン型取り
プログラミング・開発環境
| ツール | 概要 | 向いている用途 |
|---|---|---|
| Processing | Javaベースのビジュアルプログラミング環境.コードを書くとすぐにグラフィックやアニメーションが表示されるため,プログラミング初心者でも視覚的なフィードバックを得ながら学べる | 2D/3Dグラフィックス,ジェネラティブアート,データビジュアライゼーション |
| p5.js | ProcessingのJavaScript版.Webブラウザ上で動作するため,作品をURLで共有したり,Webサイトに埋め込んだりできる | Webベースのインタラクティブ作品,ブラウザで動くビジュアル表現 |
| Unity | ゲームエンジン.3D空間の構築,物理シミュレーション,VR/ARコンテンツの制作が得意 | VR/AR作品,3Dインタラクティブ空間,ゲーム的な体験 |
| Python | 汎用プログラミング言語.ライブラリが豊富で,データ分析,機械学習,画像処理,サーバ構築など幅広く対応 | データ分析・可視化,機械学習,センサデータの処理,自動化スクリプト |
| TouchDesigner | ノードベースのビジュアルプログラミング環境.ノード(箱)同士を線でつないで映像・音響・データの流れを視覚的に設計できる.リアルタイム処理に非常に強い | プロジェクションマッピング,リアルタイム映像演出,センサ入力と映像の連携,OSC/MIDI通信 |
| Teachable Machine | Googleが提供するWebベースの機械学習ツール.画像・音声・ポーズの認識モデルをブラウザ上で簡単に作成できる.プログラミング不要 | 「特定のジェスチャーを認識して反応する」など,簡易的な機械学習の活用 |
| MediaPipe | Googleが提供する機械学習フレームワーク.手・顔・体のランドマーク(関節位置など)をリアルタイムで検出できる | 手の動き・表情・体の姿勢をセンシングしてインタラクションに活用 |