Arduinoとは
Arduinoとは、2005年にイタリアの芸術大学の学生が利用するために開発されたマイコンボードです。工学部の学生でなくとも、温度を計測したり、モーターを駆動させることなどが比較的簡単にできるように工夫されています。マイコンボードには、ATMEL社が製造するマイコンATmega328 / ATmega2560 / ARM系マイコンなどが利用されています。通常のマイコンは製造メーカーが発行するデータシートをよく読んで、レジスタ構造を頭に入れつつプログラムを書く作業が必要ですが、Arduinoは不要です。既に用意されたライブラリ上にプログラムを作るだけで済むため、製品の価値を高めるための作業に集中することができます。
Arduinoはオープンソースハードウェアでもあります。オープンソースハードウェアとは、設計者の著作権は認めつつ、回路図やパターン図を公開してしまうという、オープンソース・ソフトウェアのハードウェア版です。すなわち、電子工作物に共通する課題やハードウェアを一般化し、モジュール化することで設計者は更に高い次元の価値を追い求めることができる環境を全世界で協力して作り出す文化です。Arduino以前は「環境センサと接続してその結果をサーバに伝送する」など、聞いただけでハード・ソフトウェアともにシンドイ気持ちになったものです。しかしながら、今は違います。
Arduinoが創りだした世界へようこそ
TEDで紹介されたArduino(YouTubeサイトでの再生では字幕モード有り)
Arduinoの特徴
Arduinoの特徴を以下に挙げます。
素早い試作
オープンソースハードウェア
独自基板化への道
ハードウェア・ソフトウェア面における豊富なセンサーやアクチュエータへの対応
世界規模のユーザーコミュニティに支えられた豊富なライブラリ
Arduinoの開発環境の構築
Arduinoの開発環境はArduino IDEと呼ばれ、ここからダウンロード可能です。Windowsでは、ダウンロード後に適当なフォルダに解凍(展開)すれば、フォルダ内のarduino.exeをダブルクリックすることでArduino IDEを起動できます。
Arduinoの基本的なプログラム構造
Arduinoで利用可能なプログラミング言語はC/C++です。通常のC言語プログラムはパソコン等の計算機で動作することを想定しているため、組み込みシステムには適しません。Arduinoは、これを少し工夫して初心者でも分かりやすい構造になっています。なお、Arduinoではプログラムのことをスケッチと呼びます。プログラミングは絵を描く行為のようにあるべきだという思いが込められている気がします。
最小限のスケッチを以下に示します。
このスケッチは”何もしない"動作を実行します。
ここで、setup()関数は起動直後に1度だけ実行されます。
これを利用して、例えば通信の設定などを記述します。
一方のloop()関数には繰り返し実行する内容を書きます。
図 Arduinoの何もしないスケッチ(Mac OSXでのスクリーンショット)
これではつまらないので、LEDを光らせましょう。
このスケッチはポートの3にLED(電流を制限する抵抗は必要)を1000 ms毎にON-OFFを繰り返します。
ここで、delay()関数は指定した時間[ms]だけ何もせずにただ待つという関数です。
図 ポート3に接続されたLEDを点滅させるスケッチ(Mac OSXでのスクリーンショット)
どうせなら、LEDの点灯状況をパソコンに知らせましょう。
このスケッチは点灯状況をシリアル通信で出力しています。
Arduino UNOやArduino megaであれば、ターミナルに文字が表示されます。
図 LEDの点灯状況をシリアル通信でパソコンへ送信するスケッチ(Mac OSXでのスクリーンショット)
どうでしょうか?
H8マイコンやPICマイコンで挫折した方もArduinoなら使えそうではないでしょうか?
ユーザーコミュニティに支えられるオープンソースハードウェアという経済システム
Arduinoはオープンソースハードウェアと説明しました。オープンソースハードウェアは回路図や製造に必要なパターン図が公開されます。では、製造メーカーや設計者はどのようにして生計を立てているのでしょうか?基本的にハードウェアを自前で用意するにはある程度の投資が必要です。したがって、その壁が個人の購入者の消費行動を支えています。一方で事業者はというと、礼儀作法としてハードウェアの使用料を僅かでも開発者へ還元しているのです。
Arduinoの世界では、オープンソース・ハードウェア・ソフトウェアという文化によって、あらゆる基本的な工作が素早く行えます。それによってユーザーが増え、そのユーザーがライブラリを提供し、またユーザーが増えるという好循環が生じています。この動きによりコミュニティが生まれ、Arduino経済を支えています。
参考文献
Arduinoを始めよう, Amazon
みんなのArduino入門, Amazon
Arduinoで計る,測る,量る, Amazon
XBeeで作るワイヤレスセンサーネットワーク, Amazon
【オープンハードの今】着手までの手間を減らし、ハードの試作を容易に, 日経エレクトロニクス
【次代の基盤】もっと小さく、もっと簡単に、余白を作って発想を促す, 日経エレクトロニクス
【総論】未踏のロングテール領域に、誰でも使えるキットを整備, 日経エレクトロニクス
第1回 大手半導体メーカーが“あなた”に注目, 日経エレクトロニクス
ソーシャル化するハードウェア開発,RSオンライン
他の組み込みシステムの紹介
最近流行りのマイコンボードを以下に紹介します。
mbed
mbedは2009年にリリースされたARM系のマイコンボードです。その特徴は、ソフトウェアの開発環境が完全にWEB上で完結していることと、ユーザー同士のコミュニティの形成を前提にしていることです。https://mbed.org/へアクセスしてみてください。ブラウザ上でプログラムの開発が可能です。また、情報が豊富に集まることと、質問に対して素早い返事が得られる(するのもマナー)という特徴があります。
Raspberry Pi
ソフトウェア技術者から組み込みシステムに入る際の入門機としては最適なチョイスです。Linux OSが搭載されており、Pythonスクリプトによりハードウェアを制御可能です。PICやAVRなどの小さなマイコンから入った組込み技術者や、FPGA技術者に対するLinux組み込みボードの入門としても向いています。OSのイメージファイルには幾つもの種類が存在しており、カスタマイズも簡単です。日本では特にRSコンポーネンツでの購入が便利です。
Intel Gallileo
2014年にリリースされた、CPUメーカーのIntelが開発したマイコンボードです。x86アーキテクチャのCPU上でLinux OSが動作します。2014年6月現在ではまだまだ洗練されていません。