2017年12月29日金曜日

Android Things ハンズオン勉強会 (2017/12/23)



Android Things ハンズオンGDG神戸さんと共催で開催しました。



会場の MTRL KYOTO(マテリアル京都)は、京町家を改修したクリエイティブラウンジです。 伝統と革新のものづくりが隣り合わせに息づく街・京都らしく、新しいものと古いものが一体となったクリエイティビティを刺激する空間です。

MTRL KYOTO 外観
1階が共有スペースになっていて、
珈琲やソフトドリンク(タイトル写真参照/有料)もいただけます。

Makersを支援するための
3Dプリンタやレーザーカッター

お正月に備えた「お飾り」
一階の奥には坪庭が


はじめに

Android Tthings とは?

Android Tthings は、IoTシステムの開発に当たり、モバイル Androidの開発と同じ開発環境、フレームワーク、Google APIを提供することで、組み込み機器の開発およびクラウド連携を容易にするものです。

Android Things は、IoTシステムの開発をターゲットにしています。
このため Google さんは、Android Things を使った IoTシステム(Product)開発を容易にするために、Developer Kits という基本ハードウェアと、Android Things Console というサービスも提供しています。


Android Things Developer Kits

Googleさんが基礎開発を容易にするために推奨公開している、Android Things が稼働し Peripheral I/O が公開されている「CPUボード」と、入出力ハードウェア(温度センサやタッチボタンにLEDやブザーなど)が一体となった、開発用リファレンスハードウェア・キットです。


Google から公開されている Code Labs やサンプル・ソースは、
Developer Kits を対象しています。

Android Things Console

Google さんが提供している、開発着手と開発したIoTシステム(Product)を運用するためのクラウド・サービスです。 詳しくは、About the Android Things Console 章を参照ください。
以下のようなサービスが提供されています。

  1. Android Things 基本イメージのダウンロード
  2. Android Things 基本イメージと OEMアプリケーションを含む Factory Image の作成
  3. IoTシステム稼働後のアップデート版イメージの(over-the-air)OTA配信


ハンズオン

初めに Android Things の概要説明から入り、続いて Pico Pro Maker Kit を使った実践ハンズオンが始まりました。

Android Things 概要説明
ハンズオン資料












ハンズオン内容は、Android Things > GUIDES > Samples and Drivers にある Codelabs の Android Things Peripheral I/O を独自に日本語化したものです。

  • 開発環境設定 (Android Studio のバージョン確認やAndroid SDKのアップデート)
  • 開発ボードとの接続
  • Android Thingsアプリケーションプロジェクトの新規作成
  • Android Thingsで必要になる build.gradle や AndroidManifest.xml 設定
  • 接続されているペリフェラルの表示
  • ボードからの入力と出力(ボタン入力とLED明滅)の具体的実装

…についてが日本語で学べます。


つまり、このハンズオンを終了すると、Android Things > GUIDES > Training


…の基礎が実践できるという素敵なものです。

ハンズオン資料は、公開されています、
よろしければダウンロードしてみてください。


ハンズオン光景


ハンズオン会場全景


ハンズオン講演中
皆さん、真剣に取り組まれています。

お互いに教え合っています。
講師の久保田さん















ハンズオン参加者の皆様は、
ハードウェアおよびソフトウェア開発スキルの高い方々でした。

参加準備として「Android Studio 3.0をインストールしたPCの持参」をお願いしていましたが、
参加者の皆さんは全員が独力でクリアして準備済み(*1)でした

(*1) Android Studio 3.0 をインストールするためには、   
JDK(Java SDK)のインストールや環境変数の追加および、
Android SDK を予め最新化しておくことが必要です。

もくもく時間

ハンズオンで Android Things の基本を実践していただいた後、1時間ほど Android Things Kit を自由に使っていただきました。

皆さん思い思いに、4桁の7セグメントLEDを使ってメッセージを出したり、ブザー音を鳴らされたり…と、ハードウェア制御を楽しまれていました。

もくもく開発中

もくもく成果発表

参加者の NakanoKyohei さんからは、もくもく成果として、
「Aボタンの押下なら1、ABCボタンの押下なら7をLEDに表示する」という、
ABCの3ボタンで表されるビット値(2進数)を10進値表示するアプリの発表をしていただきました。

もくもく成果発表


むすび

Android では、以前より ADK(Accessory Development Kit)を使って、Android から Arduino を介すことでハードウェアとの入出力を制御することができましたが、ハードウェアの進歩に伴い「Android のコードで直接ハードウェアを制御」できるまで進化していたのですね。 私も Android Things Kit を購入したくなりました。


年末の祝日にも関わらず参加していただきました皆様、
ハンズオンのために Pico Pro Maker Kit を貸し出してくださった Google様、
講師の久保田さん、協力スタッフの皆さん、本当にありがとうございました。


謝辞

今回のハンズオンでは、Google様より Developer Kits の Pico Pro Maker Kit を貸し出していただきました。

おかげさまで、NXP i.MX7D へのイメージフラッシュや初期設定などの下準備もクリアでき、ハンズオン開催にこぎつけましたことに深く感謝いたします。


【補足】 udev ルール追加設定

Android Things開発に MacOS や Windowsでなく、Ubuntu などの Linux を使われている方は、udev ルールの追加設定が必要な場合があります。 具体的には、adb devices コマンド実行時やアプリのインストール時に以下のようなメッセージが出力され Android Things ボードとの通信に失敗することがあります。

error: insufficient permissions for device: udev requires plugdev group membership


このような場合は、Android Studio ユーザガイドの ハードウェア端末上でアプリを実行する を参考に、/etc/udev/rules.d ディレクトリに 51-android.rules ファイルを作成して、以下のように GoogleのUSBベンダーID(18d1)を利用した udev ルール行を追加してみてください。

/etc/udev/rules.d/51-android.rules ファイル内容

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d002", MODE="0660", 
GROUP="plugdev", SYMLINK+="android%n"

  • ルール構文については、udev ルールの記述ガイドを参照ください。
  • /etc/udev/rules.d ディレクトリは、root 所有なことに注意ください。
  • 設定を反映するには、再起動が必要です。


写真について

掲載の写真は、共催のGDG神戸 野田さん、嘉多さんの写真も掲載しております。

2 件のコメント: