かんたんマイコン「Arduino」の始め方




 我々がブレッドボーディングで使うマイクロコントローラ(マイコン)はArduinoです。コンピュータの威力を手軽に自分の電子回路へ取り込むことができます。

 Arduinoの読み方をカタカナで表記すると「アルデュイーノ」が近いでしょう。でも、「ル」が発音しにくいので(本来は巻き舌で発音するようです)、「アーデュイーノ」と発音する人も多いようです。

 イタリア生まれのArduinoは、2008年10月の時点で5万枚が販売され、さらにユーザーを増やしています。オープンソースハードウェアとして、設計の情報はすべて公開されているので、互換機もたくさん存在します。ユーザーが部品を集めて自作することも可能です。そうした数を把握できないものまで含めると、5万台を優に超えるArduinoが世界のあちこちで使われているはずです。

 今回は、Arduinoの基本的なサンプルプログラムを実行するところまでを解説します。

 その前にどんなことができるのかを知りたい、という方は、週刊スタパトロニクスmobileの2本の記事「Arduinoでマイコンしよう!!」と「もっと使うゼ!! Arduino!!」を読んでみてください。

Arduinoの設計情報はクリエイティブ・コモンズ・ライセンスで提供されており、誰でも互換機を作ることができます(ただしArduinoという名称を付けて販売することは制限されています)。そのため、さまざまなデザインのArduinoが存在します。自分の用途や好みに合うArduinoが見つからなければ、自分で作るという手もあります

 まずは、Arduinoを1台手に入れるところからスタートしましょう。

 日本でも取り扱いショップが増え、気軽に購入できるようになりました。我々が把握している国内のショップは次のとおりです。(五十音順)

アールティー
共立電子
スイッチサイエンス
ストロベリーリナックス
メカロボショップ

 海外のおもな取扱店は次のとおりです。(アルファベット順)

Adafruit Industries
Fundamental Logic
Modern Device Company
NKC electronics
SparkFun Electronics

 これから、数あるArduinoから目的にあった1台を選ぶために押さえておきたいポイントを説明しますが、手っ取り早く無難な1台を買いたいと考えるなら、「Arduino Duemilanove」で決まりです。開発の中心人物たち(Arduino Teamと呼ばれます)が開発し製造している、現在のリファレンスモデルです。

現在、基準となっているArduinoは、Duemilanoveという名称です。イタリア語で2009という意味です。我々は「デュエミラノーベ」と読んでいますが、本当の発音は少し違うかもしれません。最初の1台をどれにするか迷ったら、これにしておくのが一番確実です

□Arduinoとその互換機の比較

参考価格 USB接続 ハンダ付け不要 8/16MHz IDE対応 ブレッドボード
Arduino Duemilanove 2,835円 16 ×
LilyPad Arduino 2,660円 × 8 ×
Arduino Nano 5,980円 16
Arduino Mini 3,880円 × 16
Arduino Pro 5V/16MHz 2,380円 × × 16 ×
Arduino Pro 3.3V/8MHz 2,380円 × × 8
Arduino Pro Mini 5V/16MHz 2,280円 × × 16 ×
Arduino Pro Mini 3.3V/8MHz 2,280円 × × 8
USB Boarduino Kit 3,800円 × 16
StickDuino 19.74ドル × 16
Bare Bones Board Kit 15.00ドル × × 16

 Arduino Duemilanoveと、その他のArduinoを比較するために表にまとめました。製品名に「Arduino」と入っているものは、Arduino Teamが製造またはライセンス供与したものです。それ以外のものはサードパーティによる互換機です。

 それでは、比較のポイントについて詳しく説明します。

・USB接続

 ArduinoはUSBでPCと接続して使います。しかし、USBインターフェイスを搭載していない機種があります。USBが必要になるのは、ソフトウェアを書き込むときや、PCとデータのやりとりするときだけなので、あえてインターフェイスを外付けにしている機種があるのです。そのほうがエコかもしれませんが、接続のミスに気付かず悩むことがあるので、最初の1台はUSBインターフェイスを搭載しているものがいいでしょう。

・ハンダ付け不要

 端子の部分に穴があいているだけのものがあります。その場合、ピンかソケットをハンダ付けして、ブレッドボード等と接続できるように手を加える必要があります。また、バラバラの部品として提供され、自分で組み立てて使うキット製品もあります。上の表で○がついているものはそうしたハンダ付け作業をせずに、届いてすぐ使用可能です。

・8/16MHz

 マイコンの動作スピードが8MHzのものと16MHzのものがあります。Arduinoは本来16MHzですが、回路の簡略化や省電力のため8MHzに設定されているものもあります。とくに8MHzである必要性を感じないならば、16MHz版にするほうがいいでしょう。

