作業を開始する前に以下のことを確認してください。
- ArduinoはMacに接続されているか?
- Arduinoの電源ランプ(ONと書かれているLED)は点灯しているか?
- Processingのスケッチを実行していないか?
- なにか実行していたら停止ボタンを押して停止しておこう
スケッチの入力は、最初はとりあえずコピペで。
うまく動いたら、コピペせずに手入力してもういちど実行してみよう。
Arduino側
Processing側が起動しているとArduinoに書き込めないので、Arduino側から作業する。
シリアルポートを選択する
/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)の点灯/消灯が切り替わることを確認する。