b. ARとkinect(1/2)
https://twitter.com/_kobashi/status/877124512529080320
↑前回の反省点
今回の内容:
Maxuino用の回路を作成し、iMacからArduinoを制御してみる。
1. 第A回の資料を元に、arduinoに firmata を書き込み、maxuino で iMacと USBケーブルで通信制御の動作確認をする。
2. gui ツールからarduinoのピンの機能を割り当て、動作実験をする。
実験用回路:
4つの回路を作成し、Arduinoに接続する。
1. タクトスイッチで オン・オフ のデジタル入力
2. デジタル出力でLED点灯 オン・オフ と PWMによる疑似アナログ出力制御
3. 光センサー Cds の値をアナログ入力に接続
4. 半固定抵抗(ボリュームつまみ) の値をアナログ入力に接続
↓全体像
←角度を変えて撮影
Arduino側のピンの接続確認用1
Arduino側のピンの接続確認用2
タクトスイッチの部分
LEDの部分
光センサーの部分
半固定抵抗の部分
ピンの機能割り当て:
arduinoのpinは、入出力の割り当てを変更して利用可能
Ain アナログ10bit入力(0〜5Vを1024段階 )
Din デジタル入力(0V がオフ 5VがON)
Dout デジタル出力(オンで 5V。LEDは数個点灯できるが、モーター駆動は不可)
PWM パルスウェイブモジュレーション、オンとオフの時間比率を制御して、アナログ出力をエミュレート
servo サーボモーター制御
PWM や servo の割り当ては特定のピンのみ可能。
実験用の設定:
maxuinoの gui ボタンをクリックして↓のウィンドウを表示する。
Port の設定、初期化 init、Hardware の選択を arduino uno にしておく
次の割手に変更する。
pin6 dO
pin8 dI
pin14 aI
pin15 aI
ブレッドボード上のスイッチなどを操作して、動作を確認する。
pin6 PWM
に変更して、LEDの明るさを制御する。
パッチの修正
サブパッチ p sensor-values をダブルクリックして開く
以前に Max7で作成したパッチを、↓のように組み込み、制御用の信号をMaxuino と接続する。
信号の変化する範囲に応じて、 scale オブジェクトで、値を調整する。
※重要 ↑の実験で確認できるように、アナログ入力からは連続してセンサーの値が出力され続けている。アナログ入力の値が、接続先のパッチに送信されるたびに連続して音声が出力されることになる。
センサーの値の動きに応じた制御としては、
例えば、
ある値を突破した瞬間に、1回だけ反応する。有る値を下回るまでは再び反応しない。
ある値を下回った瞬間に、1回だけ反応する。有る値を上回るまでは再び反応しない。
ある値以下・以上の時に連続して反応し続ける。
ある値を超えるたびに・下回るたびに、スイッチをオン・オフする。
などが考えられる。
↑に対応するには、第6回の講義内容の、信号の捕まえ方を参照のこと。
信号の判定(つかまえ方)の話し
ファイル 2016_5a.maxpat シグナル と メッセージ について
ファイル 2016_5a2.maxpat 信号(シグナル)検出 と 信号の平滑化
この2つのバッチを参考にする。
チャレンジ1:
↑の例ではA0ピンのアナログ入力から光センサーの値を読み取って 音程 に反映させている。
ボリュームつまみやタクトスイッチの用途を考えて、同様にパッチで利用してみよう。
↓タクトスイッチの入力は8番ピンをデジタル入力に設定していようしている。
p sensor-values サブパッチの中を以下のように修正し、8番ピンのオン・オフを取得できるようにする。
↓ 光センサーで音程を制御し、ボリュームつまみで音色の倍音(響きかた)を調整し、タクトスイッチでミュート(消音)するパッチの例。
チャレンジ2:
maxuinoのメインのパッチに デジタル出力 や PWM 用のサブパッチが置いてあるので、参考にして利用してみる。
例)Max7で信号制御パッチを、 bang や delay や metro や counter や sel や toggle を利用して、作成し、LEDの点灯制御に利用する。単純な例としては、音が出たらLEDが点灯するようにしてみよう。
↑の p digital OUTPUT がデジタル出力用のパッチ、 p PWM がPWM用のパッチである。 開いて、中にパッチを組み込んでみよう。複数のピンを利用するには サブパッチをコピーしてピン番号を変えてモードをセットして利用する。
チャレンジ3:
加速度センサー、気圧センサー、磁気センサーや人感センサーなど、Arduinoスターターキットには付属していないセンサーを利用してみる。
センサーの貸し出しと接続は応相談。
課題提出:
作成したArduinoの回路と、パッチを写真撮影、スクリーンショットに取り、ワープロファイルにそれぞれ貼り付け、どのような動作をするか、簡単に文章で説明を加えてWebclass の 第B回課題 として提出する。
+
時間が余る様子なら・・・・
(ネタ紹介)
・TOPページコメント欄 「頭の悪いメカ発表会」
・「こどもフェスティバル2016展示紹介(ハンディカム映像)」
稲沢市こどもフェスティバル2015展示紹介 https://youtu.be/Akh6k-9AqlA
・サウンドロゴ+人感センサー(カメラ)
・既存の映像(大学CMとか?)と傾きセンサー (傾き度合いに応じて再生フレームを進める)
・義損の映像(大学CMとか?)で合成映像(Max/MSP + Jitter の落ち穂拾い)
・昨年のインタラクティブメディア(こばし) の過去の履修者の作品の MAX/MSPのパッチ をレポートフォルダに入れておくので、参考にするとよい。
・旧科目 インターフェースデバイス論 の過去の履修者の作品の MAX/MSPのパッチ をレポートフォルダに入れておくので、参考にするとよい。
・学内デジコンに応募する作品を制作するなら、どのような企画で行くか。2017年度のテーマは「実」
■追加の演習1
iPadアプリ Fantastick と Max/MSP の接続
Fantastickの設定
アプリをインストール後、 iPadの設定メニューから Fantastick の設定を開き、通信先のPCの IP アドレスを入力する。
ポート番号は変更無しで良い。
IPアドレスの調べ方: 各PC番号が、IPアドレスの末尾の番号。 先頭から 192.168.112.1 ~ 40
コマンドによる確認方法: mac の検索メニューから term で ターミナルを起動。 ifconfig コマンドで、設定を表示
1台のPCに、複数のiPadを接続して利用することも可能。
問題点:
おそらく、1教室で多数のiPadをWiFi接続した場合は、通信に不具合が出ることが予想される。
うまくいかない場合、授業後、実習室の利用人数が少ない時間帯で、各自で試しておく。
Fantastick の設定が終わったら、レポートフォルダにDL済みの Fantastickの動作確認パッチをデスクトップにコピーして開き、
内容を確認しながら、機能を確認する。
・画像の出しかた
・タッチイベントの処理
・加速度センサーの値の取得
+
時間が余る様子なら・・・・
■追加の演習2
ARマーカ認識オブジェクト紹介:
準備
Max/MSP + Jitter - ARTookit External http://www.aranarproductions.com/artk/
↑
レポートフォルダにDL済み(フォルダ名 ARToolkit for Max)。
各自でフォルダを丸ごとデスクトップにコピーしておく。
フォルダ名変更: 学籍番号ARToolkit for Max にフォルダ名を付け替える。(提出準備)
・カメラ設定ファイル camera_para.dat を認識するように設定変更
手順
・アプリケーションフォルダの編集は管理者権限でロックされているので一時的に解除する。
(担当教員が操作)
/Applications/Max5/Cycling '74/init/max-fileformats.txt
に次の行を追加。
max fileformat .dat DATA 0 "data file" file;
・Max を起動していたら、再起動する。
※2016年度のC108Mac実習室のMacには↑は設定済みの模様。以下のサンプルパッチ起動時にcamera_para.dat が見つからないエラーが出たら、この設定ができているか確認して、修正する。
動作確認
・サンプルマーカで動作テスト
マーカのパターンファイル(patt.a 〜 patt.g)が multi フォルダに入っているので、パッチと同じ階層に移す。
パターン登録用ファイル、object_data2も同様。
作業例)
※パターンファイル patt.a - patt.g は、マーカとして利用する画像を、別途紹介予定の特徴点抽出アプリで処理した認識用データ。マーカとして利用する画像ファイル自体ではない。
※パターン登録用ファイル object_data2 は、このマーカ認識アプリで使用する複数のマーカのパターンファイルのファイル名を登録するためのファイル。
・パッチの動作確認
付属のマーカ画像(pattMulti.jpg)をタブレットなどで撮影し、準備する。 ファイルの内容は、 A B C D F G の6個のアルファベットが、それぞれマーカ認識用の黒枠の中に描かれているもの。
pattMulti.pdf は、余白が無いのでマーカ認識がうまくいかない可能性があるので、今回は使わない。
パッチを開き、カメラをON。マーカをmacのカメラに写す。
object_data2 の設定ファイルには、 B G A D の4個のマーカが登録されている。 各マーカーの位置に CGが描画されていたら動作OK
※うまくいかないときは
→・Maxウインドウ(⌘+M)の表示にエラーが出ていないか確認する。↓正常な例。
Webカメラは起動する(openメッセージでLED点灯)が、マーカの読み取り開始(metroオン)でMaxが落ちる場合
→・Maxを 終了する。 メニュー → Max/MSP → 終了(⌘Q)
※ 複数回のパッチ起動、もしくは、同時に複数の jit.artkmulti オブジェクトを起動すると、調子がおかしくなる模様。
その場合は、Maxを再起動する。
※パッチを複数回開いたり、同時に2つ開くと動作不良になります。要Max再起動。
オリジナルマーカの作成とパターンファイル作成
・マーカの作成サイトの利用方法
作成手順の確認:
マーカのパターンファイル作成と登録の手順を覚えるために付属のマーカの適当な文字で以下を試す。
サンプルパッチの動作確認で使用した、パターン画像を、タブレットやスマフォの画面に表示する。
以下のツールでスマフォ画面などを撮影し、パッチで使用するマーカー識別用ファイルを作成する。
サンプルのMax のパッチは止める。(マーカ作成のためWebカメラを使うため)
実習室PCのsafari ではFlashが動かない(2015年実習室環境)ので、Chrome で以下を開く
マーカ製作ツールのサイト: http://flash.tarotaro.org/blog/2009/07/12/mgo2/
↑使用方法は、授業で実演。
マーカをスマフォ画面に3個以上、同時に表示し、
認識できた中から、不要な認識結果は削除して、
3つ選び、保存(save)する。
パターンファイルは、zipファイルでまとめてダウンロードされる
DLファイルを展開し、
1.pat と2.pat と3.pat のファイルを、
pat1.a pat2.b pat3.c
と名前を付け替える。
パターンファイルを、サンプルバッチと同じ階層に置く。
保存したファイルを、control + クリックし、情報を表示。
ファイルの拡張子(拡張子を表示) と
アクセス権限を修正(読み書き可能) にする。
ファイル名と拡張子を変更した↑のファイルを、パッチと同じ場所におく。
※一度に複数のマーカーを撮影せずに、1個ずつマーカを撮影する場合は、ファイル名をつけるときに
↓のように、拡張子と保存先を指定すると、 ctrl+クリック から情報表示 以降の手順を省略できる。
macのアプリ 「テキストエディット」 で object_data2 を開き、編集する。
※multi フォルダの中のobject_data2ではなく、先ほどコピーした方
【編集内容】 4個のマーカが登録されているので、どれかと置き換える。ファイル名の部分を、↑で作成したパターンファイルの名前に修正する。
登録可能数は上限4個まで。
例)
動作確認:
ブラウザのマーカ作成ツールは閉じる
。(サンプルパッチでWebカメラを使うため)
サンプルバッチを開いている場合、一旦閉じる
念のため、Max/MSP も一旦終了し、再起動する。
サンプルパッチ を起動し、マーカを撮影して動作するか確認。
※うまくいかないときは
・Maxのカメラが動作しない。 → ブラウザのマーカ作成サイトがカメラを使用しているなら、ページを閉じる。
・object_data2 が権限問題で編集できない。 → テキストエディットを検索して起動する。ファイメニューからobject_data2を開く。
・サンプルファイルが起動しない。または、カメラを起動する、マーカを認識するタイミングで落ちる。
→ マーカファイルが読み込め無いことが原因の可能性。Maxウインドウにエラーが出ていないか確認する。
→ ファイル名の指定に問題がある場合がある。 パターンファイルを ctrl + クリックして、ファイル名や権限、特に拡張子について確認する。
・マーカのファイル名の指定が面倒やうまくいかない場合は、 今回作成したマーカーのpatt ファイルと、既存の、patt.a - patt.d を置き換える。object_data2 は修正せずそのまま使う。
自作マーカのデザインと登録:
画像編集ツールでマーカ作成。 作成上の注意(http://sixwish.jp/AR/Marker/section01/)。
イラストレーター、フォトショップ、その他、ツールはなんでもよいので、ARマーカーの太い黒枠線の中にマークや文字をデザインする。
付属のサンプルマーカのpdfファイルをワープロソフトで開き、手軽に済ませてもOK
※ 黒枠の外側の白い余白も必要。黒枠の比率は変更しない(削ったりしない)。マーカは回転対称のものは不可(丸や三角よりも、文字など、多少複雑なものが良い。l(エル)やo(オー)も不適切。マーカーの位置や
例)
※ 前述のマーカ作成サイトで↑のマーカを撮影し、パターンファイルを作成する
※ object_data2 を編集し、パターンファイルのファイル名を登録する
※ パターン登録サイトのカメラウインドウは閉じる
※ サンプルパッチを閉じ、Maxも終了し再起動する
動作確認をすること。マーカを認識できたら成功。
提出物
オリジナルマーカを作成し、そのパターンファイルを作成する。
上記のファイルをARToolkit for Max に登録(コピー&ファイル編集)する。
動作確認。マーカを認識しないようなら、作成&再登録。
余力があれば、ARToolkit for Maxのサンプルパッチを編集して、マーカの X Y 座標 や 回転 を利用したパッチを作成する。
レポートフォルダ インタラクティブメディア(こばし)の 学生提出用 フォルダに 学籍番号ARToolkit for Max にフォルダ名を付け替えて提出。
Max/MSP でキネクトを利用する
※準備間に合わず。利用方法紹介は次回に予定。
【Max】Kinect を使ってダブステップを演奏してみた
http://motokiohkubo.hatenablog.com/entry/2013/06/23/210031
↑ 初代kinect for windows をOpenNI と OpenKinectで利用。
http://synapsekinect.tumblr.com/
https://github.com/microcosm/ofxKinectV2-OSC
http://yoppa.org/ma2_10/2279.html
http://qiita.com/ya7gisa0/items/0bcad395f9e8e8935f71
2009〜2012 インターフェースデバイス論の作品紹介