一个控制jetson gpio通道的模块
Jetson.GPIO的Python项目详细描述
jetson.gpio-用于tegra的Linux
Jetson TX1、TX2、AGX Xavier和Nano开发板包含40针GPIO 收割台,类似于覆盆子皮的40针收割台。这些GPIO可以是 使用 Jetson GPIO库包。库具有与rpi.gpio相同的api 用于覆盆子皮的库,以便提供移动应用程序的简单方法 在树莓皮上跑步到Jetson板上。
本文档介绍Jetson GPIO库中包含的内容 包,如何配置系统并运行提供的示例应用程序, 以及库API。
包装部件
除此文档外,jetson gpio库包还包含 以下内容:
lib/python/
子目录包含实现所有 库功能。py模块是 导入到应用程序中并提供所需的API。gpio_event.py
并且gpio\u pin_data.py
模块由gpio.py
模块使用,不能是 直接导入到应用程序中。samples/
子目录包含有助于获取 熟悉库api和应用程序入门。这个simple_input.py
和simple_output.py
应用程序演示如何执行读取 分别写入GPIO引脚,而按钮显示.py
,button_event.py
和button_interrupt.py
显示如何使用按钮按下 使用忙等待、阻塞等待和中断回调使LED闪烁 分别是。
安装
使用pip
安装此库的最简单方法是使用pip 您可以克隆此git存储库,或将其副本下载为存档文件
然后减压。你可以把图书馆的文件放在你喜欢的任何地方
系统。可以通过手动方式直接从该目录使用库
设置pythonpath,或使用setup.py安装: 为了使用jetson gpio库,正确的用户权限/组必须
先设置。 创建新的GPIO用户组。然后将您的用户添加到新创建的组。 通过将99-gpio.rules文件复制到rules.d中来安装自定义udev规则
目录: 要执行新规则,您需要重新启动或重新加载udev
运行规则: 根据需要设置权限后,在
如果将jetson.gpio添加到pythonpath,则运行这些示例应用程序: 或者,如果jetson.gpio未添加到pythonpath中,则
脚本可用于运行这些示例应用程序。这可以用
在samples/目录中执行以下命令: 还可以使用以下命令查看脚本的用法: jetson gpio库提供rpi.gpio提供的所有公共api。
图书馆。下面讨论每个api的使用: 要导入jetson.gpio模块,请使用: 这样,您可以在
申请。也可以使用名称rpi.gpio而不是
使用rpi库获取现有代码的jetson.gpio。 jetson gpio库提供了四种对i/o管脚进行编号的方法。第一
两个对应于rpi.gpio库提供的模式,即board和bcm
是指40针GPIO头和Broadcom SoC的管脚号
分别是GPIO号码。剩下的两种模式,cvm和tegra-soc使用
与CVM/CVB上的信号名称相对应的字符串而不是数字
连接器和tegra soc。 要指定使用的模式(强制),请使用以下函数
调用:< /P> 要检查已设置的模式,您可以拨打电话: 模式必须是gpio.board、gpio.bcm、gpio.cvm、gpio.tegra_soc或
没有, 您尝试使用的GPIO可能已被使用
当前应用程序的外部。在这种情况下,Jetson GPIO
如果正在使用的GPIO配置为除
默认方向(输入)。如果你之前试着清理,它也会警告你
设置模式和频道。要禁用警告,请致电: 在用作输入或输出之前,必须设置GPIO通道。配置
频道作为输入,呼叫: 要将频道设置为输出,请调用: 也可以指定输出通道的初始值: 当设置一个通道作为输出时,也可以设置多个通道
一次频道: 要读取频道的值,请使用: 这将返回gpio.low或gpio.high。 要设置配置为输出的管脚值,请使用: 状态可以是gpio.low或gpio.high。 您还可以输出到频道列表或元组: 在程序结束时,最好清理通道,以便所有管脚
设置为默认状态。要清除所有使用的频道,请致电: 如果你不想清理所有频道,也可以清理
单个频道或频道的列表或元组: 要获取有关Jetson模块的信息,请使用/读取: 这提供了一个具有以下键的python字典:p1_revision,ram,
版本、类型、制造商和处理器。字典中的所有值都是
字符串,p1_revision除外,它是一个整数。 获取有关t库版本,使用/读取: 这将提供一个x.y.z版本格式的字符串。 除了繁忙的轮询之外,库还提供了
监视输入事件: 此函数将阻塞调用线程,直到提供的边
检测。函数的调用如下: 第二个参数指定要检测的边,可以是
gpio.rising、gpio.falling或gpio.both。如果你只想限制等待
在指定的时间内,可以选择设置超时: 如果
发生超时。 此函数可用于定期检查自
最后一次通话。函数的设置和调用如下: 与以前一样,您可以检测gpio.rising、gpio.falling或gpio.both的事件。 此功能可用于为回调函数运行第二个线程。因此,
回调函数可以与主程序并行运行以响应
到一个边缘此功能可以如下使用: 如果需要,还可以添加多个回调,如下所示: 本例中的两个回调是按顺序运行的,而不是同时运行,因为
只有线程运行所有回调函数。 为了防止通过折叠多次调用回调函数
将多个事件合并为一个事件,可以选择设置一个缓冲时间: 如果不再需要边缘检测,可以按如下方式删除: 此功能允许您检查提供的GPIO频道的功能: 函数返回gpio.in或gpio.out。 有关如何使用pwm通道的详细信息,请参见 gpio库只支持带附加硬件pwm的管脚上的pwm
控制器。与rpi.gpio库不同,jetson.gpio库没有
实现软件仿真的pwm。Jetson Nano支持2个脉冲宽度调制通道,以及
Jetson AGX Xavier支持3个PWM通道。Jetson TX1和TX2不支持
任何脉宽调制通道。 系统pinmux必须配置为连接硬件pwm控制器
到相关引脚。如果未配置pinmux,则pwm信号将不会
拿着别针!jetson.gpio库不会动态修改pinmux
实现此目的的配置。阅读l4t文档了解如何
配置pinmux。sudo pip install Jetson.GPIO
手动下载
sudo python3 setup.py install
设置用户权限
sudo groupadd -f -r gpio
sudo usermod -a -G gpio your_user_name
sudo cp etc/99-gpio.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && sudo udevadm trigger
运行示例脚本
samples/
可以使用目录。下面介绍每个
应用程序:simple_input.py
:此应用程序使用车身控制模块针脚编号模式并读取
40针头的第12针的值,并将该值打印到
屏幕:simple_out.py
:此应用程序使用来自
覆盆子pi,在bcm引脚18(或
每2秒一次。button_led.py
:此应用程序使用板针编号。它需要一个
连接到插脚18和接地的按钮,连接插脚18的上拉电阻器
连接到3V3和连接到引脚12的LED和限流电阻器。这个
应用程序读取按钮状态并保持LED每秒钟亮一次
按下按钮的时间。button_event.py
:此应用程序使用板针编号。它需要一个
连接到插脚18和接地的按钮,连接该按钮的上拉电阻器
连接到3V3和连接到引脚12的LED和限流电阻器。这个
应用程序执行与button_led.py相同的功能,但执行
舞台调度等待按钮按下事件,而不是连续检查
为减少CPU使用而设置的管脚值。button_interrupt.py
:此应用程序使用板针编号。它
需要一个连接到引脚18和GND的按钮,一个连接到
按钮连接到3v3,一个LED和一个连接到引脚12的限流电阻器
第二个LED和限流电阻器连接到引脚13。这个
应用程序缓慢地连续闪烁第一个LED,并快速闪烁
只有当按下按钮时,第二个LED才会亮五次。python3 <name_of_application_to_run>
./run_sample.sh <name_of_application_to_run>
./run_sample.sh -h
./run_sample.sh --help
完整的库API
import Jetson.GPIO as GPIO
0
sudo pip install Jetson.GPIO
1
sudo pip install Jetson.GPIO
2
<H4>4。设置频道sudo pip install Jetson.GPIO
3
sudo pip install Jetson.GPIO
4
sudo pip install Jetson.GPIO
5
sudo pip install Jetson.GPIO
6
<H4>5。输入sudo pip install Jetson.GPIO
7
sudo pip install Jetson.GPIO
8
sudo pip install Jetson.GPIO
9
<H4>7。清理sudo pip install Jetson.GPIO
0
sudo python3 setup.py install
1
<H4>8。Jetson车载信息和库版本sudo python3 setup.py install
2
sudo python3 setup.py install
3
sudo python3 setup.py install
wait_for_edge()函数
4
sudo python3 setup.py install
5
sudo python3 setup.py install
检测到的事件()函数
6
sudo python3 setup.py install
检测到边缘时运行回调函数
7
sudo python3 setup.py install
8
sudo python3 setup.py install
9
sudo python3 setup.py install
0
<H4>10。检查GPIO通道的功能sudo groupadd -f -r gpio
sudo usermod -a -G gpio your_user_name
1
sudo groupadd -f -r gpio
sudo usermod -a -G gpio your_user_name
samples/simple_pwm.py
。推荐PyPI第三方库