Jetson 共用资料

40PIN配置

2023-07-21 admin 695

40PIN配置

1.介绍

Jetson TX1,TX2,AGX Xavier,Nano和Orin系列开发板包含一个40引脚GPIO接头,类似于Raspberry Pi中的40引脚接头。可以使用Jetson GPIO Library包中提供的Python库来控制这些GPIO的数字输入和输出。该库与Raspberry Pi的RPi.GPIO库具有相同的API,以便提供一种将Raspberry Pi上运行的应用程序移动到Jetson板的简便方法。

除本文档外,Jetson GPIO库包还包含以下内容:

lib/python/子目录包含实现所有库功能的Python模块。gpio.py模块是将导入应用程序并提供所需API的主要组件的gpio_event.py 和gpio_pin_data.py模块用于通过gpio.py模块和不能在向应用程序直接导入。

samples/子目录包含示例应用程序,以帮助您熟悉库API并开始使用应用程序。这些 simple_input.py和simple_output.py应用程序分别展示了如何对GPIO引脚执行读写操作button_led.py, button_event.py并button_interrupt.py显示如何使用按钮按下来分别使用忙等待,阻塞等待和中断回调来使LED闪烁。

本文档将介绍Jetson GPIO库包中包含的内容,如何配置系统以及运行提供的示例应用程序和库API。这里我们简单介绍一下如何使用这个库关于 Jetson.GPIO, 这里有详细说明: https://pypi.org/project/Jetson.GPIO/ 或者 https://github.com/NVIDIA/jetson-gpio

 

 

 

 

 

 

 

 

 

 

2.引脚图

 

1.环境配置

下载 jetson-gpio: git clone https://github.com/NVIDIA/jetson-gpio 

 

2.将下载的文件移动到目录: /opt/nvidia 中 假如你的这个目录存在这个库,我们需

要备份原目录如下命令:

 

然后把下载的放进opt/nvidia/ 目录下,因为笔者是将文件夹放在路径~/下,还有当前是处于opt/nvidia/,所以可执行以下命令进行移动文件夹

sudo mv ~/jetson-gpio ./

 

3.安装 pip3 工具:

sudo apt-get install python3-pip

4.进入jetson-gpio库文件夹,并安装库。

cd /opt/nvidia/jetson-gpio sudo python3 setup.py install

 

5.使用前,还需要创建一个 gpio 组,把你的当前的账号加到这个组,并赋予使用权限 sudo groupadd -f -r gpio sudo usermod -a -G gpio user_name

 

sudo cp /opt/nvidia/jetson-gpio/lib/python/Jetson/GPIO/99-gpio.rules /etc/udev/rules.d/

为了使新规则生效,您需要通过运行以下命令重新引导或重新加载udev规则

sudo udevadm control --reload-rules && sudo udevadm trigger

注意: user_name 是你使用的用户名,比如nvidia


3.引脚读取功能

环境配置好了之后就可以测试一下例程了。在 jetson-gpio 上提供了几个简单的例程我们可以简单测试一下,先进入示例程序目录

cd /opt/nvidia/jetson-gpio/samples/

simple_input.py这个是一个简单的输入程序,使用的是 BCM 的引脚编码模式,可以读取 PIN12 的值并打印到终端。

运行程序:

sudo python3 simple_input.py

预期效果:

运行程序后,可以看到终端打印信息, 默认情况下 Pin18 的值是低电平,找一个杜邦线将第 12号引脚连到 3.3V,可以看到读取的值变成了 HIGH,如果连到 GND,会显示 LOW

【注意】

这里的 18 是指的BCM 编码,上面的 PIN12 是指物理编码,也就是板子上印的丝印的编码。Jetson Orin NX 的引脚的工作电平是 3.3V,所以使用的时候尽量不要接 5V 电平。

 

 

 

 

 


4.引脚电平输出控制

运用例程中的simple_out.py或者运行/home/jetson/GPIO_test/test_pin.py

程序会输出高电平和低电平(每 2 秒交替更新) 到物理引脚 PIN12

