SlideShare ist ein Scribd-Unternehmen logo
1 von 12
【ステマ】書籍
Android ADK プログラミング&電子
    工作バイブル の紹介

     吉田研一@dietposter
本が出ました
原田 明憲(はらだ あきのり)/ 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 がより知能的になるためにはどうすればよいかに
でんもく会             偶数月第一土曜日




http://atnd.org/event/denmokukai5
日本橋ハンダ付け女子会




 http://atnd.org/events/29165
神戸支部@takagig支部長の
                 よびかけ
   杉浦さん
                           原田さん
テクノロード社長
                          PIC BTやUSB
Robo One on PC
   2回優勝                   関係で有名
                 岩田さん
             レスキューロボコン
                 運営メンバー
コラム執筆陣が豪華
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
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
ンロードできます。このソフトを使用するには 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以上必須
                      図 各モジュールの接続図
 しかし、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 月
 最後に、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 次元復
                                                                                               せ
コラム、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円(税別)

Weitere ähnliche Inhalte

Andere mochten auch

Người giỏi không phải người làm tất cả Ebook - Donna M.Genett
Người giỏi không phải người làm tất cả Ebook - Donna M.GenettNgười giỏi không phải người làm tất cả Ebook - Donna M.Genett
Người giỏi không phải người làm tất cả Ebook - Donna M.GenettDuyệt Đoàn
 
Project training
Project trainingProject training
Project trainingmsudan92
 
Cadburys celebrationsppt antriksh
Cadburys celebrationsppt antrikshCadburys celebrationsppt antriksh
Cadburys celebrationsppt antrikshAntriksh Chopra
 
Catholic social teaching
Catholic social teachingCatholic social teaching
Catholic social teachingIntien Bontog
 
Java projects
Java projectsJava projects
Java projectsmsudan92
 
Find Keyword
Find Keyword Find Keyword
Find Keyword ปอ sd
 
ГО "Самопоміч"
ГО "Самопоміч"ГО "Самопоміч"
ГО "Самопоміч"Olena Ursu
 
Mocks, Stubs and Rock'n'roll: maintainable unit tests with AutoFixture
Mocks, Stubs and Rock'n'roll: maintainable unit tests with AutoFixtureMocks, Stubs and Rock'n'roll: maintainable unit tests with AutoFixture
Mocks, Stubs and Rock'n'roll: maintainable unit tests with AutoFixtureVladimir Almaev
 
Tetyana naumenko
Tetyana naumenkoTetyana naumenko
Tetyana naumenkoOlena Ursu
 
Ranbaxy final project
Ranbaxy final projectRanbaxy final project
Ranbaxy final projectRahul Rai
 
миссия и образование
миссия и образованиемиссия и образование
миссия и образованиеAlexey Vidanov
 
ElectionMall DonationPages Walk-through
ElectionMall DonationPages Walk-throughElectionMall DonationPages Walk-through
ElectionMall DonationPages Walk-throughcampaigncloudos
 

Andere mochten auch (16)

Người giỏi không phải người làm tất cả Ebook - Donna M.Genett
Người giỏi không phải người làm tất cả Ebook - Donna M.GenettNgười giỏi không phải người làm tất cả Ebook - Donna M.Genett
Người giỏi không phải người làm tất cả Ebook - Donna M.Genett
 
Western Avenue
Western AvenueWestern Avenue
Western Avenue
 
Project training
Project trainingProject training
Project training
 
Cadburys celebrationsppt antriksh
Cadburys celebrationsppt antrikshCadburys celebrationsppt antriksh
Cadburys celebrationsppt antriksh
 
Catholic social teaching
Catholic social teachingCatholic social teaching
Catholic social teaching
 
Java projects
Java projectsJava projects
Java projects
 
LoungeUp ROI
LoungeUp ROILoungeUp ROI
LoungeUp ROI
 
