Osc愛媛FTDriver

2,750 views

Published on

【訂正】p.5のMicrobridgeの「給電 スマホ→デバイス」の項目が○になっていますが正しくは☓です。Microbridgeはデバイス→スマホの給電になります。

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,750
On SlideShare
0
From Embeds
0
Number of Embeds
113
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Osc愛媛FTDriver

    1. 1. FTDriver Androidとマイコンをつなげよう✦ FTDriver ✦ USB-シリアル変換チップの Android用ドライバ ✦ 言語:Java ✦ Githubで公開中https://github.com/ksksue 秋月 FTDI USBシリアル変換モジュール
    2. 2. 使ってもらった例ガイガーカウンタとAndroidタブレット 海外:ヘリコプター用コントローラを XBee経由でつなげてみたよ! Galaxy Nexusと繋げたよ! (@yakagawa さん) これからヘリゲームつくるよ!
    3. 3. FTDriver設計にいたるまで✦ Android 3.1からUSBプログラミングができる ようになったよ!✦ みんなが持ってるマイコンとAndroidが繋がると 面白いんじゃない?✦ マイコンと言えばUSBシリアル!でもUSBシリ アルドライバがないじゃないか・・・✦ よしつくろう
    4. 4. 他の接続方法との違いは?✦ でもちょっとまてよ。。。 USBシリアルじゃなくてもAndroidとマイコンと繋げる方 法はあるよね? ✦ ADK ✦ Microbridge ✦ Wi-Fi ✦ Bluetooth✦ これらとどうちがうの?
    5. 5. Androidと外部デバイスとの接続方法一覧 USBシリアル ADK MicroBridge Wi-Fi Bluetooth (FTDriver) すべてのバージョ どんなマイコンと ポイント Google公式! ンのAndroidと繋 高速無線! お手軽P2P無線! も繋がる! がる! 有線/無線 有線 有線 有線 無線 無線 給電 ⃝ ☓ ⃝ ☓ ☓スマホ→デバイス 115200bps 転送レート (bitbang mode ? ? 54Mbps 19200bps 200Mbps) 消費電力 小 中 中 大 大 マイコン+ マイコン+ Arduino+USBホ Arduino+USBホ マイコン+ デバイス Bluetooth FTDIモジュール ストシールド ストシールド Wi-Fiモジュール モジュールデバイス一式価格 ¥3,500∼ ¥5,000∼ ¥5,000∼ ¥7,000∼ ¥6,000∼ 設計難易度 低 低 高 高 中 Android 3.1以上 2.3.4以上 すべて すべて すべて対応バージョン USBシリアルがAndroid-マイコン接続の選択肢として十分アリ
    6. 6. FTDriverを使ったAndroid Android-マイコン構成例 while(true) { ユーザプログラム ... len = mSerial.read(rbuf,0); ... } FTDriver シリアル通信をポーリング USB Host API begin(int baudrate); read(byte[] buf, int channel); (Android Frameworks) write(byte[] buf, int length, int channel); end(); Arduino ライクなシンプルなインタフェースマイコンボード USB通信 FTDI チップ シリアル通信 マイコン マイコンボードとAndroidをUSBで接続
    7. 7. FTDriverを使った シリアル通信プログラミング (readするだけのカンタンな例)1.インスタンス生成 mSerial = new FTDriver((UsbManager)getSystemService(Context.USB_SE RVICE));2.デバイスオープンとボーレート設定 mSerial.begin(9600)3.リードポーリング(スレッド) byte[] rbuf = new byte[4096]; ... while(true) { ... len = mSerial.read(rbuf); ... }4.デバイスクローズ mSerial.end();
    8. 8. FTDriver内の処理概要 (アプリ開発者は手をつけなくておk)1.初期化:USBホストのエンドポイントを  オープンする mEndpointIN = intf.getEndpoint(0); mEndpointOUT = intf.getEndpoint(1); intf : USB Interface インスタンス2.オープンしたエンドポイントを叩く int length = mDeviceConnection.bulkTransfer(mEndpointIN, mReadbuf, mReadbuf.length,0); // RX int length = mDeviceConnection.bulkTransfer(mEndpointOUT, write_buf, write_size, 0); // TX USBバルク転送でエンドポイントINとエンドポイントOUTを叩く
    9. 9. 最後にgithubからPull Request大歓迎 ✦ これまでの開発協力者https://github.com/ksksue ✦ @titoi2 ✦ @yishii ✦ @yakagawa ✦ @darkukll ✦ @zaki50 ✦ 他 FTDriverをBitbangモードへ対応 ソースコード提供(@yishii) 使ってみたよ or 開発してみたよ Twitter ID @ksksueなどあれば気軽にメンションください

    ×