SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
イチからはじめる
  USB Host API
           すずき
          @ksksue
でんもく会「イチからはじめる」シリーズ
   コンセプト:オープンスキル
    =オープンソース+オープンハードウェア
    と理解しました

裏コンセプト:技術教えるからおもしろいもの作ってボクを楽しませてよ
イチからはじめるUSB Host API
   Android 3.1(Honeycomb)から実装されたUSB Host
    APIの紹介
   USB Host APIとタイトル銘打ってますが、対象が広
    すぎるので、このプレゼンではUSBシリアルにしぼ
    る方向で
   デモ:
    GR-SAKURA
    シリアル通信で
    エコーバック
    させてAndroid
    で表示
Androidと外部機器を有線接続させる方式まとめ
              USB Host API        ADK                MicroBridge

特徴            様々なデバイスに            通信プロトコルを     すべてのバージョ
              対応可。自由度が            Googleがサポート。 ンのAndroidに繋が
              高い。                              る

Android対応バー   3.1以降               2.3.4以降            すべて
ジョン
デバイス選択幅       広                   限定                 限定
デバイス給電        Android→デバイス        デバイス→Android       Android→デバイス
プログラミング難      高                   中                  中
易度
対象デバイス例       Arduino, USBシリ      ADK2012, Arduino   Arduino + USBホス
              アル, マイコン,           ADK                トシールド
              Midi, Kinect,etc…
USB Host APIとADKの使い分け1
   給電方式による使い分け
       ADK :
        ○ Android端末の電源を持続させる
        ☓ 別電源が必要(ACアダプタorバッテリー)
           使用用途:長時間据え置き、ロガー
       USB Host API :
        ○ Android端末の電源を使える
        ☓ 長時間の使用には向いていない
           使用用途:短時間だけ使用するツール、デモ
   対象デバイスによる使い分け
       ADK : USB Host機能がついたAVR(Arduino)/PIC系のADK
        対応デバイス
       USB Host API : 大抵のデバイスOK(アイソクロナス転送
        以外)
USB Host APIとADKの使い分け2
   プログラミング難易度による使い分け
       ADK:アプリプログラミングがラク
       USB Host API : アプリプログラミング
        +USB基礎知識+USBプログラミング+USBデバッグ

   技術的な障壁が高い・・・

 →プロトコル部分をライブラリ化することでADK並
  にラクに開発できる環境になる
…ということで
 USBシリアル通信ライブラリ「FTDriver」を
  githubで公開
USB Host API クラス
Class                 Description
UsbManager            Allows you to enumerate and communicate with
                      connected USB devices.
UsbDevice             Represents a connected USB device and contains
                      methods to access its identifying information, interfaces,
                      and endpoints.
UsbInterface          Represents an interface of a USB device, which defines a
                      set of functionality for the device. A device can have one
                      or more interfaces on which to communicate on.
UsbEndpoint           Represents an interface endpoint, which is a
                                                        6つ以上のクラス,
                      communication channel for this interface. An interface
                                                          数十メソッド
                      can have one or more endpoints, and usually has input
                      and output endpoints for two-way communication with
                                                       (めんどくさい!)
                      the device.
UsbDeviceConnection   Represents a connection to the device, which transfers
                      data on endpoints. This class allows you to send data
                      back and forth sychronously or asynchronously.
UsbRequest            Represents an asynchronous request to communicate
                      with a device through aUsbDeviceConnection.
UsbConstants          Defines USB constants that correspond to definitions in
                      linux/usb/ch9.h of the Linux kernel.
FTDriver https://github.com/ksksue/FTDriver
   USBシリアル通信用Androidライブラリ
       コンセプト:Arduinoライクなシンプルなインタフェース
        でシリアル通信しよう
    ArduinoとFTDriverのシリアル通信リファレンス比較
    Arduino                   FTDriver(Android)
    Serial.begin(9600);       Serial.begin(9600);

    Serial.end();             Serial.end();

    readByte =                Serial.read(readBuf);
    Serial.read();
    Serial.write(writeBuf);   Serial.write(writeBuf);
USB Host API(FTDriver)を使った事例紹介
~AndroidとArduinoでシリアル通信~
USB Host API(FTDriver)を使った事例紹介
   ~ フルカラーLED制御~ @juju_suuさん
                                             構成
                                             Androidタブレット



                                                  動画再生




                                                  フルカラー
                                                  LEDパネル



http://www.youtube.com/watch?v=ns4DKYXES_o
USB Host API(FTDriver)を使った事例紹介
~シリアルサーボ制御~ akagawaさん




http://www.youtube.com/watch?v=QZOVAMQilCg
対応状況(2012/10/6現在)
FTDI
                         機種                OK/NG/?
・FT232RL
・FT232H                  Arduino UNO       OK
・FT2232C/D/HL            Arduino MEGA      OK
・FT4232HL                Arduino ADK       OK
・FT230X                  Arduino Leonard   NG
                         mbed NXP
ラトックシステム                                   ?
                         LPC11U24
・REX-USB60F/MI
                         mbed NXP
                                           OK
                         LPC1768
                         NXP LPC1769       OK
                         GR-SAKURA         OK
                         PSoC              ?
                         Arduino
                                           OK
                         Duemilanove
          秋月FT232RL      Harpy nano        OK
          USBシリアルモジュール
イチからはじめるUSB Host API FTDriver
   ゴール:USBシリアルを使ってAndroidとマイコンを
    つなげエコーバックさせてみよう
