Arduinoとは、(ハードウェアの)「Arduinoボード」、および(ソフトウェアの)「Arduino IDE」から構成されるシステムである。Arduinoボードは、AVRマイコン、入出力ポートを備えた基板であり、Arduino IDEはC言語風の「Arduino言語」によってプログラムを制作・コンパイル・デバッグ等し、それをArduinoボードに転送 等々するための「統合開発環境」と呼ばれる、PC上で作動させる一種のソフトウェアである。

また「Arduino」という名称は広義には、それらの開発・改良を行う一連のプロジェクトや、その結果生まれた会社、またその多くの開発者らによるコミュニティまでも指すことがある。

もともと2005年にイタリアで5人の人物によって、「もっとシンプルに、もっと安価に、技術者でない学生でもデジタルなものを作ることができるようにする」という目的を据えたプロジェクトとして「Arduinoプロジェクト」が立ち上がり、彼らが、きわめて安価で、テクノロジーには縁遠い人でも理解でき使えるほどシンプルで(simplicity)、オープンな ハードとソフトのまとまり、を生み出すことに成功し、それが人々に歓迎され、数年のうちに全世界に普及した。「Arduino IDE」の管理を行い開発コミュニティの窓口となる非営利団体Arduino Foundation、およびArduino関連品の販売の一元管理を行う営利団体Arduino Holdingが関わっている。

## 概要

Arduino はワンボードマイコンの一種であり、I/Oポートを備え、インタラクティブな(つまりセンサ類を追加して外界の物理的変化を感知させたり、アクチュエータを追加して外界に物理的な変化を起こさせることが可能な)装置として用いることができるものである。スタンドアローン型で(つまり、Arduino単体で、一度設定・作動させ始めたら他のコンピュータは一切無しに)作動させることもでき、また他のコンピュータと常時連携させ、そこで動くソフトウェア(例えば、Adobe Flash、Processing、Max/MSP、Pure Data、SuperCollider 等)をホスト役に設定して、それに従属しコントロールされる形などで用いることも可能なものである。

オープンソースハードウェアであり、オープンソースのごく簡単な規定を守りさえすれば誰でも自由に用いることができ、ハードウェア設計情報のEAGLEファイルは無料でネット上で公開されている。組み立て済みの基板を購入することもできるほか、誰でも(AVRのICや他の部品となる半導体素子やブレッドボードなどを電子部品店などで購入するなどして)自分自身の手で Arduinoのハードウェア を組み立てることもできる。Arduino が「オープンソースハードウェアという概念を広めるきっかけとなった」と評価する声もある。

Arduinoボードは入出力ポートの数、ボードの大きさなどが異なる様々なタイプが用意されており、それらの中から用途や好みに応じて選ぶことができる。

## 歴史

Arduinoを生みだすことになった「Arduinoプロジェクト」は2005年に北イタリアのイヴレーアという街でのen:Interaction Design Institute Ivrea (IDII)において始まった。当時、ロボットのデジタル制御装置の試作をするために学生が用いることが可能だったのは主にBASIC Stampであり、これは価格が当時$50ほどもし、これは(一般に、あまりお金を持っていないことが多い)学生たちにとっては相当な経済的負担だと感じられていた。もっと安価な制御装置の出現が望まれていたのである。こうしたことを背景に、it:Massimo Banzi、David Cuartielles、Tom Igoe、Gianluca Martino、David Mellisという5人のグループが、「もっとシンプルに、もっと安価に、技術者でない学生でもデジタルなものを作ることができるようにする」という目的を据えた「Arduinoプロジェクト」を立ち上げた。この5人のグループが、当時 他者らによって検討されていた同様の目的の品々よりも、遥かに安価で簡単に使用できるものの開発に成功した。

Arduinoプロジェクトは2006年度のアルス・エレクトロニカ賞で名誉言及を受けた。

Arduinoボードは、2008年10月までに5万ユニット以上が販売され、その後も順調に普及が進み、2011年2月までに約15万台、2013年時点で約70万台(公式分のみ。加えて、非公式クローンが同数以上販売されていると予測されている)販売された。

Arduinoは「デジタル制御用のボード」というジャンルで、非常に安価で、(デジタル制御用ボードの中でも、極めて)シンプルで、消費電力が非常に小さく、こうしたボードの中では世界的に一番普及している。さらに「メイカームーブメント」(デジタルなモノの自作を推進する運動)が盛り上がるとともに、その便利なツールとして一層活用されるようになった。

2010年以降、「IoT」への注目が集まるにつれ、Arduinoはその入門用装置の定番としても扱われるようになっている。

なおプロジェクトの比較的初期から「Arduino」という商標の権利を持つと主張し その設計・製造・ソフト開発を行う組織は、4人が立ち上げたArduino LLC社 および Gianluca Martinoの立ち上げたArduin SRL社の2つに分裂し対立し(商標使用を巡り)訴訟が起きていたが、2016年に10月に両者の和解が正式に発表され、2社は統合し、「Arduino IDE」の管理を行い開発コミュニティの窓口となる非営利団体Arduino Foundation、およびArduino関連品の販売の一元管理を行う営利団体Arduino Holding、という体制にする、とされ、全世界のユーザらから歓迎され (ユーザ心理、開発者心理的にも)よりすっきりとした環境が整った。

