SlideShare a Scribd company logo
1 of 64
Download to read offline
Androidを利用した
   外部機器の制御

      情報電子技術関連講習会
2013年3月25日 広島市工業技術センター

   工学院大学 機械創造工学科
       金丸 隆志

                         1
目次
第一部:Androidの概要
    Androidの歴史、Androidがオープンであるとはどういうことか

第二部:Androidでハードウェア制御(概要)
    4つの手法を動画で紹介


第三部:Androidでハードウェア制御(詳細)
    4つの手法を順に詳しく解説


第四部:応用事例
    学生との共同研究である「Androidで操作するスマートカーテン」
    「Androidと連携するスマート白杖」の紹介

                                          2
第一部:Androidの概要




                 3
Androidとは
2007年11月 Open Handset Alliance が発表したスマートフォン用OS
        (Google, Qualcomm, T-Mobileなど)

Linuxベースのモバイル用オープンソースOS(電話帳などのアプリも含む)

スマートフォンだけではなく、タブレットなどにも適用範囲を広げている

最近では回路や外部機器との連携なども盛ん




                                                 4
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
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
オープンな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
オープンなAndroid(AOSP部)を利用した展開(2)
 docomo らくらくスマートフォン(2012夏モデル)

                              docomoによるアプリケーション
            Googleサービス非搭載
              Google Play
              Gmail            プロプライエタリなドライバ
              マップ



                docomoのサービス



押した感触のあるタッチパネル
                                      ※図はWikipediaより

良く使うボタンを大きく配置


オープンであることを利用した、独自性のある端末の作成
                                                 8
オープンなAndroid(AOSP部)を利用した展開(3)
     Amazon Kindle Fire (2011.9)
                                 amazonによる電子書籍



                                 プロプライエタリなドライバ




Android 2.3ベースの、電子書籍用デバイス
CTS認証を受けていない
   AOSP + amazon によるサービス(電子書籍)

Googleサービスを載せずに何故Androidを使うのか?       ※図はWikipediaより

      ハードウェア管理にAndroidの機能を使うことができる
      (Wifi、電源管理、グラフィック管理etc)
                                               9
オープンな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
オープンなAndroid(AOSP部)を利用した展開(5)
        開発者用デバイス
   もちろん、オープンなAOSP部だけで動作させることも可能
   (主に開発者向け)

   第三部で少し登場します




Atmark Techno社 Armadillo 500fx   Pandaboard + 外部ディスプレイ
                                          (Hanwha HM-TL7T)

                                                         11
第二部 Androidでハードウェア制御
         (概要)




                   12
Androidとハードウェアの連携
Android
                                   LED



                                          モータ
                  何らかの
                  仕組み


Androidとハードウェアを
                                    外部センサ
   連携するメリット
 Androidの持つ機能が使える
  • ネット接続機能
                                  外部カメラ
  • タッチパネル
  • 傾きセンサ
  • 音声認識
  • 顔認識                  ロボットなど
  • 高い計算能力                                13
Androidとハードウェアはホットな話題(1)
2012年にたくさんの教科書が発売された




 Android ADK プログラミング    Android ADK で学ぶ           PICで楽しむ
 &電子工作バイブル(2012.5)     ハードウェア制御(2012.5)   Androidアクセサリの自作(2012.5)




       Android ADK 組込みプログラミング    Android×Arduinoでつくる
              完全ガイド(2012.8)     クラウド連携デバイス(2012.9)           14
Androidとハードウェアはホットな話題(2)
技術系の雑誌による特集も増えている




 Smartphone World vol.3 (2012.4)   トランジスタ技術 (2012.9)
    Android×Arduino速攻プログラミング          サッ!と取り出してピッ!
    Androidとマイコン・ボードをつなぐテクニック         スマホ×電子回路!つないでI/O



                                                         15
ハードウェアを動かす様々な方法

 カスタムAndroid:有線が多い
    開発基板についているシリアルポートを使う
    Androidを通常のPCのように使う(例:USBデバイス)
 Bluetooth:無線
    Androidとマイコン付きの回路とをBluetooth経由で通信

 ADK:有線
    Androidとマイコン付きの回路とをUSBアクセサリモードで有線接続
 USB Host:有線
    AndroidとデバイスをUSBホストモードで有線接続
    カスタムAndroidと異なり、こちらは公式サポート
                                        16