USBシリアル接続に必要な小道具
   USB A type ⇔ micro B type
    変換コネクタ




                                USB A type ⇔ micro B type
                                      変換コネクタ
/*GR-SAKURA Sketch Template Version:
                    V1.01*/
 接続先:GR-SAKURA      #include <rxduino.h>

                    #define INTERVAL 10

                    void setup()
                    {
                      Serial.begin(9600);
                      pinMode(PIN_LED0,OUTPUT);
                      pinMode(PIN_LED1,OUTPUT);
                      digitalWrite(PIN_LED0, 1);
                    }

                    void loop()
                    {
                      if(Serial.available() > 0) {
シリアル受信した文字をそのまま送信        digitalWrite(PIN_LED1, 1);
                         Serial.write(Serial.read());
                         delay(INTERVAL);
                         digitalWrite(PIN_LED1, 0);
                      } else {
                         delay(INTERVAL);
                      }
                    }
FTDriver チュートリアル Androidアプリ
https://github.com/ksksue/FTDriver
begin(), end(), read(), write()を使った
USBシリアルプログラミングのチュートリアル
                              1. Beginで接続

                            2. Writeで書き込み

                            3. Readで読み込み

                               4. Endで切断

   Readボタンタップすると
     エコーバックを表示
FTDriver Tutorial 1 のソースコード

if(mSerial.begin(FTDriver.BAUD9600)) {
 /* オープンが成功したときの処理 */
} else {
 /* オープンが失敗したときの処理 */
}

/* 一度に最大4096byte受信可能 */
byte[] rbuf = new byte[4096];
/* 受信したバイト数が戻り値 */
len = mSerial.read(rbuf);

String wbuf = "FTDriver Test.";
/* Stringをbyte配列に変換して渡す */
mSerial.write(wbuf.getBytes());

mSerial.end();
自分のAndroidは
USB Host API対応? 1/4

         ソースコード・アプリを公開していると
         ときどき質問がくる



                      エクアドル



  「ぼくのタブレット、USBキーボー
ドはうごくのに、キミのアプリはうごか
ないってどういうことさ?」
(エクアドル在住アンドレスさん)
自分のAndroidは
USB Host API対応?2/4
   AndroidのUSBホスト機能はLinux USBホスト機能と
    USB Host APIの2種類存在
                Linux USB ホスト       USB Host API

目的・用途           エンドユーザがUSBキー        開発者がUSBホスト機能を
                ボード/マウス/USBメモ       使ってアプリケーション開
                リを使える。              発できる。
Androidバージョン    Android3.1以前でも動作    Android3.1以降

対応内容            USB2.0の             USB 2.0
                USB Mass Strage     アイソクロナス転送を除く
                Class(USBメモリ)、USB   3種類の転送方式に対応。
                HID Class(USBキーボー   プロトコルがわかれば開発
                ド、USBマウスなど)         者の手でUSBデバイスに対
                                    応可

    ※「Linux USB ホスト」という名称はUSB Host APIと区別しやすくするため
     勝手につけた名称です
自分のAndroidは
USB Host API対応?3/4
   ややこしいところ
    Android3.1以降であっても端末によってはサポートされ
    ていない                  アンドレスさんのケース
       中華Padは非サポートが多い
       Galaxy Nexus(Android 4.0)は日本版だけサポートされていな
        かった。後のアップデートでサポート
   自分のAndroidは対応しているかどうか
    どうやってチェックすればいいの?
       Web情報(少ない)
       Android アプリ「USB Host Viewer」,「USB Device Info」をイ
        ンストール、デバイスを接続して情報が表示されるかチェック
        (これがイチバン確実)
       そもそも上記アプリがインストールできない場合はアウト
自分のAndroidは
USB Host API対応? 4/4

               …という内容を踏まえて返信




                        エクアドル



  「中華Pad乙。m9」
まとめ
   USB Host APIのとくちょう
   USB Host APIを使ったライブラリでぐっと開発効率
    がよくなる
   FTDriverでできること紹介
   FTDriverでGR-SAKURAからのエコーバック表示
   自分のAndroidは対応してる?
   ご清聴ありがとうございました

Contenu connexe

Tendances

Android デバッグ小ネタ
Android デバッグ小ネタAndroid デバッグ小ネタ
Android デバッグ小ネタl_b__
 
【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~
【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~
【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~UnityTechnologiesJapan002
 
マーク&スイープ勉強会
マーク&スイープ勉強会マーク&スイープ勉強会
マーク&スイープ勉強会7shi
 
AirLab導入でテストコストの大幅削減と品質向上! 数十台の端末を一斉に全自動テストできる社内DeviceFarmについてご紹介
AirLab導入でテストコストの大幅削減と品質向上! 数十台の端末を一斉に全自動テストできる社内DeviceFarmについてご紹介AirLab導入でテストコストの大幅削減と品質向上! 数十台の端末を一斉に全自動テストできる社内DeviceFarmについてご紹介
AirLab導入でテストコストの大幅削減と品質向上! 数十台の端末を一斉に全自動テストできる社内DeviceFarmについてご紹介KLab Inc. / Tech
 
非同期処理の基礎
非同期処理の基礎非同期処理の基礎
非同期処理の基礎信之 岩永
 
基礎から学ぶ組み込みAndroid
基礎から学ぶ組み込みAndroid基礎から学ぶ組み込みAndroid
基礎から学ぶ組み込みAndroiddemuyan
 
WASM(WebAssembly)入門 ペアリング演算やってみた
WASM(WebAssembly)入門 ペアリング演算やってみたWASM(WebAssembly)入門 ペアリング演算やってみた
WASM(WebAssembly)入門 ペアリング演算やってみたMITSUNARI Shigeo
 
