零基础入门Jetson Nano——硬件篇

Jetson Nano学习——硬件篇

  • 写在前面的话
  • Jetson Nano_Hardware
    • 安装GPIO库与配置——GPIO
    • 使用示例
      • 示例1、simple_input
      • 示例2、simple_out
    • 安装serial库与配置——UART
    • 安装smbus库与配置——I2C

写在前面的话

最近因为比赛的原因入手了树莓派和Jstson Nano,对于两款开发板性能的比较这里不多赘述,大家可以参考这篇博客:树莓派 4 与英伟达 Jetson Nano 性能大比拼,谁是最佳的嵌入式“电脑”
我的建议是:你的项目要用到CUDA,就选Jetson,否则就选树莓派。

Jetson Nano_Hardware

我们先来看一下Jetson Nano的GPIO(24PIN-引脚分布图):
24PIN-引脚

安装GPIO库与配置——GPIO

1、下载jetson-gpio库

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

2、将下载的文件移动到目录:/opt/nvidia 中

sudo mv jetson-gpio /opt/nvidia/ 
# 移动文件到指定目录下

3、安装pip3工具

sudo apt-get install python3-pip

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

cd /opt/nvidia/jetson-gpio
# 进入文件夹sudo python3 setup.py install
# 安装GPIO库

5、设置用户权限与修改规则

sudo groupadd -f -r gpio
# 将用户添加至组,赋予权限sudo usermod -a -G gpio your_user_name
# your_user_name需改成自己的账号名sudo cp /opt/nvidia/jetson-gpio/lib/python/Jetson/GPIO/99-gpio.rules   /etc/udev/rules.d/
# 将99-gpio.rules文件复制到rules.d目录sudo udevadm control –reload-rules && sudo udevadm trigger
# 重载rules规则来让文件生效sudo 

使用示例

cd /opt/nvidia/jetson-gpio/samples/
# 进入示例文件夹sudo python3 xxxx.py
# 运行示例文件
#将xxxx替换为对应的程序文件名称 

samples文件夹下的官方示例
samples文件夹

示例1、simple_input

sudo python3 simple_input.py

使用BCM的引脚编码模式,可读取PIN12的值并打印到终端
终端输出信息

示例2、simple_out

sudo python3 simple_out.py

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

PIN12输出电平

安装serial库与配置——UART

1、安装python3 serial库

sudo apt-get install python3-serial

2、开启临时串口权限

sudo chmod 777 /dev/ttyTHS1
# 开启串口权限,关机后该权限也将被关闭,下次使用串口前需再次重新开启 

3、获取串口通信测试案例

git clone https://github.com/JetsonHacksNano/UARTDemo
# 获取串口通讯测试案例cd UARTDemo
# 进入该文件夹 

4、硬件连接
Jetson Nano引脚8(TXD) →USB转TTL模块RX
Jetson Nano 引脚10(RXD) →USB转TTL模块TX
Jetson Nano J引脚6(GND) →USB转TTL模块GN
#Jetson Nano J引脚2(5V) →USB转TTL模块VCC 该引脚可不接

Jetson nano-硬件接口
UART_2:dev/tty/THS1
串口通信Python3程序 uart_example.py

#! /usr/bin/python3
import time
import serial
#导入serial库serial_port = serial.Serial(port="/dev/ttyTHS1",baudrate=115200,bytesize=serial.EIGHTBITS,parity=serial.PARITY_NONE,stopbits=serial.STOPBITS_ONE,
)
time.sleep(1)
# 串口配置信息
# 波特率115200,8位数据位,无奇偶校验位,1位停止位try:serial_port.write("UART Demonstration Program\r\n".encode())serial_port.write("NVIDIA Jetson Nano Developer Kit\r\n".encode())while True:if serial_port.inWaiting() > 0:data = serial_port.read()print(data)serial_port.write(data)if data == "\r".encode():serial_port.write("\n".encode())except KeyboardInterrupt:print("Exiting Program")except Exception as exception_error:print("Error occurred. Exiting Program")print("Error: " + str(exception_error))finally:serial_port.close()

程序部分解释

serial库-相关API介绍参数配置-串口助手

串口助手-参数配置运行程序

python3 uart_example.py

发送情况-串口助手

串口助手-发送情况接收情况-Jetson nano
Jetson nano接收情况

安装smbus库与配置——I2C

1、安装python3 I2C模块及开启I2C访问权限

sudo apt-get install -y python3-smbus
sudo usermod -aG i2c <用户名>	    #添加用户组
sudo reboot    #重启 

Smbus库-API目录

smbus库-API目录
2、下载I2Ctool及检查是否安装成功

sudo apt-get install -y i2c-tools	    #下载I2Ctool
apt-cache policy i2c-tools    #检查是否安装成功 

若出现如下信息责表示安装成功
终端信息
3、硬件连接
I2C_2(I2C_bus)以LCD1602_I2C为例,其地址为0X27

sudo i2cdetect -y -r -a 1
#扫描某一总线(BUS)上所有I2C设备,并打印其地址。 

当出现如下信息时,表示I2C总线挂载成功
终端信息
至此,有关于Jetson Nano的三种硬件通信方式全部介绍完毕。

参考文章:Jetson nano_Hardware新手向导


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部