カスタムAndroidの例

               まずは動画で「何ができるか」をざっとつかみます
RIC Android : 株式会社アールティ、株式会社ブリリアントサービス

      RIC Android    2010.9.28 Google Developer Day@東京国際フォーラム




動画はRyosei Kaiさんによる    http://www.youtube.com/watch?v=jclyrynrsMk 17
Bluetoothの例(1)

Android時代のミニ四駆デモ http://www.youtube.com/watch?v=5tAC35rKptQ

                                        ひでゆきたけいさん
                                         2010.3 アップロード



                                      マイコンはAVR
                                      (Arduinoに使われているもの)




                                                      18
Bluetoothの例(2)

Androidでプラレールを操作
Controlling toy train (plarail) via Bluetooth with android smartphone

                                                     neuralassembly(私)

                                                     2012.10アップロード




                    http://www.youtube.com/watch?v=fumv9p0_vWo
                                                                    19
ADKの例

 株式会社アールティがADKを用いて作成したロボット(2011.5サンフランシスコ)
Google I/O 2011 - Connecting Android to Real World Robotics using Open Accessory

                                                               tempusmasterさん
                                                               アップロード




                       http://www.youtube.com/watch?v=8cMHRvV9bg4           20
USB Hostの例(1)

Android + Full-color LED panels



                                                     JuJu Su-uさん

                                                     2012.7アップロード



                                                      USBシリアル変換
                                                      の利用




                  http://www.youtube.com/watch?v=ns4DKYXES_o       21
USB Hostの例(2)

Android USB Camera Development Kit "AndCam-Kit F1"

                                                infinitegraさん

                                                2013.2アップロード




                                                 外部カメラの利用




                  http://www.youtube.com/watch?v=GiYBtaSbiCk    22
第三部 Androidでハードウェア制御
         (詳細)




                       23
カスタムAndroidの詳細(1)

RIC Android (2010.9)はどのような仕組みで動いていたか?



                 ココに開発基板 Armadillo 500FX が搭載されている

                            Linuxプリインストール
                            Freescale i.MX31(ARM1136JF-S)搭載
                            128MB LPDDR SDRAM, 32MB NOR FLASH

                  Android のオープン版(AOSP)をソースからビルドして
                  インストール可能




                                                       24
カスタムAndroidの詳細(2)



                                      開発基板



                         オープンなのはココ。ビルドして搭載可能

                         この開発基板にはシリアルポートがついている
                         ・(権限変更により)Androidから利用可能

                          →シリアル通信でロボットを動かしていた

                         カーネルや上位層を改変(カスタム)すれば、
                         ・PCで使えるUSBデバイスが利用可能

この部分(カーネル)はLinux PCと同じ
 カーネルはハードウェアの管理を担当                           25
カスタムAndroidの詳細(3)

Target tracking with USB webcam and android (PandaBoard ES)

                                               同様に、オープンな
                                               Androidから
                                               シリアル通信で
                                               モーターを動かす例




http://www.youtube.com/watch?v=7u0yi1WPaAc

neuralassembly(私)アップロード(2012.3)
                                                   26
カスタムAndroidの詳細(4)

Android スマートフォンで外部カメラを利用
Usage of USB webcam with customized Galaxy Nexus (android 4.0.3)




 USB




           カーネルと上位層を変更して外部のUSBカメラを接続
                      http://www.youtube.com/watch?v=fCN6VUyUl9o
                      neuralassembly(私) (2012.2アップロード) 27
カスタムAndroidのまとめ

PCと同様にシリアル通信やUSB接続でハードウェアを制御する手法


カスタムAndroid長所

 PCと同様に自由度が高い
 面白い機能をすぐに試せるのでデモには良い

カスタムAndroid短所
 作成したアプリは、カスタムしたAndroidでしか
 動かない(正規端末では動かない)


   この方法でしか動かないものもあるが、
 そうでなければ現在は別の方法を試すのが無難
                                   28
Bluetooth接続法の詳細(1)

                         紹介動画では、Androidでラジコンのように
                         ミニ四駆を操作していた
                                           無線
                         モーター、LED、センサを扱うには別途回路が
                         必要
                               ArduinoやPICを用いるのがメジャー


                                              LED


