Jetson Nano

Jetson Nano에서 GPIO 사용을 위한 LED ON 워밍업

coding art 2019. 10. 27. 12:15
728x90








지난해 겨울 텐서플로우 OpenCV 출간 이후 7개월 만에 2권에 해당하는 “Scikit PyTorch 머신러닝을 출간하게 되었다. 각권이 450 페이지이므로 합 900 페이지에 달하는 내용이라 무슨 머신러닝을 공부하는데 분량이 왜 이렇게 많은가? 하고 의문을 가질 수도 있겠으나 그 내용이 튜토리얼성에 가까워 사실 그렇게 큰 부담은 없는 책이다. 물론 책 내부에 파이선 코드를 끼워 넣는 먹통 짓은 지금 세상에서는 할 필요가 없을 것이다. 해당 책의 머리말에 써둔 하이퍼링크 목차를 다운받으면 블로그를 직접 열어 볼 수 있으며 거기서 예제 코드를 다운 받을 수 있다.

  

1권에 해당하는 텐서플로우 OpenCV 머신러닝에서는 20179월경부터 201812월 사이에 머신러닝을 이해하고자 하는 필자의 열공(?) 내용을 담아 보았다면 2권에서는 1권에서 제기되었던 여러 내용들에 대해서 해답을 찾아가는 내용들을 꽤 많이 포함하였다. 2권이라고 해서 내용적으로 완전히 정리된 것은 아니기 때문에 다시 3권의 출발점이 될 수도 있을 것이다.

 

다소 아쉬운 점은 흥미 위주로 시작했던 1, 2권의 Softmax 관련 내용을 완전히 정리하지는 못했는데 이 그 이유는 R&D 영역으로 넘어갔기 때문이다. 2020년에는그 내용까지도 포함하여 출간할 계획이다.

 

본 서의 출간 목적은 작가들과 출판사가 염원하는 베스트셀러 화가 목표가 아니다. 사회적으로 인공지능(머신러닝)에 대한 이해 필요성이 점증하는 시기이며, 인공지능 분야의 발전 속도가 상당히 빠르기 때문에 그에 맞춰서 비전공자라 할지라도 머신러닝에 입문해 볼 수 있도록 경험과 생각을 공유해 보고자 하는 것이다.


1,2권 출간 이후 현재 필자의 관심은 GPU 제품으로 유명한 NVIDIA사의 Jetson Nano 보드와 Picamera를 사용하여  실시간으로 오브젝트 인식이 가능한 자율주행형 인공지능 RC 카를 제작하는 단계에 접어 들었다.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



Jetson Nano 일단 GPIO 라이브러리는 OS 설치 시 이미 함께 깔려 있다는 점과 함께 GPIO 핀에서 인색할 수준의 전류 제공으로 인해 밝기가 대단히 흐려 ON 상태 확인이 어렵다는 정보와 함께 트랜지스터를 사용해야 한다는 내용이 있었다. 과연 이러한 문제가 사실이라면 적절한 트랜지스터를 구하려면 시간적으로 며칠이 걸릴지 모르므로 지난번 아두이노에서 사용했던 C1815Y를 사용하여 점등해 보기로 했다. 어차피 사용하는 TR의 구체적인 제원을 모르더라도 NPN TR 이라면 본 블로그의 내용을 참조로 하여 우격다짐 식으로 끼워 맞추는 것도 불가능하지는 않다는 점에 유의하자.



Jetson Nano 의 핀 배열은 라즈베리 파이와 거의 흡사하다. 따라서 소프트웨어적으로 특정 디지털 핀에 신호를 주어서 ON OFF 하기 이전에 5V GND 그리고 3V3(3.3V) 핀을 사용하여 NPN TR C1815Y를 구동해 보기로 하자.

 

컬렉터 에미터 사이의 전압은 5V GND를 이용한다. 한편 베이스는 직접 3V3에 연결한다. TR에서는 베이스에 가해지는 최소한도의 스위칭 전압이 중요할 수 있는데 대략 1.5V에서 흔히 작은 값의 베이스 전류와 함께 스위칭이 일어난다. 그 보다 전압이 높을 경우 컬렉터에서 에미터로 흐를 수 있는 전류 양이 베이스 전류가 추가됨으로서 좀 더 커질 수 있을 것이라 예상된다. 원래 이런 방식으로 TR을 사용하지는 않지만 Jetson Nano 의 핀별 허용 전류가 너무 적으므로 결국 2개 핀의 전류 값을 합해 LED를 제대로 밝게 점등해 보려는 트릭으로 보자.



 

한편 LEDON 시킨 후 LEDOFF하기 위해서 베이스 점퍼 선을 제거했음에도 불구하고 LED 가 여전히 ON 이 되는 상황이 발생했다. 도대체 Jetson Nano 보드는 종잡을 수 없는 면을 보여 준다. 따라서 Jetson Nano에서 사용하는 파이선 프론트 엔드가 무엇인지 잘 모르겠으나 곧 확인이 되면 LED on OFF 코드를 사용하여 TR 의 베이스와 연결되는 3V3을 디지털 입력이 되도록 핀 번호를 변경하여 정상적인 작동 여부를 체크해 보도록 하자.