본문 바로가기
NVIDIA Jeston/Jetson BSP

[Jetson] GPIO PWM 예제

by makepluscode 2022. 5. 2.
반응형

엔비디아 Jetson GPIO PWM 예제 구현

Jetson GPIO PWM 활성화

테스트 환경

  • Jetson Nano (B01) + JetPack 4.6

Jetson Nano 에서 하드웨어 PWM 를 사용하려면 Pinmux 를 수정해야한다. 다행히도 Jetpack 에서 jetson-io 라는 도구를 제공해주기 때문에 jetson-io 통해서 PWM 을 사용할 수 있는 dtb 를 생성하고 업데이트 할수있다.

우선, Jetson 에서 다음의 명령을 실행한다.

sudo /opt/nvidia/jetson-io/jetson-io.py

 

메뉴에서 Configure Jetson 40pin Header > Configure header pins manually 를 선택하여, 다음과 같이 pwm0(32), pwm(33) 을 스페이스로 [*] 활성화 시킨다. 이후에 Save + Reboot 을 수행한다.

Jetson GPIO PWM 테스트

코드작성

Python 을 사용하여 아래와 같이 PWM (33 PIN) 을 생성하는 프로그램을 작성한다. (50 HZ, 50% Duty 비)

#!/usr/bin/env python

import Jetson.GPIO as GPIO
import time

PWM_PIN = 33

GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(PWM_PIN, GPIO.OUT)

pwm = GPIO.PWM(PWM_PIN, 50)
pwm.start(50.0)

while True:
    time.sleep(1)
    print("hello, pwm")

pwm.stop()
GPIO.cleanup()

실험환경 준비

Jetson Nano 의 33번과 GND 에 오실로스코프를 연결한다.

실험결과

오실로스코프로 보면 50 HZ (Active + Inactive 20ms), 50% Duty 비율이 정확히 설정되어 동작하는 것을 알수있다.

참고자료

 

How to use PWM on Jetson Nano - Latest Open Tech From Seeed

Recently, I want to use the PWM signal to control the speed of my DC

www.seeedstudio.com

반응형