Arduino
Arduino（アルデュイーノ もしくは アルドゥイーノ）とは、AVRマイコン、入出力ポートを備えた基板、C言語風のArduino言語とそれの統合開発環境から構成されるシステム。Arduino LLC および Arduin SRL が設計・製造を行い、登録商標を持っている。
Arduino はスタンドアローン型のインタラクティブデバイス開発だけでなく、ホストコンピュータ上のソフトウェア（例えば、Adobe Flash、Processing、Max/MSP、Pure Data、SuperCollider）で制御することもできるワンボードマイコンの一種。オープンソースハードウェアであり、ハードウェア設計情報のファイルは無料で公開されている。組み立て済みの基板を購入することもできるほか、誰でも自分の手で Arduino を組み立てることができる。Arduino が「オープンソースハードウェアという概念を広めるきっかけとなった」と評価する声もある。
Arduinoプロジェクトは2005年にイタリアで始まり、当時入手可能だった他の学生向けのロボット製造用コントロールデバイスよりも安価なプロトタイピング・システムを製造することを目的にスタートした。設計グループは多くの競合製品よりも遥かに安価で簡単に使用できるプラットフォームの開発に成功した。Arduinoボードは、2008年10月までに5万ユニット以上が、2011年2月で約15万台、2013年で約70万台（公式分のみ。加えて、非公式クローンが同数以上販売されていると予測されている）販売されている。Arduinoプロジェクトは2006年度のアルス・エレクトロニカ賞で名誉言及を受けている。
2010年以降、入門用IoT機器の定番として扱われるようになり、世界的な人気度ではRaspberry Piと双璧を成している。
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の統合開発環境はクロスプラットフォームのJavaアプリケーションであり、エディター、コンパイラー、基板へのファームウェア転送機能などを含む。その内部ではC言語のコンパイラーgccやアップロードプログラムが使用されている。
開発環境は Processing ベースで、ソフトウェア開発に不慣れなアーティストでも容易にプログラミングできるよう設計されている。プログラミング言語は から派生したもので、C言語風の構文で制限の多い基板向けに最適化されている。Arduinoではプログラムをスケッチと呼ぶ。
典型的な最初のスケッチは、単純にLEDを点滅させる"blink"というものである。Arduino言語では、ユーザーはこのように記述するだけでよい。
上記のスケッチはgccコンパイラに直接には正しいソースコードとして認識されないが、ユーザーがArduino開発環境で "マイコンボードに書き込む" ボタンを押した際に必要な修正が施されたコードに変換されて一時ファイルに自動的に書き込まれる。
"WProgram.h"はWiringライブラリの主要ヘッダーファイルで、main()関数は3つの関数、init()、setup()、loop()を呼び出す。init()関数はWiringライブラリで定義されているもので、setup()関数とloop()関数はユーザがスケッチで定義したものである。上述スケッチに先頭の#includeと末尾のmain()関数が追加された一時ファイルがgccによってコンパイルされ、hexファイルが作成される。リセット信号がトリガーとなって、ホストコンピュータのアップローダavrdudeとarduinoのマイクロコントローラに事前にプログラムされているブートローダが通信を開始し、hexファイルのアップロードが実行される。
Arduino IDEを使用せずにgccを使用して直接hexファイルを作成し、avrdudeを手動で使用してhexファイルをアップロードすることもできる。日本で作成されたavrdude用のGUIプログラムがあり、これを使用することでアップロード作業が容易に行えるようになっている。
Pduinoとは、ビジュアルプログラミング言語Pure Data(Pd)をもとに開発されたArduino IDE相当の開発環境である。ホストPC側でMaxまたはPure Data(Pd)を使用し、Arduinoの開発にPduinoを使用することで、一貫したビジュアルプログラミング環境が提供される。画面上にグラフィックとしてArduinoのデジタルポートやアナログ入力ポートが表示され、GUIによって各ポートのデータの流れをプログラムする。非常に簡易にフィジカル・コンピューティングが実現できるため、映像・音楽方面のアーティストによって利用されている。
オリジナルのArduinoハードウェアは Arudino SRL が製造している。
これまでに商用製品として製造されたArduinoハードウェアには、以下の物がある。
以下は生産終了した物。
Arduino の上に積み上げて使用するシールドが Arduino およびサードパーティーから発売されている。下記は Arduino から発売されている物。
下記は サードパーティー から発売されている物。
Arduino のハードウェア設計は Creative Commons Attribution Share-Alike 2.5 ライセンスで提供されており、Arduino のWebサイトで入手可能である。レイアウトなどの情報もいくつかのバージョンのものが公開されている。統合開発環境のソースコードと基板上のライブラリはGPL v2ライセンスで提供されている。
ハードウェア設計もソフトウェアもコピーレフトライセンスで提供されているが、開発者は "Arduino" という名称が商標の普通名称化となることを避けたいと考えており、許諾無く派生製品に使うことを禁じている。Arduino という名称の使用に関する公式方針文書では、プロジェクトが第三者による作業結果を公式な製品に組み入れることについてオープンであることを強調している。
ハードウェア設計もソフトウェア製品もオープンソースであるため、他の設計者・製造業者も互換機製品をリリースしている。なお、前述の名称問題のため "Arduino" という名前は使っていない。公式のウィキサイトArduino Playgroundには、互換機の情報を掲載する場が設けられている。
Arduino AtHeart プログラムに参加し、売上の5%以下を支払うことで、互換機として紹介され、Arduino IDE のサポートをうけられる。現状、AVR の ATMega328, ATMega1280, ATMega2560, ATMega32U4, SAM3X を利用していることが条件。
Arduino Certified として、公式の認証を受けた Arduino 商品として、Intel Galileo や Intel Edison があり、Arduino IDE でもサポートされている。AVR 以外の CPU でも認証を受けられる。
Arduino IDE の hardware フォルダ内の boards.txt を書き換えることで、対応するマイコンボードを増やすことが出来る。このような例にアーテックの Studuino などがある。
正確には把握されていないが、公式ボードの非公式クローンの販売台数は公式分よりも多いと予想されており、中国などの製造会社が安価な商品を生産している。
Arduino を使い、Atmel AVR のマイクロコントローラに、Arduino IDE で書いたプログラムを転送することが出来る。まず、Arduino ボード自体に、"ArduinoISP" プログラムを "スケッチの例" から選んで転送し、Arduino ボードと AVR マイクロコントローラを適切に配線し、ArduinoIDE の書き込み装置の設定を "Arduino as ISP" にすることで転送が出来る。Arduino で使われている ATmega328 などのマイクロコントローラだけでなく、AVR の ATtiny などのより安価で小型のマイクロコントローラにも転送できる。
設計はアメリカの企業 Arduino, LLC が行っている。会社の創業者は、Massimo Banzi、David Cuartielles、、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日には、日本を含め、はじめて世界同時発売となった。