その ionice、ほんとに効いてますか?
その ionice、ほんとに効いてますか?その ionice、ほんとに効いてますか?
その ionice、ほんとに効いてますか?Narimichi Takamura
 
C++20 モジュールの概要 / Introduction to C++ modules (part 1)
C++20 モジュールの概要 / Introduction to C++ modules (part 1)C++20 モジュールの概要 / Introduction to C++ modules (part 1)
C++20 モジュールの概要 / Introduction to C++ modules (part 1)TetsuroMatsumura
 
今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 TipsTakaaki Suzuki
 
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)Kuniyasu Suzaki
 
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~Hiroshi Tokumaru
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなKentaro Matsui
 
OpenVZ - Linux Containers:第2回 コンテナ型仮想化の情報交換会@東京
OpenVZ - Linux Containers:第2回 コンテナ型仮想化の情報交換会@東京OpenVZ - Linux Containers:第2回 コンテナ型仮想化の情報交換会@東京
OpenVZ - Linux Containers:第2回 コンテナ型仮想化の情報交換会@東京Kentaro Ebisawa
 
UIと2D/3Dと私 ~2D/3Dを混在させたUIを作ったら、とてもめんどくさかった話~
UIと2D/3Dと私 ~2D/3Dを混在させたUIを作ったら、とてもめんどくさかった話~ UIと2D/3Dと私 ~2D/3Dを混在させたUIを作ったら、とてもめんどくさかった話~
UIと2D/3Dと私 ~2D/3Dを混在させたUIを作ったら、とてもめんどくさかった話~ masayahamazaki
 
ゲームインフラコンテナ実践導入
ゲームインフラコンテナ実践導入ゲームインフラコンテナ実践導入
ゲームインフラコンテナ実践導入Hiroki Tamiya
 
nfcpy 0.10.0 でハマった話
nfcpy 0.10.0 でハマった話nfcpy 0.10.0 でハマった話
nfcpy 0.10.0 でハマった話Masaki Yamamoto
 
C++でできる!OS自作入門
C++でできる!OS自作入門C++でできる!OS自作入門
C++でできる!OS自作入門uchan_nos
 
Usb接続するアプリを開発した時に試行錯誤した事
Usb接続するアプリを開発した時に試行錯誤した事Usb接続するアプリを開発した時に試行錯誤した事
Usb接続するアプリを開発した時に試行錯誤した事Masataka Kono
 

Tendances (20)

Android デバッグ小ネタ
Android デバッグ小ネタAndroid デバッグ小ネタ
Android デバッグ小ネタ
 
【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~
【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~
【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~
 
マーク&スイープ勉強会
マーク&スイープ勉強会マーク&スイープ勉強会
マーク&スイープ勉強会
 
AirLab導入でテストコストの大幅削減と品質向上! 数十台の端末を一斉に全自動テストできる社内DeviceFarmについてご紹介
AirLab導入でテストコストの大幅削減と品質向上! 数十台の端末を一斉に全自動テストできる社内DeviceFarmについてご紹介AirLab導入でテストコストの大幅削減と品質向上! 数十台の端末を一斉に全自動テストできる社内DeviceFarmについてご紹介
AirLab導入でテストコストの大幅削減と品質向上! 数十台の端末を一斉に全自動テストできる社内DeviceFarmについてご紹介
 
非同期処理の基礎
非同期処理の基礎非同期処理の基礎
非同期処理の基礎
 
基礎から学ぶ組み込みAndroid
基礎から学ぶ組み込みAndroid基礎から学ぶ組み込みAndroid
基礎から学ぶ組み込みAndroid
 
WASM(WebAssembly)入門 ペアリング演算やってみた
WASM(WebAssembly)入門 ペアリング演算やってみたWASM(WebAssembly)入門 ペアリング演算やってみた
WASM(WebAssembly)入門 ペアリング演算やってみた
 
その ionice、ほんとに効いてますか?
その ionice、ほんとに効いてますか?その ionice、ほんとに効いてますか?
その ionice、ほんとに効いてますか?
 
C++20 モジュールの概要 / Introduction to C++ modules (part 1)
C++20 モジュールの概要 / Introduction to C++ modules (part 1)C++20 モジュールの概要 / Introduction to C++ modules (part 1)
C++20 モジュールの概要 / Introduction to C++ modules (part 1)
 
今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips
 
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
 
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 
OpenVZ - Linux Containers:第2回 コンテナ型仮想化の情報交換会@東京
OpenVZ - Linux Containers:第2回 コンテナ型仮想化の情報交換会@東京OpenVZ - Linux Containers:第2回 コンテナ型仮想化の情報交換会@東京
OpenVZ - Linux Containers:第2回 コンテナ型仮想化の情報交換会@東京
 
UIと2D/3Dと私 ~2D/3Dを混在させたUIを作ったら、とてもめんどくさかった話~
UIと2D/3Dと私 ~2D/3Dを混在させたUIを作ったら、とてもめんどくさかった話~ UIと2D/3Dと私 ~2D/3Dを混在させたUIを作ったら、とてもめんどくさかった話~
UIと2D/3Dと私 ~2D/3Dを混在させたUIを作ったら、とてもめんどくさかった話~
 
ゲームインフラコンテナ実践導入
ゲームインフラコンテナ実践導入ゲームインフラコンテナ実践導入
ゲームインフラコンテナ実践導入
 
レシピの作り方入門
レシピの作り方入門レシピの作り方入門
レシピの作り方入門
 
