Jetson Nano的GPIO口学习

1.配置GPIO库

https://github.com/NVIDIA/jetson-gpio

(1)安装pip工具

sudo-apt-get update
sudo apt-get install python3-pip
sudo apt-get install python3-pip

(2)下载 jetson-gpio

sudo pip install Jetson.GPIO
sudo pip3 install Jetson.GPIO
或者直接clone   github
git clone https://github.com/NVIDIA/jetson-gpio

(3)将下载的文件复制或者移动到目录: /opt/nvidia 中:

sudo cp -r jetson-gpio /opt/nvidia/

(4)进入jetson-gpio库文件夹,并安装库。

cd /opt/nvidia/jetson-gpio
sudo python3 setup.py install

(5)使用前,还需要创建一个 gpio 组,把你的当前的账号加到这个组,并赋予使用权限

sudo groupadd -f -r gpio
sudo usermod -a -G gpio user_name

注:user_name 是自己的账号名

(6)重新加载udev规则,使新规则生效

将99-gpio.rules文件复制到rules.d目录

sudo cp /opt/nvidia/jetson-gpio/lib/python/Jetson/GPIO/99-gpio.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && sudo udevadm trigger

2.例子

使用两个烟雾传感器检测烟雾,只要有一个检测到烟雾,就会打开继电器开关

import RPi.GPIO as GPIO
import time

gas_pin = 18      # 定义烟雾传感器引脚
gas1_pin = 16    # 定义气味传感器引脚
led_pin = 12       # 控制继电器开关   


def main():
    GPIO.setmode(GPIO.BOARD)                         # 定义引脚模式
    GPIO.setup(gas_pin, GPIO.IN)                       # 烟雾为输入
    GPIO.setup(gas1_pin, GPIO.IN)                     # 气味为输入
    GPIO.setup(led_pin, GPIO.OUT, initial=GPIO.HIGH)     # 继电器为输出,初始化为高电平
    GPIO.setwarnings(False)
    try:
        while True: 
            status=GPIO.input(gas_pin)
            status1=GPIO.input(gas1_pin)            # 检测高低电平变化      
            if status == True and status1 == True:   
                #print('no gas detect')
                GPIO.output(led_pin, GPIO.HIGH)      # 没有检测到烟雾,灯不会亮
            else:
                #print('gas detect')
                GPIO.output(led_pin, GPIO.LOW)
                
    except KeyboardInterrupt:
        pass
    GPIO.cleanup()                                   #  清理引脚通道

if __name__ == '__main__':
    main()

参考文章:https://blog.csdn.net/Lstar_/article/details/116188239

猜你喜欢

转载自blog.csdn.net/qq_44177768/article/details/129170493