android端末と組み込み機器が連携する android make days

38
Android端末と 組み込み機器が連携する - Microbridge/PICなど 石井 康寛 Yasuhiro ISHII 日本 Android の会 神戸支部 Twitter @yishii Facebook http://facebook.com/ishiiyasu Blog 日曜エレクトロニクス ( 日エレ ) http://projectc3.seesaa.net / 12 Nov,2011 111115日火曜日

Upload: yasuhiro-ishii

Post on 25-May-2015

1.778 views

Category:

Technology


5 download

DESCRIPTION

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.

TRANSCRIPT

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

Android端末と組み込み機器が連携する- Microbridge/PICなど

石井 康寛 Yasuhiro ISHII日本Androidの会 神戸支部

Twitter @yishiiFacebook http://facebook.com/ishiiyasuBlog日曜エレクトロニクス(日エレ) http://projectc3.seesaa.net/

12 Nov,2011

11年11月15日火曜日

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

アジェンダ自己紹介

日本Androidの会 神戸支部 / ハードウェア倶楽部ご紹介

Microbridgeのご紹介

Android上スクリプト実行環境とMicrobridgeの連携

11年11月15日火曜日

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

自己紹介

日本Androidの会 神戸支部 / ハードウェア倶楽部ご紹介

Microbridgeのご紹介

Android上スクリプト実行環境とMicrobridgeの連携

アジェンダ

11年11月15日火曜日

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

・三重県伊勢地方出身・本業は家電メーカーでソフト開発系 エンジニア

・趣味は、電子工作、ソフト開発、 ガジェットいじり、海外旅行等

・Android端末を買った時期にたまたま 本会MLにて神戸支部発足を知り、参加し出す

石井 康寛について

Twitter @yishiiFacebook http://facebook.com/ishiiyasuBlog日曜エレクトロニクス(日エレ) http://projectc3.seesaa.net/11年11月15日火曜日

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

自己紹介

日本Androidの会 神戸支部 / ハードウェア倶楽部ご紹介

Microbridgeのご紹介

Android上スクリプト実行環境とMicrobridgeの連携

アジェンダ

11年11月15日火曜日

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

って?11年11月15日火曜日

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

神戸支部についてちょこっとご紹介・初心者向け勉強会 夜子まま塾・Androidオンライン勉強会 すからじお 毎週水曜22:00~ TeamSpeak&USTREAM・各種技術勉強会 Android、HTML5、Arduino、GAEなど・No rule 自分の興味を持ったことが勉強会になる・ハードウェア倶楽部がある 組み込みや電子工作の議論を盛んに行なって いたら支部長が「ハードウェア倶楽部」と 命名Android 神戸支部 検索

11年11月15日火曜日

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

ハードウェア倶楽部の発端2011/1Bluetooth経由でAndroid端末から制御するロボット”Andy”というネタをECCコンピュータ専門学校の吉田先生が持ち込み組込み好きが食いついて火がついた。

11年11月15日火曜日

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

神戸支部ハード倶楽部で取り組んでる

Andyって?Android端末をリモコンとしてBluetooth経由で操縦できるラジコンArduinoや78K0マイコンをコアに、Androidからの独自のプロトコルで操縦する

11年11月15日火曜日

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

ANDYドロイド君構成図

UART

GPIO・PWM

PWM

RCサーボモータ

DCモータ

モータドライバ

より簡単にAndroidラジコンを実現できないか?→11年11月15日火曜日

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

神戸支部ハード倶楽部オリジナル基板第一弾

本構成では、Arduinoボード+1800円程度で簡単にAndroid

ラジコンが作れます ギアボックス・モーター 700円 Bluetoothモジュール 500円 ボード 200円 モータードライバ 150円 その他 200円程度1ボードにモータドライバ、Bluetooth チップ用ランド、RCサーボモータ用端子を装備したAndroid シールド

11年11月15日火曜日

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

Andy Shield基板の発注 神戸支部の方に教えていただいた格安基板屋さん。5cm×5cm 2層スルーホールシルク入りで10枚発注時の合計$9.9+$3(送料)

Seeed Studio Fusion http://goo.gl/kuGKd11年11月15日火曜日

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

日本橋でんでんタウンもくもく会(通称でんもく会)

