最近因为比赛的原因入手了树莓派和Jstson Nano,对于两款开发板性能的比较这里不多赘述,大家可以参考这篇博客:树莓派 4 与英伟达 Jetson Nano 性能大比拼,谁是最佳的嵌入式“电脑”
我的建议是:你的项目要用到CUDA,就选Jetson,否则就选树莓派。
我们先来看一下Jetson Nano的GPIO(24PIN-引脚分布图):
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替换为对应的程序文件名称
sudo python3 simple_input.py
sudo python3 simple_out.py
输出高电平和低电平(每2秒交替更新) 到物理引脚 PIN12
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-硬件接口
串口通信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()
程序部分解释
python3 uart_example.py
发送情况-串口助手
1、安装python3 I2C模块及开启I2C访问权限
sudo apt-get install -y python3-smbus
sudo usermod -aG i2c <用户名> #添加用户组
sudo reboot #重启
Smbus库-API目录
sudo apt-get install -y i2c-tools #下载I2Ctool
apt-cache policy i2c-tools #检查是否安装成功
若出现如下信息责表示安装成功
3、硬件连接
以LCD1602_I2C为例,其地址为0X27
sudo i2cdetect -y -r -a 1
#扫描某一总线(BUS)上所有I2C设备,并打印其地址。
当出现如下信息时,表示I2C总线挂载成功
至此,有关于Jetson Nano的三种硬件通信方式全部介绍完毕。
参考文章:Jetson nano_Hardware新手向导