nfcpy 0.10.0 でハマった話
nfcpy 0.10.0 でハマった話nfcpy 0.10.0 でハマった話
nfcpy 0.10.0 でハマった話
 
C++でできる!OS自作入門
C++でできる!OS自作入門C++でできる!OS自作入門
C++でできる!OS自作入門
 
Usb接続するアプリを開発した時に試行錯誤した事
Usb接続するアプリを開発した時に試行錯誤した事Usb接続するアプリを開発した時に試行錯誤した事
Usb接続するアプリを開発した時に試行錯誤した事
 

En vedette

USB Host APIで遊んでみた
USB Host APIで遊んでみたUSB Host APIで遊んでみた
USB Host APIで遊んでみたMakoto Yamazaki
 
組込みAndroid入門実習
組込みAndroid入門実習組込みAndroid入門実習
組込みAndroid入門実習ksk sue
 
GPUを用いたSSLリバースプロキシの実装についての論文を読んだ
GPUを用いたSSLリバースプロキシの実装についての論文を読んだGPUを用いたSSLリバースプロキシの実装についての論文を読んだ
GPUを用いたSSLリバースプロキシの実装についての論文を読んだy_uuki
 
見よう見まねでJavaFX!
見よう見まねでJavaFX!見よう見まねでJavaFX!
見よう見まねでJavaFX!_denko
 
JavaFX 8 に関する 7 つのこと
JavaFX 8 に関する 7 つのことJavaFX 8 に関する 7 つのこと
JavaFX 8 に関する 7 つのことYuichi Sakuraba
 
Midi with android
Midi with androidMidi with android
Midi with androidkshoji
 
JavaFX 8って何だ!! - JavaFX最新情報 -
JavaFX 8って何だ!! - JavaFX最新情報 -JavaFX 8って何だ!! - JavaFX最新情報 -
JavaFX 8って何だ!! - JavaFX最新情報 -Yuichi Sakuraba
 
Java fx勉強会lt 第8回
Java fx勉強会lt 第8回Java fx勉強会lt 第8回
Java fx勉強会lt 第8回Taiji Miyabe
 
iBeaconを使ってみよう!気軽に使える近距離無線通信
iBeaconを使ってみよう!気軽に使える近距離無線通信iBeaconを使ってみよう!気軽に使える近距離無線通信
iBeaconを使ってみよう!気軽に使える近距離無線通信yuki0211s
 
Androidを利用した外部機器の制御
Androidを利用した外部機器の制御Androidを利用した外部機器の制御
Androidを利用した外部機器の制御Takashi Kanamaru
 
BlueZで遊んでみる - BLE大阪勉強会
BlueZで遊んでみる - BLE大阪勉強会BlueZで遊んでみる - BLE大阪勉強会
BlueZで遊んでみる - BLE大阪勉強会Shinji Kobayashi
 
iOS7アプリ同士の近距離通信どれがいい?
iOS7アプリ同士の近距離通信どれがいい?iOS7アプリ同士の近距離通信どれがいい?
iOS7アプリ同士の近距離通信どれがいい?Norihiro Arita
 
Bluetoothl-Low-Energy入門講座-part1
Bluetoothl-Low-Energy入門講座-part1Bluetoothl-Low-Energy入門講座-part1
Bluetoothl-Low-Energy入門講座-part1edy555
 
Arduino / ArduBlock の簡単なプログラムと回路の例
Arduino / ArduBlock の簡単なプログラムと回路の例Arduino / ArduBlock の簡単なプログラムと回路の例
Arduino / ArduBlock の簡単なプログラムと回路の例mitunaga
 
ブレッドボードの使い方と Arduino に簡単な回路をつける例
ブレッドボードの使い方と Arduino に簡単な回路をつける例ブレッドボードの使い方と Arduino に簡単な回路をつける例
ブレッドボードの使い方と Arduino に簡単な回路をつける例mitunaga
 
Arduino 入門
Arduino 入門Arduino 入門
Arduino 入門mitunaga
 
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみたJavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみたSatoshi Takami
 

En vedette (19)

USB Host APIで遊んでみた
USB Host APIで遊んでみたUSB Host APIで遊んでみた
USB Host APIで遊んでみた
 
組込みAndroid入門実習
組込みAndroid入門実習組込みAndroid入門実習
組込みAndroid入門実習
 
GPUを用いたSSLリバースプロキシの実装についての論文を読んだ
GPUを用いたSSLリバースプロキシの実装についての論文を読んだGPUを用いたSSLリバースプロキシの実装についての論文を読んだ
GPUを用いたSSLリバースプロキシの実装についての論文を読んだ
 
見よう見まねでJavaFX!
見よう見まねでJavaFX!見よう見まねでJavaFX!
見よう見まねでJavaFX!
 
JavaFX 8 に関する 7 つのこと
JavaFX 8 に関する 7 つのことJavaFX 8 に関する 7 つのこと
JavaFX 8 に関する 7 つのこと
 
Midi with android
Midi with androidMidi with android
Midi with android
 
JavaFX 8って何だ!! - JavaFX最新情報 -
JavaFX 8って何だ!! - JavaFX最新情報 -JavaFX 8って何だ!! - JavaFX最新情報 -
JavaFX 8って何だ!! - JavaFX最新情報 -
 
Java fx勉強会lt 第8回
Java fx勉強会lt 第8回Java fx勉強会lt 第8回
Java fx勉強会lt 第8回
 
Glibc malloc internal
Glibc malloc internalGlibc malloc internal
Glibc malloc internal
 
