「オープンソース」を使ってみよう (第18回 ADK編) 日本Androidの会神戸支部

No Comments
このエントリーをはてなブックマークに追加

————————————
日本Androidの会神戸支部
吉田 研一
————————————

■はじめに
こんにちは吉田@ECCコン専です。今回はADKの紹介を行います。その後「イチか
らはじめるADK」の手順を示します。対象は、Hello Worldを終えた程度のAndroid
開発初心者です。わからないことがありましたら、気軽に日本Androidの会神戸支部
メーリングリストにご質問ください。

最近Android界隈ではADKが少なからず話題になっています。
ADKを用いれば、LEDやスイッチ、各種センサ、サーボモータ、DCモータなどをつ
なげたマイコンやFPGAなどのハードウェアとAndroidがUSBケーブルで繋がり、さ
まざまなガジェットをスマートフォン経由で制御できます。

Androidはクラウド連携が得意ですので、ADKを活用すれば「ハードウェア+ス
マートフォン+クラウド」の3つが連携した「ものづくり」がオープンソースで
実現できることになります。


図1 イチからはじめるADK実体配線図

近年、IoT(Internet Of Things)と言われるキーワードで「現実の世界(モノ)
とインターネットをつなぐ」という概念が認知されつつあります。新しい「もの
づくり」の世界です。IoTの流行でADKは重要な実現手法になるのではないかとい
う期待が広がっています。



■ADKとは?
ADKは「Android Open Accessory Development Kit」のことを指します。
Android 2.3.4とAndroid 3.1以降に追加された周辺機器用のAPIを利用するため
のソフトウェアやドキュメント、ADKの動作を試すことができる基板を合わせて
ADKと表現します。

ADKの動作を試すことができる基板はAccessory Demo Kitと呼ばれていて、こち
らも略すとADKになります。同語反復的な表現になり紛らわしく、またハード
ウェア&電子工作の敷居の高さも手伝ってADKをわかりにくくさせている要因か
もしれません。



■Arduinoの入手
Androidと接続するマイコンボードはArduino(アルドゥィーノ)を選びたいと思
います。オープンハードウェアとして回路図が公開されており情報が豊富です。
世界中のMakerと呼ばれるモノづくり愛好者やアーティストが好んで使っていま
す。

ここでは、最も入手しやすいArduinoボードの「Arduino Uno」(アルドゥィー
ノ・ウーノ)を選ぶことにします。電子工作が初めてだと言う人は、スイッチサ
イエンスが出している「Arduinoはじめようキット」の購入をおすすめします。
アマゾンでも取り扱っており、Arduino Unoとブレッドボード、ケーブル、抵抗
などの部品が同梱されています。


図2 「Arduino Uno」ボード

またUSBホスト用の拡張ボードを装着する必要があります。
SparkFun USB Host Shield(以下USBホストシールド)はアメリカのSparkFun社
のシールド基板です。「シールド」はArduinoの専門用語で、様々な機能を追加
する拡張ボードの事です。


図3 「USBホストシールド」

SparkFun USB Host Shieldは、ピンソケットのハンダ付けが必要です。
Freaks社の「Freaks USB Host Shield – Support ADK」ならばハンダ付け不要です。

パソコンと接続するUSBケーブル(Aタイプオス―Bタイプオス)も必要になりま
す。プリンタなどと接続するUSBケーブルで100円ショップでも手に入ります。

注:国内でもArduinoのオープンハードウェアの良さを生かしたArduino互換ADK
  対応ボード「Harpy」シリーズが発売されています。手に入れてすぐにADKが
  できるので(ハンダづけ不要)、こちらもおススメです。



■Arduino 1.0のインストール(Windows 7を対象)
ArduinoにはWindows/Mac/Linuxに対応したIDEがあります。最新安定版(英語版)
の入手はArduinoダウンロードサイトにアクセスしてください。
「Download」の欄からArduino 1.0の「Windows」をクリックしダウンロードします。
注:Arduino 1.0のソースコードはgithubから入手できます。


図4 Arduinoダウンロードサイトで最新のWindows版を入手する

ダウンロードしたZIPファイルを解凍したら「arduino-1.0」フォルダを開いて、
「arduino.exe」をダブルクリックし起動します。使いやすいように
「arduino.exe」のショートカットを作りデスクトップなどに置くといいでしょう。


図5 「arduino-1.0」フォルダ内「arduino.exe」を起動しプロトタイピング開発



■Yaoadk
(ADK/MicroBridgeのためのArduinoライブラリ集)の入手

GoogleのADKサンプルソース「Demokit」は2011年5月にリリースされたままで
Arduino側のバージョンアップに対応していません。そのままGoogleのADKサンプ
ルを使うとArduino 1.0では動きません。
そのため、Android ADK勉強会(東京)が作成したYaoadkライブラリを使うこと
にします。Android ADK勉強会(東京)のgithubサイトにアクセスします。
「ZIP」のボタンをクリックしてダウンロードします。


図6 Yaoadkライブラリ集をZIPファイルでダウンロード

ZIPファイルを解凍すると、以下のようにArduinoライブラリのフォルダが並びま
す。すべてのフォルダを選んでコピーしてください。

  
図7 Arduinoライブラリのフォルダ

パソコンに配置した「arduino-1.0」フォルダ(ここではC:ドライブ直下)の
中にある「Libraries」フォルダに貼り付けてください。コピーが完了したら
「Libraries」フォルダを閉じて、Arduino 1.0を起動してください。


図8 「C:\Arduino-1.0\Libraries」フォルダ



