LoginSignup
23
21

More than 5 years have passed since last update.

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

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にスケッチを書き込む

read_from_serial.ino
int val;

void setup(){
  pinMode(13, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  if(Serial.available() > 0) {
    val = Serial.read();
    if(val == 1) {
      digitalWrite(13, HIGH);
    }
    else {
      digitalWrite(13, LOW);
    }
  }
}

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

"L"と横に書かれているLEDが消灯していることを確認する。

Processing側

スケッチを準備する

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

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

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

int on = 0;

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

  // シリアルポートの設定
  myPort = new Serial(this, "/dev/tty.usbmodem1411", 9600);
  myPort.write(0);
}

void draw() {
  if(on == 1) {
    // 背景色を白に設定
    background(255);
  }
  else {
    // 背景色を黒に設定
    background(0);
  }
}

void mouseClicked() {
  if(on == 0) {
    on = 1;
  } else {
    on = 0;
  }
  myPort.write(on);
}

スケッチを実行する

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

Processingの実行画面をクリックするたびに背景の白黒が切り替わる。

  • Processing実行画面の背景が白のときにLED(L)が点灯
  • Processing実行画面の背景が黒のときにLED(L)が消灯

Processing実行画面をクリックして、LED(L)の点灯/消灯が切り替わることを確認する。

23
21
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
23
21