Top Banner
Android Things @kikuchy
28

Android thingsやってみた

Apr 13, 2017

Download

Technology

Hiroshi Kikuchi
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Android thingsやってみた

Android Thingsやってみた

@kikuchy

Page 2: Android thingsやってみた

Who?

@kikuchy

菊池 紘

株式会社Diverse (ミクシィグループ)

最近はiOSも書いてます

Page 3: Android thingsやってみた

スペック(人間の)

Android開発歴2年弱

アナログ回路は高校と大学でやった気がするけれどほとんど忘れた

ハンダ付けとかはしたことある

 E = I * R  とかは知ってる

キルヒホッフの電流則/電圧則は忘れた

LC共振回路ってなんだっけ

Page 4: Android thingsやってみた

Android Things とは

Raspberry Pi や Intel Edison などIoT系マイコンボードで動作する

IoTプラットフォームOS

組み込み系の事前知識なしでマスマーケット向け製品を作ることが

できる、信頼できるプラットフォーム(公式より)

通常のAndroidアプリとほぼ同じコードがマイコン上で動作する

Page 5: Android thingsやってみた

準備から起動まで

Page 6: Android thingsやってみた

用意したもの

Raspberry Pi 3 Model B

2.4A供給できるUSB電源Raspberry Pi 3が安定動作するには2.5Aくらいの電流が必要

micro SDカード (8GB以上)

有線LAN環境無線LAN設定するまで必要

電子工作の部品

その辺のスターターキットみたいなのに入ってるやつ

Page 7: Android thingsやってみた

意外と用意するものが多い (´・ω・`)

Page 8: Android thingsやってみた

インストール

公式のマニュアルの通りにインストールするだけ、非常に簡単

https://developer.android.com/things/hardware/raspberrypi.html

Qiitaの記事も参考にhttp://qiita.com/aoinakanishi/items/fae26dc1ad0f16b58558

注意することとTipsOSのイメージをmacOSのアーカイブユーティリティで解凍す

るべからず

破損したイメージができてしまう

adbで実機とつなぐ際IPアドレスの代わりに  Android.local で接続できる

Page 9: Android thingsやってみた

起動

電源のUSBケーブルを繋ぐだけ

しばらく(1分くらい)待つとadbで繋がるようになる

Page 10: Android thingsやってみた
Page 11: Android thingsやってみた

アプリ作成

Page 12: Android thingsやってみた

新規作成

minSdkVersion 24+

普通のAndroidアプリで良い

GPIOの操作などにThings Support Libraryが必要

Page 13: Android thingsやってみた

Things Support Library

周辺機器入出力と自作ドライバを扱うために必要

Support Libraryなので、後から導入するだけでよい

 build.gradle  の  dependencies  に追加

 AndroidManifest.xml  の  <application>  内に追加

<uses‐library android:name="com.google.android.things"/>

provided 'com.google.android.things:androidthings:0.1‐devpreview'

Page 14: Android thingsやってみた

アプリ作成

普通にアプリ書けば良い

GPIOの操作方法はサンプル見ればだいたいわかるピンごとに 入力/出力 を設定し、値をセットする/コールバック

を仕掛ける などすればよい

公式のサンプル https://github.com/androidthings/sample‑simplepio

Page 15: Android thingsやってみた

周辺機器入出力

原文では  Peripheral I/O 

Raspberry Piの場合はGPIOピンの制御などができる(らしい)

Page 16: Android thingsやってみた

PeripheralManagerService (1)

とりあえずGPIOいじってみる

// マネージャー作成PeripheralManagerService manager         = new PeripheralManagerService();        // 使用可能ポートの一覧を得るList<String> portList = manager.getGpioList();

// GPIOピンを開くGpio gpio = manager.openGpio(/* String */GPIO_NAME);// 使い終わったら閉じることgpio.close();

Page 17: Android thingsやってみた

PeripheralManagerService (2)

// ピンを入力受付モードにするgpio.setDirection(Gpio.DIRECTION_IN);// 電圧の High / Low のどちらを true とするか決める// 今回は Highgpio.setActiveType(Gpio.ACTIVE_HIGH);// 現在の入力値を得るbool now = gpio.getValue();

// 電圧の High / Low が切り替わったイベントをとることもできる

// High / Low どちらに切り替わったときもイベントをもらうようにするgpio.setEdgeTriggerType(Gpio.EDGE_BOTH);// イベントのコールバックを登録 // (GpioCallback インターフェースを実装したオブジェクト)// onStartなどのタイミングで登録するgpio.registerGpioCallback(gpioCallback);// 必要なくなったら登録解除// onStopなどのタイミングで行うgpio.unregisterGpioCallback(gpioCallback);

Page 18: Android thingsやってみた

PeripheralManagerService (3)

// ピンを出力モードにする// 今回は初期状態を High で初期化gpio.setDirection(Gpio.DIRECTION_OUT_INITIALLY_HIGH);// 電圧の High / Low のどちらを true とするか決める// 今回は Lowgpio.setActiveType(Gpio.ACTIVE_LOW);//出力を Low に切り替えるgpio.setValue(true);

Page 19: Android thingsやってみた

デモ(できれば)

Page 20: Android thingsやってみた

スマホアプリエンジニアがIoT業界でこの先生きのこるには

Page 21: Android thingsやってみた

雑感(1)

アナログ回路の知識が必要

プルアップ抵抗? なにそれおいしいの?

ショートさせたり高電流高電圧かけて火が出ないか不安

いろいろやろうと思うと材料がたくさん必要

ソフトウェアばかりやってきた身としては慣れない感覚

プログラムは無ければ自分で書けば良いが、ハードはそうも行

かない

Page 22: Android thingsやってみた

雑感(2)

まだ何ができるかよく分からない分野

知識がないから発想が狭いのかもしれない?

IoT自体、キラーコンテンツがまだない

チャンスはありそう

少なくともAndroidは作り慣れている

慣れた環境に+αするだけで回路制御ができる

「物理的インタラクションができるAndroidアプリ」を一番作

れる位置にいる

Page 23: Android thingsやってみた

本職の組み込み系の人と

まともにやりあえるかどうかはわからない

Page 24: Android thingsやってみた

でも

「物理的インタラクションができるAndroidアプリ」

はきっと面白い ✧\\ ٩( 'ω' )و //✧

Page 25: Android thingsやってみた

やっていきましょう

✧\\ ٩( 'ω' )و //✧

Page 26: Android thingsやってみた

一緒にやっていってくれる方を募集中です

Page 27: Android thingsやってみた

Diverseでは Android エンジニアを募集しています

https://diverse‑inc.co.jp/

Page 28: Android thingsやってみた