Oklahoma place making leinberger
Oklahoma place making leinbergerOklahoma place making leinberger
Oklahoma place making leinberger
 
Find Keyword
Find Keyword Find Keyword
Find Keyword
 
ГО "Самопоміч"
ГО "Самопоміч"ГО "Самопоміч"
ГО "Самопоміч"
 
Mocks, Stubs and Rock'n'roll: maintainable unit tests with AutoFixture
Mocks, Stubs and Rock'n'roll: maintainable unit tests with AutoFixtureMocks, Stubs and Rock'n'roll: maintainable unit tests with AutoFixture
Mocks, Stubs and Rock'n'roll: maintainable unit tests with AutoFixture
 
Tetyana naumenko
Tetyana naumenkoTetyana naumenko
Tetyana naumenko
 
Ranbaxy final project
Ranbaxy final projectRanbaxy final project
Ranbaxy final project
 
миссия и образование
миссия и образованиемиссия и образование
миссия и образование
 
ElectionMall DonationPages Walk-through
ElectionMall DonationPages Walk-throughElectionMall DonationPages Walk-through
ElectionMall DonationPages Walk-through
 
RRC SEO presentation
RRC SEO presentationRRC SEO presentation
RRC SEO presentation
 

Mehr von Kenichi Yoshida

大阪版Io tlt#1 IoTあるじゃん関西支部 ラズパイ2でデュアルブート
大阪版Io tlt#1 IoTあるじゃん関西支部 ラズパイ2でデュアルブート大阪版Io tlt#1 IoTあるじゃん関西支部 ラズパイ2でデュアルブート
大阪版Io tlt#1 IoTあるじゃん関西支部 ラズパイ2でデュアルブートKenichi Yoshida
 
AWScean #1 SORACOMアルファベット
AWScean #1 SORACOMアルファベットAWScean #1 SORACOMアルファベット
AWScean #1 SORACOMアルファベットKenichi Yoshida
 
Soracom & myThingsを使ったハンズオンセミナーをやってみた
Soracom & myThingsを使ったハンズオンセミナーをやってみたSoracom & myThingsを使ったハンズオンセミナーをやってみた
Soracom & myThingsを使ったハンズオンセミナーをやってみたKenichi Yoshida
 
ラズパイ2にWindows 10 IoT Coreを入れてWindows Universal アプリ動かしてみた
ラズパイ2にWindows 10 IoT Coreを入れてWindows Universal アプリ動かしてみたラズパイ2にWindows 10 IoT Coreを入れてWindows Universal アプリ動かしてみた
ラズパイ2にWindows 10 IoT Coreを入れてWindows Universal アプリ動かしてみたKenichi Yoshida
 
Android IoTとプログラミング教育
Android IoTとプログラミング教育Android IoTとプログラミング教育
Android IoTとプログラミング教育Kenichi Yoshida
 
App Inventor 2でかんたんロボカー操縦!
App Inventor 2でかんたんロボカー操縦!App Inventor 2でかんたんロボカー操縦!
App Inventor 2でかんたんロボカー操縦!Kenichi Yoshida
 
組み込みーモバイルークラウドをオープンな形でつなぐKOF2013
組み込みーモバイルークラウドをオープンな形でつなぐKOF2013組み込みーモバイルークラウドをオープンな形でつなぐKOF2013
組み込みーモバイルークラウドをオープンな形でつなぐKOF2013Kenichi Yoshida
 
組み込みーモバイルークラウドをオープンな形でつなぐ
組み込みーモバイルークラウドをオープンな形でつなぐ組み込みーモバイルークラウドをオープンな形でつなぐ
組み込みーモバイルークラウドをオープンな形でつなぐKenichi Yoshida
 
プロトタイピング用途の基板に欲しい拡張基板
プロトタイピング用途の基板に欲しい拡張基板プロトタイピング用途の基板に欲しい拡張基板
プロトタイピング用途の基板に欲しい拡張基板Kenichi Yoshida
 
