GPIOについて - JETSON NANO 開発者キット その5

f:id:pongsuke:20190806165343j:plain

GPIOについて

Jetson Nano GPIO - JetsonHacks

Raspberry Pi の 40pin と互換性があるとこのと。

特に、最初から img に含まれている

GitHub - NVIDIA/jetson-gpio: A Python library that enables the use of Jetson's GPIOs

は、RPi.GPIO と強い互換性があるらしい。

電圧は 3.3V

Pin layout

NVIDIA Jetson Nano J41 Header Pinout - JetsonHacks

jetson-gpio

ガイドを見ると、user を GPIO グループに参加させるなど、RPIに似ている。

RPIでは、デフォルトの pi user が、最初から GPIOに入っていて、誰でもすぐに試せるが、Jetson nano では、グループ作成からやるっぽい。

jetson-gpio

$ ls /opt/nvidia/jetson-gpio/
doc  etc  lib  samples

$ sudo pip3 install Jetson.GPIO

$ sudo groupadd -f -r gpio
$ sudo usermod -a -G gpio your_user_name

$ sudo cp /opt/nvidia/jetson-gpio/etc/99-gpio.rules /etc/udev/rules.d/
$ sudo udevadm control --reload-rules && sudo udevadm trigger

動作テスト

import RPi.GPIO as GPIO
import time

output_pin  = 21

def main():
    # Pin Setup:
    # Board pin-numbering scheme
    GPIO.setmode(GPIO.BCM)
    # set pin as an output pin with optional initial state of HIGH
    GPIO.setup(output_pin, GPIO.OUT, initial=GPIO.HIGH)

    print("Starting demo now! Press CTRL+C to exit")
    curr_value = GPIO.HIGH
    try:
        while True:
            time.sleep(1)
            # Toggle the output every second
            print("Outputting {} to pin {}".format(curr_value, output_pin))
            GPIO.output(output_pin, curr_value)
            curr_value ^= GPIO.HIGH
    finally:
        GPIO.cleanup()

if __name__ == '__main__':
    main()

チカチカしました。