Intel Edison Kit for Arduinoに対してFirmataを導入した。
はじめに
好物はインフラとフロントエンドのかじわらゆたかです。
Intel Edison Kit for Arduinoに対してFirmataを入れたのでその手順を公開します。
Firmata
Arudinoを制御するための汎用プロトコルとのことです。
Firmataを用いることで様々なプログラミング言語から、Arduinoを制御することが可能です。
Intel Edison Kit for ArduinoにFirmataをインストールする
Intel Edisonが出た当初はArduino IDEはIntelのカスタム版を導入しておりました。
09: Edison Getting Started Guideをやってみる | Developers.IO
2016/02/11現在 カスタム版ではなくAruduino IDEをダウンロードすることでIntel Edison Kit for Arduinoを扱うことが可能です。
Intelの公式が出している方法に基づいて作業を進めます。
IoT - Installing the Arduino* IDE | Intel® Developer Zone
- PCとEdisonをUSBで接続しておきます。その際に接続するのはJ16に接続します。
09: Edison Getting Started Guideをやってみる | Developers.IO - ArduinoのサイトよりArudio IDEをダウンロードし、
アプリケーション名をArduino.appからArudinoEdison.appに変更しApplicationディレクトリに配置します。 - リネームしたArduino IDEを起動し、ツール→マイコンボード→ボードマネージャと進みます。
- 検索条件にintelと入力し、検索結果に含まれるIntel i686 Boards by Intelを選択しインストールを押下します。
- ボードマネージャを閉じ、ツール→マイコンボードからIntel Edisonを選びます。
- ボードマネージャを閉じ、ツール→シリアルポートから/dev/cu.usbmodem〜 を選びます。
- ファイル→スケッチの例→Firmata→StandardFirmataを選択します。
- マイコンボードに書き込みを押下し、Firmataを書き込みます。
Firmataの動作を確認する。
Firmataを用いてArduinoと操作を行う、ライブラリは各言語で提供されております。
Arduino Playground - Interfacing
今回はProcessingで試してみたいと思います。
Download Processing.
Processing自体はオフィシャルサイトよりダウンロード・解凍し、Processing.appを起動します。
Processingの環境設定でスケッチブックが/Users/ユーザー名/Document/Processing となっていることを確認します。
ProcessingでArduinoを扱うLibraryはLibrary for Processing v2.0を導入します。
ダウンロードしたzip内にあるarduinoディレクトリを書類内のProcessing→Libraryにコピーします。
Processing + Arduino(Firmata)で用いるシリアルポートの確認
以下のコードをProcessingのSketchに書き込み、Runを押下します。
import processing.serial.*; import cc.arduino.*; Arduino arduino; void setup() { int i = 0; for (String arduino : Arduino.list()) { println("[" + i +"]" ,arduino); i++; } }
cu.usbmodem となっている番号を調べます。
下記の例の場合、1となります。
Processing + Arduino(Firmata)の動作確認
上記で調べたシリアルポートの番号に応じて10行目を書き換えます。
以下のコードをProcessingのSketchに書き込み、Runを押下します。
import processing.serial.*; import cc.arduino.*; Arduino arduino; int ledPin = 13; color bgColor = color(0); void setup() { size(400, 200); arduino = new Arduino(this, Arduino.list()[1], 57600); arduino.pinMode(ledPin, Arduino.OUTPUT); } void draw() { background(bgColor); } void mousePressed() { arduino.digitalWrite(ledPin, Arduino.HIGH); bgColor = color(255,0,0); } void mouseReleased() { arduino.digitalWrite(ledPin, Arduino.LOW); bgColor = color(0); }
起動して、初期化が完了すると黒い画面が表示されます。
黒い画面をクリックすると赤く変化します。
正しくArduino(firmata)とProcessingが通信できていれば、赤く変化した際にボード上のLEDが点灯します。
また、DIGITALの13番 GNDにLEDを指すことで、LEDも点灯します。
まとめ
Intel Edison for Arduino に対してfirmateを導入し、その確認を行うことができました。
ようやくこの辺を動かす下準備ができました。