零基础入门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-引脚分布图):
零基础入门Jetson Nano——硬件篇_第1张图片

安装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文件夹下的官方示例
零基础入门Jetson Nano——硬件篇_第2张图片

示例1、simple_input

sudo python3 simple_input.py

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

示例2、simple_out

sudo python3 simple_out.py

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

零基础入门Jetson Nano——硬件篇_第3张图片

安装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-硬件接口
零基础入门Jetson Nano——硬件篇_第4张图片
串口通信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()

程序部分解释

零基础入门Jetson Nano——硬件篇_第5张图片参数配置-串口助手

零基础入门Jetson Nano——硬件篇_第6张图片运行程序

python3 uart_example.py

发送情况-串口助手

零基础入门Jetson Nano——硬件篇_第7张图片接收情况-Jetson nano
零基础入门Jetson Nano——硬件篇_第8张图片

安装smbus库与配置——I2C

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

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

Smbus库-API目录

零基础入门Jetson Nano——硬件篇_第9张图片
2、下载I2Ctool及检查是否安装成功

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

若出现如下信息责表示安装成功
零基础入门Jetson Nano——硬件篇_第10张图片
3、硬件连接
零基础入门Jetson Nano——硬件篇_第11张图片以LCD1602_I2C为例,其地址为0X27

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

当出现如下信息时,表示I2C总线挂载成功
零基础入门Jetson Nano——硬件篇_第12张图片
至此,有关于Jetson Nano的三种硬件通信方式全部介绍完毕。

参考文章:Jetson nano_Hardware新手向导

你可能感兴趣的:(Jetson,Nano,嵌入式硬件,python,arm开发)