智能创客,中国最大的极客空间,智能平台,免费教学,视频教程,手把手教你创造儿时梦想!

标题: Raspberry Pi WiringPir/python的GPIO使用入门 [打印本页]

作者: znck007    时间: 2014-2-11 11:52
标题: Raspberry Pi WiringPir/python的GPIO使用入门

Raspberry Pi有许多的GPIO(General Purpose Input Output:通用输入/输出),可以用来控制和读取数字电路中TTL电平的逻辑0和逻辑


1。我们要使用RPi的GPIO首先要知其GPIO的定义,常用的有两种编号定义:WiringPi Pin和BCM GPIO。GPIO的驱动库我这里介绍两种给大家,一种为C语言的WiringPi,另一种为python的RPi.GPIO;实验中将使用这两种语言来教会大家使用GPIO。


本篇文章将通过2个小实验带你学习Raspberry Pi GPIO的简单使用步骤,一个是控制LED闪烁,另外一个是开关控制LED闪烁。


GPIO定义图解

GPIO编号图(请注意图中Revision 1/2 ):



2种不同编号的定义:



安装GPIO库

(1)更新源:

   $ sudo apt-get update

(2)安装python

   $ sudo apt-get install python-dev

(3)安装python-pippython-pip是一个可以替代easy_install的安装和管python软件包的工具)

$ sudo apt-get install python-pip

(4)利用pip安装rpi.gpio

$ sudo pip install rpi.gpio

测试安装成功:



(5)安装wringpi库:

安装git-core
$ sudo apt-get install git-core

载winringPi库
$ git clone git://git.drogon.net/wiringPi

编译和安装库 (在/wiringPi/examples目录中有一些例子可供大家参考)
$ cd wiringPi
$ ./build

另外大家可以使用下面的命令对库进行更新
$ cd wiringPi
$ git pull origin



器件清单

Raspberry Pi     x1

Linker led     x1

Linker button     x1

Wire     x5




实验一

----------接线图---------------





C语言示例
说明:使用wiringpi这个库,类似arduino的编程风格,代码设置的GPIO编号为wiringPi pin、如果你想使用BCM GPIO则可以将wiringPiSetup() 改为wiringPiSetupGpio(),那么对应的led_pin也需要改为BCM GPIO编号对应的GPIO,即GPIO24。
示例代码:
#include
#include
#include

int led_pin = 5;

int main ()
{
if (wiringPiSetup() == -1)
{
printf(“Setup wiringPi failed!”);
return 1;
}
printf(“linker_led pin : GPIO%d (wiringPi pin)”,led_pin);
pinMode(led_pin, OUTPUT); // set mode to output

while(1)
{
digitalWrite(led_pin, 1); // output a high level
delay(200);
digitalWrite(led_pin, 0); // output a low level
delay(200);
}

return 0;
}


1.新建一个.c文件写入示例代码、保存:$vi linker_led.c
2.编译代码:$ gcc linker_led.c -o linker_led -lwiringPi
3.运行代码:$sudo ./linker_led

python示例
说明:这里调用RPi.GPIO库,使用的GPIO编号为BCM GPIO、如果你想使用board GPIO则可以将GPIO.setmode(GPIO.BCM)改为GPIO.setmode(GPIO.BOARD),那么对应的led_pin也需要改为wiringPi pin编号对应的GPIO,即GPIO5。

python示例代码:

import RPi.GPIO as GPIO
import time

led_pin = 24

GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(led_pin,GPIO.OUT)

print “linker led pin 24 (BCM GPIO)”

while True:

        GPIO.output(led_pin,True)
        time.sleep(0.2)
       GPIO.output(led_pin,False)
       time.sleep(0.2)



新建一个.py文件写入示例代码、保存:$vi linker_led.py
运行代码:$sudo python linker_led.py

实验一运行效果图

LED OFF :

LED ON:

实验二

-----------接线图------------



C语言示例
说明:这个示例较实验一多增加一个GPIO,使用了读取GPIO状态的函数:digitalRead(pin_value)
示例代码:
#include

int button_pin = 4;
int led_pin = 5;

int main ()
{
printf(“wiringPi pin”);
printf(“linker_led pin : GPIO%d”,led_pin);
printf(“linker_button pin : GPIO%d”,button_pin);

if (wiringPiSetup() == -1)
{
printf(“Setup wiringPi failed!”);
return 1;
}

pinMode(led_pin, OUTPUT); // set linker_led mode to output
pinMode(button_pin, INPUT); // set linker_button mode to input
while(1)
{
if( digitalRead(button_pin) )
digitalWrite(led_pin, HIGH); // output a high level
else
digitalWrite(led_pin, LOW); // output a low level

}

return 0;
}



1.新建一个.c文件写入示例代码、保存:$vi linker_button.c
2.编译代码:$ gcc linker_button.c -o linker_button -lwiringPi
3.运行代码:$sudo ./linker_button