Bluetooth   Bluetoothモジュール     Arduino              モータ

                              PICマイコン

              Bluetoothドングル                        29
                                         など     外部センサ
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
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
Bluetooth接続法を用いた商品

  LEGO Mindstorms (レゴマインドストーム):
                         マイコンつきユニット+レゴブロックでロボット作成
                         PCでプログラミングを行い、操作可能
                           スマートフォンからもBluetooth経由で操作可能に

                     LEGO Mindstorms EV3: NextGen Robotic Programming | TCTV News


対象年齢10歳からと
いわれているが、
大学の演習でも
使われるレベル


  techcrunchさんアップロード

http://www.youtube.com/watch?v=cTTCzY6b20c                               32
Bluetooth接続法まとめ

無線(Bluetooth)でマイコンに接続し、マイコンがハードウェアを制御する手法

 Bluetooth接続法長所
   無線なので、自由に端末(スマートフォン、タブレット)を取回せる

 Bluetooth接続法短所

  無線であるがゆえ、信頼性の問題はある
   (多数のデバイスがあったときの無線の干渉の問題、遅延の問題など)
  無線を使うので技適を通ったデバイスを使用する必要がある
                  総務省により定められた、
                  ・技術基準適合証明(電波法令上の特定無線設備に対する認証)
                  ・技術基準適合認定(電気通信事業法令上の端末機器)
                  のいずれかあるいは両者の認証がなされていることを表示するマーク

                                                33
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
とは↑ココが違う                         など                     外部センサ
ADKによる方法の詳細(2)

Googleによる公式なサンプルアプリケーションがあり、ADKの機能を一瞥できる
Google IO Android ADK (Arduino)
                                     入力:ジョイスティック
                                        ボタン
                                        静電容量センサ
                                        光量センサ
                                        温度センサ
                                     出力:LED
                                        サーボモータ
                                         Jeffrey Sambellsさん
                                         2011.05アップロード


       http://www.youtube.com/watch?v=XEe3dYBj7RE
          注:これらの機能は基本的には回路が実現しているので、
               同様のデモを先ほどのBluetooth接続法でも行える             35
ADKによる方法の詳細(3)

    ADKとはAccessory Development Kitの略
    ADK2011とADK2012とがあり、本日お話しているのはADK2011
    Android端末と回路をUSB接続するが、通常のUSB接続と異なる
一般的なUSBデバイスの接続
          USBホスト           USBデバイス




ADKのアクセサリモードによるUSB接続
          USBホスト           USBデバイス(アクセサリ)



                     電力          スマートフォン
  ADK回路                                     36
ADKの回路からスマートフォンへ電力供給(充電)しなければならない
ADKによる方法の詳細(4)

ADK回路からAndroid端末へ電力を供給する
長所                         長所であり、
     スマートフォンのバッテリーを消費しない   短所でもある
短所
     ADK回路の電源はスマートフォンの充電も考慮しなければならない



           スマートフォンの充電クレードルのように
           室内で使うこと前提の商品に向いている

           屋内での実験装置のモニタリングなどに向いているかも

              屋内なので電力供給も問題ない
              場所も固定なので有線で問題ない
                                       37
ADKを用いた商品

Android対応早押しボタンfourbeat
(合同会社ピグマル)

FourBeat




                                             http://pigmal.com

                                         Yuan Itoさんアップロード
                                                                 38
                   http://www.youtube.com/watch?v=z9ZqvaW_g_I
ADKによる方法まとめ

  USBによって回路と有線接続。回路がハードウェアを制御

  回路からスマートフォンへ電力を供給する必要がある

ADKの長所

  スマートフォンのバッテリーを消費しない

 有線なので、信頼性が必要な用途には向いている(干渉や遅延の問題が少ない)

ADKの短所

  ADK回路の電源はスマートフォンの充電も考慮しなければならない


                                    39
USB Hostによる方法の詳細(1)

ADKのアクセサリモードによるUSB接続(先ほどの話)
       USBホスト        USBデバイス(アクセサリ)



          ADK回路   電力            スマートフォン
USB HostモードによるUSB接続
                  USBデバイス(など)
    USBホスト


             電力   USB-シリアルデバイス
   スマートフォン                                この手法が
                                          良く知られている
             USB-シリアルモジュールFT232RL
   パソコンでUSBデバイスを用いるようにスマートフォンを用いる方法        40
      ただし、パソコンのように何でもつなげばOK、とはいかない(自分でドライバを書く)
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
USB Hostを用いた商品

USB-シリアルコンバータ RATOC REX-USB60MI




