12 Nov,2011                 Android端末と               組み込み機器が連携する                - Microbridge/PICなど                日本Andro...
アジェンダ  自己紹介  日本Androidの会 神戸支部 / ハードウェア倶楽部ご紹介  Microbridgeのご紹介  Android上スクリプト実行環境とMicrobridgeの連携11年11月15日火曜日
アジェンダ  自己紹介  日本Androidの会 神戸支部 / ハードウェア倶楽部ご紹介  Microbridgeのご紹介  Android上スクリプト実行環境とMicrobridgeの連携11年11月15日火曜日
石井 康寛について ・三重県伊勢地方出身 ・本業は家電メーカーでソフト開発系   エンジニア ・趣味は、電子工作、ソフト開発、   ガジェットいじり、海外旅行等 ・Android端末を買った時期にたまたま    本会MLにて神戸支部発足を知り、...
アジェンダ  自己紹介  日本Androidの会 神戸支部 / ハードウェア倶楽部ご紹介  Microbridgeのご紹介  Android上スクリプト実行環境とMicrobridgeの連携11年11月15日火曜日
って?11年11月15日火曜日
神戸支部についてちょこっとご紹介    ・初心者向け勉強会 夜子まま塾    ・Androidオンライン勉強会 すからじお       毎週水曜22:00∼ TeamSpeak&USTREAM    ・各種技術勉強会       Android...
ハードウェア倶楽部の発端  2011/1  Bluetooth経由でAndroid端末  から制御するロボット Andy  というネタをECCコンピュータ専門  学校の吉田先生が持ち込み  組込み好きが食いついて火がつい  た。11年11月15...
神戸支部ハード倶楽部で取り組んでるAndyって?Android端末をリモコンとしてBluetooth経由で操縦できるラジコンArduinoや78K0マイコンをコアに、Androidからの独自のプロトコルで操縦する11年11月15日火曜日
ANDYドロイド君構成図                 PWM                         UART                        GPIO・PWM  RCサーボモータ                   ...
神戸支部ハード倶楽部オリジナル基板 第一弾               本構成では、Arduinoボード+1800円程度で簡単にAndroid               ラジコンが作れます                ギアボックス・モーター...
Andy Shield基板の発注                                 神戸支部の方に                                 教えていただいた                         ...
神戸支部ハードウェア倶楽部               日本橋でんでんタウンもくもく会                       (通称でんもく会)               隔月(偶数月第1土曜日)に日本橋ROBOBA          ...
イベント展示等  2011年7月 OSC京都出展、ABC 2011 Summer 出展   • ABC 2011 SummerでRobotサミットを開催   • 四国支部、横浜支部ロボ部と神戸支部で1トラック運営   ABC 2011 Summ...
アジェンダ  自己紹介  日本Androidの会 神戸支部 / ハードウェア倶楽部ご紹介  Microbridgeのご紹介  Android上スクリプト実行環境とMicrobridgeの連携11年11月15日火曜日
Microbridgeで出来ること               Android端末と、USBケーブルで               繋がれたハードとが、連携できる               Android端末は、ADK対応不要、       ...
Androidケータイと外部ハードを有線接続する手段の一つ Microbridgeは、 オランダNiels Browers氏作 のArduino+USB Host Shield向けADB実装 http://code.google.com/p/m...
マイコンでADBコマンドを発行する ことで出来ることとは?      →PCとADB接続でできることと基本的には同等       例)          ・端末のログを見る(adb logcat)          ・画面のスクリーンショットを...
マイコンでADBコマンドを発行する ことで出来ることとは?      →PCとADB接続でできることと基本的には同等       例)          ・端末のログを見る(adb logcat)          ・画面のスクリーンショットを...
PCでのADB forwardとは?                                           アプリ                Android      ソケット通信                アプリ    ...
MicrobridgeでのADB forwardとは?                                             制御ソフト                Android      ソケット通信          ...
これを使って、      既存の機器に組み込んでAndroid対応化できる!      ホームオートメーションとか楽しめるかな!?    可能。だけど、Arduino+USB Host shield構成は    高価で、各機器に埋め込みっ放しに...
PICには、USB On-the-Go搭載の省ピンマイコン  がある。                                     Android                 Android                   ...
PIC向けにMicrobridgeをポーティング「Microbridge/PIC」                Arduino sketch           Application               Microbridge(C+...
Microbridge/PICでの実装例   題材 : logcat取得する          int main(void)          {            Connection * c;            c = ADB_ad...
ADKのように使うために  Microbridgeからadb shellをopenし、shellコマン  ド”am”を実行しインテントを投げる ADB_addConnection( “shell:am start -n jp.yishii.sa...
PICでお手軽にMicrobridgeするボードPIC ADK Miniboard rev.1を神戸支部第二弾で作成                  現在、オープンハードとして                  設計データ公開準備中  PIC...
au IS01とPIC ADK Miniboardを繋いで実験 ADB forwardでAndroid側から座標データを端末に 送信。その値を使用してサーボを駆動。11年11月15日火曜日
Nexus SとMicrobridge/PICとを繋いで実験 ADB shellでAndroid上の”input”というプロセスを キーコード引数付きでコール、キーイベントを発行11年11月15日火曜日
神戸支部では、ADK、Microbridge、Bluetooth等各種  I/Fを活用した機器開発推進中     神戸支部寺園氏により、それぞれのI/Fを一括り     にするAndyLib 開発中                       ...
アジェンダ  自己紹介  日本Androidの会 神戸支部 / ハードウェア倶楽部ご紹介  Microbridgeのご紹介  Android上スクリプト実行環境とMicrobridgeの連携11年11月15日火曜日
Luarida(ルアリダ)とは?               LuaridaはAndroid単体でプログラミングするためのスクリプト言語               です。ポケコンのように使えます。                ルアリダ(Lu...
11年11月15日火曜日
SL4A(Scripting Layer for Android)        Android端末上で直接スクリプトを        編集し実行できる環境        Python、PHP、Perl、Ruby等の言語が        対応し...
PC + Arduino IDE + Arduino digitalWrite(0,HIGH); while (1){  result = digitalRead(1);  for(i=0;i<NUMBER_OF    compress(arr...
Android + 直結マイコンボードの構成    PCレスで、外部ハード制御の作り込みができるPF     ioBridge Server   ioBridge Client                                  ...
package.path = system.getCardMnt().."/luarida/?.lua"       require "ioBridge_server" require("ioBridge")                  ...
どうもありがとうございました               日本Androidの会 神戸支部               石井 康寛               Twitter  @yishii               Facebook ht...
Upcoming SlideShare
Loading in …5
×

Android端末と組み込み機器が連携する Android Make Days

2,124 views

Published on

2011/11/12 福岡のAndroid Make Daysというイベントで使用した資料です。
Android端末と組み込みマイコンがUSB接続で連携するMicrobridge/PICという手段と、それを使用した例についてご紹介しています。

This slide is used for event that named Android Make Days at Fukuoka held on 12 Nov,2011.
About the method that to connect between Android-powered device and embedded microcontrollers by USB with Microbridge/PIC and introduce some examples with it.

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

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

No notes for slide

Android端末と組み込み機器が連携する Android Make Days

  1. 1. 12 Nov,2011 Android端末と 組み込み機器が連携する - Microbridge/PICなど 日本Androidの会 神戸支部 石井 康寛 Yasuhiro ISHII Twitter @yishii Facebook http://facebook.com/ishiiyasu Blog日曜エレクトロニクス(日エレ) http://projectc3.seesaa.net/11年11月15日火曜日
  2. 2. アジェンダ 自己紹介 日本Androidの会 神戸支部 / ハードウェア倶楽部ご紹介 Microbridgeのご紹介 Android上スクリプト実行環境とMicrobridgeの連携11年11月15日火曜日
  3. 3. アジェンダ 自己紹介 日本Androidの会 神戸支部 / ハードウェア倶楽部ご紹介 Microbridgeのご紹介 Android上スクリプト実行環境とMicrobridgeの連携11年11月15日火曜日
  4. 4. 石井 康寛について ・三重県伊勢地方出身 ・本業は家電メーカーでソフト開発系 エンジニア ・趣味は、電子工作、ソフト開発、 ガジェットいじり、海外旅行等 ・Android端末を買った時期にたまたま 本会MLにて神戸支部発足を知り、参加し出すTwitter @yishiiFacebook http://facebook.com/ishiiyasuBlog日曜エレクトロニクス(日エレ) http://projectc3.seesaa.net/11年11月15日火曜日
  5. 5. アジェンダ 自己紹介 日本Androidの会 神戸支部 / ハードウェア倶楽部ご紹介 Microbridgeのご紹介 Android上スクリプト実行環境とMicrobridgeの連携11年11月15日火曜日
  6. 6. って?11年11月15日火曜日
  7. 7. 神戸支部についてちょこっとご紹介 ・初心者向け勉強会 夜子まま塾 ・Androidオンライン勉強会 すからじお 毎週水曜22:00∼ TeamSpeak&USTREAM ・各種技術勉強会 Android、HTML5、Arduino、GAEなど ・No rule 自分の興味を持ったことが勉強会になる ・ハードウェア倶楽部がある 組み込みや電子工作の議論を盛んに行なって いたら支部長が「ハードウェア倶楽部」と 命名 Android 神戸支部 検索11年11月15日火曜日
  8. 8. ハードウェア倶楽部の発端 2011/1 Bluetooth経由でAndroid端末 から制御するロボット Andy というネタをECCコンピュータ専門 学校の吉田先生が持ち込み 組込み好きが食いついて火がつい た。11年11月15日火曜日
  9. 9. 神戸支部ハード倶楽部で取り組んでるAndyって?Android端末をリモコンとしてBluetooth経由で操縦できるラジコンArduinoや78K0マイコンをコアに、Androidからの独自のプロトコルで操縦する11年11月15日火曜日
  10. 10. ANDYドロイド君構成図 PWM UART GPIO・PWM RCサーボモータ モータドライバ DCモータ より簡単にAndroidラジコンを実現できないか?→11年11月15日火曜日
  11. 11. 神戸支部ハード倶楽部オリジナル基板 第一弾 本構成では、Arduinoボード+1800円程度で簡単にAndroid ラジコンが作れます ギアボックス・モーター 700円 Bluetoothモジュール 500円 ボード 200円 モータードライバ 150円 その他 200円程度 1ボードにモータドライバ、Bluetooth チップ 用ランド、RCサーボモータ用端子を装備した Android シールド11年11月15日火曜日
  12. 12. Andy Shield基板の発注 神戸支部の方に 教えていただいた 格安基板屋さん。 5cm×5cm 2層 スルーホール シルク入りで 10枚発注時の 合計 $9.9+$3(送料) Seeed Studio Fusion http://goo.gl/kuGKd11年11月15日火曜日
  13. 13. 神戸支部ハードウェア倶楽部 日本橋でんでんタウンもくもく会 (通称でんもく会) 隔月(偶数月第1土曜日)に日本橋ROBOBA (http://roboba.jp/)にて開催  次回:2011年12月10日(土) Androidとさまざまなマイコンとの接続・制御にチャレンジ!! ADK/MicroBridgeを用いて、新旧Androidも利用可能に! PIC ADK mini boardを基板から独自に制作!みんなで半田づけを行い、ローコスト でロボットカー製作が可能! Android側ライブラリで、マイコン側ファームウェアの書換えを不要に! 初心者が簡単で楽しくマイコン制御ができるように講習会を企画予定! 全国から参加者を募集しています!日本橋めぐりもできます!!11年11月15日火曜日
  14. 14. イベント展示等 2011年7月 OSC京都出展、ABC 2011 Summer 出展 • ABC 2011 SummerでRobotサミットを開催 • 四国支部、横浜支部ロボ部と神戸支部で1トラック運営 ABC 2011 Summer Robotトラック会場 左から: yokmamaさん, 石井, いわたんさん(横浜ロボ部) あきのりさん(横浜ロボ部)11年11月15日火曜日
  15. 15. アジェンダ 自己紹介 日本Androidの会 神戸支部 / ハードウェア倶楽部ご紹介 Microbridgeのご紹介 Android上スクリプト実行環境とMicrobridgeの連携11年11月15日火曜日
  16. 16. Microbridgeで出来ること Android端末と、USBケーブルで 繋がれたハードとが、連携できる Android端末は、ADK対応不要、 USB HOST対応不要。Android1.6でも問題なし11年11月15日火曜日
  17. 17. Androidケータイと外部ハードを有線接続する手段の一つ Microbridgeは、 オランダNiels Browers氏作 のArduino+USB Host Shield向けADB実装 http://code.google.com/p/microbridge/ Android Debug Bridge(ADB)接続 Propellar版PropBridgeもある Arduinoで、Androidを ADB経由で制御できる11年11月15日火曜日
  18. 18. マイコンでADBコマンドを発行する ことで出来ることとは? →PCとADB接続でできることと基本的には同等 例) ・端末のログを見る(adb logcat) ・画面のスクリーンショットを取る(DDMS) ・ファイルを置く(adb push) ・apkを置く(adb install) ・Android端末側のシェル操作(adb shell) ・Android内アプリとソケット通信する (adb forward)11年11月15日火曜日
  19. 19. マイコンでADBコマンドを発行する ことで出来ることとは? →PCとADB接続でできることと基本的には同等 例) ・端末のログを見る(adb logcat) ・画面のスクリーンショットを取る(DDMS) ・ファイルを置く(adb push) ・apkを置く(adb install) ・Android端末側のシェル操作(adb shell) ・Android内アプリとソケット通信する (adb forward)11年11月15日火曜日
  20. 20. PCでのADB forwardとは? アプリ Android ソケット通信 アプリ ADB ADB Server Daemon USB IF ADB USB IF (Android Debug Bridge) Android端末 外部機器(PC)Android端末内ソフトと外部とでソケット通信による データのやりとりが可能11年11月15日火曜日
  21. 21. MicrobridgeでのADB forwardとは? 制御ソフト Android ソケット通信 アプリ ADB Microbridge Daemon USB IF ADB USB IF (Android Debug Bridge) Android端末 外部機器(Microbridge)Android端末内ソフトと外部とでソケット通信による データのやりとりが可能11年11月15日火曜日
  22. 22. これを使って、 既存の機器に組み込んでAndroid対応化できる! ホームオートメーションとか楽しめるかな!? 可能。だけど、Arduino+USB Host shield構成は 高価で、各機器に埋め込みっ放しにするには適さ ない。(Arduino Uno 2995円、USB Host shield 2495円、計5490円) では入手性も良く安価なチップでシンプルにでき る構成にしてみるのが良いのでは?11年11月15日火曜日
  23. 23. PICには、USB On-the-Go搭載の省ピンマイコン がある。 Android Android USB HOST USB USB AVR ケータイ PIC ケータイ 7本 Controller 等 等 ・・・というわけで11年11月15日火曜日
  24. 24. PIC向けにMicrobridgeをポーティング「Microbridge/PIC」 Arduino sketch Application Microbridge(C++) Microbridge/PIC(C) USB Host Lib/DD(C++) USB Host Lib/DD(C) [*1] Arduino PF PIC24F Microbridge Microbridge/PIC ・PIC版でも、上位層へのAPI形式は出来る限りArduino版を踏襲 ・Google CodeにてOSSとして公開中 http://code.google.com/p/microbridge-pic/ ・公開プロジェクトはPIC24FJ64GB002を想定しているが、他の PICへの移植は容易のはず。11年11月15日火曜日
  25. 25. Microbridge/PICでの実装例 題材 : logcat取得する int main(void) { Connection * c; c = ADB_addConnection(“shell:exec logcat”,false); while(1){ ADB_poll(c); } } adbEventHandler(<中略>,length,*data) { switch(event){ case ADB_CONNECTION_OPEN: ... break; case ADB_CONNECTION_RECEIVE: ここに来た時dataにlogcatデータが格納されている break; .... }11年11月15日火曜日
  26. 26. ADKのように使うために Microbridgeからadb shellをopenし、shellコマン ド”am”を実行しインテントを投げる ADB_addConnection( “shell:am start -n jp.yishii.sample/.SampleActivity”,false) その他 MicrobridgeでAndroid端末のスクリーンショットを 得る ADB_addConnection(“framebuffer:.”,false)11年11月15日火曜日
  27. 27. PICでお手軽にMicrobridgeするボードPIC ADK Miniboard rev.1を神戸支部第二弾で作成 現在、オープンハードとして 設計データ公開準備中 PIC24FJ64GB002とUSBホスト周辺回路、2ch DC モータドライバ、3ch RCサーボコネクタ搭載で、 モータで動く工作を想定。値段は1500円以下。11年11月15日火曜日
  28. 28. au IS01とPIC ADK Miniboardを繋いで実験 ADB forwardでAndroid側から座標データを端末に 送信。その値を使用してサーボを駆動。11年11月15日火曜日
  29. 29. Nexus SとMicrobridge/PICとを繋いで実験 ADB shellでAndroid上の”input”というプロセスを キーコード引数付きでコール、キーイベントを発行11年11月15日火曜日
  30. 30. 神戸支部では、ADK、Microbridge、Bluetooth等各種 I/Fを活用した機器開発推進中 神戸支部寺園氏により、それぞれのI/Fを一括り にするAndyLib 開発中 Application AndyLib Bluetooth Microbridge ADK11年11月15日火曜日
  31. 31. アジェンダ 自己紹介 日本Androidの会 神戸支部 / ハードウェア倶楽部ご紹介 Microbridgeのご紹介 Android上スクリプト実行環境とMicrobridgeの連携11年11月15日火曜日
  32. 32. Luarida(ルアリダ)とは? LuaridaはAndroid単体でプログラミングするためのスクリプト言語 です。ポケコンのように使えます。  ルアリダ(Luarida)はAndroid上で動作するスクリプト(Script)で す。  スマートフォンでポケコンのように簡単にプログラムを組みたい と思ってScriptを実装しました。  言語はLuaです。BASICのように簡単にプログラムを書くことが できます。《Android Market内説明文より引用》Luaridaは、ソケット通信をサポートしているので、Microbridgeと直接データ送受信が可能。11年11月15日火曜日
  33. 33. 11年11月15日火曜日
  34. 34. SL4A(Scripting Layer for Android) Android端末上で直接スクリプトを 編集し実行できる環境 Python、PHP、Perl、Ruby等の言語が 対応している11年11月15日火曜日
  35. 35. PC + Arduino IDE + Arduino digitalWrite(0,HIGH); while (1){ result = digitalRead(1); for(i=0;i<NUMBER_OF compress(array_recei digitalWrite(0,HIGH); while (1){ result = digitalRead(1); for(i=0;i<NUMBER_OF compress(array_recei11年11月15日火曜日
  36. 36. Android + 直結マイコンボードの構成 PCレスで、外部ハード制御の作り込みができるPF ioBridge Server ioBridge Client 制御対象機器 Luarida用とSL4A JRuby用にioBridgeというモ ジュールを作りました11年11月15日火曜日
  37. 37. package.path = system.getCardMnt().."/luarida/?.lua" require "ioBridge_server" require("ioBridge") ib = IoBridge.new ioBridge.attach() ib.attach() canvas.drawCls(color(0,0,255)) ib.pinMode(0,ib.OUTPUT) ioBridge.pinMode(0,ioBridge.OUTPUT) ib.pinMode(1,ib.OUTPUT) ioBridge.pinMode(1,ioBridge.OUTPUT) ib.pinMode(2,ib.INPUT) ioBridge.pinMode(2,ioBridge.INPUT) # blink pattern 1 while(1) do thread1 = Thread.new do ioBridge.digitalWrite(0,ioBridge.HIGH) while true ioBridge.digitalWrite(0,ioBridge.LOW) if(ib.digitalRead(2) == ib.HIGH) then ib.digitalWrite(1,ib.HIGH) else if(ioBridge.digitalRead(2) == ioBridge.LOW) then ib.digitalWrite(1,ib.LOW) canvas.drawText("Port 2 : LOW ",10,10,80, end color(255,255,255),color(0,0,255)) end ioBridge.setServoAngle(18,50) end else ioBridge.setServoAngle(18,100) while true canvas.drawText("Port 2 : HIGH",10,10,80, ib.setServoAngle(10,20) color(255,255,255),color(0,0,255)) sleep 0.5 end ib.setServoAngle(10,140) end sleep 0.5 end luarida + ioBridge JRuby/SL4A + ioBridge11年11月15日火曜日
  38. 38. どうもありがとうございました 日本Androidの会 神戸支部 石井 康寛 Twitter @yishii Facebook http://facebook.com/ishiiyasu11年11月15日火曜日

×