JAWS-UG三都物語 クラウドとデバイスが連携するアジェンダ
JAWS-UG三都物語 クラウドとデバイスが連携するアジェンダJAWS-UG三都物語 クラウドとデバイスが連携するアジェンダ
JAWS-UG三都物語 クラウドとデバイスが連携するアジェンダKenichi Yoshida
 
クラウド―Arduino接続について
クラウド―Arduino接続についてクラウド―Arduino接続について
クラウド―Arduino接続についてKenichi Yoshida
 
姫路IT系勉強会「ADB接続でかんたんフィジカルコンピューティング」
姫路IT系勉強会「ADB接続でかんたんフィジカルコンピューティング」姫路IT系勉強会「ADB接続でかんたんフィジカルコンピューティング」
姫路IT系勉強会「ADB接続でかんたんフィジカルコンピューティング」Kenichi Yoshida
 
ロボットサミットとは? in 京都 on 2012年8月
ロボットサミットとは? in 京都 on 2012年8月ロボットサミットとは? in 京都 on 2012年8月
ロボットサミットとは? in 京都 on 2012年8月Kenichi Yoshida
 
Androidロボットサミットin京都
Androidロボットサミットin京都Androidロボットサミットin京都
Androidロボットサミットin京都Kenichi Yoshida
 
ロボットサミットとは?in名古屋on2012年5月
ロボットサミットとは?in名古屋on2012年5月ロボットサミットとは?in名古屋on2012年5月
ロボットサミットとは?in名古屋on2012年5月Kenichi Yoshida
 
ロボットサミットについてin愛媛on2012年3月
ロボットサミットについてin愛媛on2012年3月ロボットサミットについてin愛媛on2012年3月
ロボットサミットについてin愛媛on2012年3月Kenichi Yoshida
 
ミント缶でMaker気分
ミント缶でMaker気分ミント缶でMaker気分
ミント缶でMaker気分Kenichi Yoshida
 
イチからはじめるADK北海道支部勉強会発表資料
イチからはじめるADK北海道支部勉強会発表資料イチからはじめるADK北海道支部勉強会発表資料
イチからはじめるADK北海道支部勉強会発表資料Kenichi Yoshida
 

Mehr von Kenichi Yoshida (20)

大阪版Io tlt#1 IoTあるじゃん関西支部 ラズパイ2でデュアルブート
大阪版Io tlt#1 IoTあるじゃん関西支部 ラズパイ2でデュアルブート大阪版Io tlt#1 IoTあるじゃん関西支部 ラズパイ2でデュアルブート
大阪版Io tlt#1 IoTあるじゃん関西支部 ラズパイ2でデュアルブート
 
AWScean #1 SORACOMアルファベット
AWScean #1 SORACOMアルファベットAWScean #1 SORACOMアルファベット
AWScean #1 SORACOMアルファベット
 
Soracom & myThingsを使ったハンズオンセミナーをやってみた
Soracom & myThingsを使ったハンズオンセミナーをやってみたSoracom & myThingsを使ったハンズオンセミナーをやってみた
Soracom & myThingsを使ったハンズオンセミナーをやってみた
 
ラズパイ2にWindows 10 IoT Coreを入れてWindows Universal アプリ動かしてみた
ラズパイ2にWindows 10 IoT Coreを入れてWindows Universal アプリ動かしてみたラズパイ2にWindows 10 IoT Coreを入れてWindows Universal アプリ動かしてみた
ラズパイ2にWindows 10 IoT Coreを入れてWindows Universal アプリ動かしてみた
 
Android IoTとプログラミング教育
Android IoTとプログラミング教育Android IoTとプログラミング教育
Android IoTとプログラミング教育
 
Abc2015 winterkobe
Abc2015 winterkobeAbc2015 winterkobe
Abc2015 winterkobe
 