iBeaconを使ってみよう!気軽に使える近距離無線通信
iBeaconを使ってみよう!気軽に使える近距離無線通信iBeaconを使ってみよう!気軽に使える近距離無線通信
iBeaconを使ってみよう!気軽に使える近距離無線通信
 
Androidを利用した外部機器の制御
Androidを利用した外部機器の制御Androidを利用した外部機器の制御
Androidを利用した外部機器の制御
 
BlueZで遊んでみる - BLE大阪勉強会
BlueZで遊んでみる - BLE大阪勉強会BlueZで遊んでみる - BLE大阪勉強会
BlueZで遊んでみる - BLE大阪勉強会
 
iOS7アプリ同士の近距離通信どれがいい?
iOS7アプリ同士の近距離通信どれがいい?iOS7アプリ同士の近距離通信どれがいい?
iOS7アプリ同士の近距離通信どれがいい?
 
Unity ゲーム開発
Unity ゲーム開発Unity ゲーム開発
Unity ゲーム開発
 
Bluetoothl-Low-Energy入門講座-part1
Bluetoothl-Low-Energy入門講座-part1Bluetoothl-Low-Energy入門講座-part1
Bluetoothl-Low-Energy入門講座-part1
 
Arduino / ArduBlock の簡単なプログラムと回路の例
Arduino / ArduBlock の簡単なプログラムと回路の例Arduino / ArduBlock の簡単なプログラムと回路の例
Arduino / ArduBlock の簡単なプログラムと回路の例
 
ブレッドボードの使い方と Arduino に簡単な回路をつける例
ブレッドボードの使い方と Arduino に簡単な回路をつける例ブレッドボードの使い方と Arduino に簡単な回路をつける例
ブレッドボードの使い方と Arduino に簡単な回路をつける例
 
Arduino 入門
Arduino 入門Arduino 入門
Arduino 入門
 
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみたJavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
 

Similaire à イチからはじめるUSB Host API

プロペラブForth発表osc愛媛
プロペラブForth発表osc愛媛プロペラブForth発表osc愛媛
プロペラブForth発表osc愛媛titoi2
 
Androidロボットサミットin名古屋
Androidロボットサミットin名古屋Androidロボットサミットin名古屋
Androidロボットサミットin名古屋Kenichi Yoshida
 
イチからはじめるADK北海道支部勉強会発表資料
イチからはじめるADK北海道支部勉強会発表資料イチからはじめるADK北海道支部勉強会発表資料
イチからはじめるADK北海道支部勉強会発表資料Kenichi Yoshida
 
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣Make: Ogaki Meeting 2012 Androidロボットサミットin大垣
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣三七男 山本
 
12.06.16 日本橋勉強会資料 公開用
12.06.16 日本橋勉強会資料 公開用12.06.16 日本橋勉強会資料 公開用
12.06.16 日本橋勉強会資料 公開用Miwa Iwatsuki
 
Androidロボットサミットin愛媛
Androidロボットサミットin愛媛Androidロボットサミットin愛媛
Androidロボットサミットin愛媛Kenichi Yoshida
 
USB over RDP over SSH
USB over RDP over SSHUSB over RDP over SSH
USB over RDP over SSHkoedoyoshida
 
Androidロボットサミットin京都
Androidロボットサミットin京都Androidロボットサミットin京都
Androidロボットサミットin京都Kenichi Yoshida
 
Intel edison edison向け基板のご紹介
Intel edison edison向け基板のご紹介Intel edison edison向け基板のご紹介
Intel edison edison向け基板のご紹介Takehiko Tomiyama
 
2016年11月19日 AITCシニア技術者勉強会 第1回「Arduinoを使ってみる」
2016年11月19日 AITCシニア技術者勉強会 第1回「Arduinoを使ってみる」 2016年11月19日 AITCシニア技術者勉強会 第1回「Arduinoを使ってみる」
2016年11月19日 AITCシニア技術者勉強会 第1回「Arduinoを使ってみる」 aitc_jp
 
Android-controlled robot,Original PCB to work as a bridge between Android-pho...
Android-controlled robot,Original PCB to work as a bridge between Android-pho...Android-controlled robot,Original PCB to work as a bridge between Android-pho...
Android-controlled robot,Original PCB to work as a bridge between Android-pho...Yasuhiro Ishii
 
Hacking with x86 Windows Tablet and mobile devices on Linux #FOSSASIA
Hacking with x86 Windows Tablet and mobile devices on Linux #FOSSASIAHacking with x86 Windows Tablet and mobile devices on Linux #FOSSASIA
Hacking with x86 Windows Tablet and mobile devices on Linux #FOSSASIANetwalker lab kapper
 
Google I/O 2011 HowToADK
Google I/O 2011 HowToADKGoogle I/O 2011 HowToADK
Google I/O 2011 HowToADKMasahiro Hidaka
 
Android端末と組み込み機器が連携する Android Make Days
Android端末と組み込み機器が連携する Android Make Days Android端末と組み込み機器が連携する Android Make Days
Android端末と組み込み機器が連携する Android Make Days Yasuhiro Ishii
 
Androidでロボットを動かそう・すまべん関西201003
Androidでロボットを動かそう・すまべん関西201003Androidでロボットを動かそう・すまべん関西201003
Androidでロボットを動かそう・すまべん関西201003cat sin
 
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyoto
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyotoドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyoto
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyotoNetwalker lab kapper
 
