wiringOP安装方法

  1. 下载wiringOP 的代码
apt update
apt -y install git
git clone https://github.com/orangepi-xunlong/wiringOP
  1. 编译wiringOP
cd wiringOP
./build clean
./build
  1. 测试gpio readall命令的输出如下

OrangePi.GPIO安装方法

官方版本 OPi.GPIO-0.5.2

#明显看出来是python3.6
root@orangepi:~# whereis python
python: /usr/bin/python3.6 /usr/bin/python3.6m /usr/lib/python3.7 /usr/lib/python3.6 /usr/lib/python2.7 /etc/python3.6 /usr/local/lib/python3.6
#先安装python3.6对应的pip3
root@orangepi:~# sudo apt-get install python3-pip
#根据官方文档安装:
root@orangepi:~# sudo pip3 install --upgrade OPi.GPIO
#官方OPi.GPIO 版本为 OPi.GPIO-0.5.2

非官方版本 OPi.GPIO-0.6.6

1.安装python 开发包,和git ,安装过的可以忽略

sudo apt-get install python3-dev git

如果python3-dev安装失败,请参考:https://www.cnblogs.com/ymjyqsx/p/6194968.html
2.下载代码

git clone https://github.com/Pako2/OrangePi.GPIO.git
cd ./OrangePi.GPIO

3.编译安装

sudo python3 setup.py install --force-h5 #使用此方式失败
# H6是芯片型号 需要指定
#如果编译失败,python 请试下
sudo python3 setup.py install_lib #可以编译成功

帮助文档

