Android端末と組み込み機器が連携する Android Make Days
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

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

on

  • 2,123 views

2011/11/12 福岡のAndroid Make Daysというイベントで使用した資料です。

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.

Statistics

Views

Total Views
2,123
Views on SlideShare
2,123
Embed Views
0

Actions

Likes
1
Downloads
10
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

  • 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. アジェンダ 自己紹介 日本Androidの会 神戸支部 / ハードウェア倶楽部ご紹介 Microbridgeのご紹介 Android上スクリプト実行環境とMicrobridgeの連携11年11月15日火曜日
  • 3. アジェンダ 自己紹介 日本Androidの会 神戸支部 / ハードウェア倶楽部ご紹介 Microbridgeのご紹介 Android上スクリプト実行環境とMicrobridgeの連携11年11月15日火曜日
  • 4. 石井 康寛について ・三重県伊勢地方出身 ・本業は家電メーカーでソフト開発系 エンジニア ・趣味は、電子工作、ソフト開発、 ガジェットいじり、海外旅行等 ・Android端末を買った時期にたまたま 本会MLにて神戸支部発足を知り、参加し出すTwitter @yishiiFacebook http://facebook.com/ishiiyasuBlog日曜エレクトロニクス(日エレ) http://projectc3.seesaa.net/11年11月15日火曜日
  • 5. アジェンダ 自己紹介 日本Androidの会 神戸支部 / ハードウェア倶楽部ご紹介 Microbridgeのご紹介 Android上スクリプト実行環境とMicrobridgeの連携11年11月15日火曜日
  • 6. って?11年11月15日火曜日
  • 7. 神戸支部についてちょこっとご紹介 ・初心者向け勉強会 夜子まま塾 ・Androidオンライン勉強会 すからじお 毎週水曜22:00∼ TeamSpeak&USTREAM ・各種技術勉強会 Android、HTML5、Arduino、GAEなど ・No rule 自分の興味を持ったことが勉強会になる ・ハードウェア倶楽部がある 組み込みや電子工作の議論を盛んに行なって いたら支部長が「ハードウェア倶楽部」と 命名 Android 神戸支部 検索11年11月15日火曜日
  • 8. ハードウェア倶楽部の発端 2011/1 Bluetooth経由でAndroid端末 から制御するロボット Andy というネタをECCコンピュータ専門 学校の吉田先生が持ち込み 組込み好きが食いついて火がつい た。11年11月15日火曜日
  • 9. 神戸支部ハード倶楽部で取り組んでるAndyって?Android端末をリモコンとしてBluetooth経由で操縦できるラジコンArduinoや78K0マイコンをコアに、Androidからの独自のプロトコルで操縦する11年11月15日火曜日
  • 10. ANDYドロイド君構成図 PWM UART GPIO・PWM RCサーボモータ モータドライバ DCモータ より簡単にAndroidラジコンを実現できないか?→11年11月15日火曜日
  • 11. 神戸支部ハード倶楽部オリジナル基板 第一弾 本構成では、Arduinoボード+1800円程度で簡単にAndroid ラジコンが作れます ギアボックス・モーター 700円 Bluetoothモジュール 500円 ボード 200円 モータードライバ 150円 その他 200円程度 1ボードにモータドライバ、Bluetooth チップ 用ランド、RCサーボモータ用端子を装備した Android シールド11年11月15日火曜日
  • 12. Andy Shield基板の発注 神戸支部の方に 教えていただいた 格安基板屋さん。 5cm×5cm 2層 スルーホール シルク入りで 10枚発注時の 合計 $9.9+$3(送料) Seeed Studio Fusion http://goo.gl/kuGKd11年11月15日火曜日
  • 13. 神戸支部ハードウェア倶楽部 日本橋でんでんタウンもくもく会 (通称でんもく会) 隔月(偶数月第1土曜日)に日本橋ROBOBA (http://roboba.jp/)にて開催  次回:2011年12月10日(土) Androidとさまざまなマイコンとの接続・制御にチャレンジ!! ADK/MicroBridgeを用いて、新旧Androidも利用可能に! PIC ADK mini boardを基板から独自に制作!みんなで半田づけを行い、ローコスト でロボットカー製作が可能! Android側ライブラリで、マイコン側ファームウェアの書換えを不要に! 初心者が簡単で楽しくマイコン制御ができるように講習会を企画予定! 全国から参加者を募集しています!日本橋めぐりもできます!!11年11月15日火曜日
  • 14. イベント展示等 2011年7月 OSC京都出展、ABC 2011 Summer 出展 • ABC 2011 SummerでRobotサミットを開催 • 四国支部、横浜支部ロボ部と神戸支部で1トラック運営 ABC 2011 Summer Robotトラック会場 左から: yokmamaさん, 石井, いわたんさん(横浜ロボ部) あきのりさん(横浜ロボ部)11年11月15日火曜日
  • 15. アジェンダ 自己紹介 日本Androidの会 神戸支部 / ハードウェア倶楽部ご紹介 Microbridgeのご紹介 Android上スクリプト実行環境とMicrobridgeの連携11年11月15日火曜日
  • 16. Microbridgeで出来ること Android端末と、USBケーブルで 繋がれたハードとが、連携できる Android端末は、ADK対応不要、 USB HOST対応不要。Android1.6でも問題なし11年11月15日火曜日
  • 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. マイコンでADBコマンドを発行する ことで出来ることとは? →PCとADB接続でできることと基本的には同等 例) ・端末のログを見る(adb logcat) ・画面のスクリーンショットを取る(DDMS) ・ファイルを置く(adb push) ・apkを置く(adb install) ・Android端末側のシェル操作(adb shell) ・Android内アプリとソケット通信する (adb forward)11年11月15日火曜日
  • 19. マイコンでADBコマンドを発行する ことで出来ることとは? →PCとADB接続でできることと基本的には同等 例) ・端末のログを見る(adb logcat) ・画面のスクリーンショットを取る(DDMS) ・ファイルを置く(adb push) ・apkを置く(adb install) ・Android端末側のシェル操作(adb shell) ・Android内アプリとソケット通信する (adb forward)11年11月15日火曜日
  • 20. PCでのADB forwardとは? アプリ Android ソケット通信 アプリ ADB ADB Server Daemon USB IF ADB USB IF (Android Debug Bridge) Android端末 外部機器(PC)Android端末内ソフトと外部とでソケット通信による データのやりとりが可能11年11月15日火曜日
  • 21. MicrobridgeでのADB forwardとは? 制御ソフト Android ソケット通信 アプリ ADB Microbridge Daemon USB IF ADB USB IF (Android Debug Bridge) Android端末 外部機器(Microbridge)Android端末内ソフトと外部とでソケット通信による データのやりとりが可能11年11月15日火曜日
  • 22. これを使って、 既存の機器に組み込んでAndroid対応化できる! ホームオートメーションとか楽しめるかな!? 可能。だけど、Arduino+USB Host shield構成は 高価で、各機器に埋め込みっ放しにするには適さ ない。(Arduino Uno 2995円、USB Host shield 2495円、計5490円) では入手性も良く安価なチップでシンプルにでき る構成にしてみるのが良いのでは?11年11月15日火曜日
  • 23. PICには、USB On-the-Go搭載の省ピンマイコン がある。 Android Android USB HOST USB USB AVR ケータイ PIC ケータイ 7本 Controller 等 等 ・・・というわけで11年11月15日火曜日
  • 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. 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. 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. PICでお手軽にMicrobridgeするボードPIC ADK Miniboard rev.1を神戸支部第二弾で作成 現在、オープンハードとして 設計データ公開準備中 PIC24FJ64GB002とUSBホスト周辺回路、2ch DC モータドライバ、3ch RCサーボコネクタ搭載で、 モータで動く工作を想定。値段は1500円以下。11年11月15日火曜日
  • 28. au IS01とPIC ADK Miniboardを繋いで実験 ADB forwardでAndroid側から座標データを端末に 送信。その値を使用してサーボを駆動。11年11月15日火曜日
  • 29. Nexus SとMicrobridge/PICとを繋いで実験 ADB shellでAndroid上の”input”というプロセスを キーコード引数付きでコール、キーイベントを発行11年11月15日火曜日
  • 30. 神戸支部では、ADK、Microbridge、Bluetooth等各種 I/Fを活用した機器開発推進中 神戸支部寺園氏により、それぞれのI/Fを一括り にするAndyLib 開発中 Application AndyLib Bluetooth Microbridge ADK11年11月15日火曜日
  • 31. アジェンダ 自己紹介 日本Androidの会 神戸支部 / ハードウェア倶楽部ご紹介 Microbridgeのご紹介 Android上スクリプト実行環境とMicrobridgeの連携11年11月15日火曜日
  • 32. Luarida(ルアリダ)とは? LuaridaはAndroid単体でプログラミングするためのスクリプト言語 です。ポケコンのように使えます。  ルアリダ(Luarida)はAndroid上で動作するスクリプト(Script)で す。  スマートフォンでポケコンのように簡単にプログラムを組みたい と思ってScriptを実装しました。  言語はLuaです。BASICのように簡単にプログラムを書くことが できます。《Android Market内説明文より引用》Luaridaは、ソケット通信をサポートしているので、Microbridgeと直接データ送受信が可能。11年11月15日火曜日
  • 33. 11年11月15日火曜日
  • 34. SL4A(Scripting Layer for Android) Android端末上で直接スクリプトを 編集し実行できる環境 Python、PHP、Perl、Ruby等の言語が 対応している11年11月15日火曜日
  • 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. Android + 直結マイコンボードの構成 PCレスで、外部ハード制御の作り込みができるPF ioBridge Server ioBridge Client 制御対象機器 Luarida用とSL4A JRuby用にioBridgeというモ ジュールを作りました11年11月15日火曜日
  • 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. どうもありがとうございました 日本Androidの会 神戸支部 石井 康寛 Twitter @yishii Facebook http://facebook.com/ishiiyasu11年11月15日火曜日