LoginSignup
50
53

More than 5 years have passed since last update.

ArduinoとProcessingでシリアル通信(1) ArduinoからProcessingに値を送ってみる

Last updated at Posted at 2014-06-06

作業を開始する前に以下のことを確認してください。

  • ArduinoはMacに接続されているか?
  • Arduinoの電源ランプ(ONと書かれているLED)は点灯しているか?
  • Processingのスケッチを実行していないか?
    • なにか実行していたら停止ボタンを押して停止しておこう

スケッチの入力は、最初はとりあえずコピペで。
うまく動いたら、コピペせずに手入力してもういちど実行してみよう。

Arduino側

Processing側が起動しているとArduinoに書き込めないので、Arduino側から作業する。

シリアルポートを選択する

select_serial_port.png

/dev/tty.usbmodem1411 の部分は名前が実行するMacによって異なる

Arduinoにスケッチを書き込む

send_to_serial.ino
void setup(){
  Serial.begin(9600);
}

void loop(){
  Serial.write(100);
  delay(1000);
  Serial.write(200);
  delay(1000);
}

「検証」をクリックして「コンパイル終了」と表示されたら、「マイコンボードに書き込む」をクリックしてArduinoに書き込む。

Processing側

スケッチを準備する

シリアルポートの指定を前述の「シリアルポートを選択する」で選んだシリアルポートにあわせて書き換えるのを忘れずに。

read_from_serial.pde
// シリアルライブラリを取り入れる
import processing.serial.*;

// myPort(任意名)というインスタンスを用意
Serial myPort;

int x; //図形のX座標の変数を用意

void setup(){
  // 画面サイズ
  size(256, 256);

  // シリアルポートの設定
  // "/dev/tty.usbmodem1411" の部分を前述の「シリアルポートを選択する」で選択したシリアルポートにあわせて書き換える
  myPort = new Serial(this, "/dev/tty.usbmodem1411", 9600);
}

void draw(){
  // 背景色を白に設定
  background(255);

  // XY座標を(x,100)に設定し、
  // 幅50、高さ50の円を描画
  ellipse(x,100,50,50);
}

void serialEvent(Serial p){
  //変数xにシリアル通信で読み込んだ値を代入
  x = p.read();
  println(x);
}

スケッチを実行する

▶ ボタンを押して実行する

Processingの実行ウィンドウに表示されている円が左右に動いていれば成功

50
53
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
50
53