Android
電子工作
RaspberryPi
AndroidThings

Android Things DP 0.6.0で追加されたcliツール pio を使ってLチカ/サーボぐりぐり

More than 1 year has passed since last update.

先日リリースされたDP 0.6.0には新たにCLIからGPIOなどを触れるpioが追加されました。
今回はこのpioを使って、コードを書かずにAndroidThingsからGPIO等などを触ってみたいと思います。

PIO

準備

pioadb shell経由で利用します。
Android Thingsの場合adb shellを使うにはadb connectする必要があるので、繋ぎます。

$ adb connect Android.local

pioを触ってみる

PINのリストを取得 pio list [device]

引数なしだと一覧が全て表示されます。

$ adb shell pio list
gpio BCM10
gpio BCM11
gpio BCM12
gpio BCM13
gpio BCM14
gpio BCM15
gpio BCM16
gpio BCM17
gpio BCM18
gpio BCM19
gpio BCM2
gpio BCM20
gpio BCM21
gpio BCM22
gpio BCM23
gpio BCM24
gpio BCM25
gpio BCM26
gpio BCM27
gpio BCM3
gpio BCM4
gpio BCM5
gpio BCM6
gpio BCM7
gpio BCM8
gpio BCM9
pwm PWM0
pwm PWM1
i2c I2C1
spi SPI0.0
spi SPI0.1
uart MINIUART
uart UART0

gpioのみなどdeviceを指定すると絞れます。

$ adb shell pio list gpio
BCM10
BCM11
BCM12
BCM13
BCM14
BCM15
BCM16
BCM17
BCM18
BCM19
BCM2
BCM20
BCM21
BCM22
BCM23
BCM24
BCM25
BCM26
BCM27
BCM3
BCM4
BCM5
BCM6
BCM7
BCM8
BCM9

GPIOを触る(Lチカしてみる) pio gpio name subcommand [arg]

以下のように配線します。
今回抵抗は330Ωにしました。

raspi.png

gpioにwriteするには pio gpio DEVICE_NAME writeコマンドを使います。

$ adb shell pio gpio BCM16 write 1

pio gpio DEVICE_NAME readすれば読み取れます。

サーボを動かしてみる pio pwm name subcommand [arg] [opt]

次はサーボを触ってみたいと思います。
サーボを触るにはpio pwmを使います。
おもったのですが... 今回リファレンスを読みながらpwmを触ってみたのですがどうやっても出来ません。
そのうち治ると期待したいですが、治すためにはまだOSアップデートが非強ですねきつい

issueは以下です。
https://issuetracker.google.com/issues/69986139
[2017/12/04 更新]
↑私のイメージが悪かったみたいです。 すみません。

配線は以下です。
servo.png

以下のコマンドでpwmを送れます。
$ adb shell pio pwm PWM1 enable 1 --duty=55.0 --freq=200

dutyはDutyのサイクル、freqは周波数です。

まとめ

今後は簡単な確認ならpioツールのみでよくなりました。
まだDP0.6.0が出たばかりなのでバグがある感じがしますが....