python示例
说明:这个示例较实验一多增加一个GPIO,使用了读取GPIO状态的函数:GPIO.input(pin_value)
示例代码:

import RPi.GPIO as GPIO

led_pin = 24
button_pin = 23

GPIO.setwarnings(False)
GPIO.setmode( GPIO.BCM )
GPIO.setup( led_pin,GPIO.OUT )
GPIO.setup( button_pin, GPIO.IN, pull_up_down=GPIO.PUD_UP)

print (“linke r_led pin 24 , linker_button pin 23 (BCM GPIO)”)

while True:
       if GPIO.input(button_pin):
                      GPIO.output(led_pin,True)
       else :
                     GPIO.output(led_pin,False)



1.新建一个.py文件写入示例代码、保存:$vi linker_button.py
2.运行代码:$sudo python linker_button.py

实验二运行效果图

没有按下按钮,LED处于熄灭状态:

按下按钮,LED处于点亮状态:




测试代码下载:


python-test

c-test



作者: sboct    时间: 2014-8-21 14:57
必须得顶呀!












童装采购www.tqh168.com童装货源
作者: 靓装冥神vkx    时间: 2014-8-23 11:10
选个好的 才有保证 这话没错












和面机 切菜机  碎菜机 绞菜机 面食加工机 切片切丝机 不锈钢绞菜机 不锈钢刹菜机 电动家用和面机 小型家庭专用切菜机 河北玖鹿贸易有限公司是炊事机械www.hbjiulu.com
作者: 靓装冥神vkx    时间: 2014-8-31 11:31
呵呵,不错












求购法桐树 www.zgcqmm.com  石家庄法国梧桐,  石家庄南洼法国梧桐,  中国常青园林绿化有限公司 绿化工程请联系中国常青园林
作者: kuosi188ks    时间: 2014-9-17 15:36
威尔顿P1/PPPPP/WFS/WF/KWF。威尔顿P1/PPPPP/WFS/WF/KWF技术参数

口径:1/2

最大流量:14.8GPM (56.1LPM)

最大工作压力:125PSI (8.6BAR)

接液部结构材质:聚丙烯、碳充乙缩醛、聚偏二氟乙烯、特氟龙PTFE

干吸:20 (6.1m)

可通过最大颗粒:1/16 (1.59mm)

弹性体:丁晴橡胶、聚氨脂、SaniFlexTM、氟化橡胶、Wil-FlexTM、特氟龙PTFE     

    美国WILDEN威尔顿气动隔膜泵

    塑料泵,金属泵系列。流量:0—1174升/每分钟

    接液部结构材质:

    PP聚丙烯、PVDF聚偏二氟乙烯、特氟龙、不锈钢材质、铸铁材质,铝合金材质,球墨铸铁材质、合金C材质等

    型号尺寸(进口尺寸):6mm(1/4”英寸)、13mm(1/2”英寸)、25mm(1”英寸)、38mm(1.5”英寸)、51mm(2”英寸)、76mm(3”英寸)、 102mm(4”英寸)

    最大吸程:9.6m

    隔膜片材质:

    丁晴橡胶、氯丁橡胶、聚氨脂、三元橡胶、SaniflexTM、特氟龙PTFE、Wil_FlexTM、氟化橡胶

     不平衡气阀的专利设计,不会停顿的不平衡活塞,绝没有死点。专利的加强筋设计,使WILDEN隔膜成为行业中寿命最长,耐温度最高的。

    采用压缩空气为动力源,输送各种腐蚀性液体,带颗粒的液体,高粘度、易挥发、易燃、剧**的液体。

    上海阔思电子有限公司常备WILDEN气动隔膜泵各类配件

作者: 善旦景oebys    时间: 2015-4-29 13:07
知道了 不错~~~











交友:我是个小女生,21岁,独生子女,还没谈过恋爱,长相较好,反正带出去不会给你丢脸,身高165cm,体重50kg,现在是一家公司的文员。希望找个比我大几岁的男生,不需要你有非常好的条件,但一定要有上进心,会体贴女生,不花心。因为我是第一次恋爱,所以希望找的就是那种能结婚的。如果你是我说的那个他,那就加我微信吧:pndrwx
作者: 博辉畅    时间: 2015-5-9 14:36
顶.支持,路过!
作者: 我哎你你说呢spa    时间: 2015-6-26 10:14
提示: 作者被禁止或删除 内容自动屏蔽
作者: 忐忐忑忑uzz    时间: 2015-6-30 15:33
提示: 作者被禁止或删除 内容自动屏蔽
作者: 闪电宝贝kkr    时间: 2015-7-2 23:10
空闲时间转点在.家 专..零 椛 銭 。有.兴.趣.加 扣945.199.839不限. 时 间,地.点, 在.校.生.和.上.班.族,妈.妈.们日 收五十到150, 宅在家对着电脑也是无聊!了 解 下 吧 不 吃 亏 哦~~~
作者: 我哎你你说呢rxh    时间: 2015-7-3 14:42
提示: 作者被禁止或删除 内容自动屏蔽
作者: 忐忐忑忑uzz    时间: 2015-7-4 15:05
提示: 作者被禁止或删除 内容自动屏蔽
作者: cmccu    时间: 2015-9-5 14:04
提示: 作者被禁止或删除 内容自动屏蔽
作者: tswtj    时间: 2015-10-28 19:21
提示: 作者被禁止或删除 内容自动屏蔽
作者: tswtj    时间: 2015-11-21 00:52
提示: 作者被禁止或删除 内容自动屏蔽
作者: nsebn    时间: 2016-1-17 02:10
谢谢你哦,你是最棒的













