Mais conteúdo relacionado
Semelhante a イチからはじめるADK北海道支部勉強会発表資料
Semelhante a イチからはじめるADK北海道支部勉強会発表資料 (20)
Mais de Kenichi Yoshida (17)
イチからはじめるADK北海道支部勉強会発表資料
- 1. イチからはじめる
ADK
日本Androidの会神戸支部
吉田 研一
第13回Android勉強会in札幌
今回は電子工作祭り!
2012年6月2日(土)
- 3. 自己紹介
• よしだけんいち(45歳) @dietposter
• 奈良在住
• JAG神戸&神戸GTUGメンバー
• ECCコンピュータ専門学校専任教員
• 奈良高専卒、高校教諭免許(理科)有り
- 4. 今回のセミナーの経緯
3/24(土) ABC 2012 SpringにてADK勉強会(東京)
の展示の際に、まいむぞうさんがコンタクト
吉田はOSC愛媛に参加し、ABC 2012
Springの「ロボットサミット」のハング
アウト中継を行っていた
後日、ADK勉強会(東京)MLにて北海道支部勉強
会でADKの話をしてくれないかと依頼あり
ここで事情をはじめて知り吉田が喜んで手を挙げた
吉田は秋葉原で行われるADK勉強会と
ハングアウトで自宅をつないでオンラ
イン参加していた
- 5. 書籍(共著)の紹介
著者(五十音順)
(横浜支部ロボ部)
岩田 直樹
杉浦 登(部長)
原田 明憲
(神戸支部)
高木 基成(支部長)
「Android ADK プログラミング 吉田 研一
&電子工作バイブル」
- 6. 書籍(共著)の内容
第1章 ADKの概要とハードウェアの制御(高木さん)p.13
第2章 ADK ボードを動かそう(杉浦さん:RT-ADKボード)p.51
第3章 Arduino UnoとUSBホストシールドで手軽にADK p.131
格安・簡単! LED, スイッチ, 光センサとのやりとりを行う
第4章 Androidで赤外線通信(岩田さん:Arduino)p.53
第5章 Androidで温度モニタリング(原田さん:PICマイコン)p.45
第6章 MicroBridgeの利用(岩田さん:Arduino)p.27
Appendix-1 ピンソケットのハンダ付け p.11
Arduinoの拡張基板「シールド」のハンダ付け方法を丁寧に解説
(384ページ中141ページ担当しました)
- 7. イベントの紹介(本日ですが)
横浜支部ロボ部
杉浦さん
原田さん
PICマイコンを使ったADKキットのハンダ付け講習会
基板のみで500 円(税込)
部品込みで2,980 円(税込)
●株式会社テクノロードWEB SHOP
http://techno-road.com/shop.html
- 14. ADKとは?~歴史1~
• 2011年5月 Google I/O (San Francisco)
アールティ社が
ADKボードを提供
ブリリアントサービス社
(大阪)がLED植物工場
を展示。LEDは共立電子
(大阪日本橋)
https://sites.google.com/site/bsfarmbox/
- 15. ADKとは?~歴史2~
• 2011年11月 GDD Open Call (Tokyo)
ADKを
用いた
作品の
展示
(12作品)
大和田さん(横浜支部長)「OpenCall における ADK の傾向」より
- 17. 2012年3月
• 鳥人間@hisashinさんの世界最小ADK対応Arduino
「Harpy nano」販売
回路図も公開
つくばFabLabで作成
http://www.harpyhack.com/
- 18. 2012年4月(1)
itogさん CEREVO DASHにADKガジェット
「FourBeat」出展
クラウド・ファ
ウンディングに
よる支援
興味をもたれた
方は支援を!
http://camp-fire.jp/projects/view/254
- 20. 2012年5月
• ソシム社「Android ADKプログラミング
&電子工作バイブル」発刊
http://www.socym.co.jp/book/809
• 日経Linux 5月号
特集1 ここまでできる“未来”の部屋
Linuxで家電を自由に操る
http://nkbp.jp/LKKH3C
- 21. でもイマイチ流行らない
• Adnroidのバージョンに制限
• スマートフォン2.3.4以上
• タブレット3.1以上
• マイコンや電子工作の知識が必要…興味はあ
るけどなかなか手を出しづらい。
• 今年のGoogle I/OにはADKのプログラムは無
い、らしい。…オワコンか
- 22. でもでも根強く続く技術
•Android開発には様々な文化の人が関わる
•組込み屋さん 「Androidレイアウトの
•Web屋さん スタンダードアプローチ」
•携帯アプリ屋さん 住友さん
•業務アプリ屋さん http://slidesha.re/L547Ud
•ADKは様々な文化へのアプローチとなる技術で
はないか。様々なものをつなぐメタファーかな。
•あと、そろそろ4.0のAndroid携帯が増えそうな
んで、基本が分かれば使える技術になるハズ!
- 23. モノwith サービス=コト
• 製品単体では受け入れられない時代が来ている
• モノと同時に付随するサービスを体験すること
で受け入れられ浸透していく時代だと感じる
• モノとサービスが組み合わさりコト(事柄)と
なってヒト(人)をつなぐように思ったり
•ガジェットとスマートフォン-クラウドを結ぶ
ADKはそういった「コト」をつくるアーキテク
トになるかも??
↓参考ブログ
組込み技術とモバイル技術(2)-人と技術のマッシュアップ
- 25. AndroidとのUSB接続
• USB Accessory API(Androidが電源をもらう側)
• AndroidがUSBデバイス(Type-Bコネクタ)
• これがいわゆるADK
• USB Host API(Androidが電源供給側)
• AndroidがUSBホスト(Type-Aコネクタ)
- 26. USBアクセサリモード
とUSBホストモード
USBホスト USBデバイス
アクセサリ 電力 Androidが従
モード マイコンや
A B Android
FPGAなど
(ADK) データ転送
USBデバイス USBホスト
ホスト 電力
マイコンや Androidが主
モード FPGAなど B A Android
データ転送
- 28. ADK, MicroBridge,
USB Host APIまとめ
• ADK( ver.2.3.4以上で対応機種のみ)
• マイコンから自動的にアプリを起動
• MicroBridge(全機種対応)
• ADB接続 デバッグモードにする必要あり
• USB Host API (ver.3.1以上で対応機種のみ)
• 全マイコン対応可能 ラッパライブラリを利
用すると使いやすい (FTDriver)
- 30. ADKでつなぐマイコン
Arduino
•プロトタイピング開発が容易(プログラミング言語
も簡単)
•最新のIDEに対応していない(Yaoadkで解決)
•USBホスト機能が必要
Arduino Uno+USB Arduino Harpy Nano
ホストシールド Mega ADK
- 31. ADKでつなぐマイコン
PIC
•開発環境MPLAB, MPLAB X(C言語)
•組込み開発らしいプログラミング
•PIC24FマイコンはUSBホスト機能を内蔵し多機能でか
つ簡便に実装できる(しかも低価格)
•神戸支部、原子力部(NINJA)、横浜支部ロボ部など基板を作成
•ファームウェアの書き込みに(PICKit 3など)ライタ
が必要
PIC ADK mini Yokorobo
RT ADK mini
Board 01-PIC24F
- 32. ADKでつなぐマイコン
mbed
•CPUはARM Cortex-M3など
•開発環境はクラウド上にあり、ブラウザでプログ
ラミングする。
•ユーザ同士で公開されたライブラリやアプリ
ケーションを流用できる
•組込み界のソーシャルコーディング!?
•WebSocketを簡単にコーディングできたりする
実はまだ触っていませ
ん。是非チャレンジした
いと思っています。
mbed NXP LPC1768
- 33. Arduino, PIC, mbed
まとめ
•Arduino 携帯アプリ屋さん、業務アプリ屋さん向け?
•入手しやすい。情報が多くノウハウも多い。
•企業でのプロトタイピング開発も増加
•組込み関連のノウハウが無い時のコスト(=投資コ
スト・教育コスト・時間)圧縮にも向く
•PIC 組込み屋さん向け?
•Cによるコーディングにある程度慣れている、なお
かつマイコンをある程度触っている人は、様々なこ
とが比較的容易にできる
•mbed Web屋さん向け?
•個人利用としてはイチ押し(まだ触ってないけど)
•神戸支部でもNXPの中の人を呼ぶ予定もあり(未定)
- 37. 開発手順③
シリアルモニタ
adb接続が
できない!
③ADK接続&実行
- 38. 開発手順④
シリアルモニタ
Wi-Fiによる
adb接続
Wi-Fiデバッグ
ADK接続&実行
- 40. Wi-Fiによる
adb接続手順(1)
《前提》 PCとAndroid端末は同一のWi-Fi LAN上
にあること。
(1)まずはじめにPCとAndroid端末をUSBケーブ
ルでつないでおいて、コマンドプロンプトより以
下の2つのコマンドを投入する Android端末の
>adb tcpip 5555 IPアドレス
restarting TCP mode port:5555
>adb connect 192.168.1.101:5555
connected to 192.168.1.101:5555
- 41. Wi-Fiによる
adb接続手順(2)
(2)Android端末からUSBケーブルを外して、
adb logcatコマンドを打ってみる
> adb logcat
…
logcatが表示されます!
•ちなみにadb logcatコマンドを投入しなくても
EclipseのLogcatビューでlogcat出力が始まりま
す。
•DDMSも使え、ASM(Android Screen Monitor)も
USBケーブル無しで表示されます。非常に便
利!!ADKに関係なく使ってみて下さい。
- 42. Wi-Fiデバッグの注意点
シリアルモニタ
ADK接続を行うと
必ずWi-Fiデバッグ
が切断される!
>adb connect 192.168.1.101:5555
でWi-Fiデバッグが再接続します
- 44. まとめ
• Android 3.1以上か4.0以上ならWi-Fiデバッグ
• ADKに関係なくおススメ
• Android 2.3.4ならwifi logcat
• Arduino側は、シリアルモニタを使いprintデバッ
グが可能
• スケッチ内にSerial.println()を入れる
- 47. Google放置Play…
•GoogleのADKサンプルソース「Demokit」はArduino
IDE 0022対応のまま
•Arduinoの開発環境は Arduino 1.0となり正式リリー
スしたためライブラリが大きく変更
•そのままGoogleのADKサンプルを使うと動かない
https://dl-ssl.google.com/android/adk/adk_release_0512.zip
これもまたオワコン要因のひとつ(汗)
- 48. Arduino 1.0対応
ADKライブラリ作りました
Android ADK勉強会(東京)メンバーと
協力して公開(Apache License v.2)
github初心者でもZIPを
ダウンロードするだけ!
https://github.com/ADKstudyGroupTokyo/Yaoadk
- 49. 前準備(2)
部品を通販で購入
秋月電子通商 【URL】 http://akizukidenshi.com/
- 50. なぜこの電子部品?
• オライリーさんの書籍「Arduinoを
はじめよう」で扱われるパーツに
絞りました。
• 同書はデジタル入出力・アナログ
入出力などが初心者にわかりやす
く説明されてます。
• スイッチサイエンスでは必要なパ
ーツだけをそろえた「Arduinoをは
じめようキット」が販売されてい
ます。
- 51. 大まかな手順
1. ブレッドボード上にパーツを配置する
2. Arduino 1.0でスケッチを作成し、Arduino Uno +
USBホストシールドにアップロード
3. Arduino Uno + USBホストシールドにAndroidを接続
し外部インテントが起動するかダイアログを確認
4. Androidプロジェクトを作成,Androidにアップロード
5. Arduino Uno + USBホストシールドとAndroidを接続
し、動作確認
- 52. 1.ブレッドボード上に
部品を配置 ① ②
【ブレッドボード上の接続】
①黄色のジャンパーワイヤをa2と(+)へ A0へ ④ ③
②光センサ( CdS セル)をe2とe4 へ
③抵抗10kΩをc4とc8へ ⑤ ⑥
④オレンジのジャンパーワイヤをa8と(-)へ
⑤黄色のジャンパーワイヤをa9と(+)へ
⑥タクトスイッチをe9, e11, f9, f11 へ D4へ ⑧ ⑦
⑦抵抗10kΩをc11とc15へ
⑧オレンジのジャンパーワイヤをa15と(-)へ
⑩
⑨オレンジのジャンパーワイヤをa16と(-)へ
⑩青色LEDの短い足(カソード)をe16へ ⑨ ⑪
⑪青色LEDの長い足(アノード)をe18へ ⑫
⑫抵抗1kΩをc18とc22へ D3へ
⑬オレンジのジャンパーワイヤをa23と(-)へ ⑭
⑭赤色LEDの短い足(カソード)をe23へ
⑮赤色LEDの長い足(アノード)をe25へ ⑬ ⑮
⑯抵抗1kΩをc25とc29へ
D2へ ⑯
- 53. Arudinoと配線
① 緑色のジャンパーコードをa4と
USBホストシールドのA0番へ
② 緑色のジャンパーコードをa11
とUSBホストシールドの4番へ
③ 黄色いジャンパーコードをa22
とUSBホストシールドの3番へ
④ 黄色いジャンパーコードをa29
とUSBホストシールドの2番へ
⑤ 黒いジャンパーコードを(-)
とUSBホストシールドのGND
ピンへ
⑥ 赤いジャンパーコードを(+)
とUSBホストシールドの+5Vピ
ンへ
ブレッドボードとジャンパーワイヤーの配線はやり直しが
できるので、プロトタイピングには最適!
でも、そのまま置いておくと抜けてしまったり、たまに使
うときに配線をし直したり…。面倒でもある。
- 54. ハンダ付けしてもヨシ
ユニバーサル基板(ブレッド
ボード配線パターンタイプ)
(秋月電子:P-04303) 80円
ブレッドボード用ワイヤ /
SHW-S0.65mm-7
(共立エレショップ: A1T141)
605円
あと、アルトイズの
ミント缶 (楽天で
400円ほど)があれば
- 55. どこでもフィジカル・
コンピューティング
原稿書いてる最中には常に持ち歩いていました
これで
あなたも
Maker気分
ADKの動作リファレンスにひとつ作っておくと便利です
- 56. 2.スケッチを作成し
Arduinoにアップロード
https://github.com/yoshidaken1/GettingStartedADK/blob/ma
ster/firm_Arduino0100/AdkDaio/AdkDaio.ino
- 62. Androidソース
res/xml/accessory_filter.xml
3つの文字列が一致していれ
ば、外部インテントを受け取り
アプリが起動する。
- 63. Androidプロジェクトは
Google APIs 2.3.3
ターゲット名は「Google APIs」
プラットフォームは「2.3.3」APIレベル10
- 67. 出力ストリーム
(Android→Arduino)
イベントリスナー
からプライベート
なメソッド
sendCommand()が
呼び出されると…
FileOutputStream
クラスのwriteメ
ソッドでArduinoに
データを出力する
- 69. 入力ストリーム
(Android←Arduino)
スレッドを用い、
run()メソッド内で
FileIntputStream
クラスのreadメソ
ッドでArduinoか
らのデータを入力
受信したデータは
Messageクラスの
インスタンスとし
てハンドラで表示
処理
- 74. 基本的な入出力
汎用入出力(GPIO) Arduinoの関数 RT-ADK&RT-SDK その他代表的なパー
のパーツ ツ
デジタル出力 リレー LED(単色)
digitalWrite()
デジタルピンのOUT
アナログ出力 RGB LED、サー DCモータ
デジタルピンのPWM出力 analogWrite() ボモータ
デジタル入力 タクトスイッチ 磁気センサ、モーシ
デジタルピンのIN digitalRead() ョンセンサ
アナログ入力 温度センサ、照度 加速度センサ、距離
アナログ入力ピン analogRead() センサ、タッチセ センサ
ンサ
4つの基本パターンができると色んな
電子部品を制御できるようになります。
- 87. Socket通信は
バイトストリーム
• ネットワークバイトオーダー
• 機種ごとのエンディアンの違いを吸収す
るため1バイトづつ配列に並べてストリ
ームとする
• Arduinoはリトルエンディアン
• Android端末はビッグエンディアン
Wokashi:[arduino][android]ADKでfloat型のデータを扱う
- 88. ByteBufferクラス
• byte[] バイト配列よりもByteBufferクラス
の方が効率よくストリームを利用できる、
らしい。
• StringとStringBuffer的な存在?
[arduino][android][adk]構造体を送る
ADK使ってAndroid端末側に構造体で
データを送りつける。
- 89. Java(Android)と
Arduinoのデータ型
データ型 Java Arduino
byte 1byte 1byte
int 4byte 2byte
long 8byte 4byte
float 4byte 4byte
double 8byte 4byte
ArduinoはAtmel社のAVRマイコンの
データ型の”sizeof”を アーキテクチャに依存する
意識する場面がある
- 90. という訳で何か出来たら
一緒に展示しましょう!!
2012年3月OSC愛媛とABC 2012
2012年5月オープンセミナー2012岡山とOSC名古屋
ハングアウトでつないで講演・展示しました。
北海道と神戸で展示会場をハングアウトでつないだり
都合が合えば是非お願いします(^-^)/