Arduinoとは
Arduino(アルドゥイーノ、またはアルデュイーノ)は、AVRマイコンを搭載した「Arduinoボード」と、それに対応するプログラミング環境である「Arduino IDE」から構成されるシステムです。Arduinoボードは、
入出力ポートを備えた
基板であり、
センサーや
アクチュエーターを接続して、外界の物理的な変化を感知したり、逆に変化を起こさせることができます。Arduino IDEは、
C言語に似た「Arduino言語」を用いてプログラムを作成、コンパイル、
デバッグし、それをArduinoボードに転送するための統合開発環境です。
広義には、Arduinoの開発・改良プロジェクト、その結果生まれた企業、そして多くの開発者からなるコミュニティ全体を指すこともあります。
Arduinoの歴史
Arduinoプロジェクトは、2005年に
イタリアのIDII(Interaction Design Institute Ivrea)で始まりました。当時、学生がロボットのデジタル制御装置を試作する際に使っていたBASIC Stampが高価だったため、もっと安価でシンプルな制御装置が求められていました。そこで、マッシモ・バンジ、デイビッド・クアルティエレス、トム・アイゴ、ジャンルカ・マルティーノ、デイビッド・メリスの5人が、「よりシンプルに、より安価に、技術者でない学生でもデジタルなものを作れるように」という目標を掲げてプロジェクトを立ち上げました。
彼らは、非常に安価で、技術に詳しくない人でも理解しやすく、オープンな
ハードウェアと
ソフトウェアの組み合わせを開発しました。その結果、Arduinoは世界中で急速に普及し、デジタルなモノづくりを促進する「メイカームーブメント」を支える重要なツールとなりました。また、IoTへの関心が高まるにつれて、Arduinoは入門用デバイスの定番としても広く認知されるようになりました。
2016年には、Arduinoの
商標を巡って対立していた2つの企業が
和解し、非営利団体のArduino Foundationが開発コミュニティの窓口を、営利団体のArduino Holdingが製品の販売を一元管理する体制となりました。
Arduinoの名称
Arduinoという名前は、プロジェクトメンバーの一人であるマッシモ・バンジがよく通っていたバー「Bar di Re Arduino」に由来します。このバーは、「アルドゥイーノ王のバー」という意味で、かつてイヴレーアの王であったアルドゥイーノ王に敬意を表して名付けられました。
Arduinoボードの中心には、Atmel AVR
マイクロコントローラーがあり、5Vレギュレーターと
水晶振動子が搭載されています。
マイクロコントローラーには、事前に
ブートローダーがプログラムされています。Arduinoボードは、USB経由でプログラムを転送できます。また、デジタルI/Oピンやアナログ入力ピンが用意されており、
センサーや
アクチュエーターを接続して様々な
電子工作を行うことができます。
Arduinoには、様々な種類のボードがあり、それぞれ
入出力ポートの数やボードのサイズが異なります。
目的に合わせて最適なボードを選ぶことができます。
公式ボードの種類
- - Arduino UNO R4 Minima / WiFi: 最新版で、Renesas RA4M1プロセッサを搭載しています。基本構成のMinimaとWi-Fiモジュール搭載のWiFiがあります。
- - Arduino UNO / R2 / R3: ATmega328プロセッサを搭載した定番モデルです。
- - Arduino Due: ARM Cortex-M3プロセッサを搭載した高性能モデルです。
- - Arduino Leonardo: ATmega32U4プロセッサを搭載した廉価版モデルです。
- - Arduino Mega 2560: ATmega2560プロセッサを搭載した高機能モデルです。
- - Arduino Micro: 小型版で、Arduino Leonardoと同等の機能を持ちます。
- - Arduino Mini: 非常に小型で、スケッチのアップロードにはUSBシリアル変換が必要です。
- - Arduino Nano: 小型でUSB Mini Type-Bを装備しています。
- - Arduino Ethernet: Arduino UNOにWiznet W5100を追加してイーサネット接続に対応しています。
- - LilyPad Arduino: ウェアラブル用途に特化した円形モデルです。
その他、多数の派生モデルが存在します。
Arduinoで動作するプログラムは「スケッチ」と呼ばれ、
C言語のような構文の
プログラミング言語で記述します。スケッチは、Arduino IDEで編集、コンパイル、Arduinoボードへの転送を行います。
スケッチは、最低限、以下の2つの関数で構成されます。
- - setup(): 電源投入時やリセット後に一度だけ実行される関数です。
- - loop(): setup()関数の後に、繰り返し実行される関数です。
Arduino IDE
Arduino IDEは、スケッチの編集、コンパイル、Arduinoボードへの転送を行うための統合開発環境です。初期バージョンは
Javaベースでしたが、バージョン2.0からは
JavaScriptを用いたWebベースのスタンドアロンアプリケーションとして再構築され、
デバッガやクラウド保存機能などが追加されました。
PlatformIO
PlatformIOは、
Visual Studio Codeの拡張機能として提供される、より高機能な統合開発環境です。Arduinoだけでなく、AVR単体の開発にも利用できます。
Firmata
Firmataは、
マイクロコントローラーをシリアル通信経由で制御するための汎用プロトコルです。Firmataに対応した環境を使用することで、Arduino IDEを使わずにインタラクティブにIO制御を行うことができます。
Arduinoの
ハードウェア設計は、Creative Commons Attribution Share-Alike 2.5
ライセンスで提供されており、誰でも自由に利用できます。また、
ソフトウェアもGPL v2
ライセンスで提供されており、ソースコードも公開されています。
ただし、「Arduino」という名称は
商標として保護されており、無許可での派生製品への使用は禁止されています。
互換機
Arduinoのオープンソース性により、多くの互換機が存在します。公式のArduino AtHeartプログラムに参加することで、互換機として紹介され、公式のArduino IDEのサポートを受けることができます。また、Arduino Certifiedプログラムでは、Intel GalileoやIntel Edisonなどの公式認証を受けた製品がサポートされています。
Arduino as ISP
Arduinoを使い、他のAVR
マイクロコントローラーにプログラムを転送することができます。この機能を使用することで、より小型で安価な
マイクロコントローラーも利用できます。
開発企業
Arduinoの設計はアメリカのArduino, LLC社が、生産は
イタリアのArduino S.R.L.社が行っていましたが、2016年に両社は統合されました。
入手
Arduinoボードは、国内外の正規販売代理店から入手可能です。また、互換機も広く流通しています。
まとめ
Arduinoは、オープンソースの
ハードウェアと
ソフトウェア、そして使いやすい開発環境により、
電子工作やプロトタイピングを身近なものにした画期的なシステムです。初心者からプロフェッショナルまで、幅広い層に利用され、ものづくりの世界を大きく変えました。