翻译后:

  build            (构建安装所需的一切) build everything needed to installbuild_py         “构建”纯Python模块(复制到构建目录)"build" pure Python modules (copy to build directory)build_ext        构建C/C++扩展(编译/链接到构建目录)build C/C++ extensions (compile/link to build directory)build_clib       构建Python扩展使用的C/C++库 build C/C++ libraries used by Python extensionsbuild_scripts    “构建”脚本(复制和修复#!行)"build" scripts (copy and fixup #! line)clean            从“生成”命令清除临时文件 clean up temporary files from 'build' commandinstall          从构建目录安装所有内容 install everything from build directoryinstall_lib      安装所有Python模块(扩展和纯Python)install all Python modules (extensions and pure Python)install_headers  安装C/C++头文件 install C/C++ header filesinstall_scripts  安装脚本(Python或其他)install scripts (Python or otherwise)install_data     安装数据文件 install data filessdist            创建源发行版(tarball、zip文件等)create a source distribution (tarball, zip file, etc.)register         使用Python包索引注册发行版 register the distribution with the Python package indexbdist            创建一个内置(二进制)发行版 create a built (binary) distributionbdist_dumb       创建一个“哑”构建的发行版 create a "dumb" built distributionbdist_rpm        创建一个RPM发行版 create an RPM distributionbdist_wininst    为MS Windows创建可执行安装程序 create an executable installer for MS Windowscheck            对包执行一些检查 perform some checks on the packageupload           将二进制软件包上载到 PyPIupload binary package to PyPI

python调用例子

blink_led.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-import OPi.GPIO as GPIO
from time import sleep          # this lets us have a time delayGPIO.setboard(GPIO.PCPCPLUS)    # Orange Pi PC board
GPIO.setmode(GPIO.BOARD)        # set up BOARD BCM numbering
GPIO.setup(7, GPIO.OUT)         # set BCM7 (pin 26) as an output (LED)try:print ("Press CTRL+C to exit")while True:GPIO.output(7, 1)       # set port/pin value to 1/HIGH/Truesleep(0.1)GPIO.output(7, 0)       # set port/pin value to 0/LOW/Falsesleep(0.1)GPIO.output(7, 1)       # set port/pin value to 1/HIGH/Truesleep(0.1)GPIO.output(7, 0)       # set port/pin value to 0/LOW/Falsesleep(0.1)sleep(0.5)except KeyboardInterrupt:GPIO.output(7, 0)           # set port/pin value to 0/LOW/FalseGPIO.cleanup()              # Clean GPIOprint ("Bye.")

并测试针脚电压变化后的响应情况

# !/usr/bin/env python3import OPi.GPIO as GPIO #引入刚刚我们安装的GPIO包
import timetouchPin = 5 #测试的针脚# 定义一个回调函数,当检测到指定口的电压出现变化时触发
def getResonse(self):print("getResonse")if GPIO.input(touchPin)==1:print("Rising")else:print("Falling")GPIO.setboard(GPIO.LITE2) #指定开发板型号
GPIO.setmode(GPIO.BOARD) #指定使用 BOARD 编号系统
GPIO.setup(touchPin, GPIO.IN) #设置为输入模式GPIO.add_event_detect(touchPin,GPIO.BOTH,callback=getResonse,bouncetime=300)  #注册一个检测电压改变事件print('开始检测')#开启循环防止进程结束
runTime=0
while True:time.sleep(4)  ##进行挂起4秒print("running")runTime=runTime+1if runTime>5:breakGPIO.cleanup() #脚本结束后进行清理
print('Finish')

例子:mode_soc.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-import OPi.GPIO as GPIO
from time import sleep          # this lets us have a time delayGPIO.setboard(GPIO.ZERO)        # Orange Pi Zero board
GPIO.setmode(GPIO.SOC)          # set up SOC numberingsled = GPIO.PA+17               # Status led is on PA17
GPIO.setup(sled, GPIO.OUT)      # set PA17 as an output (Status led of board)try:while True:GPIO.output(sled, 1)        # set port/pin value to 1/HIGH/Truesleep(0.1)GPIO.output(sled, 0)        # set port/pin value to 0/LOW/Falsesleep(0.1)GPIO.output(sled, 1)        # set port/pin value to 1/HIGH/Truesleep(0.1)GPIO.output(sled, 0)        # set port/pin value to 0/LOW/Falsesleep(0.5)except KeyboardInterrupt:GPIO.output(sled, 0)GPIO.cleanup()                # clean up after yourselfprint ("Bye.")

例子:opi_func.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-import OPi.GPIO as GPIO
from time import sleepGPIO.setboard(GPIO.ZERO)
GPIO.setmode(GPIO.BOARD)print(GPIO.gpio_function(3))
sleep(0.1)
GPIO.setup(3, GPIO.IN)
sleep(0.1)
print(GPIO.gpio_function(3))
sleep(0.1)
GPIO.cleanup()

例子:pull_up_down.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-import OPi.GPIO as GPIO
from time import sleep          # this lets us have a time delayGPIO.setboard(GPIO.ZERO)        # Orange Pi Zero board
GPIO.setmode(GPIO.BOARD)        # set up BOARD GPIO numbering
GPIO.setup(15, GPIO.IN, pull_up_down=GPIO.PUD_OFF)    # set pin 15 as input (button)
GPIO.setup(11, GPIO.OUT)        # set pin 11 as an output (LED)try:while True:                 # this will carry on until you hit CTRL+Cif GPIO.input(15):      # if pin 15 == 1print "Port 15 is 1/HIGH/True - LED ON"GPIO.output(11, 1)  # set port/pin value to 1/HIGH/Trueelse:print "Port 15 is 0/LOW/False - LED OFF"GPIO.output(11, 0)  # set port/pin value to 0/LOW/Falsesleep(0.1)              # wait 0.1 secondsfinally:                        # this block will run no matter how the try block exitsprint("Finally")GPIO.output(11, 0)GPIO.cleanup()              # clean up after yourself

例子:pwm_dutycycle.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-import OPi.GPIO as GPIO
from time import sleepGPIO.setboard(GPIO.ZERO)
GPIO.setmode(GPIO.BOARD)    # set up BOARD BCM numbering
GPIO.setup(26, GPIO.OUT)    # set pin 26 as an output (LED)p = GPIO.PWM(26, 10)        # new PWM on channel=26 frequency=10Hz
p.start(0)
try:while 1:for dc in range(0, 101, 5):p.ChangeDutyCycle(dc)sleep(0.1)for dc in range(100, -1, -5):p.ChangeDutyCycle(dc)sleep(0.1)
except KeyboardInterrupt:pass
p.stop()
GPIO.output(26, 0)
GPIO.cleanup()

例子:simple_pwm.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-import OPi.GPIO as GPIO
from time import sleepGPIO.setboard(GPIO.ZERO)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(26, GPIO.OUT)p = GPIO.PWM(26, 0.5)               # channel=26 frequency=0.5Hz
p.start(1)
raw_input('Press return to stop:')  # use input for Python 3
p.stop()
GPIO.cleanup()

Orangepi 香橙派 wiringOP 安装 OrangePi.GPIO 安装相关推荐

  1. Orangepi 香橙派 armbianp与opencv Python3安装

    Orangepi 香橙派 armbianp与opencv Python3安装使用 0.关机与重启命令 1.安装armbian 2.烧写系统 3.初始化系统 4.更换清华大学源 5.armbian-co ...

  2. Python控制Linux(OrangePi 香橙派) GPIO (wiringOP + OPi.GPIO)

    1. 安装wiringOP 官方教程如下图: 上面的Linux 终端命令在这里: //下载 wiringOP 的代码 root@orangepi:~# apt update root@orangepi ...

  3. Orangepi 香橙派 安装 Debian 系统 并且 安装 wxpy (微信机器人) 入坑记录

    硬件准备:Orangepi-PC 香橙派 (早期的型号,1G RAM ,资源还是很丰富的) 软件准备:Debian_jessie_mini.img (来自官网的系统),SecureCRT 一.安装De ...

  4. 【踩坑日记 · 嵌入式 Linux】在香橙派 Zero 2 上编译安装 CH340 驱动(OrangePi Zero 2)

    前言 最近想尝试在 Linux 下编写和烧录 51 单片机程序,需要用到 CH340 模块,但是香橙派 Zero 2 没有预装它的驱动,所以需要下载 CH340 驱动的源码手动编译安装.在这里记录一下 ...

  5. 香橙派armbian的chromium浏览器安装flash播放器

    购买了一块香橙派PC plus的板子,刷了官方armbian系统,发现不能播放flash,提示要安装插件,下载安装了adobe的flash插件,仍然不行,在网上大量的搜索各种资料查看,自己再琢磨,终于 ...

  6. orangepi——香橙派使用初识

    特点:         CPU 全志H616四核64位1.5GHz高性能Cortex-A53处理器         GPU MaliG31MP2 SupportsOpenGLES1.0/2.0/3.2 ...

  7. Orangepi(香橙派)提高实时性

    Orangepi实时性能优化 提高实时性的方法 打内核 RT 补丁.使用 wiringpi 包 解决卡顿问题 使用 "isoclpus =xx" 禁用核心 解决卡顿问题 问题解析! ...

  8. 香橙派使用笔记(一)

    香橙派是什么? 香橙派是一款开源的单板电脑,使用的是全志的芯片,可以运行Android.debian.ubuntu等系统,同时兼容树莓派. 笔者使用的香橙派版本是Orangepi pc 2,1G内存, ...

  9. 香橙派orangepi查看 GPIO当前状态方法: 安装wiringOP

    树莓派orangepi查看GPIO当前状态 方法:安装GPIO库接口wiringpid,而香橙派orangepi跟树莓派的方法不一样,是用wiringOP, 而wiringOP是从wiringpi改造 ...

最新文章

  1. 【OpenCV】正确创建用于保存YUV420P格式的cv::Mat
  2. R语言使用ggplot2包使用geom_density()函数绘制分组密度图(分组拆分画板基于facet)实战(density plot)
  3. 网络推广外包关键词排名首页却无人访问很可能网络推广外包出现问题
  4. 《营销云价值解读与场景实践》白皮书重磅首发,加码企业数字化营销!
  5. 多路 IO 转接 :poll 函数
  6. MATLAB库函数polly2trellis(卷积码生成多项式转网格图描述)的实现过程详解
  7. shell除去重复的行——uniq命令
  8. c语言分量的运算符,C语言基础(04-运算符和表达式)
  9. 开学季|计算机专业的你看过来!
  10. 众推架构的进一步讨论
  11. 【java】简述CGLIB常用API
  12. Windows Server 2008更新后不断重启的问题
  13. 详解如何正确使用Tuxera NTFS For Mac软件
  14. 直播电商源码,无加密
  15. 常用css样式大全以及css属性代码大全
  16. 去除安卓apk中的广告
  17. SCI、EI论文框架
  18. 语音信号的基音参数提取
  19. Mac Book系统时间校准
  20. 原装Win8系统换win7系统(图文教程)

热门文章

  1. Linux学习03——管道符、重定向和环境变量
  2. es数据定时清理_一种基于ELK的数据自动清理方法与流程
  3. [转载]Ghost硬盘对拷图解教程(双硬盘克隆)_RWERWERWE_96921_新浪博客
  4. 手机尾号搜索表设计php,用正则表达式筛选特殊尾数的手机号码
  5. 学习CycleGAN-遇到的问题
  6. NTA PEG 异硫氰酸荧光素,NTA PEG FITC,Fluorescein-NTA
  7. Script标签6个属性
  8. 【论文速递】ACL 2021-CLEVE: 事件抽取的对比预训练
  9. 基于NFC的智能签到系统设计
  10. ERROR exceptions Error 111 connecting ERROR basehttp 124