つくったブログ

ぼくがつくったもの。

シリアル通信を使ってprocessingで遊ぶ。その1。

1バイトデータの送信。

 今回はプログラミングのみ。ここのサイトを参考にしました。
建築発明工作ゼミ2008: Arduino-Processing シリアル通信1


Arduino側
/* Arduino */
/* Serial sample1*/

int val; //読み取り値の変数を用意

void setup(){
  Serial.begin(9600);
}
void loop(){
  //アナログ入力0番ピンの値を読み取り(0~1023)
  //4で割った値を変数valに入れる(0~255)
  for(val=0;val<255;val=val+2){
    //シリアルでvalを送信
    Serial.write(val);
    //1秒間に20回ループ(0.05sec)とする
    delay(50);
  }
}
processing側
/* processing */
/* Serial 1*/
import processing.serial.*;

Serial myPort; 
int x=0;

void setup(){
  size(256,256);
  println(Serial.list());
  String arduinoPort = Serial.list()[11];              
  myPort = new Serial(this, arduinoPort, 9600);  // Arduino
}
void draw(){
  delay(10);
  //背景色を白に設定
  background(255);
  //XY座標を(x,100)に設定し、
  //幅50、高さ50の円を描画
  ellipse(x,x,50,50);
}

void serialEvent(Serial p){
  delay(10);
  //変数xにシリアル通信で読み込んだ値を代入
  x=myPort.read();
}
  • Serial.list()[11]; の箇所はひとによって変わります。arduinoを接続した状態で、

スケッチのツール→シリアルポートを選択し、自分のシリアルポートを確認します。
次にprintln(Serial.list());で表示されたリストの中から選んだポートが何番目なのかを見ます。
僕の場合は12番目なので[11]。

list()[]の要素番号は0から始まるので注意してください。

実行。

Arduinoを動かしてからprocessingを実行します。
丸が動きます。
f:id:kyokucho1989:20140921164429p:plain


たのしい。


次は複数バイトのシリアル通信をやります。

Making Things Talk ―Arduinoで作る「会話」するモノたち (Make:PROJECTS)

Making Things Talk ―Arduinoで作る「会話」するモノたち (Make:PROJECTS)