Recommended
PPTX
PDF
Modernization of IT Infrastructure by Microsoft Azure
PPTX
Azure Arc Enabled Serverの活用
PDF
PPTX
PDF
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
PDF
DevFest Japan 2014 Spring
PDF
Decode19 cd42 fixer_public_0601
PDF
Power app custom api v0.1.21.1221
PDF
ailia SDK ハンズオン ~1時間で体感するAIを使ったコンピュータビジョン~
PDF
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
PDF
Microsoft Intelligent Edge Technologies
PDF
エンタープライズ・モバイルアプリにおける ハイブリッドアプリ開発
PDF
PDF
Azure IoT Customer Stories
PDF
PDF
Usb接続するアプリを開発した時に試行錯誤した事
PDF
PF部2011年12月勉強会.androidsola
PDF
Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...
PDF
PDF
はじめての4,500円OS無しジャンクIntel MacbookにLinux,NetBSDインストール iin OSC 2020 Online/Kyoto...
PDF
PDF
io tつくるよ! LT [m5stackの拡張基板をつくったよ!」
PDF
PF部第19回資料 poor man's JTAG
PPTX
PDF
KEY
KEY
KEY
KEY
More Related Content
PPTX
PDF
Modernization of IT Infrastructure by Microsoft Azure
PPTX
Azure Arc Enabled Serverの活用
PDF
PPTX
PDF
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
PDF
DevFest Japan 2014 Spring
PDF
Decode19 cd42 fixer_public_0601
What's hot
PDF
Power app custom api v0.1.21.1221
PDF
ailia SDK ハンズオン ~1時間で体感するAIを使ったコンピュータビジョン~
PDF
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
PDF
Microsoft Intelligent Edge Technologies
PDF
エンタープライズ・モバイルアプリにおける ハイブリッドアプリ開発
PDF
PDF
Azure IoT Customer Stories
Similar to はじめてのAndroid Things
PDF
PDF
Usb接続するアプリを開発した時に試行錯誤した事
PDF
PF部2011年12月勉強会.androidsola
PDF
Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...
PDF
PDF
はじめての4,500円OS無しジャンクIntel MacbookにLinux,NetBSDインストール iin OSC 2020 Online/Kyoto...
PDF
PDF
io tつくるよ! LT [m5stackの拡張基板をつくったよ!」
PDF
PF部第19回資料 poor man's JTAG
PPTX
PDF
KEY
KEY
KEY
KEY
PDF
20120422 m3pi in Yokohama
PDF
PDF
Android端末と組み込み機器が連携する Android Make Days
ODP
PDF
More from Akira Sasaki
PDF
PDF
MEMS sensor catalog with I2C
PDF
PPTX
PDF
PDF
PPTX
AIZU.cloud 第一回 AWS CLIハンズオン
PPTX
KEY
KEY
PPTX
KEY
PDF
PDF
KEY
PDF
PPTX
PDF
PPTX
PDF
Recently uploaded
PDF
100年後の知財業界-生成AIスライドアドリブプレゼン イーパテントYouTube配信
PDF
第21回 Gen AI 勉強会「NotebookLMで60ページ超の スライドを作成してみた」
PPTX
PDF
Starlink Direct-to-Cell (D2C) 技術の概要と将来の展望
PDF
Reiwa 7 IT Strategist Afternoon I Question-1 3C Analysis
PDF
Reiwa 7 IT Strategist Afternoon I Question-1 Ansoff's Growth Vector
PDF
PDF
さくらインターネットの今 法林リージョン:さくらのAIとか GPUとかイベントとか 〜2026年もバク進します!〜
PDF
2025→2026宙畑ゆく年くる年レポート_100社を超える企業アンケート総まとめ!!_企業まとめ_1229_3版
はじめてのAndroid Things 1. 2. 特徴
Peripheral I/O APIが追加。
PWM, I2C, SPI, UART, I2S対応のハードウェアと通信するためのAPI群が提供。ハード
ウェアのデバイスドライバ等を、標準的なAndroid APIをたたく事で、開発可能に。
User Driver APIが追加
ユーザードライバは、開発者が開発したデバイスドライバを既存のAndroidフレームワ
ークサービスに追加する事が可能になります。その事により、他のアプリケーション
から、標準のAndroid APIをたたく事で、ハードウェアの操作やイベントの取得が可能
になります。
BSPをGoogleが管理
Board Support Package(BSP)をGoogleが管理。Googleから標準的なアップデート
が提供されます。
Android Things Console
OTAによるシステムやアプリの大規模更新を標準でサポートされます。
3. User Driver
種類 概要
GPS GPS
HID Human Interface Devices (HID), Touch pads, keyboards, and game controllers
Sensors Sensors measure and report the conditions of the physical environment.
Audio audio drivers
4. 5. 6. Version
Version DP Version Release Date
0.51 DP5.1 August 2017
0.50 DP5.0 August 2017
0.41 DP4.1 June 2017
0.40 DP4.0 May 2017
現在、Versionは、DP(Developer Preview)。
正式版のリリースの発表は未定。
DP5.1では、OS Versionは8.0 Oreoが内包。
7. 8. 9. 10. DevBoard
NXP i.MX7D NXP i.MX6UL Raspi3
Display DSI No HDMI + DSI
Camera CSI-2 NO CSI-2
USB
1x USB 2.0 Host
1x USB 2.0 OTG
1x USB 2.0 Host
1x USB 2.0 OTG
4x USB 2.0 Host
ADB USB経由でアプリ転送可能 USB経由でアプリ転送可能 Wifi経由でアプリ転送可能
$79 $69 ¥5,500
11. 12. 13. 14. 15. 16. 17. 18. 19. アプリ開発
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.gclue.thingsApp">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<uses-library android:name="com.google.android.things"/>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.IOT_LAUNCHER"/>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
AndroidManifest.xml
com.google.android.thingsのライ
ブラリ使用を宣言
20. Gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
buildToolsVersion "26.0.2"
defaultConfig {
applicationId “com.gclue.thingsApp"
minSdkVersion 21
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:26.+'
compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha8'
testCompile 'junit:junit:4.12'
provided 'com.google.android.things:androidthings:0.5.1-devpreview'
}
dependenciesに、
“com.google.android.things.androidthings:0.
5.1-devpreview”
を追加
21. 22. GPIO(Lチカ)
PeripheralManagerService service = new PeripheralManagerService();
try {
mLedGpio = service.openGpio(PIN_NAME);
mLedGpio.setDirection(Gpio.DIRECTION_OUT_INITIALLY_LOW);
mHandler.post(mBlinkRunnable);
} catch (IOException e) {
Log.e(TAG, "Error on PeripheralIO API", e);
}
private Gpio mLedGpio;
private String PIN_NAME = "BCM4";
private Handler mHandler = new Handler();
private static final int INTERVAL_BETWEEN_BLINKS_MS = 1000;
23. private Runnable mBlinkRunnable = new Runnable() {
@Override
public void run() {
if (mLedGpio == null) {
return;
}
try {
trigger = !trigger;
mLedGpio.setValue(!mLedGpio.getValue());
mHandler.postDelayed(mBlinkRunnable, INTERVAL_BETWEEN_BLINKS_MS);
} catch (IOException e) {
Log.e(TAG, "Error on PeripheralIO API", e);
}
}
};
GPIO(Lチカ)
24. GPIO
private Gpio mButtonGpio;
private String PIN_NAME = "BCM4";
PeripheralManagerService service = new PeripheralManagerService();
try {
mButtonGpio = service.openGpio(PIN_NAME);
mButtonGpio.setDirection(Gpio.DIRECTION_IN);
mButtonGpio.setEdgeTriggerType(Gpio.EDGE_BOTH);
mButtonGpio.registerGpioCallback(mCallback);
} catch (IOException e) {
Log.e(TAG, "Error on PeripheralIO API", e);
}
定数 GPIO
Gpio.DIRECTION_IN 入力
Gpio.DIRECTION_OUT_INITIALLY_HIGH 出力(初期値 HIGH)
Gpio.DIRECTION_OUT_INITIALLY_LOW 出力(初期値 LOW)
private GpioCallback mCallback = new GpioCallback() {
@Override
public boolean onGpioEdge(Gpio gpio) {
Log.i(TAG, gpio.getName() + "が" + gpio.getValue());
return true;
}
};
定数 GPIO
Gpio.EDGE_BOTH どちらにも反応
Gpio.EDGE_FALLING HighからLowの変化に反応
Gpio.EDGE_RISING LowからHighの変化に反応
Gpio.EDHE_NONE 割り込みイベントに反応しない
25. 26. 27. I2C
/** I2C Device Name */
private static final String I2C_DEVICE_NAME = "I2C1";
/** I2C Slave Address */
private static final int I2C_ADDRESS = 0x53;
PeripheralManagerService manager = new PeripheralManagerService();
mDevice = manager.openI2cDevice(I2C_DEVICE_NAME, I2C_ADDRESS);
mDevice.writeRegByte(ADDRESS, data);
書き込み
読み込み
mDevice.writeRegBuffer(ADDRESS, data, data.length);
mDevice.readRegByte(ADDRESS, data);
mDevice.readRegBuffer(ADDRESS, data, data.length);
デバイスのオープン
宣言
28. MEMS
Micro Electro Mechanical Systemsの略
MEMS(メムス、Micro Electro Mechanical Systems)は、機械要素部品、センサ、アクチュエータ、
電子回路を一つのシリコン基板、ガラス基板、有機材料などの上に集積化したデバイスを指す。プロセ
ス上の制約や材料の違いなどにより、機械構造と電子回路が別なチップになる場合があるが、このよう
なハイブリッドの場合もMEMSという。
(Wikiより) https://ja.wikipedia.org/wiki/MEMS
I2Cにアクセスできれば、MEMSセンサーとの連携が可能になる
29. 30. 31.