LoginSignup
6
2

More than 5 years have passed since last update.

vvvvとarduinoを連携させてインタラクティブ動画みたいなことをしたい

Last updated at Posted at 2017-01-23

足りないところは随時書き足します

何がしたいわけ?

arduinoに繋いだセンサーの値をvvvvに送信して、rendererのグラフィックがセンサーで変化するようにしたりできます。反対にvvvvで得られた値をArduinoの出力ピンに送信することも可能です。
vvvvとArduinoの連携について断片的な英語の記事しかなくて苦労したので遺しておきます。

使ったもの

 - Arduino Uno Rev3
 - 好きなセンサーや入力装置
 - Arduino IDE (1.6.9)
 - vvvv (45beta34.2)

()内は自分が使ったバージョンです

Arduinoにスケッチを書き込む

vvvvとArduino間で通信をするためにfirmataプロトコルと言うものを使いました。

ArduinoIDEのメニューからファイル>スケッチの例>firmata>StandardFirmataを選んでスケッチを開く。
arduino.png

そのままArduinoに書き込みましょう。
これでArduino側の設定は終わりです。はやい。

vvvvのパッチを組む

vvvvにはもともとArduinoと通信するためのノードがあるんですが、もうちょっと楽に通信できるパッチを見つけたのでそれを使いました。とはいえ手間がかかります

・Arduinoと通信できるパッチの在り処

vvvvのフォルダからvvvv_(vvvvのバージョン)>girlpower>IO>Arduinoフォルダの0_Arduino_UsingFirmata.v4pを開きます。真ん中にあるのが目当てのノード群です。コピペして任意のパッチに組み込みましょう

センサに反応するグラフィックを用意する

明るいと大きく、暗いと小さくなる四角をレンダラに表示させることにします。
Renderer(DX9) - quad(DX9) - transform(2D) と繋げます
transformノードのwidthとheightにセンサの値をあてがうことにしました
角度や色、位置でもいいと思います。linearSpreadにつなげたりするのもありです

・頑張ってノードをつなげる

ここがめんどくさかったです。賢い人はサブパッチ作ったりして効率化するでしょうが、私には無理でした。簡単な方法があったらこっそり教えてください。
vvvv003-1.PNG
画像2.のIOboxの0-13がデジタルピン、14-19がアナログピンに対応しています。その隣(1.)はピンをどのモードで使用するかを設定しています
- Arduinoのセンサ値を取り出すノード
Arduinoに繋いだセンサの情報を取るときはArduinoサブパッチの1番左下とその右隣のピンから値を取り出します
getSliceで任意のピンの値を取り出します
vvvvで使いやすい値に加工するためにmapやdumper,Round,四則演算などを使います
vvvv005.PNG

  • vvvvで取得できる値をArduinoに送信するノード vvvvで取得できる値というとmouseX,Yとか、マイクで拾った音の周波数とかだと思います。 Arduinoにvvvvで取得、加工した値を送るときはArduinoサブパッチの1番左上のピンから値をセットします setsliceで任意のピンに値を入れます vvvv004.PNG

センサーの入力値を見やすくする

arduinoの各ピンに入力があるかどうか、ボタン表示を使って直感的に見られるようにしました。意外と役に立ちます
vvvv002.PNG
インスペクタの設定↓
vvvv001.PNG

やっとvvvvとArduinoを連携させる

・とりあえず動かす

standardFirmataを書き込んだArduinoをPCに接続して、vvvvのパッチを開きます。
arduinoサブパッチの右上にあるenableピンを1(有効)にします
センサーとレンダラのグラフィックがうまく連動していたら成功です。やったね

・うまくいかないとき

+ Arduinoにスケッチを書き込めない
  arduinoと連携するノードが含まれたvvvvのスケッチを閉じてみましょう
+ vvvvのパッチが動かない。Arduinoを接続したのにノードが赤い
 Arduino IDE のシリアルモニタを閉じましょう
 vvvvの他のパッチでArduinoと通信するノードを使ってませんか?使わないパッチは閉じましょう

参考にしたもの

一番役に立った動画です。vvvvとarduinoのfirmata設定方法が説明されてます。全編英語https://www.youtube.com/watch?v=RQ54h88ptmc
vvvvの公式サイトに載ってたArduino連携に関するページhttps://vvvv.org/contribution/firmata-arduino-and-vvvv-an-introduction
firmataプロトコルのwikihttp://firmata.org/wiki/Main_Page
firmataプロトコル覚え書き というタイトルのページ。日本語です。https://gist.github.com/hiroeorz/7868628


ジェネラティブ・アート -Processingによる実践ガイド
Arduinoをはじめよう
vvvvook-プロトタイピングのためのビジュアルプログラミング入門

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2