• Purple Pi OH(Debian/Ubuntu)使用python控制gpio


    本文分享的是Purple Pi OH开源主板搭载Debian/Ubuntu系统如何使用python控制gpio。

    Purple Pi OH作为一款兼容树莓派的开源主板,采用瑞芯微RK3566 (Cortex-A55) 四核64位超强CPU,主频最高达1.8 GHz,算力高达1Tops,支持INT8/INT16,支持TensorFlow/MXNet/PyTorch/Caffe框架,多路视频输出和输入,支持4K、H.265/H.264视频解码,接口丰富。

    玩法丰富,支持OpenHarmony、Ubuntu、Debian、Android等多种系统,提供丰富开源资料。

    产品规格书查看深圳触觉智能官网-产品中心

    安装python gpio库

    1. apt-get update
    2. apt -y install python3-libgpiod

    GPIO输出

    1. import time
    2. import gpiod
    3. //B7=15
    4. LINE_OFFSET =15
    5. chip0 = gpiod.Chip("0", gpiod.Chip.OPEN_BY_NUMBER)
    6. gpio0_b0 = chip0.get_line(LINE_OFFSET)
    7. gpio0_b0.request(consumer="gpio"type=gpiod.LINE_REQ_DIR_OUT, default_vals=[0])
    8. print(gpio0_b0.consumer())
    9. try:
    10.     while True:
    11.         gpio0_b0.set_value(1)
    12.         time.sleep(0.5)
    13.         gpio0_b0.set_value(0)
    14.         time.sleep(0.5)
    15. finally:
    16.     gpio0_b0.set_value(1)
    17.     gpio0_b0.release()

    我们通过万用表检测该引脚的电压是否会在高低电压中进行反复横跳

    GPIO15对应的位置在11

    GPIO输入

    1. import time
    2. import gpiod
    3. LINE_OFFSET =23
    4. chip0 = gpiod.Chip("0",gpiod.Chip.OPEN_BY_NUMBER)
    5. gpio0_b7 = chip0.get_line(LINE_OFFSET)
    6. gpio0_b7.request(consumer="gpio"type=gpiod.LINE_REQ_DIR_IN, default_vals=[0])
    7. try:
    8.     while True:
    9.         value = gpio0_b7.get_value()
    10.         time.sleep(0.5)
    11.         print("gpio status: ",value)
    12. finally:
    13.     gpio0_b7.release()
    14.     chip.close

    给此GPIO也就是23脚连接3.3V的电平,终端输出1;将此GPIO连接到GND,终端输出0。

    双排针Pin功能定义

    序号

    定义

    电平

    说明

    1

    VDD_3V3

    3.3V

    供电输出3.3V

    2

    VDD_5V

    5V

    可做5V输入供电,也可输出5V

    3

    I2C_SDA

    3.3V

    I2C数据信号

    4

    VDD_5V

    5V

    可做5V输入供电,也可输出5V

    5

    I2C_SCL

    3.3V

    I2C时钟信号

    6

    GND

    GND

    电源地

    7

    GPIO_7

    3.3V

    gpio编号为23

    8

    UART_TXD

    3.3V

    /dev/ttyS0 发送

    9

    GND

    GND

    电源地

    10

    UART_RXD

    3.3V

    /dev/ttyS0 接收

    11

    GPIO_0

    3.3V

    gpio编号为15

    12

    GPIO_1

    3.3V

    gpio编号为22

    13

    GPIO_2

    3.3V

    gpio编号为20

    14

    GND

    GND

    电源地

    15

    GPIO_3

    3.3V

    gpio编号为21

    16

    GPIO_4

    3.3V

    gpio编号为124

    17

    VDD_3V3

    3.3V

    供电输出3.3V

    18

    GPIO_5

    3.3V

    gpio编号为125

    19

    SPI_MOSI

    3.3V

    SPI数据信号

    20

    GND

    GND

    电源地

    21

    SPI_MISO

    3.3V

    SPI数据信号

    22

    GPIO_6

    3.3V

    gpio编号为130

    23

    SPI_SCLK

    3.3V

    SPI时钟信号

    24

    SPI_CS0

    3.3V

    SPI片选信号0

    25

    GND

    GND

    电源地

    26

    SPI_CS1

    3.3V

    SPI片选信号1

    27

    GPIO_30

    3.3V

    gpio编号为138

    28

    GPIO_31

    3.3V

    gpio编号为139

    29

    GPIO_21

    3.3V

    gpio编号为132

    30

    GND

    GND

    电源地

    31

    GPIO_22

    3.3V

    gpio编号为121

    ​32

    GPIO_26

    3.3V

    gpio编号为120

    33

    GPIO_23

    3.3V

    gpio编号为122

    34

    GND

    GND

    电源地

    35

    GPIO_24

    3.3V

    gpio编号为127

    36

    GPIO_27

    3.3V

    gpio编号为123

    37

    GPIO_25

    3.3V

    gpio编号为133

    38

    GPIO_28

    3.3V

    gpio编号为126

    39

    GND

    GND

    电源地

    40

    GPIO_29

    3.3V

    gpio编号为131

  • 相关阅读:
    python 多进程windows报错 linux不报错 TypeError: cannot pickle ‘_thread.lock‘ object
    贪心算法(1)--经典贪心算法
    python--函数
    kubernetes之kubectl与YAML详解1
    Java面试题精选21到31
    计算机组成原理——中央处理器-指令执行过程(课程笔记)
    detr目标检测算法源码详解
    0903(046天 线程集合总结01)
    在Mac 中 pip 不存在,Python版本和pycharm对不上
    Three.js的学习资料和学习计划,统统安排上
  • 原文地址:https://blog.csdn.net/Industio_CSDN/article/details/132760083