Android-controlled robot,Original PCB to work as a bridge between Android-pho...
Android-controlled robot,Original PCB to work as a bridge between Android-pho...Android-controlled robot,Original PCB to work as a bridge between Android-pho...
Android-controlled robot,Original PCB to work as a bridge between Android-pho...Yasuhiro Ishii
 
.NET Gadgeteerでプロトタイピングする EnOceanエネルギーハーベスティング システム
.NET GadgeteerでプロトタイピングするEnOceanエネルギーハーベスティングシステム.NET GadgeteerでプロトタイピングするEnOceanエネルギーハーベスティングシステム
.NET Gadgeteerでプロトタイピングする EnOceanエネルギーハーベスティング システムAtomu Hidaka
 
Beginner for install Android applications in Xiaomi MiReader  はじめてのXiaomi MiR...
Beginner for install Android applications in Xiaomi MiReader  はじめてのXiaomi MiR...Beginner for install Android applications in Xiaomi MiReader  はじめてのXiaomi MiR...
Beginner for install Android applications in Xiaomi MiReader  はじめてのXiaomi MiR...Netwalker lab kapper
 

Similaire à イチからはじめるUSB Host API (20)

プロペラブForth発表osc愛媛
プロペラブForth発表osc愛媛プロペラブForth発表osc愛媛
プロペラブForth発表osc愛媛
 
Androidロボットサミットin名古屋
Androidロボットサミットin名古屋Androidロボットサミットin名古屋
Androidロボットサミットin名古屋
 
イチからはじめるADK北海道支部勉強会発表資料
イチからはじめるADK北海道支部勉強会発表資料イチからはじめるADK北海道支部勉強会発表資料
イチからはじめるADK北海道支部勉強会発表資料
 
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣Make: Ogaki Meeting 2012 Androidロボットサミットin大垣
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣
 
150130 edison-ug
150130 edison-ug150130 edison-ug
150130 edison-ug
 
12.06.16 日本橋勉強会資料 公開用
12.06.16 日本橋勉強会資料 公開用12.06.16 日本橋勉強会資料 公開用
12.06.16 日本橋勉強会資料 公開用
 
Androidロボットサミットin愛媛
Androidロボットサミットin愛媛Androidロボットサミットin愛媛
Androidロボットサミットin愛媛
 
USB over RDP over SSH
USB over RDP over SSHUSB over RDP over SSH
USB over RDP over SSH
 
Androidロボットサミットin京都
Androidロボットサミットin京都Androidロボットサミットin京都
Androidロボットサミットin京都
 
Intel edison edison向け基板のご紹介
Intel edison edison向け基板のご紹介Intel edison edison向け基板のご紹介
Intel edison edison向け基板のご紹介
 
2016年11月19日 AITCシニア技術者勉強会 第1回「Arduinoを使ってみる」
2016年11月19日 AITCシニア技術者勉強会 第1回「Arduinoを使ってみる」 2016年11月19日 AITCシニア技術者勉強会 第1回「Arduinoを使ってみる」
2016年11月19日 AITCシニア技術者勉強会 第1回「Arduinoを使ってみる」
 
Android-controlled robot,Original PCB to work as a bridge between Android-pho...
Android-controlled robot,Original PCB to work as a bridge between Android-pho...Android-controlled robot,Original PCB to work as a bridge between Android-pho...
Android-controlled robot,Original PCB to work as a bridge between Android-pho...
 
Hacking with x86 Windows Tablet and mobile devices on Linux #FOSSASIA
Hacking with x86 Windows Tablet and mobile devices on Linux #FOSSASIAHacking with x86 Windows Tablet and mobile devices on Linux #FOSSASIA
Hacking with x86 Windows Tablet and mobile devices on Linux #FOSSASIA
 
Google I/O 2011 HowToADK
Google I/O 2011 HowToADKGoogle I/O 2011 HowToADK
Google I/O 2011 HowToADK
 
Android端末と組み込み機器が連携する Android Make Days
Android端末と組み込み機器が連携する Android Make Days Android端末と組み込み機器が連携する Android Make Days
Android端末と組み込み機器が連携する Android Make Days
 
Androidでロボットを動かそう・すまべん関西201003
Androidでロボットを動かそう・すまべん関西201003Androidでロボットを動かそう・すまべん関西201003
Androidでロボットを動かそう・すまべん関西201003
 
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyoto
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyotoドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyoto
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyoto
 
Android-controlled robot,Original PCB to work as a bridge between Android-pho...
Android-controlled robot,Original PCB to work as a bridge between Android-pho...Android-controlled robot,Original PCB to work as a bridge between Android-pho...
Android-controlled robot,Original PCB to work as a bridge between Android-pho...
 
.NET Gadgeteerでプロトタイピングする EnOceanエネルギーハーベスティング システム
.NET GadgeteerでプロトタイピングするEnOceanエネルギーハーベスティングシステム.NET GadgeteerでプロトタイピングするEnOceanエネルギーハーベスティングシステム
.NET Gadgeteerでプロトタイピングする EnOceanエネルギーハーベスティング システム
 
Beginner for install Android applications in Xiaomi MiReader  はじめてのXiaomi MiR...
Beginner for install Android applications in Xiaomi MiReader  はじめてのXiaomi MiR...Beginner for install Android applications in Xiaomi MiReader  はじめてのXiaomi MiR...
Beginner for install Android applications in Xiaomi MiReader  はじめてのXiaomi MiR...
 

Dernier

チームで開発するための環境を整える
チームで開発するための環境を整えるチームで開発するための環境を整える
チームで開発するための環境を整えるonozaty
 
これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024Hideki Saito
 
