#はじめに
JETSON TX2の開発ボードには、RaspberryPiのピン互換のJ21があります。(ピン配置)
RaspberryPiのWiringPiように、お手軽にGPIOを操作できるライブラリとして、NVIDIAのGitHubに、Python向けのGPIOライブラリが公開されています。
(こちらを見る限り、XAVIER, TX2, TX1, NANOに対応しているようです)
ここでは、LEDを点滅させるところまで試してみました。
#インストール
こちらの手順に従って、インストールします。
##前準備
python3の開発環境をインストール
~$ sudo apt install python3-dev python3-pip
##Jetson.GPIOのインストール
GitHubからダウンロードしてインストール。
~$ sudo su
/home/nvidia# cd /opt/nvidia/
/opt/nvidia# git clone https://github.com/NVIDIA/jetson-gpio.git
/opt/nvidia# mv /opt/nvidia/jetson-gpio-master /opt/nvidia/jetson-gpio
/opt/nvidia# cd jetson-gpio
/opt/nvidia/jetson-gpio# python3 setup.py install
gpioグループの追加と、使用するユーザをそのグループに追加
/opt/nvidia/jetson-gpio# sudo groupadd -f -r gpio
/opt/nvidia/jetson-gpio# sudo usermod -a -G nvidia
udevルールをコピーして、udevに新しいルールを適応する
/opt/nvidia/jetson-gpio# cp /opt/nvidia/jetson-gpio/etc/99-gpio.rules /etc/udev/rules.d/
/opt/nvidia/jetson-gpio# udevadm control --reload-rules && sudo udevadm trigger
/opt/nvidia/jetson-gpio# exit
最後にスーパーユーザーから抜けます。
#サンプルを試す
GPIOの出力のサンプルプログラムは、GPIO18(ピン番号12)を2秒間隔でON/OFFを繰り返します。
ここに抵抗とLEDを付けておきます。[Ctrl-C]で停止します。
(自作のRaspberryPi用絶縁IOボードPiFA-HATで動作検証。D6が点滅しています)
/opt/nvidia/jetson-gpio$ cd samples/
/opt/nvidia/jetson-gpio/samples$ ./run_sample.sh
Usage: ./run_sample.sh <sample application>
sample_application: simple_input.py
simple_output.py
button_led.py
button_event.py
button_interrupt.py
/opt/nvidia/jetson-gpio/samples$ ./run_sample.sh simple_out.py
Starting demo now! Press CTRL+C to exit
Outputting 1 to pin 18
Outputting 0 to pin 18
Outputting 0 to pin 18
Outputting 0 to pin 18
^CTraceback (most recent call last):
File "./simple_out.py", line 48, in <module>
main()
File "./simple_out.py", line 39, in main
time.sleep(1)
KeyboardInterrupt
nvidia@tegra-ubuntu:/opt/nvidia/jetson-gpio/samples$
#補足
##その1
./run_sample.sh
を使わず、直接simple_output.py
を実行するには、下記のようにします。
/opt/nvidia/jetson-gpio/samples$ export PYTHONPATH="/opt/nvidia/jetson-gpio/lib/python/
/opt/nvidia/jetson-gpio/samples$ ./simple_output.py
##その2
GPIOの出力のサンプルプログラムの26行目は、GPIOの番号をリストにすると、まとめてON/OFFできます。
例えば、GPIO4, 5, 8, 13, 17, 24, 25をまとめて操作する場合は下記のように修正します。
# Pin Definitions
output_pin = 18 # BOARD pin 12, BCM pin 18
# Pin Definitions
output_pin = [4, 5, 8, 13, 17, 24, 25]
##ひとりごと
18年春にTX2を入手してから、お手軽にGPIOを使う方法がないかと探していましたが、
-
https://github.com/anilsathyan7/JetsonTX2-GPIO
sudoを使う必要がある。 -
https://www.jetsonhacks.com/2015/12/29/gpio-interfacing-nvidia-jetson-tx1/
良さそうだったけど、TX1用なので、ピン配置をTX2に書き換えないとならない。
といった感じで、なかなか良いサンプルが見つけられず・・・
このタイミングで、NVIDIA公式からライブラリが出てくれたのは、本当に有り難い事です。
(ホントにRaspberryPi感覚で使えます)
(その他の情報)
以上、ご参考になれば幸いです。