App Inventor 2でかんたんロボカー操縦!
App Inventor 2でかんたんロボカー操縦!App Inventor 2でかんたんロボカー操縦!
App Inventor 2でかんたんロボカー操縦!
 
組み込みーモバイルークラウドをオープンな形でつなぐKOF2013
組み込みーモバイルークラウドをオープンな形でつなぐKOF2013組み込みーモバイルークラウドをオープンな形でつなぐKOF2013
組み込みーモバイルークラウドをオープンな形でつなぐKOF2013
 
組み込みーモバイルークラウドをオープンな形でつなぐ
組み込みーモバイルークラウドをオープンな形でつなぐ組み込みーモバイルークラウドをオープンな形でつなぐ
組み込みーモバイルークラウドをオープンな形でつなぐ
 
プロトタイピング用途の基板に欲しい拡張基板
プロトタイピング用途の基板に欲しい拡張基板プロトタイピング用途の基板に欲しい拡張基板
プロトタイピング用途の基板に欲しい拡張基板
 
JAWS-UG三都物語 クラウドとデバイスが連携するアジェンダ
JAWS-UG三都物語 クラウドとデバイスが連携するアジェンダJAWS-UG三都物語 クラウドとデバイスが連携するアジェンダ
JAWS-UG三都物語 クラウドとデバイスが連携するアジェンダ
 
クラウド―Arduino接続について
クラウド―Arduino接続についてクラウド―Arduino接続について
クラウド―Arduino接続について
 
Android+Education
Android+EducationAndroid+Education
Android+Education
 
姫路IT系勉強会「ADB接続でかんたんフィジカルコンピューティング」
姫路IT系勉強会「ADB接続でかんたんフィジカルコンピューティング」姫路IT系勉強会「ADB接続でかんたんフィジカルコンピューティング」
姫路IT系勉強会「ADB接続でかんたんフィジカルコンピューティング」
 
ロボットサミットとは? in 京都 on 2012年8月
ロボットサミットとは? in 京都 on 2012年8月ロボットサミットとは? in 京都 on 2012年8月
ロボットサミットとは? in 京都 on 2012年8月
 
Androidロボットサミットin京都
Androidロボットサミットin京都Androidロボットサミットin京都
Androidロボットサミットin京都
 
ロボットサミットとは?in名古屋on2012年5月
ロボットサミットとは?in名古屋on2012年5月ロボットサミットとは?in名古屋on2012年5月
ロボットサミットとは?in名古屋on2012年5月
 
ロボットサミットについてin愛媛on2012年3月
ロボットサミットについてin愛媛on2012年3月ロボットサミットについてin愛媛on2012年3月
ロボットサミットについてin愛媛on2012年3月
 
ミント缶でMaker気分
ミント缶でMaker気分ミント缶でMaker気分
ミント缶でMaker気分
 
イチからはじめるADK北海道支部勉強会発表資料
イチからはじめるADK北海道支部勉強会発表資料イチからはじめるADK北海道支部勉強会発表資料
イチからはじめるADK北海道支部勉強会発表資料
 

Kürzlich hochgeladen

ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ssusere0a682
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料Takayuki Itoh
 
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptyuitoakatsukijp
 
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ssusere0a682
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationYukiTerazawa
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024koheioishi1
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2Tokyo Institute of Technology
 

Kürzlich hochgeladen (7)

ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
 
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 

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

  • 1. 【ステマ】書籍 Android ADK プログラミング&電子 工作バイブル の紹介 吉田研一@dietposter
  • 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. でんもく会 偶数月第一土曜日 http://atnd.org/event/denmokukai5
  • 6. 神戸支部@takagig支部長の よびかけ 杉浦さん 原田さん テクノロード社長 PIC BTやUSB Robo One on PC 2回優勝 関係で有名 岩田さん レスキューロボコン 運営メンバー
  • 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. 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. ンロードできます。このソフトを使用するには 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.  しかし、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.  最後に、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. コラム、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円(税別)

Hinweis der Redaktion

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n