运行程序

#way 1:

sudo python3 simple_out.py

#way 2:

cd ~/GPIO_test

python3 test_pin.py

预期效果

可以拿电压表测试引脚的电压变高变低(12号引脚是simple_out.py,21号引脚则是test_pin.py) 下图的现象则是21号引脚的结果(test_pin.py)

 

 

 

 

 

5.控制LED

运用例程的led.py

基于Jetson Orin NX 的 GPIO控制LED灯闪烁

硬件连接 LED的正极接在Jetson Orin NX的第十二个引脚上,负极接在第三十九个引脚(GND)上,通过控制引脚输出高低电平,控制LED的亮灭,通过time库中的.sleep()方法控制间隔的时间。

运行程序

cd ~/GPIO_test

sudo python3 led.py

预期效果 连好硬件后,运行程序, led灯会间隔2秒闪烁一次。(改实验的rgb灯为我们店铺的rgb灯模块,想自己测试的可以选购)

注意:要使用其他的led模块的话最好是led和引脚之间要连接一个适当大小的保护电阻作为保护,否则过流可能会烧坏jetson orin nx。

6.Jetson Orin NX与外部设备串口通讯

1.准备工作

本节测试Jetson Orin NX 串口自己收发的教程。 由下图可以看到Jetson Orin NX的串口的TXD和RXD引脚分别对应物理引脚8,10。

 

接线: Jetson Orin NX引脚8(TXD)→Jetson Orin NX 引脚10(RXD)

 

开启串口权限,注意这个权限关机后就也被关闭,下次需要重新开启

sudo chmod 777 /dev/ttyTHS1

2.使用例程测试串口的功能

github下载一个串口通讯案例,源代码和解释可以到这个github连接查看

git clone <https://github.com/JetsonHacksNano/UARTDemo>

进入文件夹

cd UARTDemo

如果您不打算在UART上使用串行控制台,则应禁用串行控制台(可不做看个人选择):

systemctl stop nvgetty

systemctl disable nvgetty

udevadm trigger

安装serial模块

sudo apt-get install python3-serial

终端输入运行程序:

sudo python3 uart_example.py

 

运行后可以看到Jetson Orin NX 循环的发送"NVIDIA Jetson Orin NX Developer Kit\r\n"里面的字符,并显示终端上。

 

3.使用linux的串口助手测试

1.运行以下命令

sudo apt install cutecom

sudo cutecom

就可以看见cutecom打开了 一般不需要设置,直接点击open就能使用,然后通过InPUT输入文本,按回车键就能发送内容了。 效果如图:

 

4.注意事项

如果使用USB转TTL模块电脑和Orin nx进行通信注意一下几点 1.杜邦线不可太长,太长会乱码 2.出现只能收不能发的情况是电压不足导致的,把usb转ttl模块的5V口和nano的5V进行连接 3.如果线合理,但出现乱码,波特率、奇偶校验、停止位检查是否一致 4.其它情况:https://blog.csdn.net/lxj362343/article/details/89646731

 

 


7.Jetson Orin NX I2C通讯

Jetson Orin NX I2C 通讯教程

Jetson Orin NX 的 I2C 引脚如图所示,要使用前需要开启 I2C 服务。

 

首先安装 I2Ctool,终端输入:

sudo apt-get update

sudo apt-get install -y i2c-tools

检查安装情况,终端输入:

apt-cache policy i2c-tools

扫描某一总线 bus 上所有 i2c 设备,并且打印出设备 i2c 总线地 址,例如这里 I2C 引脚上挂载了一个地址为 0x0f 的设备,则会 显示起对应的设备 I2C 地址

sudo i2cdetect -y -r -a 7

 

smbus 为 python 库,如果未安装 smbus,终端输入:

sudo apt-get update

sudo apt-get install -y python3-smbus

Smbus 协议有许多相关的库函数可以用于 I2C 通讯

 

 

 

 

 

 

 

 

 

 

 

 

 


首页
产品
案例
联系