Arduinoとは
ArduinoはIoTデバイスによく利用されているハードウェア、ソフトウェアで構成されるシステム。
Arduinoには、AVRマイコン、入出力ポートを備えた基板、C++風のArduino言語とそれの統合開発環境から構成されるシステム。Arduino LLC および Arduino SRL が設計・製造を行い、登録商標を持っている。
Arduinoはマイコンになります。パソコンとは違いOSなども持たない簡素なものです。 パソコンと同様にメモリや演算装置を持ちますが、具体的なIO装置はなく、 ピンと呼ばれる端子から入出力信号を受け渡します。
マイコンは通常、フラッシュメモリにプログラムをロードしてやり実行します。 そのため、パソコンを用意してソースプログラムをコンパイルして、 マイコンで実行できる形式に変換してやる必要があります。 また、プログラムのデバッグにもパソコンが必要になります。
また、そのプログラムをフラッシュに書き込むために、マイコンとパソコンを接続する装置が必要です。 整理しますと次のようなものを準備する必要があります。
準備するもの
- Arduinoマイコン(Arduino純正品または互換機)
- パソコン(windows, mac, linuxどれでも大丈夫)
- Arduino開発環境(Arduino IDE)
Arduino 基板
Arduino純正品は高い!Arduino互換機は1/10の値段で十分。
下記は、App Inventor IoT 実験するために購入した、インテルのBT内蔵Arduino 101, 一個5000円もするもの。純正品しか対応してないから。
インテルのArduino 101は同社のCurieという86系のCPUを搭載しています。このCPUに対応して、Arduinoは86系のCPUのコードをコンパイルできるような仕組みを導入しました。
Arduino IDE
Arduinoの統合開発環境はクロスプラットフォームのJavaアプリケーションであり、エディター、コンパイラー、基板へのファームウェア転送機能などを含む。その内部ではC言語のコンパイラーgccやアップロードプログラムavrdudeが使用されている。
開発環境は Processing ベースで、ソフトウェア開発に不慣れなアーティストでも容易にプログラミングできるよう設計されている。プログラミング言語は Wiring から派生したもので、C言語風の構文で制限の多い基板向けに最適化されている。Arduinoではプログラムをスケッチと呼ぶ。
図:Arduinoの統合開発環境
Arduino互換機
Arduinoはハードウェアの設計が公開されているオープンハードウェアです。そこで、多数の互換機が(主に中国で)開発・発売されています。
USBシリアル変換用チップがCH340Gを使われた場合が多い。別途ドライバー入れないと開発機から繋がらない可能性がある。
図:CH340Gを使用したArduino互換機
ESP8266またはその後継のESP32をマイコンとして使われたArduinoは、WiFi機能が内蔵のため、静かにブームになっている。
図:ESP8266ベースのWeMos D1 Mini
2015年夏、IEEE 802.11bとgが使えるESP8266をモジュールにし、日本でも使えるように技適マークの付いたESP-WROOM-02が約500円で発売されました。ESP8266はMIPSの32ビットCPUとIEEE 802.11bとg対応のRFコアを一つにしたデバイスです。