Jetson Nano系列教程3:GPIO

摘要: JetsonTX1,TX2,AGXXavier和Nano开发板包含一个40引脚的GPIO头,类似于Raspberry PI中的40引脚头。这些GPO可以通过JetsonGPIOLibrary包中提供的Python库控制数字输入和输出。 ... ... ... ... ... ... ... ... ...
Jetson Nano Developer Kit扩展了40PIN的GPIO接口,兼容树莓派的40PIN接口。

NVIDIA官方提供了了JetsonGPIO库(Python)方便用户来控制GPIO,Jetson.GPIO库运用了跟RPi.GPIO库一样的API,因此对于用惯了树莓派的用户来说应该不难上手。本章就如何使用jetson.gpio库操作GPIO做一下说明
关于该函数库的具体说明,你可以在https://pypi.org/project/Jetson.GPIO/中了解
环境配置和安装库
安装PIP工具:
 sudo apt-get update
 sudo apt-get install python-pip
 sudo apt-get install python3-pip

下载安装Jetson.GPIO库:
sudo pip install Jetson.GPIO
sudo pip3 install Jetson.GPIO

设置用户权限:
sudo groupadd -f -r gpio
sudo usermod -a -G gpio your_user_name

注意:这里的your_user_name需要改成你自己的账号名,不然库无法正常使用

将99-gpio.rules文件复制到rules.d目录
sudo cp lib/python/Jetson/GPIO/99-gpio.rules /etc/udev/rules.d/
重载rules规则来让文件生效
sudo udevadm control --reload-rules && sudo udevadm trigger
例程使用
针对jetson.gpio库,官方也提供了一些简单的例程,例程存放在 /opt/nvidia/jetson-gpio/samples/路径下
cd /opt/nvidia/jetson-gpio/samples/
我们可以看到,在samples目录下,总共提供了8个示例程序(具体情况以官方最新版本为准)
用户可以使用指令运行程序,注意将xxxx替换成对应的程序名
sudo python3 xxxx.py

这里我们一步步来写一个LED灯的程序
新建一个jetson-gpio-test.py文件
sudo vi jetson-gpio-test.py
Jetson Nano没有预装nano编辑器,如果是对vi编辑器不熟悉的用户,可以自行安装nano(sudo apt-get install nano)
首先开头引用需要用到的库
import Jetson.GPIO as GPIO
import time as time

设置要操作的引脚,并将引脚设置为输出引脚
LED_Pin = 11
GPIO.setmode(GPIO.BOARD)
GPIO.setup(LED_Pin, GPIO.OUT)
在设置引脚的时候,Jetson.GPIO提供了四种编码规则,GPIO.BOARD和GPIO.BCM同树莓派的RPI.GPIO一样,前一个是根据物理引脚顺序,另一种是根据BCM芯片(树莓派使用的芯片)的引脚顺序来的。 还有两种分别是GPIO.CVM和GPIO.TEGRA_SOC, CVM和TEGRA_SOC的参数类型是字符串而非数字,两者分别对应到CVM、CVB连接器和Tegra片上系统的信号名称

通过切换GPIO的电平来点亮和熄灭LED

css代码:

while (True):
   GPIO.output(LED_Pin, GPIO.HIGH)
   time.sleep(2)
   GPIO.output(LED_Pin, GPIO.LOW)
   time.sleep(2)

最后在退出循环的时候清楚GPIO的状态
GPIO.cleanup()
保存文件。将一个LED灯连接到11号引脚上,并试着运行程序,可以看LED灯以两秒的间隔在闪烁。
sudo python3 jetson-gpio-test.py