最終更新:
moonlight_aska 2017年10月28日(土) 08:08:25履歴
- GpioActivity.java
- PeripheralManagerServiceクラスのインスタンスを生成する.
- PeripheralManagerService#openGpioメソッドで, PIN名を指定してGpioクラスのオブジェクトを取得する.
- Gpio#setDirectionメソッドで, 入力ビンに設定する.
- Gpio#setActiveTypeメソッドで, "Low"または"High"のいずれをアクティブに設定する.
- Gpio#getValueメソッドで, 入力ピンの状態(true:active, false:not active)を読み出す.
- Gpio#closeメソッドでピンを解放する.
package com.moonlight_aska.androidthings.gpio;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import com.google.android.things.pio.Gpio;
import com.google.android.things.pio.PeripheralManagerService;
import java.io.IOException;
public class GpioActivity extends Activity {
private static final String TAG = "GpioActivity";
private static final String PIN_NAME = "BCM21";
private Gpio mGpio;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
PeripheralManagerService manager = new PeripheralManagerService();
try {
// GPIOピンオープン
mGpio = manager.openGpio(PIN_NAME);
// 入力ピンに設定
mGpio.setDirection(Gpio.DIRECTION_IN);
// HighをACTIVEに設定
mGpio.setActiveType(Gpio.ACTIVE_HIGH)
// 現在の状態リード
Log.d(TAG, "Input : " + mGpio.getValue());
} catch (IOException e) {
Log.e(TAG, "Error on PeripheralIO API", e);
}
}
@Override
protected void onDestroy() {
super.onDestroy();
try {
if (mGpio != null) {
// GPIOピンクローズ
mGpio.close();
}
} catch (IOException e) {
Log.e(TAG, "Error on PeripheralIO API", e);
} finally {
mGpio = null;
}
}
}
- 動作例:
(1) GPIO21:Low

(2) GPIO21:High

タグ
コメントをかく