先日リリースされたDP 0.6.0には新たにCLIからGPIOなどを触れるpio
が追加されました。
今回はこのpio
を使って、コードを書かずにAndroidThingsからGPIO等などを触ってみたいと思います。
準備
pio
はadb 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Ωにしました。
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 更新]
↑私のイメージが悪かったみたいです。 すみません。
以下のコマンドでpwmを送れます。
$ adb shell pio pwm PWM1 enable 1 --duty=55.0 --freq=200
dutyはDutyのサイクル、freqは周波数です。
まとめ
今後は簡単な確認ならpio
ツールのみでよくなりました。
まだDP0.6.0が出たばかりなのでバグがある感じがしますが....