젯슨나노는 Nvidia의 GPU 연산이 가능한 싱글보드입니다. 구입 목적은 CUDA를 활용하여 이미지 프로세싱과 딥러닝을 수행하기 위해서 구입하였습니다. 제가 구매한 젯슨나노 키트는 메모리가 4G인 B01을 구매하였습니다. (메모리 2G인 버전도 있지만 해당 모델은 메모리가 상당히 적은 것 같습니다)
초기 OS 설치와 jetpack설치, 환경설정은 다른 사이트에 많으니 참고하시면 될 것 같습니다. 저는 젯슨나노 보드를 이용해 개발 목표인 싱글보드상에서 딥러닝처리, 최적화와 표지판 딥러닝 학습 등 이미지 처리와 관련된 활동들을 정리하겠습니다.
우선 젯슨 나노 GPIO를 이용해 LED On/Off, 서보모터 제어를 진행해보겠습니다.
필요한 것
- 브레드보드
- Led
- 200옴 저항
- M-F 점퍼선 (Male-Female Jumper Wires)
GPIO란 General Purpose Input/Output의 약자로 마이크로프로세서가 주변장치와 통신하기 위해 범용으로 사용되는 입출력 포트입니다. 설계자의 의도대로 설정하여 제어할 수 있도록 하는 I/O포트입니다.
젯슨 나노보드는 40개의 PIN을 가집니다. (PIN 개수 라즈베리파이와 동일)
LED PIN으로 7을 이용하고, GND는 6번 PIN을 이용하였습니다.
- 200옴 저항과 LED의 +핀 (LED핀 중 다리가 긴 것)을 연결합니다
- 저항의 다른 한 쪽과 젯슨나노 GPIO 핀 7과 연결합니다
- LED의 -핀(다리가 짧은 것)을 젯슨나노의 GPIO GND 핀 6과 연결합니다
리눅스 터미널에서 폴더를 생성 한 뒤
mkdir led_blink
만든 폴더명으로 이동하여 작업을 수행합니다.
cd led_blink
우분투 gedit 에디터를 이용해 LED 깜빡임을 수행할 파이썬 파일을 만듭니다.
gedit led.py
led.py 코드
# GPIO library
import Jetson.GPIO as GPIO
# 시간 조정
import time
# LED 사용할 핀 정의
led_pin = 7
# GPIO 채널 설정
GPIO.setmode(GPIO.BOARD)
GPIO.setup(led_pin, GPIO.OUT, initial=GPIO.HIGH)
print("Press CTRL+C when you want the LED to stop blinking")
# LED 깜빡임
while True:
time.sleep(2)
GPIO.output(led_pin, GPIO.HIGH)
print("LED is ON")
time.sleep(2)
GPIO.output(led_pin, GPIO.LOW)
print("LED is OFF")
LED ON/OFF 반복 동작
젯슨 나노 GPIO PIN을 이용해 LED 회로를 구성해봤습니다. led 밝기가 약해서 불을 꺼야 육안으로 확인하기 쉬웠습니다. 젯슨 나노보드의 GND 핀과 LED의 -핀(다리가 짧은 쪽)만 이상없이 연결해준다면 LED 출력을 확인할 수 있습니다. 이상으로 마치겠습니다.
'엔비디아 플랫폼 > jetson nano' 카테고리의 다른 글
[jetson nano] 젯슨나노 GPIO 이용 서보 모터 구동 (0) | 2022.02.15 |
---|