http://www.ratocsystems.com/products/subpage/usb60mi.html
                                                            各種RS-232C機器を制御可能

   Android用のプログラムはksksueさんのFTDriverを用いる                                 42
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
USB Hostによる方法まとめ

   USBによって回路と有線接続。回路がハードウェアを制御

   スマートフォンから回路へ電力を供給

USB Hostの長所

 有線なので、信頼性が必要な用途には向いている(干渉や遅延の問題がない)
 USB-シリアル変換はドライバを公開してくださっている方がいる

USB Hostの短所
  新たなデバイスを対応させようとするとドライバを書かねばならず、大変
  USB Host機能に対応していないスマートフォンもある

                                      44
以上の分類で取り扱わなかった内容(1)
                 Wifi or
  Wifi          有線ネット
         インター
          ネット



                            各種マイコンなど



                                          Androidでラジコンを
                                          広いところで操縦してみた
                                          android remote Ctrl Car




                                           iwata naokiさん
                                           2010.11アップロード

         http://www.youtube.com/watch?v=VTiG3RqJQqQ         45
以上の分類で取り扱わなかった内容(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
以上の分類で取り扱わなかった内容(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
第四部 応用事例




           48
応用事例1:androidで開閉するスマートカーテン(1)
 2012年度4年生6人の作品                                   neuralassembly(私)

Smart curtain controlled by android smartphone    2013.3アップロード



                                                           リモコン機能
                                                           音声認識
                                                           タイマー機能
                                                           SNS連携




              http://www.youtube.com/watch?v=l_hWr2YgS0U       49
応用事例1:androidで開閉するスマートカーテン(2)
 基本的なアイディア


     Bluetooth              モーター制御


            Arduino + Bluetoothモジュール

                                       テグスが張ってある
  上からの図



  横からの図


                                        ここにモーター


                                                  50
応用事例1:androidで開閉するスマートカーテン(3)
機構的な仕組み




            プーリー

      ワイヤー加工機によるアルミ加工




 既存のカーテンレールに後付け可能          51
応用事例1:androidで開閉するスマートカーテン(4)
3次元CADによる設計図




                          52
応用事例1:androidで開閉するスマートカーテン(5)
モーターの正転・反転

    モーターの正転、反転がカーテンの開閉に対応する
                         モータードライバ
                                    モーター
                           MP4212

  Bluetooth




                         等価回路
              0/1の
              組み合わせを                モーターへ
              モータドライバに
              加える




                                       53
応用事例1:androidで開閉するスマートカーテン(6)
カーテンの自動停止


    カーテンが開ききった(閉じきった)時、過負荷がかかるため
    回路の電流量増大→そのタイミングでモーターを止める


                                    モーター

  Bluetooth




              電流値を見て
               過電流なら      ASC712
              モーター停止   電流センサモジュール




                                      54
応用事例1:androidで開閉するスマートカーテン(7)
まとめ
 6人をスマートフォン、回路、機械設計の3グループに分け役割分担
           各自が自分の得意なことorやりたいことを担当できた

 回路はArduinoを使ったが、プログラミングを手取り足取り教える必要がなかった

           ネットの情報をもとに、多くを独力で実現(=Arduinoはとてもシンプル)

スマートフォン(情報)          回路(電気電子)      ものを動かす(機械)


      Bluetooth              モーター正転反転



                             過電流チェック
Bluetooth機能
タッチパネル機能
音声認識機能
タイマー機能
インターネット機能(twitter)                          55
応用事例2:androidと連携するスマート白杖(1)
視覚障碍者の方が用いる白杖にセンサを取り付け、
白杖にぶつかる前に障害物の情報を知らせる

スマートフォンは通知のほか、センサから得たデータをもとにした
複雑な計算を担当(回路は実数演算を苦手としているので)




         通知
           加速度センサ
              超音波センサ
                 反射波
                           障害物
                    送信波
                                 56
応用事例2:androidと連携するスマート白杖(2)
                                           スマートフォン


                        前方上部センサ




右側面センサ                    左側面センサ
                                           Bluetooth

                    前方センサ




                            白杖に実装
              PICマイコン

  Bluetooth
                                                   57
                        超音波センサ
                                  加速度センサ
応用事例2:androidと連携するスマート白杖(3)
考えたいシチュエーション(1)

   前方に障害物があるとして、正面、左、右のどちらかを判別したい

                     障害物

                    ?


                    ?


                    ?


   超音波センサは広がりを持つので、そのままでは上記すべてを
   「前方に障害物あり」と判定してしまう
                  方向が知りたい
                                    58
応用事例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
                              相関を計算することで、障害物が左右どちらかを判定
                              (この場合左)
応用事例2:androidと連携するスマート白杖(5)
考えたいシチュエーション(2)

  (杖から見て)前方には障害物はないが、前方上部に障害物がある場合



          前方上部




           前方

           前方上部方向の障害物検知
                                     60
応用事例2:androidと連携するスマート白杖(6)
考えたいシチュエーション(3)

    左右どちらかの壁に沿って歩く「沿い歩き」をする際に
    左右の壁までの距離がわかると便利




           左側面     右側面




            左右側面の距離検知

                                61
応用事例2:androidと連携するスマート白杖(7)
 2012年度修士2年生の作品
A smart white cane with sensors that works with android smartphone




neuralassembly(私)
                    http://www.youtube.com/watch?v=jZ2EdwdeN-M
2013.3アップロード
                                                                 62
応用事例2:androidと連携するスマート白杖(8)

                    PICマイコン    白杖に実装
        Bluetooth



                              超音波センサ 加速度センサ

視覚障碍者はスマートフォンを使えるのか?

 対策を考えている方々がいる(日本アンドロイドの会福祉部など)

スマートフォンの役割
 センサの相関から左右方向の特定(複雑な実数演算)           スマホなしで
                                    すべて白杖に実装
 音による利用者への通知
                                    でも可かも?
 振動による利用者への通知

                        柔軟にベストな方法を探ってゆく       63
おわり



ご清聴ありがとうございました




                 64

More Related Content

What's hot

Node-REDをIoTビジネスに適用するために苦労した3つの話
Node-REDをIoTビジネスに適用するために苦労した3つの話Node-REDをIoTビジネスに適用するために苦労した3つの話
Node-REDをIoTビジネスに適用するために苦労した3つの話Tomohiro Nakajima
 
Usb接続するアプリを開発した時に試行錯誤した事
Usb接続するアプリを開発した時に試行錯誤した事Usb接続するアプリを開発した時に試行錯誤した事
Usb接続するアプリを開発した時に試行錯誤した事Masataka Kono
 
Multipeer connectivityを使った 動画のリアルタイム端末間共有
Multipeer connectivityを使った 動画のリアルタイム端末間共有Multipeer connectivityを使った 動画のリアルタイム端末間共有
Multipeer connectivityを使った 動画のリアルタイム端末間共有Imajin Kawabe
 
ぼくとJenkinsおじさんの360日戦争
ぼくとJenkinsおじさんの360日戦争ぼくとJenkinsおじさんの360日戦争
ぼくとJenkinsおじさんの360日戦争goccy
 
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxShota Shinogi
 
オトナのTDD(テスト駆動開発)入門
オトナのTDD(テスト駆動開発)入門オトナのTDD(テスト駆動開発)入門
オトナのTDD(テスト駆動開発)入門Yoshinori Yamanouchi
 
Unityで始めるバージョン管理 Git LFS 入門編
Unityで始めるバージョン管理 Git LFS 入門編Unityで始めるバージョン管理 Git LFS 入門編
Unityで始めるバージョン管理 Git LFS 入門編NAKAOKU Takahiro
 
アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~gree_tech
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けモノビット エンジン
 
外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話ichirin2501
 
ドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かすドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かす増田 亨
 
カスタムROM開発者の視点から見たAndroid
カスタムROM開発者の視点から見たAndroidカスタムROM開発者の視点から見たAndroid
カスタムROM開発者の視点から見たAndroidandroid sola
 
Android enterpriseで実現できる端末管理の世界
Android enterpriseで実現できる端末管理の世界Android enterpriseで実現できる端末管理の世界
Android enterpriseで実現できる端末管理の世界Daisuke Tsutsumi
 
モバイル通信を使わない 近接端末間通信対戦のレシピ
モバイル通信を使わない 近接端末間通信対戦のレシピモバイル通信を使わない 近接端末間通信対戦のレシピ
モバイル通信を使わない 近接端末間通信対戦のレシピNakamuraTaro
 
デザイナのためのGit入門
デザイナのためのGit入門デザイナのためのGit入門
デザイナのためのGit入門dsuke Takaoka
 
一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理Takafumi Yoshida
 

What's hot (20)

Node-REDをIoTビジネスに適用するために苦労した3つの話
Node-REDをIoTビジネスに適用するために苦労した3つの話Node-REDをIoTビジネスに適用するために苦労した3つの話
Node-REDをIoTビジネスに適用するために苦労した3つの話
 
第2部 自作ライブラリ紹介
第2部  自作ライブラリ紹介第2部  自作ライブラリ紹介
第2部 自作ライブラリ紹介
 
Usb接続するアプリを開発した時に試行錯誤した事
Usb接続するアプリを開発した時に試行錯誤した事Usb接続するアプリを開発した時に試行錯誤した事
Usb接続するアプリを開発した時に試行錯誤した事
 
Multipeer connectivityを使った 動画のリアルタイム端末間共有
Multipeer connectivityを使った 動画のリアルタイム端末間共有Multipeer connectivityを使った 動画のリアルタイム端末間共有
Multipeer connectivityを使った 動画のリアルタイム端末間共有
 
ぼくとJenkinsおじさんの360日戦争
ぼくとJenkinsおじさんの360日戦争ぼくとJenkinsおじさんの360日戦争
ぼくとJenkinsおじさんの360日戦争
 
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
 
オトナのTDD(テスト駆動開発)入門
オトナのTDD(テスト駆動開発)入門オトナのTDD(テスト駆動開発)入門
オトナのTDD(テスト駆動開発)入門
 
Unityで始めるバージョン管理 Git LFS 入門編
Unityで始めるバージョン管理 Git LFS 入門編Unityで始めるバージョン管理 Git LFS 入門編
Unityで始めるバージョン管理 Git LFS 入門編
 
アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
 
外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話
 
ドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かすドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かす
 
カスタムROM開発者の視点から見たAndroid
カスタムROM開発者の視点から見たAndroidカスタムROM開発者の視点から見たAndroid
カスタムROM開発者の視点から見たAndroid
 
Kotlinアンチパターン
KotlinアンチパターンKotlinアンチパターン
Kotlinアンチパターン
 
いつやるの?Git入門
いつやるの?Git入門いつやるの?Git入門
いつやるの?Git入門
 
Android enterpriseで実現できる端末管理の世界
Android enterpriseで実現できる端末管理の世界Android enterpriseで実現できる端末管理の世界
Android enterpriseで実現できる端末管理の世界
 
モバイル通信を使わない 近接端末間通信対戦のレシピ
モバイル通信を使わない 近接端末間通信対戦のレシピモバイル通信を使わない 近接端末間通信対戦のレシピ
モバイル通信を使わない 近接端末間通信対戦のレシピ
 
initramfsについて
initramfsについてinitramfsについて
initramfsについて
 
デザイナのためのGit入門
デザイナのためのGit入門デザイナのためのGit入門
デザイナのためのGit入門
 
一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理
 

Viewers also liked

Arduino / ArduBlock の簡単なプログラムと回路の例
Arduino / ArduBlock の簡単なプログラムと回路の例Arduino / ArduBlock の簡単なプログラムと回路の例
Arduino / ArduBlock の簡単なプログラムと回路の例mitunaga
 
Android組込み開発基礎コース Armadillo-440編
Android組込み開発基礎コース Armadillo-440編Android組込み開発基礎コース Armadillo-440編
Android組込み開発基礎コース Armadillo-440編OESF Education
 
Arduino 入門
Arduino 入門Arduino 入門
Arduino 入門mitunaga
 
ラズベリー・パイでプログラミングと電子工作を体験してみよう
ラズベリー・パイでプログラミングと電子工作を体験してみようラズベリー・パイでプログラミングと電子工作を体験してみよう
ラズベリー・パイでプログラミングと電子工作を体験してみようTakashi Kanamaru
 
ブレッドボードの使い方と Arduino に簡単な回路をつける例
ブレッドボードの使い方と Arduino に簡単な回路をつける例ブレッドボードの使い方と Arduino に簡単な回路をつける例
ブレッドボードの使い方と Arduino に簡単な回路をつける例mitunaga
 

Viewers also liked (6)

Arduino / ArduBlock の簡単なプログラムと回路の例
Arduino / ArduBlock の簡単なプログラムと回路の例Arduino / ArduBlock の簡単なプログラムと回路の例
Arduino / ArduBlock の簡単なプログラムと回路の例
 
Android組込み開発基礎コース Armadillo-440編
Android組込み開発基礎コース Armadillo-440編Android組込み開発基礎コース Armadillo-440編
Android組込み開発基礎コース Armadillo-440編
 
Arduino 入門
Arduino 入門Arduino 入門
Arduino 入門
 
ラズベリー・パイでプログラミングと電子工作を体験してみよう
ラズベリー・パイでプログラミングと電子工作を体験してみようラズベリー・パイでプログラミングと電子工作を体験してみよう
ラズベリー・パイでプログラミングと電子工作を体験してみよう
 
ブレッドボードの使い方と Arduino に簡単な回路をつける例
ブレッドボードの使い方と Arduino に簡単な回路をつける例ブレッドボードの使い方と Arduino に簡単な回路をつける例
ブレッドボードの使い方と Arduino に簡単な回路をつける例
 
Android usbの基本
Android usbの基本Android usbの基本
Android usbの基本
 

Similar to Androidを利用した外部機器の制御

Android Abc2009 Fall Shima091130 1
Android Abc2009 Fall Shima091130 1Android Abc2009 Fall Shima091130 1
Android Abc2009 Fall Shima091130 1shimay
 
Android Develop presentation on 19 Sep 2012.
Android Develop presentation on 19 Sep 2012.Android Develop presentation on 19 Sep 2012.
Android Develop presentation on 19 Sep 2012.Kazuaki Ueda
 
コンテンツプラットフォームとしてのAndroidの将来性
コンテンツプラットフォームとしてのAndroidの将来性コンテンツプラットフォームとしてのAndroidの将来性
コンテンツプラットフォームとしてのAndroidの将来性Teiichi Ota
 
事例で解説するハイブリッドアプリ開発のポイント
事例で解説するハイブリッドアプリ開発のポイント 事例で解説するハイブリッドアプリ開発のポイント
事例で解説するハイブリッドアプリ開発のポイント Monaca
 
[Jagys]android41+開発ツール紹介
[Jagys]android41+開発ツール紹介[Jagys]android41+開発ツール紹介
[Jagys]android41+開発ツール紹介Kenichi Kambara
 
Droidcon London2012 Speaker Experience
Droidcon London2012 Speaker ExperienceDroidcon London2012 Speaker Experience
Droidcon London2012 Speaker ExperienceKenichi Kambara
 
Windows azure mobile services を使った windows ストアアプリ開発 1027
Windows azure mobile services を使った windows ストアアプリ開発 1027Windows azure mobile services を使った windows ストアアプリ開発 1027
Windows azure mobile services を使った windows ストアアプリ開発 1027Shotaro Suzuki
 
Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.Yuki Higuchi
 
Go goes Mobile: Quick Exploration on Go 1.5 and Gomobile
Go goes Mobile: Quick Exploration on Go 1.5 and GomobileGo goes Mobile: Quick Exploration on Go 1.5 and Gomobile
Go goes Mobile: Quick Exploration on Go 1.5 and GomobileTakahiro Yoshimura
 
Androidとは。ちょっと変った視点から
Androidとは。ちょっと変った視点からAndroidとは。ちょっと変った視点から
Androidとは。ちょっと変った視点からdemuyan
 
[ABC2016S]Android Wear アプリ開発入門
[ABC2016S]Android Wear アプリ開発入門[ABC2016S]Android Wear アプリ開発入門
[ABC2016S]Android Wear アプリ開発入門Kenichi Kambara
 
Android登場10年目 ~Androidのイマを魅る~ 【ABC2017A】
Android登場10年目 ~Androidのイマを魅る~ 【ABC2017A】Android登場10年目 ~Androidのイマを魅る~ 【ABC2017A】
Android登場10年目 ~Androidのイマを魅る~ 【ABC2017A】嶋 是一 (Yoshikazu SHIMA)
 
Windows PhoneについてGdgd話すよ Rev 2
Windows PhoneについてGdgd話すよ Rev 2Windows PhoneについてGdgd話すよ Rev 2
Windows PhoneについてGdgd話すよ Rev 2Kenji Wada
 
Universal Appとは? -デバイスに依存しないアプリケーション開発-
Universal Appとは? -デバイスに依存しないアプリケーション開発-Universal Appとは? -デバイスに依存しないアプリケーション開発-
Universal Appとは? -デバイスに依存しないアプリケーション開発-Takaaki Suzuki
 
Androidアプリ開発どこまでいける?
Androidアプリ開発どこまでいける?Androidアプリ開発どこまでいける?
Androidアプリ開発どこまでいける?高見 知英
 
Android multiscreen
Android multiscreenAndroid multiscreen
Android multiscreenKazuaki Ueda
 
Androidが起こしたオープン・イノベーション
Androidが起こしたオープン・イノベーションAndroidが起こしたオープン・イノベーション
Androidが起こしたオープン・イノベーションKoji Shigemura
 

Similar to Androidを利用した外部機器の制御 (20)

Android Abc2009 Fall Shima091130 1
Android Abc2009 Fall Shima091130 1Android Abc2009 Fall Shima091130 1
Android Abc2009 Fall Shima091130 1
 
Android Develop presentation on 19 Sep 2012.
Android Develop presentation on 19 Sep 2012.Android Develop presentation on 19 Sep 2012.
Android Develop presentation on 19 Sep 2012.
 
コンテンツプラットフォームとしてのAndroidの将来性
コンテンツプラットフォームとしてのAndroidの将来性コンテンツプラットフォームとしてのAndroidの将来性
コンテンツプラットフォームとしてのAndroidの将来性
 
20121113 Android昔話2012
20121113 Android昔話201220121113 Android昔話2012
20121113 Android昔話2012
 
事例で解説するハイブリッドアプリ開発のポイント
事例で解説するハイブリッドアプリ開発のポイント 事例で解説するハイブリッドアプリ開発のポイント
事例で解説するハイブリッドアプリ開発のポイント
 
[Jagys]android41+開発ツール紹介
[Jagys]android41+開発ツール紹介[Jagys]android41+開発ツール紹介
[Jagys]android41+開発ツール紹介
 
Droidcon London2012 Speaker Experience
Droidcon London2012 Speaker ExperienceDroidcon London2012 Speaker Experience
Droidcon London2012 Speaker Experience
 
Androidとは何か
Androidとは何かAndroidとは何か
Androidとは何か
 
Windows azure mobile services を使った windows ストアアプリ開発 1027
Windows azure mobile services を使った windows ストアアプリ開発 1027Windows azure mobile services を使った windows ストアアプリ開発 1027
Windows azure mobile services を使った windows ストアアプリ開発 1027
 
Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.
 
Go goes Mobile: Quick Exploration on Go 1.5 and Gomobile
Go goes Mobile: Quick Exploration on Go 1.5 and GomobileGo goes Mobile: Quick Exploration on Go 1.5 and Gomobile
Go goes Mobile: Quick Exploration on Go 1.5 and Gomobile
 
Androidとは。ちょっと変った視点から
Androidとは。ちょっと変った視点からAndroidとは。ちょっと変った視点から
Androidとは。ちょっと変った視点から
 
[ABC2016S]Android Wear アプリ開発入門
[ABC2016S]Android Wear アプリ開発入門[ABC2016S]Android Wear アプリ開発入門
[ABC2016S]Android Wear アプリ開発入門
 
Android登場10年目 ~Androidのイマを魅る~ 【ABC2017A】
Android登場10年目 ~Androidのイマを魅る~ 【ABC2017A】Android登場10年目 ~Androidのイマを魅る~ 【ABC2017A】
Android登場10年目 ~Androidのイマを魅る~ 【ABC2017A】
 
Windows PhoneについてGdgd話すよ Rev 2
Windows PhoneについてGdgd話すよ Rev 2Windows PhoneについてGdgd話すよ Rev 2
Windows PhoneについてGdgd話すよ Rev 2
 
Universal Appとは? -デバイスに依存しないアプリケーション開発-
Universal Appとは? -デバイスに依存しないアプリケーション開発-Universal Appとは? -デバイスに依存しないアプリケーション開発-
Universal Appとは? -デバイスに依存しないアプリケーション開発-
 
Android Push
Android PushAndroid Push
Android Push
 
Androidアプリ開発どこまでいける?
Androidアプリ開発どこまでいける?Androidアプリ開発どこまでいける?
Androidアプリ開発どこまでいける?
 
Android multiscreen
Android multiscreenAndroid multiscreen
Android multiscreen
 
Androidが起こしたオープン・イノベーション
Androidが起こしたオープン・イノベーションAndroidが起こしたオープン・イノベーション
Androidが起こしたオープン・イノベーション
 

Androidを利用した外部機器の制御