메뉴 건너뛰기

XEDITION

Jetson

Jetson Nano GPIO 사용 해보기

proin 2020.08.20 13:54 조회 수 : 2

https://ahnbk.com/?p=638


Jetson Nano에는 라즈베리파이와 마찬가지로 40핀의 GPIO 헤더가 존재한다. 이를 이용해 다양한 외부기기와 연결 가능한데, python의 라이브러리를 이용하면 사용자가 제어 가능하다.

먼저 필요한 패키지를 설치한다. python3는 기본 설치되어 있고, pip3는 설치해야 한다.

$ sudo apt install python3-pip

다음으로 Jetson.GPIO 패키지를 설치한다.

$ sudo pip3 install Jetson.GPIO

이제 python3를 실행하고 설치한 패키지를 import 해보면 다음과 같이 퍼미션 에러가 발생한다. 몇가지 설정이 필요하다.

>>> import Jetson.GPIO
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.6/dist-packages/Jetson/GPIO/__init__.py", line 1, in <module>
    from .gpio import *
  File "/usr/local/lib/python3.6/dist-packages/Jetson/GPIO/gpio.py", line 33, in <module>
    raise RuntimeError("The current user does not have permissions set to "
RuntimeError: The current user does not have permissions set to access the library functionalites. Please configure permissions or use the root user to run this

gpio 그룹을 생성하고 사용자를 gpio 그룹에 추가한다.

$ sudo groupadd -f -r gpio
$ sudo usermod -a -G gpio <user_id>

다음으로 udev 룰을 rules.d 디렉토리로 복사한다.

$ sudo cp /opt/nvidia/jetson-gpio/etc/99-gpio.rules /etc/udev/rules.d/

재부팅하거나, 다음과 같이 입력하여 udev 룰을 다시 불러온다. (재부팅해야 함.)

$ sudo udevadm control --reload-rules && sudo udevadm trigger

이제 python3를 실행한 다음, 패키지를 import 해보면, 정상적으로 사용 가능하다. 몇가지 예제 코드들이 /opt/nvidia/jetson-gpio/samples에 있으므로 참고하면 될듯하다. 사용법은 RPi.GPIO와 동일하다.

>>> import Jetson.GPIO as GPIO
>>> GPIO.setmode(GPIO.BOARD)
>>> GPIO.setup(33, GPIO.OUT)
>>> GPIO.output(33, GPIO.HIGH)
>>> GPIO.output(33, GPIO.LOW)

위와 같이 간단히 사용 가능하고, 인터럽트, 콜백함수 등 다양한 기능을 지원한다. 몇가지 주의 사항으로는,

  • GPIO의 전압은 5V가 아닌 3.3V
  • PWM 기능은 지원하지 않음
  • I2C, SPI는 각각 두개씩 지원
  • 몇가지 특수펑션들 사용하고, 전원관련 핀을 빼면 여분의 GPIO는 별로 없는듯.

 

상세한 핀아웃은 https://www.jetsonhacks.com/nvidia-jetson-nano-j41-header-pinout/을 참고하면 됨.


 

 

번호 제목 글쓴이 날짜 조회 수
20 Jetson에서 카메라 사용 할 때 Failed to create CaptureSession 에러 발생 시 proin 2022.02.08 1
19 Jetson-nano VNC 설정 proin 2020.10.20 4
18 Jetson Nano VNC 설정하기 proin 2020.10.20 3
17 jkjung-avt/openalpr_camera.py proin 2020.10.16 3
16 License Plate Recognition with a Jetson Nano proin 2020.10.16 2
15 Jetson Nano에서 OpenCV 설치 후 virtualenv로 실행할 때 proin 2020.09.22 1
14 JetsonHacksNano / CSI-Camera / simple_camera.py proin 2020.08.31 2
13 [OpenCV] Jetson nano에 OpenCV 3.4 설치 proin 2020.08.28 3
12 How to install OpenCV 4.2.0 with CUDA 10.0 in Ubuntu distro 18.04 proin 2020.08.27 3
11 첫 번째 신경망 훈련하기: 기초적인 분류 문제 proin 2020.08.27 1
10 Installing TensorFlow For Jetson Platform proin 2020.08.27 3
9 Quick Start Guide > Preparing a Jetson Developer Kit for Use proin 2020.08.24 1
8 Real-Time Object Detection in 10 Lines of Python on Jetson Nano proin 2020.08.21 2
7 OpenCV 4 + CUDA on Jetson Nano proin 2020.08.21 3
6 mjpg-streamer를 사용한 웹 스트리밍을 OpenCV에서 가져오기 proin 2020.08.20 1
5 jetson-stats 3.0.1 proin 2020.08.20 1
» Jetson Nano GPIO 사용 해보기 proin 2020.08.20 2
3 [OPENCV] 1. Jetson Nano 보드 ubuntu 18.04에서 OpenCV 설치 및 CUDA 빌드 proin 2020.08.20 5
2 [AI] 젯슨 나노(Jetson Nano) darknet YOLO v3 설치 및 샘플 돌려보기 proin 2020.08.19 3
1 Jetson Nano(젯슨나노) - Ubuntu 기본설치와 5V 4a 전원 어댑터 설치하기 proin 2020.08.19 2
위로