The 86th National Convention of IPSJ (Student Encouragement Award))
The 86th National Convention of IPSJ (Student Encouragement Award))The 86th National Convention of IPSJ (Student Encouragement Award))
The 86th National Convention of IPSJ (Student Encouragement Award))yoshidakids7
 
AWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS Lambdaと AWS API Gatewayを使ったREST API作りAWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS Lambdaと AWS API Gatewayを使ったREST API作りiPride Co., Ltd.
 
バイオリンの運弓動作計測による初心者と経験者の差異分析
バイオリンの運弓動作計測による初心者と経験者の差異分析バイオリンの運弓動作計測による初心者と経験者の差異分析
バイオリンの運弓動作計測による初心者と経験者の差異分析sugiuralab
 
JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜
JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜
JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜Naomi Yamasaki
 
00001_test_automation_portfolio_20240313
00001_test_automation_portfolio_2024031300001_test_automation_portfolio_20240313
00001_test_automation_portfolio_20240313ssuserf8ea02
 
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」IGDA Japan SIG-Audio
 
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。iPride Co., Ltd.
 
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版Takayuki Nakayama
 
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~honeshabri
 
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdf
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdfIGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdf
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdfIGDA Japan SIG-Audio
 

Dernier (12)

チームで開発するための環境を整える
チームで開発するための環境を整えるチームで開発するための環境を整える
チームで開発するための環境を整える
 
これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024
 
The 86th National Convention of IPSJ (Student Encouragement Award))
The 86th National Convention of IPSJ (Student Encouragement Award))The 86th National Convention of IPSJ (Student Encouragement Award))
The 86th National Convention of IPSJ (Student Encouragement Award))
 
AWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS Lambdaと AWS API Gatewayを使ったREST API作りAWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS Lambdaと AWS API Gatewayを使ったREST API作り
 
バイオリンの運弓動作計測による初心者と経験者の差異分析
バイオリンの運弓動作計測による初心者と経験者の差異分析バイオリンの運弓動作計測による初心者と経験者の差異分析
バイオリンの運弓動作計測による初心者と経験者の差異分析
 
JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜
JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜
JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜
 
00001_test_automation_portfolio_20240313
00001_test_automation_portfolio_2024031300001_test_automation_portfolio_20240313
00001_test_automation_portfolio_20240313
 
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」
 
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
 
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版
 
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~
 
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdf
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdfIGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdf
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdf
 

