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. kali linux安装ftp服务,CentOS7安装和配置FTP
  2. snort完整安装(snort-2.8.3.1)
  3. linux 服务器拦截http请求,详解Linux屏蔽浏览器上http请求警报的方法
  4. Spring MVC 向页面传值-Map、Model和ModelMap
  5. android jni 调用java_Android 基于NDK的JNI开发 C调用java和java调用C
  6. 什么才算是“真正的”编程能力?不提升这些能力,你何时能拿高薪!
  7. 一张小柴胡汤打天下- 四川名医马有度
  8. ftp主动和被动模式_ftp协议,深入理解ftp协议只需3步
  9. SQL Server与Oracle对比学习:权限管理(一)
  10. STEP 7新建梯形图程序,S7-plcsim使用
  11. 彻底禁止Win10自动更新工具Windows Update Blocker v1.5 汉化版
  12. 计算机的网络命令大全,windows常用网络命令图文详解
  13. java省市县级联查询
  14. 第188篇,想赚钱唯有只争朝夕(扶摇生财思维)
  15. 18款表白源码,搭建网站必备,总有一款适合你
  16. win7如何设置wifi热点_mac如何共享网络?mac怎么建立wifi热点?
  17. 联想最小的计算机,联想开卖全球首款5G笔记本电脑,搭载业界最小5G模块
  18. 【神经网络+数学】——(4)神经网络求解二元偏微分问题(二阶偏微分)
  19. 2018年常用的7款Java框架
  20. 口袋网咖已有服务器在使用怎么注销,口袋网咖_口袋网咖常见问题_口袋网咖专区...

热门文章

  1. Android WiFi之SoftAP
  2. Iphone 官方的开发指南
  3. 问题解决:WiFi链接之后显示不出附近的网络
  4. 苹果开发者账号renew时出现“请输入有效的11位数字手机号码,或者包含区号的11位或12位数字座机号码”
  5. python编写程序模拟硬币投掷,模拟掷硬币实验RealPython
  6. C语言PAT刷题 - 1032 挖掘机技术哪家强
  7. MouseWithoutBorders 无界鼠标
  8. 删除Word中分节符
  9. excel VBA自动化 - 固定格式报表的自动处理
  10. Hive UDAF开发详解