・IDE対応

 後でまた説明しますが、Arduino専用のソフトウェア開発環境をArduino IDEといいます。IDEが対応しているボードならば、メニューから選択するだけで使用可能です。上の表では、メニューに登録されていないボードに△がついています。その場合、ユーザーが適切にIDEを設定する必要があります。

・ブレッドボード

 ブレッドボードに載せられる形状のものと、載せにくい形状のものがあります。○がついているものは載せられるものですが、一部の製品は、ピンを自分でハンダ付けする必要があります。

お花の形の「LilyPad Arduino」。コンダクティブスレッドで布に縫いつけて使用することが前提になっています。2008年11月にリリースされた新版では、USB接続のピン形状が変更され、オートリセット機能に対応しました。オートリセット機能が有効になっていると、PC側からArduinoをリセットできるので、プログラムの書き込みや通信の初期化が自動的に行なわれるので便利です
高級機「Arduino Nano」。もっとも高密度な機種で、ブレッドボードに載せて使うときも場所をとりません
Arduino Proの前身となった、SparkfunのArduino互換機「Skinny」。基板の形状がArduino Duemilanoveなどの標準機と同じになっています。写真を見ると、ソケットが少し曲がっていますね。ハンダ付けに失敗しました
ニューヨークの電子工作キットメーカーAdafruitの「USB Boarduino」。ブレッドボーディングに最適です。キットなので、LEDやコンデンサなどを自分好みの色や形に変更することができます
USBポートに直接つないで使うことができるのが「StickDuino」の特徴です。カナダのメーカーFundamental Logicは、このほかにも面白い互換機を製造販売しています
ALTOIDSの小さいミント缶にちょうど入るStickDuino。出先でプログラムのチェックをしたいときに重宝しています
もっとも早い時期からArduino互換機を手がけているModern Deviceの「Bare Bones Board」。通称BBB。ピンの取り付け方を工夫するとブレッドボードに刺さります。キット価格は15ドル。このようにとても廉価なキットの存在はありがたいですね
これはArduinoではありません。USBインターフェイスを持っていないArduinoとPCを接続するときに使う、SparkFunのコンバータ「FTDI Basic」です。LilyPadやArduino PROシリーズを使うときは、こうしたインターフェイスが必要となります
ブレッドボード上でArduinoを自作することも可能です。秋月電子の「FT232RL USBシリアル変換モジュール」と、マイコン「ATmega168」を使用して作ってみました。これで8MHz版のArduinoとして動作します。ブレッドボードに直づけですから拡張が容易です。マイコンにブートローダというプログラムを書き込む際、専用の機器が必要となる点がネックなのですが、秋月のモジュールだけで書き込みまで行なうテクニックを公開している方もいます。「AkibarduinoのBootloaderの書き込み」というページがそれです

 さて、Arduinoを入手したら、次にするのはソフトウェアの準備です。

 Arduino IDEとUSBインターフェイス用のデバイスドライバをインストールする必要があります。

Arduino公式サイトの「Download the Arduino Software」から、最新版のIDEがダウンロードできます。Windows、Mac OS X、Linuxに対応するパッケージが用意されています。圧縮ファイル(.zip)を展開し、好みのフォルダに配置するだけでインストールは終了です

 Arduino IDEはPC上で動作するソフトウェアです。統合開発環境(Integrated Development Environment)を略してIDEです。このソフトを使って、Arduinoのプログラムを書き、できたプログラムをArduinoボードに転送します。

 Windowsユーザーの人は、IDEをインストールしたら、さっそくボードを接続してみましょう。USBケーブルを使ってPCのUSBポートにつなぎます。すると、デバイスドライバのインストールが始まります。

 Mac OS Xをお使いの人は、ケーブルを接続する前にdmgファイルからドライバをインストールします。

デバイスドライバはarduino-0012フォルダのdrivers/FTDI USB Driversに保存されています。インストール中にデバイスドライバの位置を指定する必要がある場合は、このフォルダを指定します。Mac OS X用のパッケージではここにdmgファイルがあります

 なお、OSごとのインストール手順については、公式サイトの「Guide to Getting Started with Arduino」で説明されています。

 USBで接続したらボードを見てみましょう。「PWR」という文字の横のLEDが点灯しているはずです(PWR LEDがないボードもあります)。USB対応のArduinoはUSBから給電されるので、電源を用意しなくても動作します。

 それではいよいよプログラムの実行です。

 IDEを起動してください。ウインドウが開いたら、「Blink」という「スケッチ」を呼び出します。スケッチはArduinoのプログラムのことです。

※Windows VistaではIDEが正常に起動しないケースがあるようです。次のページを参考にしてください。

