5
3

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 (1) センサ情報の表示

Last updated at Posted at 2019-09-23

この記事について

ここまで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基礎のものを参考に改変しています

arduino2max

・SeeduinoのA0ポートにボリュームセンサを接続します
・パッチをロックし、Seeduinoが接続されているポートを選択します
・左上のToggleをクリックするとSeeduinoとMax8の通信が始まり、ボリュームセンサの値がA0に表示されます(A1-A3の値も変化してしまいますが、気にしないで下さい)

arduino2max_data


ボリュームセンサの反応を確かめたら、下記のセンサーも繋いで振る舞いを確認してみましょう
・スライドセンサー
・CDS
・FSR

5
3
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
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?