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