0
【ステマ】書籍Android ADK プログラミング&電子    工作バイブル の紹介     吉田研一@dietposter
本が出ました
原田 明憲(はらだ あきのり)/ 5 章担当         日本 Android の会横浜支部ロボ部メンバー。         中学のころからコンピュータ、プログラミングが好きで、         自己紹介                  ...
でんもく会             偶数月第一土曜日http://atnd.org/event/denmokukai5
日本橋ハンダ付け女子会 http://atnd.org/events/29165
神戸支部@takagig支部長の                 よびかけ   杉浦さん                           原田さんテクノロード社長                          PIC BTやUSBRob...
コラム執筆陣が豪華column   コラム目次         ハードウェア屋から見た Android · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ...
p.13 & p.344 小山さん                                                                基本的には、ハードウェアとソフトウェアを別々に開発し、後で結合するという方法を取り...
ンロードできます。このソフトを使用するには USBドライバである FTDriver が必要で、こちら                       も github からソースコードを zip でダウンロードできます。              ...
 しかし、Arduino で制御する際には制御対象として電気回路を組む必要があります。電気回路        2を組むこともたいへん勉強になりますが、1枚のマイコンボードだけで簡単な計測・制御の体験                       ...
 最後に、AndroidにおけるOpenCVの利用事例を2つほどご紹介いた用ライブラリがいくつも作ら                                                         Pano」という名前で Goo...
コラム、Appendix 執筆者上野山 徹                                         著者紹介ページ社会インフラ系電機メーカー勤務。ロボットに囲まれた生活を夢見ていたところ、Android に運命を感じてし...
Upcoming SlideShare
Loading in...5
×

【ステマ】書籍 Android ADK プログラミング&電子工作バイブル の紹介

2,177

Published on