隔月(偶数月第1土曜日)に日本橋ROBOBA (http://roboba.jp/)にて開催

 次回:2011年12月10日(土)

神戸支部ハードウェア倶楽部

Androidとさまざまなマイコンとの接続・制御にチャレンジ!!ADK/MicroBridgeを用いて、新旧Androidも利用可能に!PIC ADK mini boardを基板から独自に制作!みんなで半田づけを行い、ローコストでロボットカー製作が可能!Android側ライブラリで、マイコン側ファームウェアの書換えを不要に!初心者が簡単で楽しくマイコン制御ができるように講習会を企画予定!全国から参加者を募集しています!日本橋めぐりもできます!!

11年11月15日火曜日

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

イベント展示等2011年7月 OSC京都出展、ABC 2011 Summer 出展• ABC 2011 SummerでRobotサミットを開催• 四国支部、横浜支部ロボ部と神戸支部で1トラック運営

ABC 2011 Summer Robotトラック会場左から:yokmamaさん, 石井,いわたんさん(横浜ロボ部)あきのりさん(横浜ロボ部)

11年11月15日火曜日

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

自己紹介

日本Androidの会 神戸支部 / ハードウェア倶楽部ご紹介

Microbridgeのご紹介

Android上スクリプト実行環境とMicrobridgeの連携

アジェンダ

11年11月15日火曜日

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

Microbridgeで出来ること

Android端末と、USBケーブルで繋がれたハードとが、連携できる

Android端末は、ADK対応不要、USB HOST対応不要。Android1.6でも問題なし

11年11月15日火曜日

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

Androidケータイと外部ハードを有線接続する手段の一つMicrobridgeは、オランダNiels Browers氏作のArduino+USB Host Shield向けADB実装

Android Debug Bridge(ADB)接続

Arduinoで、AndroidをADB経由で制御できる

http://code.google.com/p/microbridge/

Propellar版PropBridgeもある

11年11月15日火曜日

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

マイコンでADBコマンドを発行することで出来ることとは?→PCとADB接続でできることと基本的には同等例)・端末のログを見る(adb logcat)・画面のスクリーンショットを取る(DDMS)・ファイルを置く(adb push)・apkを置く(adb install)・Android端末側のシェル操作(adb shell)・Android内アプリとソケット通信する (adb forward)

11年11月15日火曜日

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

マイコンでADBコマンドを発行することで出来ることとは?→PCとADB接続でできることと基本的には同等例)・端末のログを見る(adb logcat)・画面のスクリーンショットを取る(DDMS)・ファイルを置く(adb push)・apkを置く(adb install)・Android端末側のシェル操作(adb shell)・Android内アプリとソケット通信する (adb forward)

11年11月15日火曜日

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

PCでのADB forwardとは?

Android端末

ADB Daemon

Androidアプリ

USB IF USB IF

外部機器(PC)

ADB Server

ADB(AndroidDebugBridge)

Android端末内ソフトと外部とでソケット通信によるデータのやりとりが可能

ソケット通信アプリ

11年11月15日火曜日

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

MicrobridgeでのADB forwardとは?

Android端末

ADB Daemon

Androidアプリ

USB IF USB IF

外部機器(Microbridge)

Microbridge

ADB(AndroidDebugBridge)

Android端末内ソフトと外部とでソケット通信によるデータのやりとりが可能

ソケット通信制御ソフト

11年11月15日火曜日

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

既存の機器に組み込んでAndroid対応化できる!ホームオートメーションとか楽しめるかな!?

これを使って、

可能。だけど、Arduino+USB Host shield構成は高価で、各機器に埋め込みっ放しにするには適さない。(Arduino Uno 2995円、USB Host shield 2495円、計5490円)

では入手性も良く安価なチップでシンプルにできる構成にしてみるのが良いのでは?

11年11月15日火曜日

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

PICには、USB On-the-Go搭載の省ピンマイコンがある。

AVRUSB HOSTController

Androidケータイ

等7本 PIC

Androidケータイ

USB USB

・・・というわけで11年11月15日火曜日

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

PIC向けにMicrobridgeをポーティング「Microbridge/PIC」

Arduino PF

USB Host Lib/DD(C++)

Microbridge(C++)

Arduino sketch

PIC24F

USB Host Lib/DD(C) [*1]

Microbridge/PIC(C)

Application

・PIC版でも、上位層へのAPI形式は出来る限りArduino版を踏襲・Google CodeにてOSSとして公開中 http://code.google.com/p/microbridge-pic/・公開プロジェクトはPIC24FJ64GB002を想定しているが、他の PICへの移植は容易のはず。

Microbridge Microbridge/PIC

11年11月15日火曜日

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

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日火曜日

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

