SlideShare a Scribd company logo
Submit Search
Upload
Login
Signup
イチからはじめるADK北海道支部勉強会発表資料
Report
Kenichi Yoshida
Follow
Lecturer at ECCコンピュータ専門学校
Jun. 1, 2012
•
0 likes
•
2,983 views
1
of
91
イチからはじめるADK北海道支部勉強会発表資料
Jun. 1, 2012
•
0 likes
•
2,983 views
Download Now
Download to read offline
Report
Education
Kenichi Yoshida
Follow
Lecturer at ECCコンピュータ専門学校
Recommended
Androidロボットサミットin京都
Kenichi Yoshida
1.6K views
•
80 slides
AOA2.0を実装してみた
Yuuichi Akagawa
8.4K views
•
38 slides
GR-SAKURAのUSBホスト機能で遊ぼう
Yuuichi Akagawa
3.1K views
•
22 slides
ふぃじかるこんぴゅ〜てぃんぐしてみた
Takao Sumitomo
915 views
•
36 slides
Android & Nui & Physical Computing
Takahiro KUREBAYASHI
923 views
•
136 slides
Android端末と組み込み機器が連携する Android Make Days
Yasuhiro Ishii
1.7K views
•
38 slides
More Related Content
What's hot
Kinect for windows sdk c#
Kaoru NAKAMURA
12.7K views
•
36 slides
北九州デジタルクリエイターコンテスト2013記念講演会
Shigeru Kobayashi
1.3K views
•
217 slides
Kinect for windows sdk cpp
Kaoru NAKAMURA
13.1K views
•
37 slides
Kinect for windows sdk introduction
Kaoru NAKAMURA
40.6K views
•
69 slides
Androidロボットサミットin名古屋
Kenichi Yoshida
2.9K views
•
75 slides
会津IT秋フォーラム2012での講演資料
Shigeru Kobayashi
2.2K views
•
146 slides
What's hot
(20)
Kinect for windows sdk c#
Kaoru NAKAMURA
•
12.7K views
北九州デジタルクリエイターコンテスト2013記念講演会
Shigeru Kobayashi
•
1.3K views
Kinect for windows sdk cpp
Kaoru NAKAMURA
•
13.1K views
Kinect for windows sdk introduction
Kaoru NAKAMURA
•
40.6K views
Androidロボットサミットin名古屋
Kenichi Yoshida
•
2.9K views
会津IT秋フォーラム2012での講演資料
Shigeru Kobayashi
•
2.2K views
Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...
74th
•
220 views
Kinect for Windows およびDepthセンサーの動向
Kaoru NAKAMURA
•
5.3K views
Kinect深度情報処理入門
伸男 伊藤
•
16K views
Dev(ice)love デバイス祭り
Kaoru NAKAMURA
•
2.5K views
Kinect kihonnoki
Kaoru NAKAMURA
•
1.5K views
Kinect入門
Shigeo Ueda
•
6.3K views
AndroidとArduinoで ロボットを作って思ったこと
Takao Sumitomo
•
5.9K views
Kinect v2を通してMicrosoft技術を考える
Yuki Igarashi
•
2.7K views
モノづくりのススメ
cat kaotaro
•
1.1K views
はじめてのKinect for windows v2
Kaoru NAKAMURA
•
13.2K views
Scratchとkinectで簡単モーションプログラミング
Kaoru NAKAMURA
•
5.5K views
複数台のKinectV2の使い方
Norishige Fukushima
•
21.6K views
Androidでロボットアームを動かしてみた(2012OSC愛媛)
Takao Sumitomo
•
3.8K views
GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...
Web Technology Corp.
•
2.7K views
Viewers also liked
Робота системи електронного документообігу. Вінницька міська рада
Olena Ursu
1.8K views
•
19 slides
Subsets
Eunice Manugas
1.6K views
•
7 slides
Colección Noche 2009 - Astrid A Urban Afrowear
UrbanAfrowear
168 views
•
8 slides
Animasi pada-presentasi (1) call uhamka
king_of_natsir
567 views
•
22 slides
Participating Camps
Jaturpin
140 views
•
7 slides
Crimes and punishments
Adlee35
490 views
•
8 slides
Viewers also liked
(20)
Робота системи електронного документообігу. Вінницька міська рада
Olena Ursu
•
1.8K views
Subsets
Eunice Manugas
•
1.6K views
Colección Noche 2009 - Astrid A Urban Afrowear
UrbanAfrowear
•
168 views
Animasi pada-presentasi (1) call uhamka
king_of_natsir
•
567 views
Participating Camps
Jaturpin
•
140 views
Crimes and punishments
Adlee35
•
490 views
дтв сонечко
cherkaska
•
741 views
метод.то
Demanessa
•
14.8K views
Placemaking Conference: Walkable Cities
OU Institute for Quality Communities
•
2.1K views
Monomios y polinomios
Malenny01
•
233 views
Dolyna
Olena Ursu
•
568 views
Slideshow CV Tess Krüs
Tess Krüs
•
411 views
Chemerys
Olena Ursu
•
298 views
кислицын максим
Demanessa
•
365 views
in.pulso Marketing
in.pulso marketing
•
147 views
Dc seo fin
Anton Surov
•
570 views
New delaware
davidstevenbrooks
•
383 views
F. babiez toolkit
Fran Babiez
•
372 views
ESAB UPC Enginyeria de biosistemes curs 2012-13
Lourdes Puig
•
489 views
学習活動の構造化とデザイン
Minoru Uchida
•
606 views
Similar to イチからはじめるADK北海道支部勉強会発表資料
姫路IT系勉強会「ADB接続でかんたんフィジカルコンピューティング」
Kenichi Yoshida
751 views
•
19 slides
12.06.16 日本橋勉強会資料 公開用
Miwa Iwatsuki
1.3K views
•
38 slides
Androidロボットサミットin愛媛
Kenichi Yoshida
1.2K views
•
67 slides
Android-controlled robot,Original PCB to work as a bridge between Android-pho...
Yasuhiro Ishii
595 views
•
8 slides
Wio Terminalのアーキテクチャ
Takashi Matsuoka
949 views
•
46 slides
ADKでロボット with NFC
Takao Sumitomo
1.6K views
•
16 slides
Similar to イチからはじめるADK北海道支部勉強会発表資料
(20)
姫路IT系勉強会「ADB接続でかんたんフィジカルコンピューティング」
Kenichi Yoshida
•
751 views
12.06.16 日本橋勉強会資料 公開用
Miwa Iwatsuki
•
1.3K views
Androidロボットサミットin愛媛
Kenichi Yoshida
•
1.2K views
Android-controlled robot,Original PCB to work as a bridge between Android-pho...
Yasuhiro Ishii
•
595 views
Wio Terminalのアーキテクチャ
Takashi Matsuoka
•
949 views
ADKでロボット with NFC
Takao Sumitomo
•
1.6K views
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣
三七男 山本
•
379 views
Android-controlled robot,Original PCB to work as a bridge between Android-pho...
Yasuhiro Ishii
•
828 views
Google I/O 2011 HowToADK
Masahiro Hidaka
•
1.1K views
今すぐ始めるArduino
funa3
•
2.2K views
イチからはじめるUSB Host API
ksk sue
•
10.9K views
マイコンボード色々 2017.03
Hirokazu Tokuno
•
304 views
第4回名古屋Android勉強会資料
magoroku Yamamoto
•
4.9K views
【入門】Arduino勉強会
Masashi_Brilliant
•
2.4K views
コードを書かずにLチカ。から始めよう
Shin-ya Koga
•
1.9K views
Imaocande LT
Imaoka Micihihiro
•
877 views
Arduinoが拓く「新しいものづくりの世界」120713(robotechセミナー)
Takayori Takamoto
•
2.2K views
Beginner for install Android applications in Xiaomi MiReader はじめてのXiaomi MiR...
Netwalker lab kapper
•
5.5K views
Abc2015 winterkobe
Kenichi Yoshida
•
1.1K views
平成26年度熊本高専Arduino講座 第2週 XBeeを用いた遠隔放射線量計測
Katsuhiro Morishita
•
4.5K views
More from Kenichi Yoshida
大阪版Io tlt#1 IoTあるじゃん関西支部 ラズパイ2でデュアルブート
Kenichi Yoshida
2K views
•
29 slides
AWScean #1 SORACOMアルファベット
Kenichi Yoshida
912 views
•
30 slides
Soracom & myThingsを使ったハンズオンセミナーをやってみた
Kenichi Yoshida
2.5K views
•
38 slides
ラズパイ2にWindows 10 IoT Coreを入れてWindows Universal アプリ動かしてみた
Kenichi Yoshida
1.4K views
•
20 slides
Android IoTとプログラミング教育
Kenichi Yoshida
2K views
•
46 slides
App Inventor 2でかんたんロボカー操縦!
Kenichi Yoshida
5K views
•
34 slides
More from Kenichi Yoshida
(17)
大阪版Io tlt#1 IoTあるじゃん関西支部 ラズパイ2でデュアルブート
Kenichi Yoshida
•
2K views
AWScean #1 SORACOMアルファベット
Kenichi Yoshida
•
912 views
Soracom & myThingsを使ったハンズオンセミナーをやってみた
Kenichi Yoshida
•
2.5K views
ラズパイ2にWindows 10 IoT Coreを入れてWindows Universal アプリ動かしてみた
Kenichi Yoshida
•
1.4K views
Android IoTとプログラミング教育
Kenichi Yoshida
•
2K views
App Inventor 2でかんたんロボカー操縦!
Kenichi Yoshida
•
5K views
組み込みーモバイルークラウドをオープンな形でつなぐKOF2013
Kenichi Yoshida
•
2.4K views
組み込みーモバイルークラウドをオープンな形でつなぐ
Kenichi Yoshida
•
1.6K views
プロトタイピング用途の基板に欲しい拡張基板
Kenichi Yoshida
•
1.1K views
JAWS-UG三都物語 クラウドとデバイスが連携するアジェンダ
Kenichi Yoshida
•
696 views
クラウド―Arduino接続について
Kenichi Yoshida
•
7.8K views
Android+Education
Kenichi Yoshida
•
905 views
ロボットサミットとは? in 京都 on 2012年8月
Kenichi Yoshida
•
769 views
ロボットサミットとは?in名古屋on2012年5月
Kenichi Yoshida
•
593 views
ロボットサミットについてin愛媛on2012年3月
Kenichi Yoshida
•
698 views
ミント缶でMaker気分
Kenichi Yoshida
•
594 views
App inventor独自カラー
Kenichi Yoshida
•
1.4K views
イチからはじめるADK北海道支部勉強会発表資料
1.
イチからはじめる
ADK 日本Androidの会神戸支部 吉田 研一 第13回Android勉強会in札幌 今回は電子工作祭り! 2012年6月2日(土)
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
8.
進行
9.
アジェンダ (概論) ADKとは?その歴史 AndroidとのUSB接続 ADK,
MicroBridge, USB Host API ADKでつなぐマイコンの選択 PIC, Arduino, mbed 開発手順とデバッグ、ログ
10.
イチからつくってみる ソースコード https://github.com/yoshidaken1/GettingS tartedADK 回路図(ブレッドボード実体配線図) http://www.ospn.jp/press/20120404no22- 2-useit-oss.html
11.
アジェンダ(コード概説) 外部インテント(Arduinoからのアプリ起動) Androidから見た入出力ストリーム Arduinoと電子部品のやりとり コマンドデータ/データプロトコルの留意点
12.
概論 ADKとは?
13.
ADKとは? ADKと記述した場合は、「Open Accessory Development Kit」のことを指します。 ADKのAは、AndroidではなくAccessoryの頭文字 です。Android2.3.4とAndroid3.1以降に追加され た周辺機器用のAPIを利用するためのソフトウェ アやドキュメント、Accessory
Demo Kitと呼ばれ るハードウェアを合わせてADKと表現します。
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 の傾向」より
16.
2012年1月~2月 •日本Androidの会定例会でアールティ社のプレゼン •各支部などでADK関連の勉強会が行われる。 •福岡支部、神戸支部、名古屋つ部、東京で独自に
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
19.
2012年4月(2) 石田さんのQDen 広告提供型充電サービス が、
日経BP社 A3 2012にてアイデア部門優秀賞 給電クレードル・ クラウド連携 サービス ADK勉強会(東京)のLT大会”ADK BootCamp“資料
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)-人と技術のマッシュアップ
24.
概論 AndroidとのUSB接続
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 データ転送
27.
Androidとの接続 http://www.slideshare.net/KeisukeSuzuki1/osc-ftdriver
28.
ADK, MicroBridge,
USB Host APIまとめ • ADK( ver.2.3.4以上で対応機種のみ) • マイコンから自動的にアプリを起動 • MicroBridge(全機種対応) • ADB接続 デバッグモードにする必要あり • USB Host API (ver.3.1以上で対応機種のみ) • 全マイコン対応可能 ラッパライブラリを利 用すると使いやすい (FTDriver)
29.
概論 ADKでつなぐマイコン
の選択
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の中の人を呼ぶ予定もあり(未定)
34.
概論 開発手順とデバッグ、ログ
35.
開発手順① ①Arduinoファームウェアの開発 USBケーブルでArduinoスケッチ
をアップロード
36.
開発手順② ②Androidアプリの開発
adb 接続 USBケーブルでapkを転送 adb接続でデバッグ&logcat
37.
開発手順③
シリアルモニタ adb接続が できない! ③ADK接続&実行
38.
開発手順④
シリアルモニタ Wi-Fiによる adb接続 Wi-Fiデバッグ ADK接続&実行
39.
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デバッグが再接続します
43.
wifi logcat •Wi-FiデバッグはAndroid 3.1以上か4.0以上しか 使えません。 •Android
2.3.4の場合は、tomorrowkeyさんの 「wifi logcat」が使えます(ただしlogcatだけ)。 ブラウザからlogcatを見る(アップデートしました)
44.
まとめ •
Android 3.1以上か4.0以上ならWi-Fiデバッグ • ADKに関係なくおススメ • Android 2.3.4ならwifi logcat • Arduino側は、シリアルモニタを使いprintデバッ グが可能 • スケッチ内にSerial.println()を入れる
45.
イチからつくってみる
46.
前準備(1) OSPN記事(ブレッドボード実体配線図ほか全体の説 明) http://www.ospn.jp/press/20120404no22-2-useit- oss.html ソースコードをダウンロードしておく https://github.com/yoshidaken1/GettingStartedADK Yaoadkライブラリをダウンロードしておく Yet another open
accessory development kit (ADK/MicroBridgeのためのArduinoライブラリ集)
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
57.
3.ArduinoとAndroidを接続し外部 インテントが起動するか確認
ADK用Androidアプリを 自動起動しようとするが 見つからないとの ダイアログが表示される ADKの接続確認と機種対応の確認
58.
4.Androidプロジェクトの作成 Androidプロジェクトを作成しAndroidにアップ ロードするまでの作成手順は以下の通り 4.1 AndroidManifest.xmlに要素を追加
4.2 res/xml/accessory_filter.xmlの作成 4.3 res/layout/main.xmlで画面レイアウト作成 4.4 javaプログラムを作成 https://github.com/yoshidaken1/GettingStartedADK /tree/master/AdkDaioProj
59.
5.ArduinoとAndroidを
接続し動作確認 ADK用Androidアプリを自動 起動してもいいか確認する ダイアログが表示される ADK接続&実行
60.
コード概説 外部インテント(Arduinoか らのアプリ起動)
61.
Arduinoスケッチ
62.
Androidソース
res/xml/accessory_filter.xml 3つの文字列が一致していれ ば、外部インテントを受け取り アプリが起動する。
63.
Androidプロジェクトは
Google APIs 2.3.3 ターゲット名は「Google APIs」 プラットフォームは「2.3.3」APIレベル10
64.
AndroidManifest.xmlに 使用ライブラリを指定
Google API 2.3.3に含まれるUSB アクセサリのライブラリを指定 USBアクセサリ接続が行われるとaccessory_filter.xml 起動するか否かフィルター設定を参照するよう指定
65.
AdkDaioProjActivity.java ブロードキャストレシーバ ブロードキャストレシーバでUSBからの外部インテン トによるダイアログを判別する。OKならプライベー トなopenAccessory()メソッドを呼び出し接続を行 う。《ADKの定型的な処理=リファクタリング対象》
66.
コード概説 Androidから見た入出力
ストリーム
67.
出力ストリーム
(Android→Arduino) イベントリスナー からプライベート なメソッド sendCommand()が 呼び出されると… FileOutputStream クラスのwriteメ ソッドでArduinoに データを出力する
68.
AdkDaioProjActivity.java バイト配列 buffer[]にデ ジタル/アナ ログデータを
格納
69.
入力ストリーム
(Android←Arduino) スレッドを用い、 run()メソッド内で FileIntputStream クラスのreadメソ ッドでArduinoか らのデータを入力 受信したデータは Messageクラスの インスタンスとし てハンドラで表示 処理
70.
AdkDaioProjActivity.java Arduinoからの入力があるときだけスレッドが必要
(出力だけなら不要) あらかじめ大きめのバイト配列buffer[]を用意しておき、 read()で入力ストリームから入力する
71.
AdkDaioProjActivity.java run()メソッド内でUI処理ができないため、Messageクラス
のインスタンスをwhat識別子つきでハンドラへ送信
72.
AdkDaioProjActivity.java what識別子で判別しUIウィジェットへデータを表示
73.
コード概説 Arduinoと 電子部品のやりとり
74.
基本的な入出力 汎用入出力(GPIO)
Arduinoの関数 RT-ADK&RT-SDK その他代表的なパー のパーツ ツ デジタル出力 リレー LED(単色) digitalWrite() デジタルピンのOUT アナログ出力 RGB LED、サー DCモータ デジタルピンのPWM出力 analogWrite() ボモータ デジタル入力 タクトスイッチ 磁気センサ、モーシ デジタルピンのIN digitalRead() ョンセンサ アナログ入力 温度センサ、照度 加速度センサ、距離 アナログ入力ピン analogRead() センサ、タッチセ センサ ンサ 4つの基本パターンができると色んな 電子部品を制御できるようになります。
75.
デジタル出力 (Arduino→電子部品) digitalWrite(ピン番号, HIGHかLOWの値)
HIGH:5V(LEDオン)LOW:0V(LEDオフ)
76.
アナログ出力 (Arduino→電子部品) analogWrite(ピン番号,0から255の値) 0V~5Vの電圧を256段階に分けてPWM出力
77.
Arduinoスケッチ loop( )ブロック内
Androidからread
78.
デジタル入力 (Arduino←電子部品)
digitalRead(ピン番号) 戻り値はHIGHまたはLOWとなります。
79.
Arduinoスケッチ loop( )ブロック内
Androidへwrite
80.
アナログ入力 (Arduino←電子部品)
analogRead(ピン番号) 0V~5Vを1024段階(10ビット)に分けて入力
81.
Arduinoスケッチ loop( )ブロック内
Androidへwrite 10ビットのデータを2バイトに分けて バイト配列に格納し送信する必要がある
82.
完成です
83.
コード概説 コマンドデータ/データ プロトコルの留意点
84.
Javaはunsignedが無い •C言語でいう所の unsigned char(8ビット符号 なし整数)が無い。
•unsignedは符号なし整数型の修飾子 •これが結構、始末が悪い(私見ですけど…。 苦々しく思っている組込み屋さんも少なくな いと思う、多分。)
85.
byte型 (符号付き8ビット整数) •byte型は8ビットのうち最上位ビットが符号 に用いられる(-128~127)。 •Arduinoからのバイトデータをそのまま使え ない事態が起きる。 【対処】0xFFと論理和を取って8ビットの値 を取り出す。
86.
AdkDaioProjActivity.java byte型の値をintの変数に代入する場合 0xFFと論理和を取って8ビットの値を取り出 す。 でもど~して8ビット(=1バイト)ごとに分けて
送る必要があるの??
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名古屋 ハングアウトでつないで講演・展示しました。 北海道と神戸で展示会場をハングアウトでつないだり 都合が合えば是非お願いします(^-^)/
91.
ご清聴 ありがとうござい ましたm(_ _)m