Fritzing은 아마추어 또는 비전문가를 위한 전자회로 설계도구로서, 아두이노 기반으로 손쉽게 회로를 설계하고 PCB레이아웃까지 제작할 수 있는 오픈소스기반의 프로젝트이다. 전문적인 전자회로 설계도구와는 다르게 브레드보드 그림위에 아두이노 보드를 배치하고 여러가지 센서나 부품들을 마우스 조작으로 연결시켜 가며 회로를 구성하는 간단하고 직관적인 방법으로 회로를 설계하지만 최종적으로 PCB LAYOUT까지 설계하여 PCB를 주문 제작할 수 있다.
Fritzing 유료화
원래 Fritzing은 대학교에서 제작되어 소스가 공개되어 무료로 배포되는 프로그램이었는데, 언젠가 부터 유료화 ( 명목은 8유로 또는 25유로 기부인데 기부해야만 다운로드 가능 )되어 버려 무료인줄 알고 다운로드 받으려 간 사람을 당황하게 만들고 있다.
Fritzing 무료 사용방법
그러나 여전히 오픈소스 프로젝트임을 강조하며 무료로 설치하는 방법을 자세히 안내하고 있다.
젯슨 나노 등 Jetson 시리즈는 USB방식의 카메라 이외에도 MIPI-CSI (Mobile Industry Processor Interface - Camera Serial Interface)방식의 고속 카메라연결장치가 내장되어 있는데 이는 라즈베리파이 방식과 동일한 방식이다. 따라서 라즈베리파이용 카메라를 젯슨 나노에 연결해서 사용할 수 있다. 단 라즈베리파이 카메라 Ver 1.X는 안되고 IMX219칩을 사용한 Ver 2 만 사용 가능하고 사용방법도 다르다.
2. 카메라 연결
다음과 같이 라즈베리파이 카메라 V2 카메라를 Jetson Nano 카메라 슬롯에 연결한다.
주의사항 : Jetson Nano의 카메라 슬롯은 매우 약하게 제작되어 있어,
조금만 힘을 주어도 연결부위가 부러져 버려 난감해 지니 조심조심 해야 한다.
3. 젯슨나노에서의 CSI 카메라의 사용
젯슨나노에서의 CSI 카메라의 사용을 위한 기본 프로그램은 nvarguscamerasrc라는 프로그램인데 이를 GStreamer 방식으로 pipeline을 생성하여 사용하거나 nvgstcapture라는 유틸리티 프로그램을 사용하여 작동시키는 방법을 사용한다. GStreamer pipeline방식은 주로 프로그램에서 카메라를 제어할 때 사용하고, nvgstcapture유틸리티프로그램은 키보드 명령어로 카메라를 제어 하면서 촬영하고자 할 때 사용한다.
4. Gstreamer를 이용한 방식
1) 단순 Preview : 터미널 창에서 다음 명령어로 Gstreamer pipeline을 구성하면 촬영 Preview를 볼 수 있다.
$ gst-launch-1.0 nvarguscamerasrc ! nvoverlaysink
2) 촬영 OPtion의 지정 : Option을 지정하면서 촬영하려면 다음과 같이 복잡한 명령어 pipeline을 구성해야 한다.
프로그램에서 CSI 카메라를 GSteamer방식으로 사용하는 방법들은 위 사이트에 접속해서 찾아볼 수 있는데, python 프로그램으로 카메라를 구동하는 sample은 다음과 같다.
# MIT License
# Copyright (c) 2019 JetsonHacks
# See license
# Using a CSI camera (such as the Raspberry Pi Version 2) connected to a
# NVIDIA Jetson Nano Developer Kit using OpenCV
# Drivers for the camera and OpenCV are included in the base image
import cv2
# gstreamer_pipeline returns a GStreamer pipeline for capturing from the CSI camera
# Defaults to 1280x720 @ 60fps
# Flip the image by setting the flip_method (most common values: 0 and 2)
# display_width and display_height determine the size of the window on the screen
def gstreamer_pipeline(
capture_width=1280,
capture_height=720,
display_width=1280,
display_height=720,
framerate=60,
flip_method=0,
):
return (
"nvarguscamerasrc ! "
"video/x-raw(memory:NVMM), "
"width=(int)%d, height=(int)%d, "
"format=(string)NV12, framerate=(fraction)%d/1 ! "
"nvvidconv flip-method=%d ! "
"video/x-raw, width=(int)%d, height=(int)%d, format=(string)BGRx ! "
"videoconvert ! "
"video/x-raw, format=(string)BGR ! appsink"
% (
capture_width,
capture_height,
framerate,
flip_method,
display_width,
display_height,
)
)
def show_camera():
# To flip the image, modify the flip_method parameter (0 and 2 are the most common)
print(gstreamer_pipeline(flip_method=0))
cap = cv2.VideoCapture(gstreamer_pipeline(flip_method=0), cv2.CAP_GSTREAMER)
if cap.isOpened():
window_handle = cv2.namedWindow("CSI Camera", cv2.WINDOW_AUTOSIZE)
# Window
while cv2.getWindowProperty("CSI Camera", 0) >= 0:
ret_val, img = cap.read()
cv2.imshow("CSI Camera", img)
# This also acts as
keyCode = cv2.waitKey(30) & 0xFF
# Stop the program on the ESC key
if keyCode == 27:
break
cap.release()
cv2.destroyAllWindows()
else:
print("Unable to open camera")
if __name__ == "__main__":
show_camera()
JETSON 시리즈는 그래픽카드 제조사로 유명한 엔비디아사(Nvidia) 에서 출시하는 임베디드 컴퓨팅 보드 시리즈로서, 2014년 우분투기반의 Jetson TK1 개발보드를 출시한 이후로 계속해서 여러가지 모델이 지속적으로 나오고 있다. Jetson 시리즈의 특징은 강력한 GPU를기반으로 저전력으로 기계학습 어플리케이션들을 실행시킬 수 있고 영상처리에 탁월한 성능을 보인다는 것이다.
Jetson Nano는 기존 TK시리즈를 소형화하고 가격을 낮춰 라즈베리파이 급으로 경량화한 모델로서, 2019년 발매된 이후 기존 라즈베리파이 사용자들 중 AI 머신러닝이나 영상처리에 관심있는 사람들에게 많은 인기를 얻고 있다.
Nvida Jetson 모듈 시리즈 사양비교
Jetson Nano
Jetson TX2 Series
Jetson Xavier NX
Jetson AGX Xavier Series
TX2 4GB
TX2
TX2i
AGX Xavier 8GB
AGX Xavier
AI Performance
472 GFLOPS
1.33 TFLOPS
1.26 TFLOPS
21 TOPS
20 TOPS
32 TOPS
GPU
128 코어 NVIDIA Maxwell™GPU
256 코어 NVIDIA Pascal™GPU
48 Tensor 코어의 384 코어 NVIDIA Volta™GPU
48 Tensor 코어의 384 코어 NVIDIA Volta™GPU
64 Tensor 코어의 512-core NVIDIA Volta™GPU
CPU
쿼드코어ARM®Cortex®-A57MPCore 프로세서
듀얼코어NVIDIA Denver 264-bitCPU 와 쿼드코어Arm®Cortex®-A57 MPCore 프로세서
6 코어 NVIDIA Carmel ARM®v8.2 64-bit CPU 6MB L2 + 4MB L3
6 코어 NVIDIA Carmel Arm®v8.2 64-bit CPU 6MB L2 + 4MB L3
8 코어 NVIDIA Carmel Arm®v8.2 64-bit CPU 8MB L2 + 4MB L3
- Jetson Nano 보다 상위버전으로 확실하게 성능을 높혀 사용할 수 있는 기종으로 Jetson Xavier NX 모델이 인기이다.
2. 라즈베리파이와 비교한 Jetson Nano의 성능
라즈베리파이 최신형인 Pi 4 모델과 비교한 Jetson nano의 사양은 다음과 같다.
- 여기에서 가격비교는 기본형인 라즈베리파이 4B 메모리 2GB 형과 Jetson Nano 메모리 4GB형을 비교하여 3배 차이 나는 것 처럼 보이지만, 같은 메모리 용량인 것을 비교하면 약 2배 이내 정도가 된다.
- CPU 성능은 라즈베리파이가 약간 앞서지만 GPU 성능에서 Jetson Nano가 월등하기 때문에 영상처리 등 작업을 실행시켜 보면 가격은 2배 속도는 4배 정도임을 체감할 수 있다.
- Jetson Nano는 라즈베리파이와 동일하게 40핀 GPIO핀이 배열되어 있고, 기타 IO 포트의 구성도 비슷하다.
-라즈베리파이와는 다르게 Jetson Nano는 WIFI/블루투스 무선통신이 모듈내에서 지원되지 않기 때문에 WIFI로 연결하려면 별도 장치를 부착해야 만 한다.
3. Jetson Nano의 종류
2019년 Jetson Nano가 발표될 때에는 단일 모델이었으나, 현재는 3가지 모델이 유통되고 있다. 즉 초기 발표된 모델을 A02라 하고 이를 개량한 모델인 B01 모델이 새로 출시 되어 표준모델로 판매되고 있고, 이를 좀 더 경량화해서 라즈베리파이와 비슷한 가격대로 판매되는 2GB 모델이 있다.
A02 구형과 B01 신형 모델의 비교
A02 구형
B01
사양
128-core Maxwell GPU
Quad-core Arm A57 processor @ 1.43 GHz
System Memory – 4GB 64-bit LPDDR4 @ 25.6 GB/s
Storage – microSD card slot
4x MIPI CSI-2 DPHY 10 lanes in total ( 3x 2-lane + 1x 4-lane)