・スタパブログ「Arduino IDEがVistaでも快適に

File→Sketchbookで、これまでに作成したスケッチがリストアップされます。File→Sketchbook→Examples→Digitalとメニューを辿り、Blinkを開いてください。Blinkは最初から用意されているサンプルの1つで、もっとも基本的な作例です(Example)。Arduinoの第一歩はここからスタートします。

 スケッチは人間が書いたり読んだりするためのもので、そのままArduinoボードでは実行できません。Arduino IDEが実行形式に変換し、ボードに書き込んではじめて動きます。

 実行できる形式に変換するために、ターゲットとなっているボードの種類をIDEに教える必要があります。

Tools→Boardで、使用するボードを指定します。このなかにあなたのボードがあればいいのですが、ない場合は互換性のあるボードの名前を選ぶことになります。Duemilanoveは最新版のため、まだこのリストに載っていません。1つ前のバージョンであるDiecimilaを選んでください。16MHzで動作する標準的な構成のボードは、Diecimilaを選択すれば動くことが多いと思います。8MHzで動作する互換ボードを使うときは、LilyPadやArduino Proとして設定すると動作する可能性が高いです

 もう1つの重要な設定項目がシリアルポートです。これが正しくないと、プログラムをボードに書き込むことができません。

 Arduinoボードは、物理的にはUSBで接続されていますが、OSからはシリアルポートとして見えます。どのシリアルポートに接続されているかをIDEに伝える手続きが必要です。

Tools→Serial Portで現在有効なポートがリストアップされます。Windowsの場合、一番数字の大きいポートがArduinoであることが多いのですが、OSの使用状況によりますので、確認してください。デバイスマネージャで「USB Serial Port」の項目をチェックしてください。「COM10」のようにポートの名前が表示されているはずです。USB Serial Port自体が見つからないときは、デバイスドライバかハードウェアの問題が考えられます
Mac OS Xでは写真のように表示されます。「/dev/cu.usbserial...」がArduinoです

 これで、準備がすべて整いました。

 「Upload to I/O Board」ボタンを押してください。ボード上のTXとRXがチカチカするはずです。USBを経由してプログラムが送り込まれている証拠です。このチカチカが終了すると、次は別のLEDが1秒周期でゆっくりチカチカするでしょう。はい、最初のスケッチが実行できました。

 なお、TX、RXそして最後にチカチカしたLEDの3つが揃っていないボードもあります。最後のLEDを我々は「13番のLED」と呼んでいますが、このLEDがないボードでは、自分でLEDを接続しないとBlinkスケッチはテストできません。注意してください。

このボタンを押したあと、わずかな時間をおいてボード上のRX/TX LEDが点滅します。その点滅が終わると、別のLEDがゆっくり点滅を始めます。IDE上でボタンを1つ押すだけでマイコンへの書き込みが完了する手軽さがArduinoの魅力です

 今回説明するべきことは以上ですべてのはずですが、作例が1つもないのは寂しいですね。7セグLEDをArduino Diecimilaに接続する例を掲載しておきます。

 次回はArduinoのスケッチ作成法を解説します。

こんなふうに、PC、Arduinoボード、ブレッドボードと並べてします。DiecimilaやDuemilanoveのようなソケットタイプのArduinoはジャンプワイアを使ってブレッドボードに接続することができます
7セグLEDは2桁の青色タイプを使用しました。電力はArduinoボードから供給します。第20回で作成した74シリーズICを使った7セグLED回路に比べるとシンプルです。複雑さがArduinoに吸収されたわけです
回路図です。Arduino側の端子は2〜9と10、11を使います。2つのトランジスタでスイッチングして、毎秒200回のスピードで1桁ずつ交互に点灯させます。いわゆるダイナミック点灯です
【動画】動作中のArduinoボードにPCからデータを送ることができます(その逆も可能です)。この機能を利用して、キーボードから入力した文字のASCIIコードを7セグLEDで表示しています。また、「<」か「>」を入力すると、7セグ表示が「回転」します。Arduinoによって、動的な7セグ遊びが可能になりました。このソースコードはこちらからダウンロードできます

バックナンバー

(2008年12月18日)


船田戦闘機、スタパ齋藤、上杉季明によるユニット。電子工作からバンド演奏までさまざまな活動を行なうが、各活動に共通するテーマは“電気が通ること”としている。電子部品・電子回路の玄人ではなく、それらに対して強い興味を抱いている。ブレッドボーダーズは、そんな立ち位置から電子部品・電子回路に触れていくプロジェクトである。


【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp ご質問に対して、個別にご回答はいたしません

Copyright (c) 2008 Impress Watch Corporation, an Impress Group company. All rights reserved.