android things “hello world” on Raspberry Pi3 (#2)

android things “hello world” on Raspberry Pi3の続きで、GPIOに対する入出力です。

 

配線


公式に載っているように配線します。

21番を入力、6番を出力に設定して行きます。

ポートOpen


GPIOのリストを調べると、

名前が以下の様に取得できるので、この名前を使ってポートをオープンする。

 

 

入力ポート設定


公式の「reading from an input」にある様に、

ポートの方向を setDirection() で「入力」にして、 setActiveType() でHi / Lo のどちらでtrueになるかを設定する。

その後、 setEdgeTriggerType() で入力が Hi/Lo どちらに変化したら通知するかを決めて、registerGpioCallback() で入力の変化を通知してもらう割込のコールバックを設定する。

ここでは Hi/Lo 両方を通知してもらうように設定。

割込み関数は以下の様な感じ。

コールバックは onStop() で登録抹消されるようにしておく。

 

出力


入力と同様にポートの方向とACTIVE_HIGH/ACTIVE_LOWを設定する。

設定したポートに対して setValue() で Hi/Lo を制御する。

 

実行例


スイッチを押すと入力ポートがtrueになり、そのタイミングで出力ポートにtrueを設定しているだけの例です。