Submit Search
Upload
GR-SAKURAのUSBホスト機能で遊ぼう
•
Download as PPTX, PDF
•
1 like
•
3,098 views
Yuuichi Akagawa
Follow
オープンソースカンファレンス2012京都で発表した 「GR-SAKURAのUSBホスト機能で遊ぼう」の資料です。 その後のライブラリ仕様変更等を反映のため、若干修正しています。
Read less
Read more
Devices & Hardware
Report
Share
Report
Share
1 of 22
Download now
Recommended
AOA2.0を実装してみた
AOA2.0を実装してみた
Yuuichi Akagawa
Androidロボットサミットin京都
Androidロボットサミットin京都
Kenichi Yoshida
イチからはじめるADK北海道支部勉強会発表資料
イチからはじめるADK北海道支部勉強会発表資料
Kenichi Yoshida
20120630 android ics in Yokohama
20120630 android ics in Yokohama
Kenichi Ohwada
20130126 OpenData and Android
20130126 OpenData and Android
Kenichi Ohwada
会津IT秋フォーラム2012での講演資料
会津IT秋フォーラム2012での講演資料
Shigeru Kobayashi
Kinect kihonnoki
Kinect kihonnoki
Kaoru NAKAMURA
Kinect for windows sdk cpp
Kinect for windows sdk cpp
Kaoru NAKAMURA
Recommended
AOA2.0を実装してみた
AOA2.0を実装してみた
Yuuichi Akagawa
Androidロボットサミットin京都
Androidロボットサミットin京都
Kenichi Yoshida
イチからはじめるADK北海道支部勉強会発表資料
イチからはじめるADK北海道支部勉強会発表資料
Kenichi Yoshida
20120630 android ics in Yokohama
20120630 android ics in Yokohama
Kenichi Ohwada
20130126 OpenData and Android
20130126 OpenData and Android
Kenichi Ohwada
会津IT秋フォーラム2012での講演資料
会津IT秋フォーラム2012での講演資料
Shigeru Kobayashi
Kinect kihonnoki
Kinect kihonnoki
Kaoru NAKAMURA
Kinect for windows sdk cpp
Kinect for windows sdk cpp
Kaoru NAKAMURA
GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...
GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...
Web Technology Corp.
Kinect for windows sdk c#
Kinect for windows sdk c#
Kaoru NAKAMURA
Cordovaコトハジメ( Html5fun×senchUG )
Cordovaコトハジメ( Html5fun×senchUG )
Masayuki Abe
Cocos2d-x勉強会 2014/10/05
Cocos2d-x勉強会 2014/10/05
Yasuhiro Matsuda
Kinect for Windows およびDepthセンサーの動向
Kinect for Windows およびDepthセンサーの動向
Kaoru NAKAMURA
Androidロボットサミットin名古屋
Androidロボットサミットin名古屋
Kenichi Yoshida
【16-D-4】3分ではじめるスマホアプリのビジュアル開発
【16-D-4】3分ではじめるスマホアプリのビジュアル開発
hmimura_embarcadero
Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...
Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...
74th
Kinect introduction
Kinect introduction
Kaoru NAKAMURA
「釣り★スタ」でのCocos2d-JSを使ってのアプリアップデート事例 (2)
「釣り★スタ」でのCocos2d-JSを使ってのアプリアップデート事例 (2)
gree_tech
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンス
Kaoru NAKAMURA
Next2D
Next2D
Toshiyuki Ienaga
Directconnect200808 Help Jp
Directconnect200808 Help Jp
codewarrior congrejo
【Unite Tokyo 2018】バーチャルYouTuber電脳少女シロがご紹介する「2018年の注目アセット100連発」
【Unite Tokyo 2018】バーチャルYouTuber電脳少女シロがご紹介する「2018年の注目アセット100連発」
Unity Technologies Japan K.K.
おしゃべりbox♪ IoTLT vol14
おしゃべりbox♪ IoTLT vol14
Masashi Fujimoto
20130526 m3pi in ADK BootCamp
20130526 m3pi in ADK BootCamp
Kenichi Ohwada
AndroidとArduinoで ロボットを作って思ったこと
AndroidとArduinoで ロボットを作って思ったこと
Takao Sumitomo
Hardware Sketching Workshop 2013
Hardware Sketching Workshop 2013
Shigeru Kobayashi
XFD導入実践記
XFD導入実践記
Go Takahashi
20121013 ADK bootcamp in Tokyo
20121013 ADK bootcamp in Tokyo
Kenichi Ohwada
中国PCB業者発注体験
中国PCB業者発注体験
Yuuichi Akagawa
北九州デジタルクリエイターコンテスト2013記念講演会
北九州デジタルクリエイターコンテスト2013記念講演会
Shigeru Kobayashi
More Related Content
What's hot
GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...
GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...
Web Technology Corp.
Kinect for windows sdk c#
Kinect for windows sdk c#
Kaoru NAKAMURA
Cordovaコトハジメ( Html5fun×senchUG )
Cordovaコトハジメ( Html5fun×senchUG )
Masayuki Abe
Cocos2d-x勉強会 2014/10/05
Cocos2d-x勉強会 2014/10/05
Yasuhiro Matsuda
Kinect for Windows およびDepthセンサーの動向
Kinect for Windows およびDepthセンサーの動向
Kaoru NAKAMURA
Androidロボットサミットin名古屋
Androidロボットサミットin名古屋
Kenichi Yoshida
【16-D-4】3分ではじめるスマホアプリのビジュアル開発
【16-D-4】3分ではじめるスマホアプリのビジュアル開発
hmimura_embarcadero
Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...
Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...
74th
Kinect introduction
Kinect introduction
Kaoru NAKAMURA
「釣り★スタ」でのCocos2d-JSを使ってのアプリアップデート事例 (2)
「釣り★スタ」でのCocos2d-JSを使ってのアプリアップデート事例 (2)
gree_tech
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンス
Kaoru NAKAMURA
Next2D
Next2D
Toshiyuki Ienaga
Directconnect200808 Help Jp
Directconnect200808 Help Jp
codewarrior congrejo
【Unite Tokyo 2018】バーチャルYouTuber電脳少女シロがご紹介する「2018年の注目アセット100連発」
【Unite Tokyo 2018】バーチャルYouTuber電脳少女シロがご紹介する「2018年の注目アセット100連発」
Unity Technologies Japan K.K.
What's hot
(14)
GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...
GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...
Kinect for windows sdk c#
Kinect for windows sdk c#
Cordovaコトハジメ( Html5fun×senchUG )
Cordovaコトハジメ( Html5fun×senchUG )
Cocos2d-x勉強会 2014/10/05
Cocos2d-x勉強会 2014/10/05
Kinect for Windows およびDepthセンサーの動向
Kinect for Windows およびDepthセンサーの動向
Androidロボットサミットin名古屋
Androidロボットサミットin名古屋
【16-D-4】3分ではじめるスマホアプリのビジュアル開発
【16-D-4】3分ではじめるスマホアプリのビジュアル開発
Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...
Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...
Kinect introduction
Kinect introduction
「釣り★スタ」でのCocos2d-JSを使ってのアプリアップデート事例 (2)
「釣り★スタ」でのCocos2d-JSを使ってのアプリアップデート事例 (2)
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンス
Next2D
Next2D
Directconnect200808 Help Jp
Directconnect200808 Help Jp
【Unite Tokyo 2018】バーチャルYouTuber電脳少女シロがご紹介する「2018年の注目アセット100連発」
【Unite Tokyo 2018】バーチャルYouTuber電脳少女シロがご紹介する「2018年の注目アセット100連発」
Similar to GR-SAKURAのUSBホスト機能で遊ぼう
おしゃべりbox♪ IoTLT vol14
おしゃべりbox♪ IoTLT vol14
Masashi Fujimoto
20130526 m3pi in ADK BootCamp
20130526 m3pi in ADK BootCamp
Kenichi Ohwada
AndroidとArduinoで ロボットを作って思ったこと
AndroidとArduinoで ロボットを作って思ったこと
Takao Sumitomo
Hardware Sketching Workshop 2013
Hardware Sketching Workshop 2013
Shigeru Kobayashi
XFD導入実践記
XFD導入実践記
Go Takahashi
20121013 ADK bootcamp in Tokyo
20121013 ADK bootcamp in Tokyo
Kenichi Ohwada
中国PCB業者発注体験
中国PCB業者発注体験
Yuuichi Akagawa
北九州デジタルクリエイターコンテスト2013記念講演会
北九州デジタルクリエイターコンテスト2013記念講演会
Shigeru Kobayashi
今すぐ始めるArduino
今すぐ始めるArduino
funa3
LEDやモーターをArduinoで制御しよう
LEDやモーターをArduinoで制御しよう
Takashi Kanamaru
Arduino + rcs620sで遊ぼう
Arduino + rcs620sで遊ぼう
treby
Lecture at University of Tsukuba
Lecture at University of Tsukuba
Shigeru Kobayashi
Adk study Boot Camp #2 Mogri
Adk study Boot Camp #2 Mogri
mogri_ss
Arduino系IDE設定切替ツール inoSwitch
Arduino系IDE設定切替ツール inoSwitch
Bizan Nishimura
マイコンボード色々 2017.03
マイコンボード色々 2017.03
Hirokazu Tokuno
Ruby関西勉強会発表資料
Ruby関西勉強会発表資料
三七男 山本
Jenkins に XFD を追加してみると
Jenkins に XFD を追加してみると
Kiro Harada
ESP8266EXで位置推定
ESP8266EXで位置推定
nishio
福岡市LoRawan(TM)実証実験
福岡市LoRawan(TM)実証実験
Kaz Ueno
Android端末と組み込み機器が連携する Android Make Days
Android端末と組み込み機器が連携する Android Make Days
Yasuhiro Ishii
Similar to GR-SAKURAのUSBホスト機能で遊ぼう
(20)
おしゃべりbox♪ IoTLT vol14
おしゃべりbox♪ IoTLT vol14
20130526 m3pi in ADK BootCamp
20130526 m3pi in ADK BootCamp
AndroidとArduinoで ロボットを作って思ったこと
AndroidとArduinoで ロボットを作って思ったこと
Hardware Sketching Workshop 2013
Hardware Sketching Workshop 2013
XFD導入実践記
XFD導入実践記
20121013 ADK bootcamp in Tokyo
20121013 ADK bootcamp in Tokyo
中国PCB業者発注体験
中国PCB業者発注体験
北九州デジタルクリエイターコンテスト2013記念講演会
北九州デジタルクリエイターコンテスト2013記念講演会
今すぐ始めるArduino
今すぐ始めるArduino
LEDやモーターをArduinoで制御しよう
LEDやモーターをArduinoで制御しよう
Arduino + rcs620sで遊ぼう
Arduino + rcs620sで遊ぼう
Lecture at University of Tsukuba
Lecture at University of Tsukuba
Adk study Boot Camp #2 Mogri
Adk study Boot Camp #2 Mogri
Arduino系IDE設定切替ツール inoSwitch
Arduino系IDE設定切替ツール inoSwitch
マイコンボード色々 2017.03
マイコンボード色々 2017.03
Ruby関西勉強会発表資料
Ruby関西勉強会発表資料
Jenkins に XFD を追加してみると
Jenkins に XFD を追加してみると
ESP8266EXで位置推定
ESP8266EXで位置推定
福岡市LoRawan(TM)実証実験
福岡市LoRawan(TM)実証実験
Android端末と組み込み機器が連携する Android Make Days
Android端末と組み込み機器が連携する Android Make Days
GR-SAKURAのUSBホスト機能で遊ぼう
1.
GR-SAKURAのUSBホスト機能で遊ぼう OSC 2012 Kansai@Kyoto 2012/8/4 2014/6/15改訂 SAKURAボードユーザ会 Yuuichi
Akagawa
2.
自己紹介 Yuuichi Akagawa (あかがわ
ゆういち) がじぇるねプロジェクトのベータテストに参画 仕組みを知ることが大好きなので、成果物が ほとんどないのが特徴。 本職は某SI企業のインフラ担当。ツッコミ厳禁。 Copyright©2012 Yuuichi Akagawa
3.
USBホストと私 Android ADKをハックしていたら、 USBホスト遊びが楽しくなってしまった。 STM32F4 DiscoveryでADK USB
MIDI to レガシーMIDI変換 Harpy nano(Arduino互換)利用 → USBH_MIDIライブラリ https://github.com/YuuichiAkagawa/USBH_MIDI LM3S3748でADK CQ出版「超入門!付属ARMマイコンで 始めるロボット製作」基板 ★Arduino用ADKライブラリ Yaoadkも絶賛公開中。https://github.com/ADKstudyGroupTokyo/Yaoadk Copyright©2012 Yuuichi Akagawa
4.
GR-SAKURAのUSBホスト(ハード) Functionと共用のため排他利用(RX63NのUSB0) → ホスト時は仮想COMポートが使えない。 GR-SAKURA-FULLを買ってもUSB-Aコネクタは 未接続。 GR-SAKURAでもUSB-Aコネクタを接続すれば 利用可能。 Copyright©2012 Yuuichi
Akagawa
5.
GR-SAKURAのUSBホスト(ハード) USBホストを使うには、まずハンダ付けから。 1. 基板裏面にUSB-Aコネクタをハンダ付け 2. J13,J15(もしくはJ12,J14)をハンダでショート ※後述の「USBホスト有効時のIO2,IO5の取り扱い」参照 3.
J1をショートすると保護ダイオードがバイパス される。必要に応じて。 Copyright©2012 Yuuichi Akagawa J1はお好みで。 J13,15を ショート
6.
GR-SAKURAのUSBホスト(ハード) printfデバッグはXBee接続がオススメ Copyright©2012 Yuuichi Akagawa void
setup() { Serial.begin(9600,SCI_SCI2B); //XBee Serial.setDefault(); // printfをSerialに出力 if(tkusbh_init() != TKUSBH_OK){ printf("!!! USB Host Initialization ERROR !!!n"); while(1); } } ※写真は評価版基板
7.
GRのUSBホストライブラリ V1ベース(RXduino)での話しです。 厳密にはRXduinoの下にある特電HALの機能 ドキュメントは、関数リファレンスのみ http://rx.tokudenkairo.co.jp/manual2/tkdnhal_desc.html#funclist_hal_usbhost よくあるステートマシンを回すタイプではなく、 同期処理っぽい作り。 そのため、あんまり詳しくない人でも割と簡単 に使える(超お手軽)。 詳しい人には痒いところに手が届かない。 Copyright©2012 Yuuichi Akagawa
8.
GRのUSBホストライブラリ(続) USBホスト有効時のIO2,IO5の取り扱い gUsbHostGpioPulldownで設定可能 ジャンパの設定も必要 デフォルトは0に設定されている USBの仕様としては1の動作が正しい 実際には問題なく動作することが多いので0でもOK? tkusbh_init()の前に設定しておく必要あり Copyright©2012 Yuuichi Akagawa gUsbHostGpioPulldown
IO2 IO5 ジャンパ設定 0 GPIO GPIO J13,J15 1 USB0_DPRPD USB_DRPD J12,J14
9.
GRのUSBホストライブラリ(続) 関数一覧 関数名 機能 tkusbh_init() USBホストモジュールを初期化する tkusbh_is_connected()
ターゲットが接続されているかどうかを調べる tkusbh_connect() ターゲットに接続する tkusbh_disconnect() ターゲットを切断する。切断されるまで待つ。 tkusbh_get_descriptor() 接続されているターゲットのディスクリプタを取得する tkusbh_get_string() 接続されているターゲットのストリングディスクリプタを取得する tkusbh_control_msg() コントロールトランザクションを発行する tkusbh_set_configuration() SET CONFIGURATIONを実行する tkusbh_bulk_write() バルクOUT転送を実行する tkusbh_bulk_read() バルクIN転送を実行する tkusbh_start_interrupt_trans() インタラプト転送を行う(開始する) tkusbh_interrupt_write() インタラプトOUT転送で送信されるデータを登録する tkusbh_interrupt_read() インタラプトIN転送で受信したデータを取得する Copyright©2012 Yuuichi Akagawa
10.
GRのUSBホストライブラリ(続) サポート状況 大分類 中分類 サポート
備考 転送タイプ コントロール転送 ○ バルク転送 ○ エンドポイントはIN/OUT 1つずつ。 インタラプト転送 ○ エンドポイントはIN/OUT 1つずつ。 受信割り込み無し アイソクロナス転送 × RX63Nには機能あり。 Speed - LS FS HSは未対応 クラスドライバ - × 何にも無いよ。 HUB対応 - × その他 ディスクリプタのパース × 支援なし。自力でがんばる。 Copyright©2012 Yuuichi Akagawa
11.
GRのUSBホストライブラリ(続) たったこれだけで、USBの接続処理が完了。 tkusbh_init(); tkusbh_connect(); でも、エンドポイント番号は自分でディスクリ プタをパースしないとわからない。USB詳しく ない人はここでつまづくはず。 ディスクリプタをパースしてデバイスを確認す るのが定石だけど、しないのもアリなのかも。 あとは、bulk_readなりbulk_writeするだけ。 Copyright©2012 Yuuichi Akagawa
12.
GRのUSBホストライブラリ(続) tkusbh_connect()を実行すると… Get Device Descriptor(先頭8バイト) Get
Device Descriptor(ALL) Set Address Get String Descriptor(0) Get Configuration Descriptor(先頭9バイト) Get Configuration Descriptor(ALL) Get String Descriptor(1) Get String Descriptor(2) Get String Descriptor(3) ここまでやってくれる。(介入はできない) ※でも、Get Configuration Descriptorの結果は残らない。 Copyright©2012 Yuuichi Akagawa
13.
GRのUSBホストライブラリ(続) 自分は以下の感じで使うようにしてみた。 bool connected =
false; void setup() { tkusbh_init(); } void loop() { if( isConnected() == false ){ delay(100); return; } //接続済みなので、送受信する if(tkusbh_bulk_read(…) > 0 ){ //受信データを処理 } //何か送信 if(tkusbh_bulk_write(…) < 0 ){ //送信エラー } delay(); //デバイス側に指定があれば。 } bool isConnected () { TKUSBH_RESULT rcode; //Check the disconnect state if(connected && tkusbh_is_connected() == TKUSBH_DISCONNECT){ tkusbh_disconnect(TIMEOUT_INFINITE); isPollEnable = false; return false; } if(connected) //Already connected return true; if(tkusbh_connect(500) != TKUSBH_OK){//Start Enumeration return false; } if(!parseConfigDescr()){ return false; } connected = true; return true; } bool parseConfigDescr() {エンドポイント情報をパース} Copyright©2012 Yuuichi Akagawa
14.
GRのUSBホストライブラリ(続) Configuration Descriptor Configuration Descriptor
bLength bDescriptorType wTotalLength 全体のサイズ bNumInterfaces Interface数 bConfigurationValue iConfiguration bmAttributes bMaxPower Interface Descriptor bLength bDescriptorType bInterfaceNumber bAlternateSetting bNumEndpoints Endpoint数 bInterfaceClass USBクラス bInterfaceSubClass USBサブクラス bInterfaceProtocol Endpoint Descriptor bLength bDescriptorType bEndpointAddress エンドポイント番号 bmAttributes wMaxPacketSize パケットサイズ bInterval ポーリングインターバル コンフィギュレーションディスクリプタは tkusbh_get_descriptor(CONFIG_DESCRIPTOR_TYPE, 0, buf, 128); で取得できる。 これをパースしてエンドポイント番号なり を取得する。 デバイスで決め打ち出来るのであれば デバイスディスクリプタの ・idVendor ・idProduct の値を見れば良い。 tkusbh_connect()が成功していれば、 ・USBHostInfo.DeviceDesc.idVendor ・USBHostInfo.DeviceDesc.idProduct に代入されている。
15.
作例 Copyright©2012 Yuuichi Akagawa
16.
もちろんGR-SAKURAでもADK 6/12に待望のUSBホストライブラリが公開され、 6/16のプロデューサミーティングに間に合わ せるべくADKの実装に着手。 USBホストライブラリの不具合修正を依頼しつ つ、なんとか当日動かせた。 http://japan.renesasrulz.com/gr_user_forum_japanese/w/wiki/75.android-adk-for-gr-sakura.aspx Copyright©2012 Yuuichi Akagawa
17.
USBH_MIDI Arduino用に作ったUSB-MIDIクラスドライバを GR-SAKURAにも移植。 音楽用ではないのでタイミング制御的なもの は無く、MIDIメッセージの送受信が出来ると いうもの。 Copyright©2012 Yuuichi Akagawa Monakaと接続USB-MIDI
to シリアルMIDI変換 USB-MIDIコントローラでLED操作 http://japan.renesasrulz.com/gr_user_forum_japanese/w/wiki/69.usb-midi-usbh-midi-for-gr-sakura.aspx
18.
USBマウス サンプルとして作成 Copyright©2012 Yuuichi Akagawa http://japan.renesasrulz.com/gr_user_forum_japanese/w/wiki/43.usb.aspx
19.
他のメンバーの作例 Copyright©2012 Yuuichi Akagawa
20.
USB Bluetoothアダプタ @hrdakinoriさんのBluetooth(btstackの移植) Copyright©2012 Yuuichi
Akagawa http://d.hatena.ne.jp/hrdakinori/20120729/1343542201
21.
USB NFCリーダ @KazuyukiEguchiさんのNFCリーダ Copyright©2012 Yuuichi
Akagawa 読み取ったデータをBluetooth Bee経由でAndroid端末に送信
22.
おしまい Copyright©2012 Yuuichi Akagawa
Download now