トボリブログ

電子工作初心者が工作したりプログラミングしたりするブログ。

【Firmata】ArduinoとProcessingを連携させてみた!

f:id:toboli:20181019192921p:plain
みなさんこんにちは。トボリです。AR電子工作を目指して奮闘中です。


AR電子工作をするには、まずArduinoとProcessingを連携させないといけません!

とはいえ、『Firmata』というものを使えば、あっさり連携させられます!便利でびっくりした。
作ってくれたスーパーエンジニアの方々、本当にありがとう。


今回は、『Firmata』を使ってArduinoとProcessingを連携させて遊ぶ方法を書いていきます!

ArduinoとProcessingを連携させるプロトコル『Firmata』

シリアル通信で、PCからマイコンボードを制御できるプロトコルのことだそうです!(ざっくり)
要は、Processingを書くだけでArduinoを操作できるということ!Arduinoのコードを書く必要がないんですよ!
コードを書く必要はないけど、ちょっとした準備は必要になってきます。

そのやり方を順番に書いていきます!

準備をする

Arduino側とProcessing側の2種類の準備をしていきます!

Arduinoの準備

準備といっても、プログラムを書くわけでもなく1分くらいで終わります!

Arduinoを開いて、【ファイル】→【スケッチ例】→【Firmata】→【Standard Firmata】を選択。
f:id:toboli:20181019185120p:plain

出てきたサンプルコードをArduinoに書き込みます。以上!簡単!

Processingの準備

以下のように、【スケッチ】→【ライブラリをインポート】→【ライブラリを追加】を選択。
f:id:toboli:20181019190122p:plain

検索窓に『Arduino』と打ち込むと、以下の黄色枠のような候補が出てきます。これを選択し、【install】をクリック。
f:id:toboli:20181019190631p:plain

これで準備は完了です!

プログラム

Arduinoにつながっているボタンを押すと、PC画面に映っているしかくの色が変わる」というプログラムを書いていきます!
これは『ARプログラミング—Processingでつくる拡張現実感のレシピ— 』に載っていたサンプルプログラムそのまんまです!

import cc.arduino.*;        // Arduinoライブラリ
import processing.serial.*; // シリアル通信ライブラリ

Arduino arduino;
int pin = 2;  // 入力ピン(デジタル)

void setup() {
  println(Arduino.list());                       // シリアルポートの一覧を表示
  arduino = new Arduino(this, Arduino.list()[0], 57600);  // Arduinoの接続設定
  arduino.pinMode(pin, Arduino.INPUT);                    // 入出力ピンの設定
}

void draw() {  
  int value = arduino.digitalRead(pin);  // ピンの状態を読み取る

  if (value == arduino.HIGH) {           // 入力がHIGH(ボタンが押されているとき)
    background(255,0,0);
  }
  else if (value == arduino.LOW) {       // 入力がLOW
    background(0,0,0);
  }
}

配線

このようにシンプルに配線していきます!

f:id:toboli:20181019191738p:plain

あとは、ArduinoをPCにつなげた状態で、ProcessingのRunボタンを押すだけ!

こんな感じで動いた!

Arduinoはずっとお世話になってきたけど、こんな風に画面を操作したのは初めてです!
Arduinoにはまだまだ夢が詰まってますね!


以上です!ではでは!