Arduino入門

提供: omotenashi-mind
移動先: 案内検索

Arduinoとは

各種クラウドベンダーからはIoTプラットフォームが出揃い、Android Thingsの1.0がリリースされるなど、注目度の高いIoT。Raspberry Piをベースとした多くのキットも出ていて、学習も比較的簡単にできるようにはなっていますが、ここでは「Arduino」というマイコンボードを利用したセンサーの利用方法について触れていきます。

Arduinoおすすめポイント

Arduinoが良い点はいくつかありますが、個人的に一番感動したのは利用開始までの手軽さです。
Raspberry PiではOSイメージをSDカードに焼き、初期設定作業という儀式がまっていますが、Arduinoは電源を投入した瞬間からプログラムを実行することが可能です。

そして、何よりお財布に優しい。互換ボードが各社からだされていて、500円しないものも売られています。


(Amazonショップで2個セット1,300円程度で買いました。)

Aruduinoにできること・できないこと

Aruduinoはデジタルピンだけでなく、アナログピンもついています。(センサーからの入力電圧にもよりますが、)アナログセンサーからの入力もそのまま読み取ることができるので、かなり幅広いセンサーに対応します。
また、アナログピンからの出力電圧も調整できるので、LEDをフェードさせたりといった芸当も可能です。
(Raspberry PiでもPWMを利用した擬似的なアナログ出力は可能)

ただし、JavaやPythonなどの高級言語を動かしたり、マルチタスクで様々なアプリケーションを動かしたり、といった器用なことはできません。電源を投入したら、ただ素直に入力されたプログラムを実行してくれるシンプルなものとなっています。

ArduinoとRaspberry Piは簡単に繋げられるので、センサーはArduinoにまかせて、センサーから集めた情報をRaspberry PiからMQTTサーバに送る、あるいはIFTTTを利用して別サービスに連携する、といった活用も可能です。

Arduinoを動かしてみる

Arduinoを動作させるのは簡単です。単に、USBケーブルで電源に繋ぐだけです。試しにPCのUSBポートに繋いでみると、ボード上の「ON」と表記されたLEDが発光し、「L」と表記されたLEDが点滅を始めると思います。

Arduino000.jpg

これが、Arduinoに投入されたプログラムが正しく動作したことを表します。購入するボードにもよりますが、「L」の箇所のLEDを一定周期で点滅させる、というプログラムが初期出荷で投入されていると、このような動きにあります。
(初めて電源投入した際は、入力電圧が低すぎるのかと焦りました。。)

Arduinoにプログラムを流し込んで動作を変えてみる

電源投入し、Arduinoの動作が確認できたら、実際に自分で書いたプログラムで動作を変更してみましょう。
以下のサイトから、Arduinoにプログラムを書き込むためのツールが入手できます。

https://www.arduino.cc/en/Main/Software

ブラウザ上で利用するIDEとダウンロードして利用するIDEの2つのタイプが提供されていますが、ここではダウンロードタイプを利用します。

ダウンロードタイプのIDEをダンロードしてインストールすると、デスクトップ上にアイコンが作成されるので、それをクリックして起動します。
IDEを起動すると、以下のような画面が表示されます。

Arduino001.png

Arduinoは開発言語としてC/C++をベースとしています。「Sketch」と呼ばれるC/C++ベースのコードを投入すると、それを実行してくれる仕組みです。テンプレートとして、setup()およびloop()2つのファンクションが定義されていますが、プログラムの開始時にsetup()を呼び出し、その後、loop()を繰り返し呼びつづける、という流れとなっています。

試しに、「L」ランプの点滅がうるさいので、これを点灯させ続けるように書き換えたいと思います。
「L」ランプは、デジタルピンの番号13に連動しているオンボードのLEDとなります。なので、13番のピンから電圧を出力させれば、「L」ランプが光り続ける、ということになります。
実際に書いてみましょう。

void setup() {
  pinMode(13, OUTPUT);
  digitalWrite(13, HIGH);
}

 void loop() {  
}

pinMode関数で、指定した番号のピンを入力用として使うのか、出力用として使うかのモードを指定します。ここでは、13番ピンから電圧を出力するようしていています。さらに、digitalWrite関数で、13番ピンから実際に電圧を出力するため、 HIGH を指定しています。逆に電圧を0に戻したい場合はLOWを指定します。ここは、Raspberry PiのGPIOの考え方とまったく一緒です。

プログラムが書き終わったら、メニューアイコン上にある「→」のボタンをクリックすると、プログラムをコンパイルして、USB経由でArduinoに実行ファイルをアップロード・実行してくれます。「L」ランプが点滅をやめ、光り続けるようになったら、プログラムの書き換え場無事完了です。

このように、とても簡単にプログラムを書いてはアップロードして実機でテスト、といった流れで進められます。

まとめ

ある程度の前提知識は必要なものの、Arduinoは、このように手軽に利用が開始できるのが特徴です。温度計、気圧計あるいはモーションセンサーといった各種センサーを手軽に利用してみたい、などの用途であればArduinoを活用してみるのも良い方法だと思います。
ぜひ、試してみてください。

参考資料