作者: nsebn    时间: 2016-2-5 04:10
不回不行了,因为楼猪太有才了。













作者: dpzkm    时间: 2016-2-22 13:28
好东西大家分享
作者: dpzkm    时间: 2016-2-26 01:06
谢谢楼主啊,受益匪浅啊!
作者: jackeyt    时间: 2016-3-2 14:21
楼主写得很用心啊。顶顶了!
作者: gdfcv    时间: 2016-3-8 00:57
真正可以破解成功的少妇聊天室 559912.com 复制地址! 祝各位兄弟玩得愉快。
我在的狼群都是一些资深的狼友,狼友们看了那位狼友的消息,看着大家的讨论,怎么获取免费聊天室账号,现在很寂寞,由于本人前段时间刚跟女友分手,晚上寂寞无比,不如去试试看。

这一试不要紧,试过后我现在还在回味,聊.天.室里的mm太开放了,黑丝少妇,萌妹子,御姐 ,年轻白领,我刚进去就被诱惑住了,呵呵! [随机标点]

我进去选定了一个美女主播就与他进行了视频,具体过程我就不说了.

真想体验那种刺激的话还是狼友自己去验证,你完全可以抱着一种试试的心理去体验。 [随机字符]

我就说到这里,好东西大家分享,!


作者: lk14d9    时间: 2016-3-19 22:40
提示: 作者被禁止或删除 内容自动屏蔽
作者: 飞珍非仓    时间: 2016-3-22 01:01
就是喜欢你的帖子 没办法
作者: iwdlw    时间: 2016-4-4 00:10
〓金牌-投票███扣扣:119209911 ███微信:13911679882(手机)如有网上投票刷票需求就到金牌微信投票公司,将提供专业服务。

作者: nkubf    时间: 2016-4-8 20:30
提示: 作者被禁止或删除 内容自动屏蔽
作者: qw23sw    时间: 2016-5-30 00:15
滴滴司机业务:
一,司机账号多开:同一驾驶证,行驶证,可以重复注册。
二,拒单器:一对一订单无限拒单 不掉指派 指派百分百。
三,多点定位,全方位抢单,全方位跑街,接长途单
四,抢单加速器。

请联系微信号:didididiche
请联系QQ号:2250585898












滴滴司机业务:
一,司机账号多开:同一驾驶证,行驶证,可以重复注册。
二,拒单器:一对一订单无限拒单 不掉指派 指派百分百。
三,多点定位,全方位抢单,全方位跑街,接长途单
四,抢单加速器。

请联系微信号:didididiche
请联系QQ号:2250585898

作者: dpzkm    时间: 2016-6-11 00:14
楼主你太好了.........
作者: dpzkm    时间: 2016-6-25 07:09
回复一下吧
作者: 碧宇岱或    时间: 2016-7-16 15:13
支持一下吧!













作者: fpyvnq    时间: 2016-9-16 08:30
不回不行了,因为楼猪太有才了。













作者: uu新天地50    时间: 2016-9-23 23:27
提示: 作者被禁止或删除 内容自动屏蔽
作者: 方重明    时间: 2016-10-1 12:40
真是好东西呀












某宝购买 视频教程 素材 软件 xiao视频 等资源  百度网盘免费下载   hao.wpan123.com
作者: 月夜之星642    时间: 2016-10-13 13:10
不错的~~! 感谢您提供













作者: 男人上031    时间: 2016-10-14 13:02
不错,支持下!













作者: 所有爱情都成    时间: 2016-10-19 08:06
楼主辛苦了,鼓励一下













作者: 男人上031    时间: 2016-10-20 11:20
不错不错!!













作者: xke瓯江帆影    时间: 2016-11-1 06:23
此帖必火!













作者: 郭燕玉640    时间: 2016-11-4 03:28
帮顶帮顶帮顶













作者: 草拟母oh    时间: 2016-11-6 00:27
谢谢提供,继续努力!













作者: 网络安全zu    时间: 2016-11-7 22:18
不错,看看。













作者: kjhhrnm    时间: 2016-11-9 17:27
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 智能创客,中国最大的极客空间,智能平台,免费教学,视频教程,手把手教你创造儿时梦想! (http://luntan.znck007.com/) Powered by Discuz! X3.2