Más contenido relacionado Similar a Android端末と組み込み機器が連携する Android Make Days (20) Más de Yasuhiro Ishii (7) Android端末と組み込み機器が連携する Android Make Days 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 @yishii
Facebook http://facebook.com/ishiiyasu
Blog日曜エレクトロニクス(日エレ) http://projectc3.seesaa.net/
11年11月15日火曜日
5. アジェンダ
自己紹介
日本Androidの会 神戸支部 / ハードウェア倶楽部ご紹介
Microbridgeのご紹介
Android上スクリプト実行環境とMicrobridgeの連携
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日火曜日
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/kuGKd
11年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日火曜日
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日火曜日
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日火曜日
28. au IS01とPIC ADK Miniboardを繋いで実験
ADB forwardでAndroid側から座標データを端末に
送信。その値を使用してサーボを駆動。
11年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日火曜日
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_recei
11年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 + ioBridge
11年11月15日火曜日
38. どうもありがとうございました
日本Androidの会 神戸支部
石井 康寛
Twitter @yishii
Facebook http://facebook.com/ishiiyasu
11年11月15日火曜日