### 名称の経緯

このプロジェクトを立ち上げたメンバーのひとりMassimo Banziが、いわゆる「いきつけ」にしていたバーの店名が「Bar di Re Arduino」(バー・ディ・レ・アルドゥイーノ =「アルドゥイーノ王のバー」)であったので、その店に敬意を表しつつ、プロジェクト名や製品名に「Arduino」という名を使わせてもらうことにした。Re Arduino(アルドゥイーノ王)は「アルドゥイーノ・ディヴレーア」(意味的には「イヴレーアのアルデゥイーノ」という呼び方)でも呼ばれ、西暦1002年にイヴレーアの王になり神聖ローマ帝国のハインリッヒ二世と闘った人物であり(よって、この街の人々には知られている王であり)、このパブはこの王に敬意を払うためにその名を冠していたわけである。なおイヴレーアには「via Arduino アルドゥイーノ通り」という名の(石畳の)道もあり、このバーは、この道を下方に下り終えたあたり(その後に「Via E. Guarnotta」と名前が変更された区間に入ったあたり、街を流れるドラ・バルテア川(it:Dora Baltea)へと近づいたあたり)に ある/あった。

## ハードウェア

Arduino 基板上には、Atmel AVR マイクロコントローラ(ATmega8, ATmega168, ATmega328P, ATMega644P, ATmega1280, SAM3X)を中心とした回路がある。少なくとも5Vシリーズレギュレータと8MHzもしくは16MHzもしくは84MHzの水晶振動子(またはセラミック発振子)が含まれる。マイクロコントローラにはブートローダが事前にプログラムされている。
概念レベルでは、RS-232シリアル接続でプログラムされるが、ハードウェアの実装はバージョンによって異なる。シリアルArduino基板には、RS-232レベルの信号をTTLレベルの信号に変換する単純な回路が含まれる。Arduinoのほとんどの現行モデルはUSB経由でプログラムされるため、USB-to-serial アダプタチップ(FTDI FT232RLなど)が表面実装され、USB BタイプかミニBタイプの端子が付いている。Arduino Mini や非公式の Boarduino といった基板では、ホストコンピューターとの接続を基板外の USB-to-serial アダプタやケーブルに任せている。

Arduino 基板はマイクロコントローラーのI/Oピンのほとんどを他の回路で使えるようにそのまま開放している。Arduinoの主要モデル(現在はUno)では、14本のデジタルI/Oピンが利用可能で、そのうち6本はパルス幅変調信号を生成でき、他に6本のアナログ入力(デジタルI/Oピンとしても使用可能)がある。これらのピンは基板の一方の端にあるコネクターに集約されている。ここに接続するシールドと呼ばれる応用基板も発売されている。

Arduino Duemilanoveの後継機、Arduino UnoではFTDI製のUSB-シリアル変換ICを使わずに、USBインタフェースを装備したAVRマイコンを搭載し、このマイコンにプログラムすることで様々なUSBデバイスとして動作させることが出来るようになった。

### 公式のボード

オリジナルのArduinoハードウェアは Arudino SRL が製造している。

これまでに商用製品として製造されたArduinoハードウェアには、以下の物がある。

### シールド

Arduino の上に積み上げて使用するシールドが Arduino およびサードパーティーから発売されている。下記は Arduino から発売されている物。

下記は サードパーティー から発売されている物。

## ソフトウェア

Arduinoを動かすためのプログラムを「Sketch スケッチ」と言い、このスケッチを編集・転送するためのソフトウェア(統合開発環境)の代表がArduino IDEである。

### Sketch

Arduino上のプログラムはSketch(スケッチ、以下「スケッチ」と記載)と呼ばれる。C言語のような構文(シンタックス)のプログラミング言語である。もとはWiring(ワイアリング) から派生した言語であり、制限の多い基板向けに最適化されている。ファイル拡張子は .ino であり、テキストファイルとして保存される。

最小限のスケッチは、2つの特別な関数で構成する。

- `setup()` : 電源がオン、またはリセットした後、最初の一度だけ実行される関数。
- `loop()` : `setup()`関数が終了した後、繰り返し実行される関数。ボードの電源がオフ、またはリセットされるまで、ボードを制御し続ける。

入門者が典型的に試みる最初のスケッチは、単純にLEDを点滅させる「blink」というものである。
(ほとんどのArduinoボードには、最初から表面にLEDが実装され適切な抵抗器も組み込まれていて、追加部品一切無しでも即時 点灯可能なので、これを一番手軽な出力装置として入門者は利用する)。

### Arduino IDE

sketchの編集・転送用のプログラムであり、Arduinoの統合開発環境の代表格。エディター(編集画面)、コンパイラ、sketchの転送(ハードウェアへのファームウェア転送)機能などを含む。ソフトウェア開発に不慣れなユーザーでも容易にプログラミングできるよう設計されている。
そのために初期のバージョン1.xはクロスプラットフォームのJavaアプリケーションとして実装されていたクリエイティブ・コーディング環境のProcessingをベースにしており、IDEの見た目も非常に似通っていた。