2012年5月19日(土)開催「関西FPGA・DE0勉強会」発表資料

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,177
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
10
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Transcript of "【ステマ】書籍 Android ADK プログラミング&電子工作バイブル の紹介"

    1. 1. 【ステマ】書籍Android ADK プログラミング&電子 工作バイブル の紹介 吉田研一@dietposter
    2. 2. 本が出ました
    3. 3. 原田 明憲(はらだ あきのり)/ 5 章担当 日本 Android の会横浜支部ロボ部メンバー。 中学のころからコンピュータ、プログラミングが好きで、 自己紹介 仕事では長く Windows のソフト開発を行って いたが、3、4 年前に組み込み系の開発を行ったことから、趣味として Android、電子工作、マイコンで の開発を始める。 Twitter @hrdakinori 吉田 研一(よしだ けんいち)/ 3 章、Appendix A-1 担当 1987 年、奈良高専電気科卒。学生時代は vi と cc と make で過ごす。20 代は外資系コンピュータ会社でメ インフレーム CE をこなしたのち、大阪市立大学に編入。2000 年、理学部卒。学業と並行してベンチャー 企業数社で Linux、Windows のサーバ管理・構築に携わる。30 半ばから講師業に徐々にシフトし、現在 382 ECC コンピュータ専門学校専任教員。vim と gcc を教えている。日本 Android の会神戸支部にて日本橋 でんもく会を主催する。 Twitter @dietposter  ブログ http://act-yoshiken.blogspot.jp/androidadk.indd 382-383 コラム、Appendix 執筆者 上野山 徹 社会インフラ系電機メーカー勤務。ロボットに囲まれた生活を夢見ていたところ、Android に運命を感じてしま い道を誤る。Android が五感を得るためには、そして Android がより知能的になるためにはどうすればよいかに
    4. 4. でんもく会 偶数月第一土曜日http://atnd.org/event/denmokukai5
    5. 5. 日本橋ハンダ付け女子会 http://atnd.org/events/29165
    6. 6. 神戸支部@takagig支部長の よびかけ 杉浦さん 原田さんテクノロード社長 PIC BTやUSBRobo One on PC 2回優勝 関係で有名 岩田さん レスキューロボコン 運営メンバー
    7. 7. コラム執筆陣が豪華column コラム目次 ハードウェア屋から見た Android · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 013 IP アドレスを確認する · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 050 ADK ボードのシリアル出力 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 081 Android とマイコンをシリアル通信 (RS232C、 UART) でつなげる方法 · · · · · · · · · · · · · · · · · · · · · · · 083 Arduino をはじめよう!· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 086 ダイアログのメッセージの変更 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 118 抵抗のカラーコードと LED の電流制限抵抗を計算するアプリ · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 124 ADK で困った時の対処法 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 146 Arduino を利用した初心者向けプログラミング環境 Eduino · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 216 画像処理ライブラリ (OpenCV) の活用 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 270 マイコン基板の入手 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 288 ロバスト性の話 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 316 プログラマブルロジック FPGA の紹介と接続方法 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 344
    8. 8. p.13 & p.344 小山さん  基本的には、ハードウェアとソフトウェアを別々に開発し、後で結合するという方法を取りま す。そのため、ハード、ソフトの両方の知識が必要になるため、少しハードルが高くなってしま いました。  私をはじめとして、すでに FPGA と Android の接続を行っている人がいます。構成は、HTC 製のAndroid 2.2と、FPGAがXILINX 社のXC6SLX9で、FPGAの中にCPUとして、MicroBlaze 1 という CPU を搭載しています。接続は MicroBridge です。FPGA と Android の間には、MAXハードウェア屋から見た Android 3421E というIC が入っています。  FPGA の基板ですが、Android との接続のため、特別に作成しました。ADK とも接続予定で 2 す。イメージとしては、図のようになります。まだ接続したばかりで、FPGA のアプリケーショ オープンソースコミュニティーによく出入りをしているのですが、 「ハードウェアは難しそう。 ンは少ないのですが、ロボット製作などに、対応させていこうと思っています。考え方がわからない」という言葉をよく耳にします。ADK や MicroBridge などで、Android と 3ハードウェアを接続する環境が、整っているのにもかかわらず、です。ただ、みなさん興味はあ FPGA MAX3241E Android XC6SLX9 4りそうで、使い方を分かる人がいたら使ってみたい、という印象を受けています。 図 FPGA 基板のイメージ では、逆にハードウェア屋からみた Android は、どのように映っているのでしょうか? ハー 5ドウェアから見て、ハードルが高いものがでてきたな、という感じです。 6 Android 携帯や iPhone の出現で、インターフェイス、特にユーザーインターフェイスが変化しました。タッチパネルを始めとして、音声、加速度センサーを使ったユーザーインターフェイ Aスの革新、携帯網、Wi-Fi、Bluetooth、NFC などの他の機器とのインターフェイスをひとまとめにしたものが、あの大きさ、値段で出てきたことは、今までのハードウェアの常識を覆されました。 これは、今までの電子機器に対するユーザーインターフェイスの要求が変わってしまったといプログラマブルロジック FPGA の紹介と接続方法うことです。インターフェイスをスマートフォンと同じにして欲しい、という要求が高まってきの基盤 図 作成した FPGA FPGA をご存知でしょうか? Field Programmble Gate Array の頭文字をとって FPGA とます。そういったインターフェイスが簡単に作れるかというと、タッチパネル一つをとっても、  Android と接続できる機器は増えてくると思います。その選択肢の1つとして、FPGA もある言います。一言で言うと、机の上でできてしまうIC です。大きな特徴は、ロジック回路 (ハードそんなに簡単ではありません。部品として、タッチパネルを購入してみても、API があるわけで ということを機材、情報などで提供できたらと思っています。ウェア)をプログラムできることです。ロジック回路をプログラムできるというと、ピンとくるはなく簡単には使えません。使うためには、積み重ねた技術が必要になってきます。 小山 忠昭方は少ないかもしれませんが、 デジタル回路のほとんどをこれで置き換えることも可能なデバイ Android の出現は、単なる携帯電話革命というだけではなく、電子機器全般にインターフェイ 346 6-4 応用例 Arduino からAndroid 端末のカメラのシャ : ッターを切るスです。スの革命を起こしてしまった気がします。 プログラムデバイスというと、 組み込み用 CPU もあり、Android の ADK などによく使われて Android のように、携帯電話として普及するものは、持っている本人だけでなく、他の人も目 c06-androidadk.indd 346
    9. 9. ンロードできます。このソフトを使用するには USBドライバである FTDriver が必要で、こちら も github からソースコードを zip でダウンロードできます。 p.83 鈴木さん ■ AndroidSerialTerminal で Android 端末へ Arduino のシリアル信号を表示  Arduino IDE には ASCII Table というサンプルコードが含まれています。このサンプルコー ドは Arduino に電源を入れると ASCII コードの文字列がシリアル出力されます。今回はこのシ リアル信号を Android へ表示させてみましょう。  このサンプルを使う目的は単にシリアル信号を試すことなので、他のマイコンボードを使う場 1 合でも、シリアル信号からなんらかの文字列を出力すれば試すことができます。Android とマイコンをシリアル通信 (RS232C、 UART)でつなげる方法  さて、まずは Arduino のファームウェアを ASCII 2 Table のサンプルコードに書き換えます。 Arduino IDE を開いたら「File → Examples → 4.Communication → ASCII Table」を選択して このコラムでは Android とマイコンをシリアル通信(RS232C、UART)でつなげる方法を 3 スケッチファイルを開き、そのまま Arduino へアップロードしてください。これでシリアル出力紹介します。 するマイコンの準備ができました。 4 シリアル通信はマイコンを制御するための基本的な通信方法です。世の中にあるほとんどのマイコンにシリアル通信機能が搭載されています。マイコンの状態を表示し、デバッグする場合 5  次にハードウェアの準備です。USB シリアル変換モジュールと Arduino を図のように配線でには必ずと言っていいほど、シリアル通信を使うためです。 つなぎます。TxD が送信、RxD が受信を意味するので必ず TxD と RxD が対になるように接続し 6 そのときによく使われるのが、USB シリアル変換モジュールです。みなさんご存知のように、 ましょう。たとえば TxD 同士を接続すると送信信号が衝突してしまいます。また、USB シリアほとんどの PC には USB が備わっています。このモジュールを使うことで両者をカンタンにつ A ル変換モジュールと Arduino の電源電圧が等しいか(3.3V 同士か)注意しましょう。これでなげて制御することができます。 ハードウェアの準備ができました。 一方、Android のバージョン 3.1から USB Host API が実装されました。筆者はこの API を使って USB シリアル通信ができる端末アプリ「AndroidSerialTerminal」を作成しました。AndroidSerialTerminal の特徴を以下に記します。 TxD TxD  FTDI 社製の USB シリアル変換チップに対応  Android のルート権限を取る必要はなし RxD RxD  ボーレート、データビット、パリティ、ストップビット、フロー制御の設定可 GND GND  文字、16 進数、10 進数表示を切り替え  改行コード USB Host APIを (CR / LF / CR + LF)の選択可 3.3V 3.3V 備えたAndroid端末 USBシリアル マイコンボード  ADK のようにマイコン側に電源は必要なく、USB ケーブルから電源が供給される 変換モジュール (Arduino)  Android のバージョンは 3.1以上必須 図 各モジュールの接続図
    10. 10.  しかし、Arduino で制御する際には制御対象として電気回路を組む必要があります。電気回路 2を組むこともたいへん勉強になりますが、1枚のマイコンボードだけで簡単な計測・制御の体験 3ができるようにするために互換ボードを自作することにしました。 また、プログラミングに利用する環境にはタイルプログラミング方式を採ることを決めまし 4 p.216 桐畑さんた。上述したように、タイルプログラミング方式はプログラミング言語そのものを勉強する必要 5がないため、言語の勉強にかける時間を削ってプログラムの作成にすぐ取りかかることができます。また、プログラムコードを書かないので、セミコロン抜けなどの初心者にありがちな記述ミ 6スも起こりません。 A■ Eduino ボード Eduino ボードは初心者が興味を持ちながら計測・制御を学習可能なように、あらかじめ電子部品を実装して提供するように設計をした Arduino 互換ボードです(図を参照) 。 Arduino を利用した初心者向けプログラミング環境 Eduino 具体的には 7 セグメント LED やスイッチ、温度センサ、光センサ(Cds)セルなどを実装しています。これによりパソコンと Eduino 環境だけで温度や光の値を計測し、その値を 7 セグメン ■ Eduino IDE ■はじめにト LED へ表示することが可能です。設計には EagleCAD を利用し、プリント基板製造サービスFusionPCB を利用しました。  Eduino 向けプログラミングツール Eduino IDE には、Arduino IDE のテキスト  パソコンやインターネットが一般化した現在、 学生をはじめとするプログラミング初心者を対 FusionPCB は中国深セン市にある基板製造会社であり、Web サービスとして基板の製造を ログラムの命令タイルのライブラリとタイルの配置を行えるワークスペースに改変 象としたプログラミングの体験教室やイベントが多数開催されるようになりました。さらに、平行っています。5cm×5cm のプリント基板を10 枚で 9.99ドルから依頼が可能であり、少量かつ低価格で基板を作成できるので、プロトタイピングにたいへん有用なサービスです。 を参照) 。Eduino IDE はタイルプログラミング方式として、マウス操作によってラ 成 24 年度からは中学校の技術・家庭科の学習すべき内容に「プログラムによる計測・制御」が Eduino ボードのプリント基板は、10cm×10cm のコースを利用して作成しています。設計 タイルを生成し、ワークスペース内に配置することによりプログラムを作成しますの詳細は割愛しますが、Arduino Duemilanove とその他の Arduino 互換機の回路図を参考に、 加わりました。中学生は計測・制御に関わるプログラムを作成することで、計測・制御の仕組み部品のレイアウトを行いました。  利用可能な命令タイルには、構造化プログラミングの 3 要素である「順次」 「条件 やプログラム処理を学び、情報処理の手順を理解することが求められています。 返し」 を表すタイルを実装しつつ、 マイコンボードの入出力系を表すタイルの実装を  このように、 学生や初心者がプログラミングをはじめとする情報技術に触れる機会が増えつつ あるなか、初心者が簡単にプログラミングを始められる環境が重要になります。そのなかで「タ イルプログラミング方式」に注目が集まってきています。タイルプログラミングとは、プログラ ムコードを書く代わりに、プログラムを構成する命令の最小単位を表すタイルをマウス操作によ り配置することでプログラムを作成するというものです。  有名なタイルプログラミング環境には、Squeak により開発されている Scratch や、MIT メ ディアラボが開発する Java ベースのタイルプログラミング環境 OpenBlocks などがあります。 2010 年に Google が公開した Android アプリケーションを Web 上で作成可能な環境 App図 Eduino ボード Inventor もタイルプログラミング方式を実装しています。なお、App Inventor は 2012 年 3 月
    11. 11.  最後に、AndroidにおけるOpenCVの利用事例を2つほどご紹介いた用ライブラリがいくつも作ら Pano」という名前で Google Play に公開されているアプリです。こちpenCV」です。なお、 側 CG 徴的な点の組を探し出し、それを基準に複数の写真をつなぎ合わせて1 p.270 上野山さんた、OpenCV の機能の中に るスティッチングと呼ばれる写真加工を OpenCV を用いて行っていま も公開されていますので、OpenCV を用いたアプリ開発の参考にもな通りオープンソース(BSDが、一部に特許になっている  もう一つの事例は拙作ではありますが、Arduino と OpenCV を組み の す(図を参照) 。このロボットカーは、OpenCV を利用して緑色の領域 画像処理ライブラリでは Willow Garage 社のサ (OpenCV)の活用 す て Arduino からモーターを制御することで、緑色のものを追尾します  能は、行列演算や画素値の変  近年デジタルカメラの技術が進歩し、 きれいで精細な画像が簡単に撮影できるようになりまし Android のマスコット人形を追尾させて遊んでいます。それ自体何か え た。現にほとんどのスマートフォンにはカメラが搭載され、メールや Web で写真や動画がやりり出し、動き追跡や 3 次元復 せんが、OpenCV と Arduino を組み合わせることで、Android 端末が を とりされています。そしてさらに、コンピュータの計算能力も飛躍的に向上してきたことで、撮計して 2,500 種以上のアル ど 影した写真や動画をコンピュータ処理するケースも急激に増えてきました。 動作できるようになるという意味ではおもしろいのではないかと考えれるため、CV に関するあり A  最近の Android 端末は、高性能なカメラと計算能力を持ち ADK など  このような処理は一般的に「画像処理」と呼ばれますが、この言葉のなかにはコンピュータグしょう。実際、 研究機関での き ラフィックス(CG)とコンピュータビジョン(CV)という大きな 2 つの考え方が含まれていま という高いポテンシャルを備えていますので、 情報処理端末以外の価値  等研究計画局(DARPA)が とはコンピュータで欲しい画像を作り出すことを指しており、写真のレタッチや映画の す。CG のではないでしょうか? Q いました。 VFX などが例にあたります。一方、CV とは画像をコンピュータで認識して欲しい情報を取り出 すことを指しており、文字認識(OCR)などがその一例です。Python、GPGPU などに対    ただし、CG も CV も幅広い技術を含んでいるため、それぞれ汎用ライブラリがいくつも作らoid にもバージョン 2.3 から P れてきました。そして CV 側のライブラリの代表格にあたるのが「OpenCV」です。なお、 側 CGきるようになりました。厳密 徴 のライブラリには、OpenGL や Direct3D などが挙げられます。また、OpenCV の機能の中に るしくNVidia 社のサポートをで使えるものがたくさん含まれています。 も CG もなりました。  OpenCV は Open Source Computer Vision の略称で、名前の通りオープンソース(BSD ライセンス)選べます。1つは C++ で画 のライブラリです 。著作権はあまり問題になりませんが、一部に特許になっている   技術も含まれるため、研究以外の用途では注意してください。1つは Android 用に新たに す  もともと米 Intel 社が1999 年に開発を開始したもので、現在では Willow Garage 社のサ て ポートを受けながら機能拡張が続けられています。網羅している機能は、行列演算や画素値の変 図 ロボットカー Aることができますが,NDK 換といった低レベルなものから、直線や角などの検出や、領域の切り出し、動き追跡や 3 次元復 せ
    12. 12. コラム、Appendix 執筆者上野山 徹 著者紹介ページ社会インフラ系電機メーカー勤務。ロボットに囲まれた生活を夢見ていたところ、Android に運命を感じてしまい道を誤る。Android が五感を得るためには、そして Android がより知能的になるためにはどうすればよいかに心を惑わせつつ、日々、社会インフラ機器のソフトウェア設計を行っている。桐畑 鷹輔日本 Android の会 神戸支部メンバー。2012 年 4 月から新社会人として組み込みソフトウェア業界へ参入。組み込みボード、Beagleboard で Andorid が動作することを知ったことをきっかけにマイコンや Android に興味を持つ。神戸支部メンバーからさまざまな技術を教わりながら、技術者を目指して勉強中。Twitter @fox_twitting 詳しくは小山 忠昭有限会社 FPGA インフォメーション代表。大阪在住。大学の頃に FPGA に出会って 20 数年、主に FPGA の設計の仕事をしている。20 数年の技術の進歩を目の当たりにしながら、これから先、発展を遂げる FPGA の世界を楽しみにしている一人。鈴木 圭介日本 Android の会 神戸支部メンバー。三重県出身の組込み系男子。テーマは“つなぐ” 「Android ADKプログラミング & 電子工作 バイブル」 。趣味の時間に Android、 著者 岩田 直樹/杉浦 登/高木 基成/原田 明憲/吉田 研一マイコン、FPGA、コミュニティなど、いろんなものをつなげる活動にいそしんでいる。github にて、Android と電子機器をつなげる USB ドライバアプリをオープンソースで開発中。 ISBN978-4-88337-809-8 株式会社ソシムHP https://github.com/ksksue  Twitter @ksksue 本体価格:2,980円(税別)
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×