V831基础-GPIO

想着外接传感器高点事情,GPIO不是必须的嘛doge

测试镜像:v831-m2dock-maixpy3-0.4.0-20220114.img
测试所用maixpy3版本:0.4.0


GPIO

GPIO(英语:General-purposeinput/output),通用型之输入输出的简称,接脚可以供使用者由程控自由使用,PIN脚依现实考量可作为通用输入(GPI)或通用输出(GPO)或通用输入与输出(GPIO)。

通过查看 MaixII-Dock 开发板的管脚定义图,一共有5个引出的 GPIO

Maixpy3 目前适配了市面上的一些 Linux 系统开发板,对不同的板子进行了不同的封装。在使用之前,只需要加载使用的型号即可(不加载默认是使用树莓派配置)

翻译过来就是看板子,不同的板子用法不同。
请添加图片描述

定义GPIO

API 功能
gpio.load() 加载配置项

首先我们需要导入maix中的gpio 模块,然后就可以定义一个gpio 对象,使用 gpio.load() 加载配置项。将使用的 GPIO 管脚实例化,就能直接调用 API 对其进行直接的操作。

from maix import gpio      #调库
gpio.load(gpio.m2dock)     #加载配置,说明是V831 (MaixII-Dock)
PH6 = gpio.gpio(6)         #使用gpio PH6(6)

正常GPIO都有设置高低电平和获取高低电平的方法,V831也是,注意没有什么设置输入输出模式哈。如下。

API 功能
gpio.set_value() 设置管脚电平
gpio.get_value() 获取管脚电平
gpio.set_value()	设置管脚电平
gpio.get_value()	获取管脚电平

例程:通过控制引脚高低电平,来控制上面的传感器。

引脚说明

V831 3色LED
PH6 G
GND -
import time                    #  时间模块
from maix import gpio
gpio.load(gpio.m2dock)    
PH6 = gpio.gpio(6)
while True:
    PH6.set_value(0)            # 设置为低电平
    print(PH6.get_value())      #打印获取电平
    time.sleep(1)               
    PH6.set_value(1)            # 设置为高电平
    print(PH6.get_value())
    time.sleep(1)

在这里插入图片描述
注意:官方给的例程是在jupyter上面运行的。我是后面要做案例,所以直接在开发板上运行的。所以写法上可能会有不同。请注意哈。

了解更多

Linux 系统中,使用 GPIO 作为电平的输出口,我们需要关注 GPIO_line 、GPIO_bank 和 GPIO_chip,这个三个参数。

root@sipeed:~# ll /dev/gpiochip*
crw-rw----    1 root     root      254,   0 Jan  1 00:00 /dev/gpiochip0
crw-rw----    1 root     root      254,   1 Jan  1 00:00 /dev/gpiochip1

通过查看 V831_PIN 功能介绍得知3个参数为P(引脚数字) H(对应字符)0(gpiochip).由于V831 只能使用 gpiochip1.所以操作应该是P,“H”,1

在这里插入图片描述
换个例程说明,当我们不适用gpio.load()实例化的时候可以使用上面的方法。比如我想用PH7引脚则可以按照如下代码执行。

from maix import gpio
import time
ph7 = gpio.gpio(7, "H", 1)   # 定义GPIO 

while True:
    ph7.set_value(0)
    print(ph7.get_value())
    time.sleep(1)
    ph7.set_value(1)
    print(ph7.get_value())
    time.sleep(1)

设置GPIO的方式还是比较简单的。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45020839/article/details/121162121
今日推荐