Jetson.GPIO库 已经预装在Nano,如果卸载或者丢失,就需要自己重新安装一次了。
sudo pip install Jetson.GPIO
sudo pip3 install Jetson.GPIO
笔者在 Python2和Python3环境都分别安装了 Jetson.GPIO库。
首先来看一下 Jetson nano的 GPIO分布表。
这个表把各个引脚的功能标注出来了。 I2C、SPI、UART……这些后面的文字陆续会讲解哦。
我们先用一个例子再来展开细讲
例子:控制 Pin37,也就是 gpio12 引脚,每5秒进行一次高低电平的反转。
import Jetson.GPIO as GPIO
import time
# Pin Definitions
output_pin = 37 #J41_BOARD_PIN37---gpio12/GPIO.B26/SPI2_MOSI
# Pin Setup:
# Board pin-numbering scheme
GPIO.setmode(GPIO.BOARD)
# set pin as an output pin with optional initial state of HIGH
GPIO.setup(output_pin, GPIO.OUT, initial=GPIO.HIGH)
curr_value = GPIO.HIGH
while True:
time.sleep(5)
# Toggle the output every second
print("Outputting {} to pin {}".format(curr_value, output_pin))
GPIO.output(output_pin, curr_value)
curr_value ^= GPIO.HIGH
'''
# 等效写法
while True:
time.sleep(5)
# Toggle the output every second
print("Outputting {} to pin {}".format(curr_value, output_pin))
GPIO.output(output_pin, curr_value)
if curr_value == GPIO.HIGH:
curr_value = GPIO.LOW
else:
curr_value = GPIO.HIGH
'''
代码段中,
import Jetson.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
# or
GPIO.setmode(GPIO.BCM)
# or
GPIO.setmode(GPIO.CVM)
# or
GPIO.setmode(GPIO.TEGRA_SOC)
这是四种对引脚号的编码,属性树莓派的同学应该记得有个引脚对照表
看一下这个表头,和设置语句中的内容,是不是秒懂。
推荐就使用 BOARD编码,方便好认。
GPIO.setup(output_pin, GPIO.OUT, initial=GPIO.HIGH)
语句的功能描述:在此模式下,将 output_pin引脚设置为 输出模式,并且初始状态为 高电平。
GPIO.output(output_pin, curr_value)
curr_value 的值 可为:GPIO.HIGH 或 GPIO.LOW
引脚输入多半是用在按键之类的上面。还是很有必要需要了解的。
GPIO.setup(curr_value, GPIO.IN)
读取引脚的值
GPIO.input(curr_value)
返回值为 GPIO.LOW 或者 GPIO.HIGH。
在程序结束时最好清理引脚,将引脚设置为默认状态,下面的语句就可以清理所有引脚状态:
GPIO.cleanup()
如果不想清除所有通道,也可以清除单个通道或通道列表或元组:
GPIO.cleanup(chan1) # 仅清理chan1
GPIO.cleanup([chan1, chan2]) # 仅清理chan1和chan2
GPIO.cleanup((chan1, chan2)) # 和上一句相同