0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Arduino + Max8 (3) select, counter, scale, splitオブジェクトによるセンサデータの応用

Last updated at Posted at 2019-10-01

ここまでのおさらい

前回は、ArduioとMax8を連携させ、センサの値によって音を再生するパッチを組みました
今回は、センサデータと組み合わせて使うと便利な以下のオブジェクトを紹介していきます

  • select

  • counter

  • scale

  • split

  • flonum(scaleの下に接続されているオブジェクト)

パッチのダウンロードと挙動の確認

こちらからsomeFunkパッチをダウンロードして開きます

スクリーンショット 2019-10-01 16.29.27

パッチをロックした状態で、ナンバーボックスをドラッグして値を変え、挙動を確認します。以下で各オブジェクトの機能を紹介します

  • select : 特定の値が入力された際に反応を返す
    例えば、上の記載方法ではセンサの値が「200ピッタリ」になった際に、左のアウトレットからbutton信号が出力されます。「200以外」の場合は、右のアウトレットからbutton信号が出力されます
  • counter: buttonが押された回数をカウントする
    インレットに接続されたbuttonが押された回数をカウントします。selectオブジェクトと組み合わせることで、「センサが10回反応した際に特定の行動をする」などのプログラムを作ることができます
  • scale: arduinoのmap()関数と類似、値のスケーリングを行う
    左から(インレットに入力される値の最小値, インレットに入力される値の最大値, アウトレットから出力される値の最小値, アウトレットから出力される値の最大値)と指定することで、センサのデータを音や映像の再生スピードに対応付けることができます
  • split: 指定された範囲外の数値は通過しないようにする
    センサの値は必ずしも安定したものではなく、センサによってはある値から+2, -2くらいの値の間で細かく移動する「ドリフト」という現象が起こることがあります。splitを使うことで、センサが確実に反応している際に値を取得する、などのプログラムが組めます
  • flonum: 小数点を扱うことができるナンバーボックスです。左にあるnumber(i)ボックスは小数点を扱うことができず、例えば0.9を0、1.5を1として扱ってしまいます。小数点を含めた値の指定にはflonumを使う必要がありますので注意してください

復習も兼ねた応用

  1. sensorPlayerパッチでsendオブジェクト、receiveオブジェクトを使ってsomeFunkパッチでセンサの値を見れるようにして下さい
  2. someFunkパッチで受けたセンサの値をナンバーボックスに接続し、センサの値による各オブジェクトの振る舞いを確認してみましょう
  3. someFuncMoviePlayerを開き、sendオブジェクト、receiveオブジェクトを使ってセンサの値で再生速度をコントロールしてみましょう

sensorPlayerパッチはこちらからダウンロードできます

someFuncMoviePlayerパッチはこちらからダウンロードできます

0
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
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?