バージョン2.0でJavaScriptを用いたWebベースのスタンドアロンアプリケーションとして再構築され、デバッガを用いたステップ実行や、クラウド上のスケッチ保存、読み込みに対応するなど機能も大幅にアップデートされた。

内部ではC言語のコンパイラGCCやアップロードプログラムavrdudeが使用されている。

### PlatformIO

PlatformIOは、主にPlatformIO Labs社が開発するオープンソースのマイクロコントローラの統合開発環境で、Visual Studio Codeの拡張機能として提供される。Arduinoに使用されるAVR単体の開発にも使える高機能な環境だが、Visual Studio Codeを日常的に使っている人にとっては同じ環境の開発ができるので、Arduinoの開発に用いるユーザーも多い。

### Firmataによる制御

FirmataはMIDIをベースにした、マイクロコントローラをシリアル通信経由(もっぱらUSBを介する)で制御するための汎用プロトコルである。このプロトコルを使用するためのスケッチはサンプルとしてArduino IDEに付属しているため、一度書き込みをした後は、Firmataに対応する環境を使うことでArduino IDEを使わずにインタラクティブにIO制御をすることができる。ただし、スタンドアロンでArduinoを使用できなくなるため、ラップトップやデスクトップPCから手軽に電子部品の制御するといった用途に適している。

Firmataに対応した環境としては、Processing のFirmataライブラリや、音声信号処理を得意とするビジュアルプログラミング環境Cycling' 74 MaxでのMaxuinoや、Pure Data(Pd)におけるPduinoのような例がある。

MaxuinoやPduinoを使用すると、画面上にグラフィックとしてArduinoのデジタルポートやアナログ入力ポートが表示され、GUIによって各ポートのデータの流れをプログラムできる。非常に簡易にフィジカル・コンピューティングが実現できるため、映像・音楽方面のアーティストによって利用されている。

## オープンハードウェアとオープンソース

Arduino のハードウェア設計は Creative Commons Attribution Share-Alike 2.5 ライセンスで提供されており、Arduino のWebサイトで入手可能である。レイアウトなどの情報もいくつかのバージョンのものが公開されている。統合開発環境のソースコードと基板上のライブラリはGPL v2ライセンスで提供されている。

### 名称の制限

ハードウェア設計もソフトウェアもコピーレフトライセンスで提供されているが、開発者は 「Arduino」 という名称が商標の普通名称化となることを避けたいと考えており、許諾無く派生製品に使うことを禁じている。Arduino という名称の使用に関する公式方針文書では、プロジェクトが第三者による作業結果を公式な製品に組み入れることについてオープンであることを強調している。

### 互換機

ハードウェア設計もソフトウェア製品もオープンソースであるため、他の設計者・製造業者も互換機製品をリリースしている。なお、前述の名称問題のため「Arduino」という名前は使っていない。公式のウィキサイトArduino Playgroundには、互換機の情報を掲載する場が設けられている。

### Arduino AtHeart

Arduino AtHeart プログラムに参加し、売上の5%以下を支払うことで、互換機として紹介され、Arduino IDE のサポートをうけられる。現状、AVR の ATMega328, ATMega1280, ATMega2560, ATMega32U4, SAM3X を利用していることが条件。

### Arduino Certified

Arduino Certified として、公式の認証を受けた Arduino 商品として、Intel Galileo や Intel Edison があり、Arduino IDE でもサポートされている。AVR 以外の CPU でも認証を受けられる。

### 非認可の互換機

Arduino IDE の hardware フォルダ内の boards.txt を書き換えることで、対応するマイコンボードを増やすことが出来る。このような例にアーテックの Studuino などがある。

### 非公式クローン

正確には把握されていないが、公式ボードの非公式クローンの販売台数は公式分よりも多いと予想されており、中国などの製造会社が安価な商品を生産している。

## Arduino as ISP

Arduino を使い、Atmel AVR のマイクロコントローラに、Arduino IDE で書いたプログラムを転送することが出来る。まず、Arduino ボード自体に、「ArduinoISP」プログラムを「スケッチの例」から選んで転送し、Arduino ボードと AVR マイクロコントローラを適切に配線し、ArduinoIDE の書き込み装置の設定を「Arduino as ISP」にすることで転送が出来る。Arduino で使われている ATmega328 などのマイクロコントローラだけでなく、AVR の ATtiny などのより安価で小型のマイクロコントローラにも転送できる。

## 開発企業

設計はアメリカの企業 Arduino, LLC が行っている。会社の創業者は、Massimo Banzi、David Cuartielles、Tom Igoe、David Mellis。

生産はイタリアの企業 Arduino S.R.L. が行っていた。Arduino S.R.L. の創業者は Gianluca Martino。2015年1月23日にArduinoの権利を巡り Arduino, LLC. と Arduino S.R.L. の間で裁判が発生した。

## 入手

国内正規販売代理店が2008年に大幅に増え、入手性は大幅に改善された。Megaの発売日の2009年3月26日には、日本を含め、はじめて世界同時発売となった。