Androidロボットサミットin名古屋

4,375 views

Published on

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

  • Be the first to like this

No Downloads
Views
Total views
4,375
On SlideShare
0
From Embeds
0
Number of Embeds
3,125
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Androidロボットサミットin名古屋

    1. 1. Androidロボットサミットin 名古屋 日本Androidの会 神戸支部 吉田研一 1
    2. 2. アジェンダ自己紹介日本Androidの会神戸支部の紹介Androidとマイコン・FPGAの接続最近のトピック ー Arduino 1.0を使ったADKこれからのトピック ー 上位レイヤライブラリ 2
    3. 3. 自己紹介よしだけんいち(45歳) @dietposter JAG神戸&神戸GTUGメンバー奈良在住だけど(名古屋は近鉄特急で来ました)ECCコンピュータ専門学校専任教員(大阪だけど) 3
    4. 4. 近況 11/12 KOF 近況 2011年11月KOF 近況 11/12 KOF 「勉強会&イベント 探訪記」より 「勉強会&イベント 探訪記」より 連載終了おつかれ年1月16日月曜日 さまでした!! 4
    5. 5. 近況 全国津々浦々!勉強会&イベント探訪記 番外編 でイベント紹介 http://kozos.jp/books/gogoevent_12/ article.html#subsection_toc5 5
    6. 6. 神戸支部ハードウェア倶楽部 Androidとハードウェア(ロボットや回路基板 など)を愉しむグループ 日本橋 (大阪) だけど 6
    7. 7. 日本橋でんもく会を開催http://www.kumikomi.net/archives/2012/02/co03and2.php 7
    8. 8. 神戸支部ML 日本Androidの会 神戸支部ML 参加資格は「Android」への興味だけ! 参加資格は「Android」への興味だけ! ML登録で、どこに住んでも神戸支部! ML登録で、どこに住んでも神戸支部! 支部長 @takagig 支部長 @takagig 319名(2012年5月12日現在) 295名(2012年1月14日現在)http://p.tl/zyeR ピードットティエル ゼットワイイーアール 8
    9. 9. 自己紹介日本Androidの会神戸支部の紹介Androidとマイコン・FPGAの接続最近のトピック ー Arduino 1.0を使ったADKこれからのトピック ー 上位レイヤライブラリ 9
    10. 10. AndroidとはLinuxをベースとした携帯電話向けOS ライブラリ:bionic (glibcではなく) アプリケーション実行環境:DalvikVM (Java VMではなく)Get sourceサイトから (オープンソース入手) http://source.android.com/source/ index.html 10
    11. 11. Androidプラットホームスマートフォン, タブレットボード(Beagle Boardなど組み込み基板)オープンソース Apache License v.2 (not GPL) OHA提供 純正オープンソースAndroid OESF提供 組み込み向けAndroid (Embedded Master 3) 11
    12. 12. マイコンとはマイコン=「安い・小さい・省電力」のMCU MCU(Micro Control Unit)=1チップ上にCPU コアと複数の周辺機能が集積・搭載 CPUコア:8, 16, 32ビットのCISC(命令長 可変)が多い 主にハーバード・アーキテクチャ 12
    13. 13. ハーバード・アーキテクチャ 命令とデータのバスを分離させるファームウェアの書き込み マイコン(MCU) フラッシュ CPU ROM コア RAM 命令 データ 反対語:プリンストン・アーキテクチャ (命令とデータは同じメモリに格納) 13
    14. 14. マイコンの周辺機能各種コントローラ(周辺機能) A-D, D-Aコンバータ、シリアル、割り込み、USB 等々 USBコントローラを持つマイコンが接続性が高い 〔代表例〕マイクロチップ社PIC24Fなど 14
    15. 15. PIC24FJ64GB002 Microchip社の16bitマイコン max 32MHz – 64Kbyte Program Memory (Flash)、64Kbyte RAM – I2C, IrDA, SPI, UART/USART, USB OTG MCLR 1 28 VDD CMPST1/CN2/RA0 2 27 VSS テキストCMPST2/CN3/RA1 3 26 AN9/C3INA/VBUSCHG/RP15/VBUSST/CN11/RB15 PIC24FJXXGB002P0/PMD0/CN4/RB0 4 25 AN10/C3INB/CVREF/VCPCON/VBUSON/RP14/CN12/RB14P1/PMD1/CN5/RB1 5 24 AN11/C1INC/RP13/PMRD/REFO/SESSEND/CN13/RB13P2/PMD2/CN6/RB2 6 23 VUSB3/PMWR/CN7/RB3 7 22 PGEC2/D-/VMIO/RP11/CN15/RB11 VSSPMCS1/CN30/RA2 8 9 21 20 PGED2/D+/VPIO/RP10/CN16/RB10 VCAP/VDDCORE D+, D-のUSB端子O/PMA0/CN29/RA3 10 19 DISVREG 4/PMBE/CN1/RB4 C/PMA1/CN0/RA4 11 12 18 17 TDO/SDA1/RP9/PMD3/RCV/CN21/RB9 Androidと接続! TCK/USBOEN/SCL1/RP8/PMD4/CN22/RB8 VDD 13 16 TDI/RP7/PMD5/INT0/CN23/RB7 /USBID/CN27/RB5 14 15 VBUS 15
    16. 16. FPGAFPGA=ハードウェア記述が可能なSoC SoC(System On a Chip)=1チップに複数の周 辺機能を搭載しフラッシュROM, データ RAMは外部に持つ(大規模化が可能) 機能記述言語 Verilog HDL, VHDLでハード ウェアを記述する 16
    17. 17. マイコンとFPGAマイコン(MCU) 自動車のエンジン制御や家電の動作制御など Microchip, Atmel, Renesus, FreeScale, MIPS, ARM などFPGA(プログラム可能なSoC) カーナビやゲーム機など Xilinx, Altera, ARMなど 17
    18. 18. マイコンやFPGAではUIが面倒(というか無かったりする)ネットワーク機能は特定の周辺機能によるクラウド利用は、それ以前の問題Androidとつなぐことができれば改善される 18
    19. 19. Androidとの接続マイコン・FPGA Android などの外部機器 無線 3G WiFi Bluetooth NFC(赤外線※一部メーカーのみAndroidでは一般的ではない) 有線 USB 特定用途(AudioやHDMIなど) 19
    20. 20. Androidとの接続(1)音声(DTMF/ソフトモデム)Bluetooh/Wi-FiUSB接続 USBデバイス:ADK / MicroBridge USBホスト:USB Host API 20
    21. 21. Androidとの接続(2)Android上のLL(軽量スクリプト言語)とマイコン上位レイヤライブラリAndyLib 21
    22. 22. 音声 (DTMF) 今岡さん(OSC愛媛)のドロン君 DTMF(プッシュトーン)をDTMFデコーダ(IC) に識別させる Google音声認識で遠隔操作http://www.ospn.jp/press/20110516no10-useit-oss.html 22
    23. 23. BluetoothWebサーバを介した命令送受信 吉田、石井さんのAndyタンクシリーズ cmd01.txt Web サーバ F255F255 Android搭載型 http://foo.bar/cmd.php Andyタンク1号 HttpBtnQuery HttpBluetoothControl 接続形態(3) 23
    24. 24. Androidロボットの分類 Bluetoothが使われる部位→ (1)Android - ロボットカー 遠隔操作 (2)Android 搭載型ロボットカー (3)Android-Android搭載ロボット カー 遠隔操作 (4)Android自身がロボットカー京都支部勉強会資料 https://docs.google.com/open? 24id=0B60iGGxfzllnY2NlODhmYzYtNjI2Yy00NzdhLWI5ODMtY2Q3OGM5MmQxNTBh
    25. 25. ADKドロン君作ってみた 世界最小のUSBホスト付き (ADK可能な) Arduino上から 裏側 後ほどデモ します 25
    26. 26. オープンソースハードウェア 回路図も公開 つくばFabLabで作成 http://www.harpyhack.com/ 26
    27. 27. ロボットサミットの思想Open Source SoftwareとともにOpen SourceHardwareを有効に活用することソフトウェアに逃げがち(!?)な自分の手(=思考・発想・実作業)をモノづくりに向かわせるコト(=コトづくり・ヒトづくり)Social codingとともにSocial makingへ 27
    28. 28. 「ハードウェア」という制約 ハードウェアはモノ自体のコストが必ずかか るという制約/デメリットがある。 トライ&エラーによる試行が難しい。 実作業的にも、教育的にも、商業的にも。 28
    29. 29. 商業的制約に対し クラウドファウンデーション オンライン上で少額 支援を行う仕組み。 支援者はマイクロ・ パトロンと呼ぶ。 Kickstarterや CAMPFIREなどhttp://camp-fire.jp/projects/view/254 29
    30. 30. 実作業・教育的制約に対し ホームページや書籍、勉強会 「Android ADKプログラミング & 電子工作 バイブル」 著者 岩田 直樹/杉浦 登/高木 基成/原田 明憲/吉田 研一 ISBN978-4-88337-809-8 株式会社ソシム Use it! OSS 本体価格:2,980円(税別) 5月22日発売!http://www.ospn.jp/press/20120404no22-2-useit-oss.html 30
    31. 31. 話がちょっと脱線気味… でも結構大事な事(^-^;;「Androidとマイコン・FPGAの接続」に戻ります。 31
    32. 32. Android のUSBのAPI(Java) USB Accesory API(電源をもらう) AndroidがUSB(Type-Bコネクタ) これがいわゆるADK USB Host API(電源供給側) AndroidがUSBホスト(Type-Aコネクタ) 3212年1月16日月曜日
    33. 33. USBのアクセサリモードとホストモード USBホスト USBデバイスアクセサリ 電力 Androidが従 マイコンや モード FPGAなど A B Android データ転送 USBデバイス USBホスト Androidが主 ホスト マイコンや 電力 モード FPGAなど B データ転送 A Android デバイスドライバ部分 を書く必要が有る 33
    34. 34. ADKとは? Android Open Accessory Development Kit 2011年5月 Google I/O発表 一周年!!http://developer.android.com/intl/ja/guide/topics/usb/adk.html 34
    35. 35. SD誌2012年1月号 ADKとは(@takagigより)ADKと記述した場合は、「Open Accessory DevelopmentKit」のことを指します。ADKのAは、AndroidではなくAccessoryの頭文字です。Android2.3.4とAndroid3.1以降に追加された周辺機器用のAPIを利用するためのソフトウェアやドキュメント、Accessory Demo Kitと呼ばれるハードウェアを合わせてADKと表現します。 マイコン・FPGAなど 35
    36. 36. ADK対応ボード 国産ADK対応ボード Arduino互換http://developer.android.com/intl/ja/guide/topics/usb/adk.html 36
    37. 37. ADKの普及の妨げ対応ボードがコスト高/入手性が悪いAdnroidのバージョンに制限 スマートフォン2.3.4以上 タブレット3.1以上 はやくみんな4.0(ICS)になるといいのに… 37
    38. 38. Niels’s MicroBridgeADB(Android Debug Bridge)の組み込み向け実装(C++) Arduino + USBホスト シールド (5,160円)で adb通信http://code.google.com/p/microbridge/ 38
    39. 39. MicroBridge portingADBは、エミュレータやAndroid実機とのバイナリ転送・デバッグ出力などに用いられる仕組み。adbコマンドで各種操作が可能Android側の/sbin/adbd とソケット通信できればAndroidのバージョンは問わないadbを備えていないAndroidは「無い」 39
    40. 40. @yishii’s PIC24F portin SPDIP, SOIC, SSOP(1) 石井さんによるPIC24Fマイコンへの MicroBridgeポーティング(C++→C言語) MCLR 1 28 VDD3/AN0/C3INC/VREF+/ASDA1(2)/RP5/PMD7/CTED1/VBUSVLD/VCMPST1/CN2/RA0 2 27 VSS /AN1/C3IND/VREF-/ASCL1(2)/RP6/PMD6/CTED2/SESSVLD/VCMPST2/CN3/RA1 3 26 AN9/C3INA/VBUSCH PIC24FJXXGB002 PGED1/AN2/C2INB/DPH/RP0/PMD0/CN4/RB0 4 25 AN10/C3INB/CVREF/V PGEC1/AN3/C2INA/DMH/RP1/PMD1/CN5/RB1 5 24 AN11/C1INC/RP13/PM AN4/C1INB/DPLN/SDA2/RP2/PMD2/CN6/RB2 6 23 VUSB AN5/C1INA/DMLN/RTCC/SCL2/RP3/PMWR/CN7/RB3 7 22 PGEC2/D-/VMIO/RP1 VSS 8 21 PGED2/D+/VPIO/RP1 OSCI/CLKI/C1IND/PMCS1/CN30/RA2 9 20 VCAP/VDDCORE OSCO/CLKO/PMA0/CN29/RA3 10 19 DISVREG SOSCI/C2IND/RP4/PMBE/CN1/RB4 11 18 TDO/SDA1/RP9/PMD SOSCO/SCLKI/T1CK/C2INC/PMA1/CN0/RA4 12 17 TCK/USBOEN/SCL1/ VDD 13 16 TDI/RP7/PMD5/INT0/ TMS/USBID/CN27/RB5 14 15 VBUS http://code.google.com/p/microbridge-pic/ 40
    41. 41. 6.-1.基板写真(A面)@yishii’s PIC24F Board石井さんによるPIC ADK mini board基板も設計・発注2,000円で製作可日本橋でんもく会で領布各種ポーティングに拍車 41
    42. 42. @iseroid’s DE0 port伊勢さん@iseroidによるALTERADE0/DE0-nano FPGAへのMicroBridgeポーティング(C, C++)ADKもポーティングAccessoryDemo Kitの対応はマイコンのみ。FPGAでは初!?快挙!) https://github.com/iseroid/microbridge_nios2 42
    43. 43. ALTERA FPGAツール類 CPU(SoC) ( Eclipse Qsys( SoPC(Builder)( NiosII(EDS(Eclipse)( C/C++ % Nios% Timer% C/C++% % % My% Nios% Timer% % UART% FPGA% Logic% UART% Logic% FPGA CPU+ %DE0でできること.pdf - Google ドキュメント http://bit.ly/GIXTnn 43
    44. 44. FPGA(DE0)内の移植手順 USBホスト シールドと のSPI通信の HW/SW記述第0回関西FPGA・DE0勉強会-DE0-NanoとAndroidを繋げちゃう-.pdf - Google ドキュメント http:/ 44 /bit.ly/GIXbXl
    45. 45. @basaro_k’s Xilinx FPGA port小山さん@basaro_kによるXilinx FPGAボードへのMicroBridgeポーティングADKもポーティング済との事 http://fpga.co.jp/android/index.html 45
    46. 46. @basaro_k’s Xilinx FPGA Board小山さん@basaro_kによるXilinx FPGAボード 46
    47. 47. 動作確認http://fpga.co.jp/android/index.html オープンソース公開は準備中 47
    48. 48. USB Host API(Android)AndroidがUSBホストになり、接続したマイコンとやりとりする給電がAndroid側になり配線の取り回しがラクUSB-Aコネクタを持つAndroidスマホ/タブレットは少ない(変換ケーブルが必要)マイコン側のシリアル・ドライバ部分を書く必要がある。 FTDIシリアルチップ向け 48 のオープンソース有り
    49. 49. @ksksue’s FTDriver鈴木さん@ksksue作 https://github.com/ksksue/FTDriver 49
    50. 50. USB Host API wrapper Library ArduinoライクなAndroid3.1用 FTDIドライバAPI公開 USBデバイス USBホスト 電力 マイコンや Androidが主 FPGAなど B データ転送 A AndroidFT232RLなど USB Host APIFTDIチップ限定 UARTがあれ ラッパ ば何でも可! http://d.hatena.ne.jp/ksksue/20111106 50
    51. 51. LL on AndroidAndroid上で動作するLightweight Language(軽量スクリプト言語) SL4A 言語:Ruby, Python, Perl, PHP, Lua Luarida 言語:Lua 51
    52. 52. SL4A Scripting Layer for Android オープンソース apkをダウンロード すれば即、スクリ プト環境となるhttp://code.google.com/p/android-scripting/ 52
    53. 53. Luarida (たろサさん作) Luarida - Google Play http:/ 53 /bit.ly/GIxxGH
    54. 54. 先ほどのMicroBridge Portの話 ADBは、エミュレータやAndroid実機とのバイナリ転送・デバッグ出 力などに用いられる仕組み。adbコマンドで各種操作が可能 Android側の/sbin/adbd とソケット通信できれ ばAndroidのバージョンは問わない adbを備えていないAndroidは「無い」 LLでソケット・ライブラリを呼び 出せれば、マイコンを操作可能! 54
    55. 55. @yishii’s ioBridgeAndroid + 直結マイコンボードの構成PCレスで、外部ハード制御の作り込みができるPFioBridge Server ioBridge Client 制御対象機器Luarida用とSL4A JRuby用にioBridgeというモジュールを作りました 55
    56. 56. LL on Android とマイコン 石井さん:オープンソース(SL4A ruby)整備中 SL4Aでマイコンとadbソケット通信なら Python, PHP, Perl などスクリプトでマイコン 接続が可能に! たろサさん:Luaridaもりもりバージョンアッ プ中!以下のサイトで情報を公開していますコンピュータを楽しもう! http://d.hatena.ne.jp/tarosay/ 56
    57. 57. 自己紹介日本Androidの会神戸支部の紹介Androidとマイコン・FPGAの接続最近のトピック ー Arduino 1.0を使ったADKこれからのトピック ー 上位レイヤライブラリ 57
    58. 58. 再びADKとは キホン、ArduinoとAndroidの接続http://developer.android.com/intl/ja/guide/topics/usb/ adk.html#installing-firmware 58
    59. 59. Google放置play... GoogleのADKサンプルソース 「Demokit0512.zip」はArduino IDE 0022のままhttps://dl-ssl.google.com/android/adk/adk_release_0512.zip Arduinoの開発環境は Arduino 1.0となり正式リ リースしたためライブラリが大きく変更 そのままGoogleのADKサンプルを使うと動かない 59
    60. 60. Arduino 1.0http://arduino.cc/en/Main/Software 60
    61. 61. Arduino 1.0はオープンソース ビルドすると日本語メ ニューになりますhttps://github.com/arduino/Arduino 61
    62. 62. Arduino 1.0を教育向けに 桐畑くん@fox_twittingによるEduino 日本語ブロックプログラミング https://github.com/yuki-shuhara/eduino 62
    63. 63. Arduino 1.0対応ADKライブラリ作りました Android ADK勉強会(東京)メンバーと協力 して公開(Apache License v.2) テキスト github初心者でもZIPを ダウンロードするだけhttps://github.com/ADKstudyGroupTokyo/Yaoadk 63
    64. 64. ZIPを解凍してライブラリのフォルダすべてをLibrariesフォルダに配置するだけ是非、使ってください!! Yaoadkライブラリ集の使い方(Windows7) ·ADKstudyGroupTokyo/Yaoadk Wiki http://bit.ly/GJIFm5 64
    65. 65. 自己紹介日本Androidの会神戸支部の紹介Androidとマイコン・FPGAの接続最近のトピック ー Arduino 1.0を使ったADKこれからのトピック ー 上位レイヤライブラリ 65
    66. 66. ADK/MB開発手順の手間1. USBホスト(組込みマイコン)側のファームウェアを作成する。2. Android側でUSB Accessory API(ver.2.3.4以降)を理解しJavaでアプリを作成する3. USBホスト側とAndroidのプロトコルを考えて上記プログラムに盛込む 66
    67. 67. 3つの異なるスキルが必要ADKの例 USBホスト USBデバイス(アクセサリーモード) マイコン・ Android FPGA ファームウェア データ転送 Javaアプリ 独自の プロトコル USBAccessory ADKライブラリ API ADK 67
    68. 68. 求められるスキル組み込みの知識Javaのプログラミング能力デバイス間のプロトコルの決定能力 68
    69. 69. 上位レイヤAndyLibメモリマッププロトコルによるプロトコル設定 USBホスト USBデバイス(アクセサリーモード) マイコン・ Android メモリマップ FPGA プロトコルファームウェア データ転送 Javaアプリ AndyLib USBAccessoryADKライブラリ API コーディング効率 ADK が向上する! 69
    70. 70. AndyLib 夜子まま@yokmamaによるプロジェクト・ ライブラリhttp://code.google.com/p/android-jp-kobe/downloads/list 70
    71. 71. Arduino側AndyLib 石井さん@yishiiによるMemoryMapLibhttps://github.com/yishii/Arduino_MemoryMapLib使い方:http://projectc3.seesaa.net/article/243033403.html 71
    72. 72. Androidとの接続手法 すべてのConnectivityをAndyLibで!マイコン・FPGA Android などの外部機器 現在はADK 無線 3G とBluetoothで WiFi Bluetooth 実装 NFC(赤外線※一部メーカーのみAndroidでは一般的ではない) 現在は 有線 USB Arduinoのみ 特定用途(AudioやHDMIなど) 72 実装
    73. 73. 今後接続の種類&マイコン・FPGAを増やす 夜子ままさんはじめAndroid Javaコーダ マイコン側ライブラリ組み込みコーダAndyLibの教育の定期的開催 73
    74. 74. またATNDなどで告知します 2012年1月に1回目を開催しました。 http://atnd.org/event/E0000685 74
    75. 75. 神戸支部MLご清聴ありがとうございました! 参加資格は「Android」への興味だけ! ML登録で、どこに住んでも神戸支部! 日本Androidの会 支部長 @takagig 神戸支部ML 参加資格は「Android」への興味だけ! 295名(2012年1月14日現在) ML登録で、どこに住んでも神戸支部!http://p.tl/zyeR ピードットティエル ゼットワイイーアール 75

    ×