Jetson TX2 --GPIO 库使用(点亮一个LED灯)

项目介绍

Jetson.GPIO

Jetson TX2 J21有40个引脚,类似于树莓派的40个引脚,可以通过Jetson GPIO samples包中提供的python库控制输入输出。该库与Raspberry Pi的RPi.GPIO库具有相同的API,以便提供一种简便的方法来将在Raspberry Pi上运行的应用程序移动到Jetson板上。

包装组件

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

1.该lib/python/子目录包含实现所有库功能的Python模块。gpio.py模块是将被导入到应用程序中的主要组件,并提供所需的API。gpio_event.py 和gpio_pin_data.py模块使用gpio.py模块,gpio.py模块不能直接导入到应用程序中。

2.该samples/子目录包包含库API和应用程序入门示例应用程序的。在 simple_input.py和simple_output.py应用程序显示了如何进行分别读取和写入到GPIO引脚,而button_led.py, button_event.py并button_interrupt.py说明如何将按钮按压控制LED,阻塞等待和中断回调LED

3.关于该函数库的具体说明,你可以在https://pypi.org/project/Jetson.GPIO/中了解环境配置和安装库

安装

1.首先安装PIP工具

 sudo apt-get update
 sudo apt-get install python-pip
 sudo apt-get install python3-pip

2.下载安装
安装此库最简单的方法就是使用pip:

sudo pip install Jetson.GPIO
sudo pip3 install Jetson.GPIO

您也可以从 GitHub clone此git存储库,或下载其副本作为存档文件并解压缩。可以放在系统的任意位置,使用setup.py来安装:

sudo python3 setup.py install

设置用户权限

为了使用Jetson GPIO库,必须首先设置正确的用户权限/组。

创建一个新的gpio用户组。然后将您的用户添加到新创建的组中。

sudo groupadd -f -r gpio 
sudo usermod -a -G gpio your_user_name

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

通过将99-gpio.rules文件复制到rules.d目录中来安装自定义udev规则。(找不到99-gpio.rules的话可以到/lib/Jetson.GPIO-2.0.8/build/lib/Jetson/GPIO手动复制)
如果您已将源下载到Jetson.GPIO:

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

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

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

运行示例脚本

通过根据需要设置权限,samples/可以使用目录中提供的示例应用程序,程序存放在/opt/nvidia/jetson-gpio/samples/ 路径下。下面介绍每个应用程序的操作:

simple_input.py此应用程序使用BCM引脚编号模式,并从40引脚接头连接器的引脚12读取值,并将该值打印到屏幕上。

simple_out.py:此应用程序使用Raspberry Pi的BCM引脚编号模式,每2秒在BCM引脚18(或接头板上的板卡引脚12)输出高低交替值。

button_led.py:此应用程序使用BOARD引脚编号。它需要一个连接到引脚18和GND的按钮,一个将引脚18连接到3V3的上拉电阻以及一个连接到引脚12的LED和限流电阻。应用程序读取按钮状态,并在每次连接时使LED保持点亮1秒钟。按下按钮。

button_event.py:此应用程序使用BOARD引脚编号。它需要一个连接到引脚18和GND的按钮,一个将按钮连接到3V3的上拉电阻以及一个连接到引脚12的LED和限流电阻。该应用程序执行与button_led.py相同的功能,但执行阻塞等待按钮按下事件,而不是连续检查引脚的值以减少CPU使用率。

button_interrupt.py:此应用程序使用BOARD引脚编号。它需要一个连接到引脚18和GND的按钮,一个将按钮连接到3V3的上拉电阻,一个连接到引脚12的LED和限流电阻以及连接到引脚13的另一个LED和电流限制电阻。仅当按下按钮时,第一个LED才会连续且快速地闪烁第二个LED五次。

用户可以使用指令运行程序,注意将xxxx替换成对应的程序名

sudo python3 xxxx.py

手写LED灯控制程序

首先新建一个jetson-gpio-test.py文件

sudo vi jetson-gpio-test.py

进入编辑器界面后,按下“a”开始输入

import Jetson.GPIO as GPIO
import time as time          #引用需要用的库
LED_Pin = 11
GPIO.setmode(GPIO.BOARD)
GPIO.setup(LED_Pin, GPIO.OUT)#设置要操作的引脚,并将引脚设置为输出引脚
while (True):
   GPIO.output(LED_Pin, GPIO.HIGH)
   time.sleep(2)
   GPIO.output(LED_Pin, GPIO.LOW)
   time.sleep(2)              #通过切换GPIO的电平来点亮和熄灭LED
GPIO.cleanup()                #最后在退出循环的时候清楚GPIO的状态   

按下“ESC”并输入“:wq”保存文件并退出,然后将一个LED灯连接到11号引脚上

在这里插入图片描述
试着运行程序

sudo python3 jetson-gpio-test.py

可以看LED灯以两秒的间隔在闪烁。

运行效果
在这里插入图片描述

  • 6
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值