この記事について
ここまでArduino(Seeduino)を動かしたり、Max8を触ってきましたが
この章ではArduinoとMax8を連携し、Groveセンサの値をMaxパッチで活用していきます
Arduino(Seeduino)側の準備
ArduinoとMax8はシリアル通信を使って情報のやり取りをします。
この記事で使用していたコードを改変し、アナログ値をシリアル通信するスケッチを書いてみます
下記のコードをコピーして、ArduinoIDEの画面にペーストし、書き込んで下さい
※このコードはVR基礎のものを参考に改変しています
//serialCommunication for Max
//シリアル通信でA0 - A3までのセンサデータを送信するスケッチ
const int analogPin0 = A0; //センサ1
const int analogPin1 = A1; //センサ2
const int analogPin2 = A2; //センサ3
const int analogPin3 = A3; //センサ4
int sensorValue[4]; //センサの値を保持するための変数
int outValue[4]; //成形した値を保持するための変数
void setup() { //ピンの設定をここに書く
pinMode(analogPin0, INPUT); //analogPin0を入力モードに設定
pinMode(analogPin1, INPUT); //analogPin1を入力モードに設定
pinMode(analogPin2, INPUT); //analogPin2を入力モードに設定
pinMode(analogPin3, INPUT); //analogPin3を入力モードに設定
for(int i = 0; i < 4; i++){ //for文(カッコ内の終了条件を満たすまで、中カッコ内の処理を繰り返す)
sensorValue[i] = 0; //センサの値を初期化(0を入れる)
outValue[i] = 0; //成形した値も初期化(0を入れる)
}
Serial.begin(9600); //コンピュータとのシリアル通信の開始
}
void loop() {
sensorValue[0] = analogRead(analogPin0); //A0ピンの値を取得しsensorValue[0]に保持
delay(5);
sensorValue[1] = analogRead(analogPin1); //A1ピンの値を取得しsensorValue[1]に保持
delay(5);
sensorValue[2] = analogRead(analogPin2); //A2ピンの値を取得しsensorValue[2]に保持
delay(5);
sensorValue[3] = analogRead(analogPin3); //A3ピンの値を取得しsensorValue[3]に保持
delay(5);
outValue[0] = map(sensorValue[0], 0, 1023, 0, 255); //10bitのアナログ値を0-255までの値に変換
outValue[1] = map(sensorValue[1], 0, 1023, 0, 255); //10bitのアナログ値を0-255までの値に変換
outValue[2] = map(sensorValue[2], 0, 1023, 0, 255); //10bitのアナログ値を0-255までの値に変換
outValue[3] = map(sensorValue[3], 0, 1023, 0, 255); //10bitのアナログ値を0-255までの値に変換
Serial.print(outValue[0]); //outValue[0]の値をシリアル送信
Serial.print(" ");
Serial.print(outValue[1]); //outValue[0]の値をシリアル送信
Serial.print(" ");
Serial.print(outValue[2]); //outValue[0]の値をシリアル送信
Serial.print(" ");
Serial.print(outValue[3]); //outValue[0]の値をシリアル送信
Serial.println(); //改行データを送る
delay(1);
}
void establishContact() { // シリアル通信が確立されるまでAを送信し続ける
while (Serial.available() <= 0) {
Serial.print('A');
delay(300);
}
}
Max8側の準備
こちらからMaxのパッチをダウンロードして開きます
※上記パッチはVR基礎のものを参考に改変しています
・SeeduinoのA0ポートにボリュームセンサを接続します
・パッチをロックし、Seeduinoが接続されているポートを選択します
・左上のToggleをクリックするとSeeduinoとMax8の通信が始まり、ボリュームセンサの値がA0に表示されます(A1-A3の値も変化してしまいますが、気にしないで下さい)
ボリュームセンサの反応を確かめたら、下記のセンサーも繋いで振る舞いを確認してみましょう
・スライドセンサー
・CDS
・FSR