More Related Content Similar to Androidを利用した外部機器の制御 Similar to Androidを利用した外部機器の制御 (20) Androidを利用した外部機器の制御1. Androidを利用した
外部機器の制御
情報電子技術関連講習会
2013年3月25日 広島市工業技術センター
工学院大学 機械創造工学科
金丸 隆志
1
2. 目次
第一部:Androidの概要
Androidの歴史、Androidがオープンであるとはどういうことか
第二部:Androidでハードウェア制御(概要)
4つの手法を動画で紹介
第三部:Androidでハードウェア制御(詳細)
4つの手法を順に詳しく解説
第四部:応用事例
学生との共同研究である「Androidで操作するスマートカーテン」
「Androidと連携するスマート白杖」の紹介
2
4. Androidとは
2007年11月 Open Handset Alliance が発表したスマートフォン用OS
(Google, Qualcomm, T-Mobileなど)
Linuxベースのモバイル用オープンソースOS(電話帳などのアプリも含む)
スマートフォンだけではなく、タブレットなどにも適用範囲を広げている
最近では回路や外部機器との連携なども盛ん
4
5. Androidの歴史
2007.11 2008.10 2009.7 2010.10
Android SDK T-Mobile G1 HT-03A Galaxy Tab 2011.10
公開 発売(米国) 発売(日本) (SC-01C)発表 Samsung
スマート Android 1.x Android 2.x
Galaxy Nexus
発表
フォン
統合 Android 4.x
早期から日本では
コミュニティが発達 タブレット Android 3.x
2008.2 2011.1
完全解説Android Motorola
発売 XOOM 発表
2007.1
2008.7 2010.1 バージョン乱立
iPhone 発表 の傾向はある
iPhone 3G発表 iPad 発表
(米国)
(米国、日本) (日本は5月)
1.x
2013.2における
Android 4.x
バージョン毎のシェア
2.x
2008.9 (Android Developers)
日本Androidの会 5
発足 3.x
6. Androidがオープンであるとはどういうことか
Googleが提供するアプリケーション(非オープン)
Googleによるプロプライエタリなアプリケーション 一般に、”Android”と聞いてイメージする
機能はこの部分が多い
Gmail、Google Play、カレンダー、マップなど、
Googleのアカウントと連携するもの全て この部分を端末に乗せるには
Android CTS という互換性テストをパスし、
Googleによる認証を受けねばならない
これにより“Android 互換”を名乗ることができる
プロプライエタリなドライバ
(Wifi, Bluetooth, NFC, Graphics, etc…)
バイナリのみで提供される各種ドライバ(非オープン)
この部分のソースが全て提供されている(オープン)
(アセンブリ言語、C、C++、Java)
Android Open Source Project (AOSP)
により提供
ライセンスに基づけば自由に
改変して利用可能
KernelやLinux由来: GPL v2
Webkit: LGPL v2
※図はWikipediaより その他の大部分: Apache 2.0 6
7. オープンなAndroid(AOSP部)を利用した展開(1)
TOSHIBA dynabook AZ (2010.6)
ノートPCにAndroid2.2を搭載
(クラウドブック)
CTS認証を通していないので、
Googleアプリは非搭載
(当時はCTSはスマートフォン
専用だったため。
初めて非スマートフォンでCTSに
通ったのは2010.10サムスンの
タブレットSMT-i9100)
http://dynabook.com/pc/catalog/cloud/100621az/ そのため、現在は公式サイトに
「Android」の記載なし
「改変AOSP + 独自マーケット」という構成
(中国産の安価なタブレットも同様の構成が多い)
7
9. オープンなAndroid(AOSP部)を利用した展開(3)
Amazon Kindle Fire (2011.9)
amazonによる電子書籍
プロプライエタリなドライバ
Android 2.3ベースの、電子書籍用デバイス
CTS認証を受けていない
AOSP + amazon によるサービス(電子書籍)
Googleサービスを載せずに何故Androidを使うのか? ※図はWikipediaより
ハードウェア管理にAndroidの機能を使うことができる
(Wifi、電源管理、グラフィック管理etc)
9
10. オープンなAndroid(AOSP部)を利用した展開(4)
様々なデバイス
SII製電子辞書DF-X9000 (2012.11)
タッチ操作可能
電子書籍が読める
Wifiとブラウザでネットにつながる
http://www.sii.co.jp/cp/products/english/dfx9000/
Android 搭載腕時計 I’m Watch (2012.7)
スマートフォンとBluetoothで接続
メール、スケジュール、twitter、Facebookの通知
音楽が聴ける
回転ずしや居酒屋の
注文用タブレット
http://www.aska-t3.co.jp/product/emenu.html 10
11. オープンなAndroid(AOSP部)を利用した展開(5)
開発者用デバイス
もちろん、オープンなAOSP部だけで動作させることも可能
(主に開発者向け)
第三部で少し登場します
Atmark Techno社 Armadillo 500fx Pandaboard + 外部ディスプレイ
(Hanwha HM-TL7T)
11
13. Androidとハードウェアの連携
Android
LED
モータ
何らかの
仕組み
Androidとハードウェアを
外部センサ
連携するメリット
Androidの持つ機能が使える
• ネット接続機能
外部カメラ
• タッチパネル
• 傾きセンサ
• 音声認識
• 顔認識 ロボットなど
• 高い計算能力 13
16. ハードウェアを動かす様々な方法
カスタムAndroid:有線が多い
開発基板についているシリアルポートを使う
Androidを通常のPCのように使う(例:USBデバイス)
Bluetooth:無線
Androidとマイコン付きの回路とをBluetooth経由で通信
ADK:有線
Androidとマイコン付きの回路とをUSBアクセサリモードで有線接続
USB Host:有線
AndroidとデバイスをUSBホストモードで有線接続
カスタムAndroidと異なり、こちらは公式サポート
16
17. カスタムAndroidの例
まずは動画で「何ができるか」をざっとつかみます
RIC Android : 株式会社アールティ、株式会社ブリリアントサービス
RIC Android 2010.9.28 Google Developer Day@東京国際フォーラム
動画はRyosei Kaiさんによる http://www.youtube.com/watch?v=jclyrynrsMk 17
21. USB Hostの例(1)
Android + Full-color LED panels
JuJu Su-uさん
2012.7アップロード
USBシリアル変換
の利用
http://www.youtube.com/watch?v=ns4DKYXES_o 21
22. USB Hostの例(2)
Android USB Camera Development Kit "AndCam-Kit F1"
infinitegraさん
2013.2アップロード
外部カメラの利用
http://www.youtube.com/watch?v=GiYBtaSbiCk 22
25. カスタムAndroidの詳細(2)
開発基板
オープンなのはココ。ビルドして搭載可能
この開発基板にはシリアルポートがついている
・(権限変更により)Androidから利用可能
→シリアル通信でロボットを動かしていた
カーネルや上位層を改変(カスタム)すれば、
・PCで使えるUSBデバイスが利用可能
この部分(カーネル)はLinux PCと同じ
カーネルはハードウェアの管理を担当 25
26. カスタムAndroidの詳細(3)
Target tracking with USB webcam and android (PandaBoard ES)
同様に、オープンな
Androidから
シリアル通信で
モーターを動かす例
http://www.youtube.com/watch?v=7u0yi1WPaAc
neuralassembly(私)アップロード(2012.3)
26
29. Bluetooth接続法の詳細(1)
紹介動画では、Androidでラジコンのように
ミニ四駆を操作していた
無線
モーター、LED、センサを扱うには別途回路が
必要
ArduinoやPICを用いるのがメジャー
LED
Bluetooth Bluetoothモジュール Arduino モータ
PICマイコン
Bluetoothドングル 29
など 外部センサ
30. Bluetooth接続法の詳細(2)
BluetoothでArduinoに接続 Bluetooth: 数m~数十m程度の近距離無線通信規格
AVRマイコン
Arduino 入出力ポートつき基板
Bluetooth
C言語風Arduino言語
統合開発環境
Bluetoothモジュール
(様々なものが入手可能)
Android
マイコン用のアプリケーション
スマートフォン (ファームウェア)作成(C言語)
スマートフォン用の
アプリケーション作成(Java)
スマートフォンと回路の両方に サンプルはインターネット上に
アプリケーションを書く必要がある 参考になるものがある
例えば gclue, AndroDocs: ArduinoとAndroidをBluetooth連携 30
https://sites.google.com/a/gclue.jp/android-docs-2009/bluetoothdearduinoto-lian-xie
31. Bluetooth接続法の詳細(3)
BluetoothでPICに接続
PICマイコン
Bluetooth microchip 社製の
Bluetooth マイクロコントローラ
ドングル
スマートフォン用の マイコン用のアプリケーション
アプリケーション作成(Java) (ファームウェア)作成(C言語)
サンプルはインターネットなどに
参考になるものがある
例えば hrdakinori氏のBT_DROID とDroidControlやPIC24F_btstack
https://github.com/hrdakinori/BT_DROID (PICマイコン用サンプル)
https://github.com/hrdakinori/DroidControl (Android用サンプル)
https://github.com/hrdakinori/PIC24F_btstack (PICマイコン/Android用別サンプル)
雑誌では 原田明憲「1Mbpsが数十m飛ぶ!Bluetooth対応のワイヤレスPICマイコンI/O基板」
トランジスタ技術2012年9月号 (btstackを用いる解説) 31
32. Bluetooth接続法を用いた商品
LEGO Mindstorms (レゴマインドストーム):
マイコンつきユニット+レゴブロックでロボット作成
PCでプログラミングを行い、操作可能
スマートフォンからもBluetooth経由で操作可能に
LEGO Mindstorms EV3: NextGen Robotic Programming | TCTV News
対象年齢10歳からと
いわれているが、
大学の演習でも
使われるレベル
techcrunchさんアップロード
http://www.youtube.com/watch?v=cTTCzY6b20c 32
34. ADKによる方法の詳細(1)
ADKとはAccessory Development Kitの略
スマートフォン
2011年5月にGoogleにより発表された、比較的新しい手法
「カスタムAndroid」と「Bluetooth」は比較的
初期のAndroidから用いることができた手法
ADKはバージョンの制限あり
Android 2.3.4以降または3.1以降
マイコンボード
2012年にたくさん教科書が出たのはこの方式
LED
電力供給
Arduino
モータ
USBアクセサリモード
PICマイコン
有線接続
※さきほどのBluetooth 34
とは↑ココが違う など 外部センサ
36. ADKによる方法の詳細(3)
ADKとはAccessory Development Kitの略
ADK2011とADK2012とがあり、本日お話しているのはADK2011
Android端末と回路をUSB接続するが、通常のUSB接続と異なる
一般的なUSBデバイスの接続
USBホスト USBデバイス
ADKのアクセサリモードによるUSB接続
USBホスト USBデバイス(アクセサリ)
電力 スマートフォン
ADK回路 36
ADKの回路からスマートフォンへ電力供給(充電)しなければならない
37. ADKによる方法の詳細(4)
ADK回路からAndroid端末へ電力を供給する
長所 長所であり、
スマートフォンのバッテリーを消費しない 短所でもある
短所
ADK回路の電源はスマートフォンの充電も考慮しなければならない
スマートフォンの充電クレードルのように
室内で使うこと前提の商品に向いている
屋内での実験装置のモニタリングなどに向いているかも
屋内なので電力供給も問題ない
場所も固定なので有線で問題ない
37
40. USB Hostによる方法の詳細(1)
ADKのアクセサリモードによるUSB接続(先ほどの話)
USBホスト USBデバイス(アクセサリ)
ADK回路 電力 スマートフォン
USB HostモードによるUSB接続
USBデバイス(など)
USBホスト
電力 USB-シリアルデバイス
スマートフォン この手法が
良く知られている
USB-シリアルモジュールFT232RL
パソコンでUSBデバイスを用いるようにスマートフォンを用いる方法 40
ただし、パソコンのように何でもつなげばOK、とはいかない(自分でドライバを書く)
41. USB Hostによる方法の詳細(2)
USBホスト USB-シリアルデバイス
USB-シリアルモジュール
電力
スマートフォン FT232RL
USB Hostによる方法が難しいのは、androidでUSB機器を制御するための
ドライバを自分で書かねばならないため
デバイスの知識だけではなく、USBプロトコルの知識etcが必要
上記のUSBシリアルデバイスに関しては、ドライバを作成して
公開してくださっている方がいるので、それを使えば取扱いが容易
ksksueさんのFTDriver https://github.com/ksksue/FTDriver
FTDI公式androidドライバ http://www.ftdichip.com/Android.htm
usb-serial-for-android https://code.google.com/p/usb-serial-for-android/
41
43. RATOC REX-USB60MIの利用
USB to serial converter with stock android in USB host mode
neuralassembly(私)
2013.4アップロード
http://www.youtube.com/watch?v=vY8nviGw49E
43
44. USB Hostによる方法まとめ
USBによって回路と有線接続。回路がハードウェアを制御
スマートフォンから回路へ電力を供給
USB Hostの長所
有線なので、信頼性が必要な用途には向いている(干渉や遅延の問題がない)
USB-シリアル変換はドライバを公開してくださっている方がいる
USB Hostの短所
新たなデバイスを対応させようとするとドライバを書かねばならず、大変
USB Host機能に対応していないスマートフォンもある
44
45. 以上の分類で取り扱わなかった内容(1)
Wifi or
Wifi 有線ネット
インター
ネット
各種マイコンなど
Androidでラジコンを
広いところで操縦してみた
android remote Ctrl Car
iwata naokiさん
2010.11アップロード
http://www.youtube.com/watch?v=VTiG3RqJQqQ 45
46. 以上の分類で取り扱わなかった内容(2)
Bluetoothシリアル変換
RATOC REX-BT60
Bluetooth RS-232C
各種RS-
232C機器
Wifiシリアル変換
RATOC REX-WF60
Wifi Wifi
インター RS-232C
ネット 各種RS-
232C機器
RS-232C機器(バーコードリーダーなど)をBluetooth、Wifi経由で操作可能
マイコンを使っても同じことはできるが、マイコンプログラミングが不要
46
47. 以上の分類で取り扱わなかった内容(3)
無線カメラ
無線(Wifi)カメラ
Wifi Wifi
遠隔にある外部カメラの インター
ネット
映像を見ることができる
Trek Ai-Ball
Planex CS-W07G-CY
Controlling toy train (plarail) via Bluetooth with android smartphone
neuralassembly(私)
2012.10アップロード
(Bluetoothの例で紹介した
動画再掲)
プラレールの先頭にカメラが
ついている
47
詳細はブログに http://neuralassembly.blogspot.jp/2012/12/androidwifimjpeg.html
59. 応用事例2:androidと連携するスマート白杖(4)
考えたいシチュエーション(1)解決方法
加速度センサで左右の振りの状況を取得
障害物への
距離
7 4
3
6
2
加速度(m/s2)
5 1
距離 (m)
4 0
-1
3 -2
2 -3
距離 -4
1
加速度 加速度 -5
0 -6
7 9 11 13 15 17
時間 (s)
障害物の位置によって、加速度と距離に相関が現れる
59
相関を計算することで、障害物が左右どちらかを判定
(この場合左)
63. 応用事例2:androidと連携するスマート白杖(8)
PICマイコン 白杖に実装
Bluetooth
超音波センサ 加速度センサ
視覚障碍者はスマートフォンを使えるのか?
対策を考えている方々がいる(日本アンドロイドの会福祉部など)
スマートフォンの役割
センサの相関から左右方向の特定(複雑な実数演算) スマホなしで
すべて白杖に実装
音による利用者への通知
でも可かも?
振動による利用者への通知
柔軟にベストな方法を探ってゆく 63