■サンプルソースの入手
「ADKをはじめよう〜GettingStartedADK」のgithubサイトからサンプルソースを
入手します。「ZIP」のボタンをクリックしてダウンロードします。


図9 GettingStartedADKサンプルソースをZIPファイルでダウンロード

ZIPファイルを解凍すると以下のようなフォルダ構成になります。以下の2つの
フォルダを使います。
・Androidプロジェクト
(1)「AdkDaioProj」フォルダをEclipseからインポートしておきます。
・Arduinoスケッチ(ソースコードのこと)
(2)「firm_Arduino0100」フォルダ内の「AdkDaio」フォルダをマイドキュメ
ントの「Arduino」フォルダへ移動してください。


図10 GettingStartedADKサンプルソースのフォルダ構成

Arduino.exeを起動してメニュー「File」―「Open…」から「AdkDaio.ino」を
選びスケッチを開きます。


図11 AdkDaio.inoスケッチを開いてコンパイル&アップロード

ADKでデジタル・アナログ入出力を行うスケッチが開きます。
メニュー「File」―「Upload」を行ってください。スケッチをコンパイル
した後、接続されたArduino Unoにプログラムがアップロードされます。
Arduino言語については「Arduino日本語リファレンス」をご覧ください。



■電子部品をブレッドボードで接続
4つの電子部品を使ってデジタルとアナログの入力・出力を行います。この4種
類のやりとりができれば様々な電子部品とAndroidとのやり取りが可能になります。

まずは、以下の部品リストに従って電子部品を入手してください。
パーツは複数個をセットにして販売される場合があります。個々のパーツを注文
すると必要以上のパーツが手元に余ることになります。

電子工作が初めてだと言う人は、「■Arduinoの入手」でも紹介したスイッチサ
イエンスの「Arduinoはじめようキット」の購入をおすすめします
(Arduino Unoと表1の部品が必要な個数分だけ入っています)。

▼表1 パーツの入手一覧(品番は秋月電子通商)

電子部品(パーツ)  品番  価格  必要な個数 
ブレッドボード  P-00315   250円   1個 
ジャンパーワイヤ・セット(固い)  P-00288   300円   1セット 
ジャンパーコード・セット(柔らかい)  C-05159   200円   1セット 
LED(赤色)  I-1317   200円(10個入り)   1個 
LED(青色)  I-01321   400円(10個入り)   1個 
タクトスイッチ  P-03647   10円   1個 
CdSセル  I-00247   150円   1個 
抵抗(1kΩ:カラーコード茶黒赤金)  R-25102   100円(100個入り)   2個 
抵抗(10kΩ:カラーコード茶黒橙金)  R-25103   100円(100個入り)   2個 

秋月電子通商 【URL】 http://akizukidenshi.com/ (いずれも税込・2012年2月時点)

次に、ブレッドボード上に接続する電子部品の接続場所を示します。ブレッド
ボードはハンダ付け不要(ソルダレス)の基板で手軽に電子回路を構成できます。
【ブレッドボード上の接続】
1.黄色のジャンパーワイヤをa2と(+)へ
2.CdSセル(光センサ)をe2とe4 へ
3.抵抗10kΩをc4とc8へ
4.オレンジのジャンパーワイヤをa8と(-)へ
5.黄色のジャンパーワイヤをa9と(+)へ
6.タクトスイッチをe9, e11, f9, f11 へ
7.抵抗10kΩをc11とc15へ
8.オレンジのジャンパーワイヤをa15と(-)へ
9.オレンジのジャンパーワイヤをa16と(-)へ
10.青色LEDの短い足(カソード)をe16へ
11.青色LEDの長い足(アノード)をe18へ
12.抵抗1kΩをc18とc22へ
13.オレンジのジャンパーワイヤをa23と(-)へ
14.赤色LEDの短い足(カソード)をe23へ
15.赤色LEDの長い足(アノード)をe25へ
16.抵抗1kΩをc25とc29へ


図12 ブレッドボード実体配線図

ブレッドボードとArduino Uno + USBホストシールドとの接続は柔かいジャン
パーコードを使います。
【柔らかいジャンパーコードの接続】
1.緑色のジャンパーコードをa4とUSBホストシールドのA0番へ
2.緑色のジャンパーコードをa11とUSBホストシールドの4番へ
3.黄色いジャンパーコードをa22とUSBホストシールドの3番へ
4.黄色いジャンパーコードをa29とUSBホストシールドの2番へ
5.黒いジャンパーコードを(-)とUSBホストシールドのGNDピンへ
6.赤いジャンパーコードを(+)とUSBホストシールドの+5Vピンへ


図13 Arduino-ブレッドボード実体配線図       



■動作確認
Eclipseの「AdkDaioProj」プロジェクトをAndroid端末にアップロードしてください。
Android端末とArduino Uno + USBホストシールドに接続します。
Android端末側の画面で以下のような外部インテントのダイアログ画面が表示される
はずです。


図14 Arduinoからの外部インテントによるダイアログ

「OK」ボタンをクリックするとAndroidアプリ「AdkDaioProj」が起動し、
デジタル・アナログ入出力の動作が確認できます。


図15 AndroidアプリAdkDaioProj実行画面

以上でADKの接続ができました!色々な電子部品を使って新しい「ものづくり」
の世界にチャレンジしてください!


図16 イチからはじめるADK全体図

何か面白いガジェットやアート作品ができましたら、日本Androidの会神戸支部
メーリングリストに是非お知らせください。一緒にオープンソースカンファレ
ンスに出展しましょう!

Comments are closed.