• 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

  • 相关阅读:
    罗马和汉朝的对比
    yum和vim须掌握的常用操作
    【Linux学习】01Linux初识与安装
    如何在使用 ES Modules 的 Node.js 应用中创建和使用 __dirname 和 __filename 这两个全局变量
    VSCode 在部分 Linux 设备上终端和文本编辑器显示文本不正常的解决方法
    SSM+教学网站 毕业设计-附源码211611
    java基础练习,九九乘法表(java版),计算器
    Postman使用总结2
    辅助寄存器是干什么用的
    「接口测试入门课」打卡学习 day07:WebSocket接口:如何测试一个完全陌生的协议接口?
  • 原文地址:https://blog.csdn.net/Industio_CSDN/article/details/132760083