イチからはじめるUSB Host API

  • 1. イチからはじめる USB Host API すずき @ksksue
  • 2. でんもく会「イチからはじめる」シリーズ  コンセプト:オープンスキル =オープンソース+オープンハードウェア と理解しました 裏コンセプト:技術教えるからおもしろいもの作ってボクを楽しませてよ
  • 3. イチからはじめるUSB Host API  Android 3.1(Honeycomb)から実装されたUSB Host APIの紹介  USB Host APIとタイトル銘打ってますが、対象が広 すぎるので、このプレゼンではUSBシリアルにしぼ る方向で  デモ: GR-SAKURA シリアル通信で エコーバック させてAndroid で表示
  • 4. Androidと外部機器を有線接続させる方式まとめ USB Host API ADK MicroBridge 特徴 様々なデバイスに 通信プロトコルを すべてのバージョ 対応可。自由度が Googleがサポート。 ンのAndroidに繋が 高い。 る Android対応バー 3.1以降 2.3.4以降 すべて ジョン デバイス選択幅 広 限定 限定 デバイス給電 Android→デバイス デバイス→Android Android→デバイス プログラミング難 高 中 中 易度 対象デバイス例 Arduino, USBシリ ADK2012, Arduino Arduino + USBホス アル, マイコン, ADK トシールド Midi, Kinect,etc…
  • 5. USB Host APIとADKの使い分け1  給電方式による使い分け  ADK : ○ Android端末の電源を持続させる ☓ 別電源が必要(ACアダプタorバッテリー)  使用用途:長時間据え置き、ロガー  USB Host API : ○ Android端末の電源を使える ☓ 長時間の使用には向いていない  使用用途:短時間だけ使用するツール、デモ  対象デバイスによる使い分け  ADK : USB Host機能がついたAVR(Arduino)/PIC系のADK 対応デバイス  USB Host API : 大抵のデバイスOK(アイソクロナス転送 以外)
  • 6. USB Host APIとADKの使い分け2  プログラミング難易度による使い分け  ADK:アプリプログラミングがラク  USB Host API : アプリプログラミング +USB基礎知識+USBプログラミング+USBデバッグ  技術的な障壁が高い・・・  →プロトコル部分をライブラリ化することでADK並 にラクに開発できる環境になる …ということで  USBシリアル通信ライブラリ「FTDriver」を githubで公開
  • 7. USB Host API クラス Class Description UsbManager Allows you to enumerate and communicate with connected USB devices. UsbDevice Represents a connected USB device and contains methods to access its identifying information, interfaces, and endpoints. UsbInterface Represents an interface of a USB device, which defines a set of functionality for the device. A device can have one or more interfaces on which to communicate on. UsbEndpoint Represents an interface endpoint, which is a 6つ以上のクラス, communication channel for this interface. An interface 数十メソッド can have one or more endpoints, and usually has input and output endpoints for two-way communication with (めんどくさい!) the device. UsbDeviceConnection Represents a connection to the device, which transfers data on endpoints. This class allows you to send data back and forth sychronously or asynchronously. UsbRequest Represents an asynchronous request to communicate with a device through aUsbDeviceConnection. UsbConstants Defines USB constants that correspond to definitions in linux/usb/ch9.h of the Linux kernel.
  • 8. FTDriver https://github.com/ksksue/FTDriver  USBシリアル通信用Androidライブラリ  コンセプト:Arduinoライクなシンプルなインタフェース でシリアル通信しよう ArduinoとFTDriverのシリアル通信リファレンス比較 Arduino FTDriver(Android) Serial.begin(9600); Serial.begin(9600); Serial.end(); Serial.end(); readByte = Serial.read(readBuf); Serial.read(); Serial.write(writeBuf); Serial.write(writeBuf);
  • 10. USB Host API(FTDriver)を使った事例紹介 ~ フルカラーLED制御~ @juju_suuさん 構成 Androidタブレット 動画再生 フルカラー LEDパネル http://www.youtube.com/watch?v=ns4DKYXES_o
  • 11. USB Host API(FTDriver)を使った事例紹介 ~シリアルサーボ制御~ akagawaさん http://www.youtube.com/watch?v=QZOVAMQilCg
  • 12. 対応状況(2012/10/6現在) FTDI 機種 OK/NG/? ・FT232RL ・FT232H Arduino UNO OK ・FT2232C/D/HL Arduino MEGA OK ・FT4232HL Arduino ADK OK ・FT230X Arduino Leonard NG mbed NXP ラトックシステム ? LPC11U24 ・REX-USB60F/MI mbed NXP OK LPC1768 NXP LPC1769 OK GR-SAKURA OK PSoC ? Arduino OK Duemilanove 秋月FT232RL Harpy nano OK USBシリアルモジュール
  • 13. イチからはじめるUSB Host API FTDriver  ゴール:USBシリアルを使ってAndroidとマイコンを つなげエコーバックさせてみよう
  • 14. USBシリアル接続に必要な小道具  USB A type ⇔ micro B type 変換コネクタ USB A type ⇔ micro B type 変換コネクタ
  • 15. /*GR-SAKURA Sketch Template Version: V1.01*/ 接続先:GR-SAKURA #include <rxduino.h> #define INTERVAL 10 void setup() { Serial.begin(9600); pinMode(PIN_LED0,OUTPUT); pinMode(PIN_LED1,OUTPUT); digitalWrite(PIN_LED0, 1); } void loop() { if(Serial.available() > 0) { シリアル受信した文字をそのまま送信 digitalWrite(PIN_LED1, 1); Serial.write(Serial.read()); delay(INTERVAL); digitalWrite(PIN_LED1, 0); } else { delay(INTERVAL); } }
  • 16. FTDriver チュートリアル Androidアプリ https://github.com/ksksue/FTDriver begin(), end(), read(), write()を使った USBシリアルプログラミングのチュートリアル 1. Beginで接続 2. Writeで書き込み 3. Readで読み込み 4. Endで切断 Readボタンタップすると エコーバックを表示
  • 17. FTDriver Tutorial 1 のソースコード if(mSerial.begin(FTDriver.BAUD9600)) { /* オープンが成功したときの処理 */ } else { /* オープンが失敗したときの処理 */ } /* 一度に最大4096byte受信可能 */ byte[] rbuf = new byte[4096]; /* 受信したバイト数が戻り値 */ len = mSerial.read(rbuf); String wbuf = "FTDriver Test."; /* Stringをbyte配列に変換して渡す */ mSerial.write(wbuf.getBytes()); mSerial.end();
  • 18. 自分のAndroidは USB Host API対応? 1/4 ソースコード・アプリを公開していると ときどき質問がくる エクアドル 「ぼくのタブレット、USBキーボー ドはうごくのに、キミのアプリはうごか ないってどういうことさ?」 (エクアドル在住アンドレスさん)
  • 19. 自分のAndroidは USB Host API対応?2/4  AndroidのUSBホスト機能はLinux USBホスト機能と USB Host APIの2種類存在 Linux USB ホスト USB Host API 目的・用途 エンドユーザがUSBキー 開発者がUSBホスト機能を ボード/マウス/USBメモ 使ってアプリケーション開 リを使える。 発できる。 Androidバージョン Android3.1以前でも動作 Android3.1以降 対応内容 USB2.0の USB 2.0 USB Mass Strage アイソクロナス転送を除く Class(USBメモリ)、USB 3種類の転送方式に対応。 HID Class(USBキーボー プロトコルがわかれば開発 ド、USBマウスなど) 者の手でUSBデバイスに対 応可 ※「Linux USB ホスト」という名称はUSB Host APIと区別しやすくするため 勝手につけた名称です
  • 20. 自分のAndroidは USB Host API対応?3/4  ややこしいところ Android3.1以降であっても端末によってはサポートされ ていない アンドレスさんのケース  中華Padは非サポートが多い  Galaxy Nexus(Android 4.0)は日本版だけサポートされていな かった。後のアップデートでサポート  自分のAndroidは対応しているかどうか どうやってチェックすればいいの?  Web情報(少ない)  Android アプリ「USB Host Viewer」,「USB Device Info」をイ ンストール、デバイスを接続して情報が表示されるかチェック (これがイチバン確実)  そもそも上記アプリがインストールできない場合はアウト
  • 21. 自分のAndroidは USB Host API対応? 4/4 …という内容を踏まえて返信 エクアドル 「中華Pad乙。m9」
  • 22. まとめ  USB Host APIのとくちょう  USB Host APIを使ったライブラリでぐっと開発効率 がよくなる  FTDriverでできること紹介  FTDriverでGR-SAKURAからのエコーバック表示  自分のAndroidは対応してる?
  • 23. ご清聴ありがとうございました