Arduino で遊ぶ
Arduino はマイコンボードなど呼ばれるもので、電圧を読みとったり(入力)、電圧をセット(出力)することのできるピンがついています。 それを制御するプログラムは USB 接続してコマンドを実行するだけで簡単に書きこむことができ、ピンを介して色々なセンサーやデバイスを制御できるといったデバイスです。
この Arduino を使って、CI でテストが落ちたときに回転灯(こいつ↓)を点灯できるシステムを構築したいと思います。
まず今回は、開発環境を用意して簡単な動作確認までしてみましょう。
開発環境の用意
arduino には GUI の IDE もあるのですが、不便なことも多いので、arturo というコマンドラインのツールキットを使うことにします。 arturo 単体では動作しないので、IDE (1.6 系)のインストールも必要です。
Arch Linux
AUR にパッケージがあるので、使わせてもらいましょう。
https://aur.archlinux.org/packages/arturo-git
その他 OS
Arduino IDE は、http://www.arduino.cc/en/Main/Software から。 arturo は https://github.com/scottdarch/Arturo を参考にビルドします。
1 2 3 |
$ git clone 'https://github.com/scottdarch/Arturo.git' $ cd Arturo $ sudo make install |
注意
IDE が最新の場合、boards.txt が見つからない! と言ったエラーが出るかもしれません。 その時は、以下のようにリンクをはる事で解決すると思います。
1 |
# ln -s /usr/share/arduino/hardware/arduino/avr /usr/local/share/arduino/hardware/arduino |
プロジェクトを作る
arturo をインストールすると、ano というコマンドが使えるようになっているはずです。 このコマンドでビルドなど、全てを行います。
まずは、プロジェクトディレクトリ "chikachika" を作り、ano init コマンドでプロジェクトを生成します。
1 2 3 |
$ mkdir chikachika $ cd chikachika $ ano init |
プログラムを書く
Arduino の入出力のピンには、アナログ入力とデジタル入出力があり、それぞれに番号がついています。 Arduino UNO には デジタルの 13 番ピンとして LED が初めから組込まれているので、この LED で動作確認することにします。
プログラムは、ano init で生成された src/sketch.ino に書きます。
LED をチカチカチカチカーッさせるプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
// 組み込み LED ピンの番号を定義 #define PIN_LED 13 // ボードの電源オン時に実行されるコード void setup() { // 13 番を出力モードにする pinMode(PIN_LED, OUTPUT); } // setup 後にここのコードが無限ループで実行される void loop() { // デジタル出力を HIGH (オン) に設定する digitalWrite(PIN_LED, HIGH); // 100 ミリ秒待機する delay(100); // デジタル出力を LOW (オフ) に設定する digitalWrite(PIN_LED, LOW); delay(100); // 以下謎のリズムでオンオフする digitalWrite(PIN_LED, HIGH); delay(100); digitalWrite(PIN_LED, LOW); delay(100); digitalWrite(PIN_LED, HIGH); delay(100); digitalWrite(PIN_LED, LOW); delay(100); digitalWrite(PIN_LED, HIGH); delay(500); digitalWrite(PIN_LED, LOW); delay(300); } |
Arduino を接続する
USB で接続すると、Linux では /dev/ttyACM0 のようなデバイスが生えます。 (Windows や OS X は…わかりません!)
コンパイルして書きこむ
プロジェクトディレクトリ内で、build でコンパイルし、upload でボードに書きこみます。 (--board-model はデフォルトで uno になるかと思いますが、念のため指定しておきます。
1 2 |
$ ano build --board-model uno $ ano upload --board-model uno |
arturo が上手くデバイスを検出できない時は、デバイスをオプションで指定します。
1 2 |
$ ano build --board-model uno $ ano upload --board-model uno --serial-port /dev/ttyACM1 |
動作確認
こいつが チカチカチカチカーッ といった感じで光れば、成功です!
互換ボードでは、場所が違うかもしれません。
入手方法など
だいたいアマゾンで購入できます。 リンクを示すので、参考にしてください。
Arduino Uno R3
http://amazon.jp/dp/B0044X2E5S
LED やセンサーなどがセットにされたキットもあります。 → http://amazon.jp/dp/B008PQEWIW また、互換品というのもあるのでもっと安くあげたいときは、探してみると色々出てきます。 Arduino はオープンソースなので、特別怪しいブツではないはずです。
A-B タイプの USB ケーブル
Arduino UNO R3 は、USB 接続ですがタイプ B のジャックを使っているので、A-B タイプの USB ケーブルが必要です。 Arduino のパッケージによっては、付属しているかもしれません。