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

2023-05-16

项目介绍

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灯以两秒的间隔在闪烁。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jetson TX2 --GPIO 库使用(点亮一个LED灯) 的相关文章

  • WWW网络请求

    文章目录 1 Get方法1 1 文本下载1 2 Texture下载 2 Post方法2 1 基本方法2 2 Post上传二进制文件 3 补充 1 Get方法 1 1 文本下载 span class token keyword private
  • Java抛出异常的处理方法

    今天在码代码的过程中 xff0c 在判定一个非法情况时 xff0c 往常是使用输出错误信息并return的方式处理 但今天突发奇想能否使用抛出异常的方式处理非法情况 xff08 即输出错误信息并退出程序 xff09 xff0c 于是在网络上
  • 2023-03-18 Android app 用进度条ProgressBar 圆形样式做加载loading效果,旋转动画

    一 activity main xml 布局文件 lt xml version 61 34 1 0 34 encoding 61 34 utf 8 34 gt lt RelativeLayout xmlns android 61 34 ht
  • MPLAB构建项目报错“recipe for target ‘.build-conf‘ failed”

    recipe for target build conf failed 刚入门单片机 xff0c 在写程序时 xff0c 当时写完 xff0c build成功 xff0c 但是第二天过来 xff0c 改写了部分代码 xff0c 然后去bui
  • C/C++开发人员要了解的几大著名C/C++开源库

    目录 1 多媒体处理开源库FFmpeg 2 实时音视频处理开源库WebRTC 3 Chrome浏览器内核开源库Chromium 4 Chromium嵌入式框架开源库CEF 5 多协议网络传输开源库libcurl 6 开源操作系统ReactO
  • ADC转换值和实际电压的关系

    1 首先确定ADC用几位表示 xff0c 最大数值是多少 比如一个8位的ADC xff0c 最大值是0xFF xff0c 就是255 xff08 一般芯片手册会有说明 xff09 2 然后确定最大值时对应的参考电压值 一般而言最大值对应3
  • 程序设置波特率和串口调试助手波特率设置不同才能通信

    本人小白一个 xff0c 在根据教程去做串口通信时 xff0c 程序码完之后 xff0c 调试助手一直显示乱码 网络上查找原因 xff0c 得知是波特率不对 xff0c 当串口的波特率是38400 xff0c 程序上是115200时 xff
  • MPC574x平台学习——CAN通信

    前言 MPC574x是恩智浦公司出的一个系列的芯片 xff0c 本人所接触的主要是MPC5742 xff0c 最近在调试MPC5742的CAN通信 xff0c 使用S32自带的SDK生成CAN驱动 通过网络的教程去完成 xff0c 但是跟着
  • QT报错:error: static assertion failed: No Q_OBJECT in the class with the signal

    今天利用QT写一个项目 xff0c 在写代码的过程中 xff0c 使用到了QT中一大特色 信号和槽 xff0c 对这个也是刚刚学习阶段 xff0c 所以在这里遇到了一个问题 xff1a error static assertion fail
  • eclipse报错“Symbol could not be resolved”,但是编译没有问题

    Eclipse作为一个强大的编辑器 xff0c 可以用来做很多的工作 xff0c 在Eclipse中偶然遇到一个问题 Symbol could not be resolved xff0c 但是编译能够通过 xff1b 这个问题网上有很多人有
  • LCD屏幕调试过程(驱动IC ST7701s)

    调试准备工作 1 屏幕开发手册 xff1b 2 逻辑分析仪 xff08 用来捕获信号 xff0c 信号是否正确 xff09 xff1b 3 驱动板 xff0c 驱动屏幕显示 xff1b 屏幕接口 根据手册的说明 xff0c 可以知道屏幕的一
  • Ubuntu 18.04 安装Open3D C++版本

    此篇博客引用博客Ubuntu18 04 安装Open3D C 43 43 与Python版本 zpwhust的博客 CSDN博客 ubuntu 安装open3d 并在此基础上进行整理 环境 linux ubuntu 18 04 cmake
  • C++ 编译出现问题 -(undefined reference to `vtable for xxx‘)

    在编码遇到这个问题 xff0c 记录一下 xff0c 代码结构如下 class father father father class son public father son father son 乍一看 xff0c 没啥不对的 xff0
  • 实用工具合集

    工作中遇到的比较好用的网站 xff0c 记录一下 数学 1 3D Rotation converter 这是一个欧拉角 xff0c 旋转矩阵 xff0c 旋转向量相互转换的网站 2 坐标系 实时显示函数的一个网站 xff0c 功能强大 xf
  • Opencv3.2安装opencv_contrib-3.2

    在open3 x的版本中 xff0c 图像特征提取的算法并未在源码中 xff0c 需要从OpenCV contrib 3 2编译安装 xff0c 下面就是记录一下编译安装的过程 下载 opencv contrib 3 2下载地址 编译 cm
  • vector的成员函数解析

    vector是线性容器 它的元素严格的按照线性序列排序 和动态数组很相似 和数组一样 它的元素存储在一块连续的存储空间中 这也意味着我们不仅可以使用迭代器 iterator 访问元素 还可以使用指针的偏移方式访问 和常规数组不一样的是 ve
  • ROS编程遇到的错误小结

    1 终端出现MD5值不匹配问题 这种情况 xff0c 是由于通信双方的数据内容不同 持续更新
  • HTML 和 XML 数据的分析与解析

    引言 目前在 Java 中 xff0c 解析 HTML 工具主要包含以下几种 xff1a jsoup xff1a 强大的 HTML 解析工具 xff0c 支持以 jQuery 中 CSS Selector 的方式提取 HTML 中的元素 x
  • 【掌控板】0、基础教程

    环境搭建 软件 xff1a mind 43 硬件 xff1a 掌控板2 0 mind 43 使用界面 项目 新建项目 连接掌控板和pc 我的显示有问题 xff0c 是因为我原先代码出错了 xff0c 正常情况下会显示掌控板 驱动更新好了在m
  • 方波的产生——运算放大器LM324产生方波

    方波的产生 运算放大器LM324产生方波 双电源供电 xff08 1 xff09 搭建振荡电路如图所示 xff0c 先采用双电源供电讲解 xff0c 需要两个滑动变阻器RP1和RP2 xff0c 一个固定电阻R1和一个电容C1 xff0c

随机推荐