1. 首先给大家介绍一下什么是RPi.GPIO.
简单去讲,RPi.GPIO就是一个运行在树莓派开发板上可以通过Python去控制GPIO的一个中间件。
现在我这边做了一个基础功能的移植,接下来大家可以跟着我去学习一下RPi.GPIO是如何通过Python去实现控制开发板上的GPIO的。
2. 看一下效果图:
2.1 硬件实物运行效果
2.2 执行Python脚本打印的log
3. 那么RPi.GPIO在R2上是如何使用的呢?
3.1 首先在R2上面运行一个Ubuntu镜像,然后下载代码:git clone https://github.com/BPI-SINOVOIP/RPi.GPIO
这里如果不清楚如何安装一个Ubuntu镜像到R2,欢迎留言。3.2 安装Python环境
1 sudo apt-get update2 sudo apt-get install python-dev python3-dev3.3 安装中间件
sudo python setup.py install 或者是 sudo python3 setup.py install 来安装(前者是使用Python2.X,后者是Python3.X)安装参考:http://wiki.banana-pi.org/Getting_Started_with_R2#Install_RPi.GPIO(偷偷告诉你们这个wiki我也在维护哦,欢迎大家留言提建议)
3.4 安装完成后进入到R2 Ubuntu下的路径:cd /usr/local/bin,你会发现有个g40.py的python文件,我们可以打开简单看一下(这里代码的注释,是我加的,目的是为了让大家更好理解这段Python程序):
#!/usr/bin/pythonimport RPi.GPIO as GPIO #这里导入RPi.GPIO模块,重命名为GPIOimport time #为了方便理解import xxx, 大家可以当作是C语言的#include xxx.h
#定义两组要控制的Led GPIO pin数组phy_led2 = [8, 10, 12, 16, 18, 22, 24, 26, 28, 32, 36, 38, 40, 37, 35, 33, 31, 29, 27, 23, 21, 19, 15, 13, 11, 7, 5, 3];phy_led = [8, 10, 12, 16, 18, 22, 24, 26, 32, 36, 38, 40, 37, 35, 33, 31, 29, 23, 21, 19, 15, 13, 11, 7, 5, 3];print \'Pi Board Information\'print \'---------------------\'
#这里是一个for循环, 从GPIO.RPI_INFO.items里面读取数据,并打印出来
for key,val in GPIO.RPI_INFO.items(): print \'%s = %s\'%(key,val)
#读取键盘输入response = raw_input(\'\\nIs this board info correct (y/n) ? \').upper()
#调用GPIO.setmode方法,并传入参数GPIO.BOARD
#(这里大家肯定看得一愣一愣的,这些GPIO.XXX方法,参数究竟是在哪里定义的,不要急,后面就会介绍)GPIO.setmode(GPIO.BOARD)
#读取phy_led数组,并调用GPIO.setup方法,传入参数pin和GPIO.OUTfor pin in phy_led: print pin, \"GPIO.setup GPIO.OUT\" GPIO.setup(pin, GPIO.OUT)
#这里是一个死循环,意思就是设置GPIO循环输出高低电平不断打开,关闭LEDwhile True: for pin in phy_led: GPIO.output(pin, True) print \'on \', pin time.sleep(.1) for pin in phy_led: GPIO.output(pin, False) print \'off \',pin time.sleep(.1)