ADKのように使うためにMicrobridgeからadb shellをopenし、shellコマンド”am”を実行しインテントを投げる

ADB_addConnection(“shell:am start -n jp.yishii.sample/.SampleActivity”,false)

ADB_addConnection(“framebuffer:.”,false)

その他MicrobridgeでAndroid端末のスクリーンショットを得る

11年11月15日火曜日

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

PICでお手軽にMicrobridgeするボードPIC ADK Miniboard rev.1を神戸支部第二弾で作成

現在、オープンハードとして設計データ公開準備中

PIC24FJ64GB002とUSBホスト周辺回路、2ch DCモータドライバ、3ch RCサーボコネクタ搭載で、モータで動く工作を想定。値段は1500円以下。

11年11月15日火曜日

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

au IS01とPIC ADK Miniboardを繋いで実験

ADB forwardでAndroid側から座標データを端末に送信。その値を使用してサーボを駆動。

11年11月15日火曜日

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

Nexus SとMicrobridge/PICとを繋いで実験

ADB shellでAndroid上の”input”というプロセスをキーコード引数付きでコール、キーイベントを発行

11年11月15日火曜日

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

神戸支部では、ADK、Microbridge、Bluetooth等各種I/Fを活用した機器開発推進中

神戸支部寺園氏により、それぞれのI/Fを一括りにするAndyLib 開発中

AndyLib

Bluetooth Microbridge ADK

Application

11年11月15日火曜日

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

自己紹介

日本Androidの会 神戸支部 / ハードウェア倶楽部ご紹介

Microbridgeのご紹介

Android上スクリプト実行環境とMicrobridgeの連携

アジェンダ

11年11月15日火曜日

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

Luarida(ルアリダ)とは?

LuaridaはAndroid単体でプログラミングするためのスクリプト言語です。ポケコンのように使えます。 ルアリダ(Luarida)はAndroid上で動作するスクリプト(Script)です。 スマートフォンでポケコンのように簡単にプログラムを組みたいと思ってScriptを実装しました。 言語はLuaです。BASICのように簡単にプログラムを書くことができます。《Android Market内説明文より引用》

Luaridaは、ソケット通信をサポートしているので、Microbridgeと直接データ送受信が可能。

11年11月15日火曜日

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

11年11月15日火曜日

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

SL4A(Scripting Layer for Android)

Android端末上で直接スクリプトを編集し実行できる環境Python、PHP、Perl、Ruby等の言語が対応している

11年11月15日火曜日

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

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_recei

11年11月15日火曜日

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

Android + 直結マイコンボードの構成PCレスで、外部ハード制御の作り込みができるPF

制御対象機器

Luarida用とSL4A JRuby用にioBridgeというモジュールを作りました

ioBridge Server ioBridge Client

11年11月15日火曜日

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

require "ioBridge_server"

ib = IoBridge.newib.attach()

ib.pinMode(0,ib.OUTPUT)ib.pinMode(1,ib.OUTPUT)ib.pinMode(2,ib.INPUT)

# blink pattern 1thread1 = Thread.new do while true if(ib.digitalRead(2) == ib.HIGH) then ib.digitalWrite(1,ib.HIGH) else ib.digitalWrite(1,ib.LOW) end endend

while true ib.setServoAngle(10,20) sleep 0.5 ib.setServoAngle(10,140) sleep 0.5end

package.path = system.getCardMnt().."/luarida/?.lua"require("ioBridge")

ioBridge.attach()canvas.drawCls(color(0,0,255))

ioBridge.pinMode(0,ioBridge.OUTPUT)ioBridge.pinMode(1,ioBridge.OUTPUT)ioBridge.pinMode(2,ioBridge.INPUT)

while(1) do ioBridge.digitalWrite(0,ioBridge.HIGH) ioBridge.digitalWrite(0,ioBridge.LOW)

if(ioBridge.digitalRead(2) == ioBridge.LOW) then canvas.drawText("Port 2 : LOW ",10,10,80, color(255,255,255),color(0,0,255)) ioBridge.setServoAngle(18,50) else ioBridge.setServoAngle(18,100) canvas.drawText("Port 2 : HIGH",10,10,80, color(255,255,255),color(0,0,255)) endend

luarida + ioBridge JRuby/SL4A + ioBridge

11年11月15日火曜日

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

どうもありがとうございました

石井 康寛日本Androidの会 神戸支部

Twitter @yishiiFacebook http://facebook.com/ishiiyasu

11年11月15日火曜日