Python编程控制GPIO
Python是一种非常简单易学,但又非常强大的编程语言,拥有高效的高级数据结构,且能够用简单而又高效的方式进行面向对象编程。
接下来将介绍如何使用Python访问pcDuino8 Uno上的GPIO接口。具体步骤如下:
1. 安装基本的Python包
进入Ubuntu系统,打开Linux终端,系统默认安装了Python,但还需要安装如下的一些包:
$ sudo apt-get install python-requests #安装Request
$ sudo apt-get install python-dev IPython #安装python-dev 和IPython
$ sudo apt-get install python-pip #安装python-pip
$ sudo pip install pip --upgrade #升级pip
$ sudo pip install flask #安装Flask
2. 下载支持pcDuino的Python测试环境
$ git clone https://github.com/pcduino/python-pcduino.git #下载python测试环境。
3. 测试GPIO
$ cd python-pcduino
$ python python-pcduino/Samples/blink_led/blink_led.py # 测试 pcDuino8 Uno上LED7。
查看图中 LED7 是否在闪烁!
4. 查看 blink_led 的 Python 代码
#!/usr/bin/env python
# blink_led.py
# gpio test code for pcduino ( http://www.pcduino.com )
#
import gpio
import time
led_pin = "gpio18"
#定义ms延时
def delay(ms):
time.sleep(1.0*ms/1000)
#设置GPIO为输出
def setup():
gpio.pinMode(led_pin, gpio.OUTPUT)
#循环运行
def loop():
while(1):
gpio.digitalWrite(led_pin, gpio.HIGH)
delay(200)
gpio.digitalWrite(led_pin, gpio.LOW)
delay(100)
def main():
setup()
loop()
main()
5. 实现按键控制LED灯
根据上面的Python代码进行修改,创建btn.py,用一个GPIO去控制LED的亮灭。
$ cd Samples/blink_led/
$ vim btn.py
源代码如下:
#!/usr/bin/env python
# blink_led.py
# gpio test code for pcduino ( http://www.pcduino.com )
#
import gpio
import time
led_pin = "gpio18"
btn_pin = "gpio0"
#定义ms延时
def delay(ms):
time.sleep(1.0*ms/1000)
#设置GPIO为输出
def setup():
gpio.pinMode(led_pin, gpio.OUTPUT)
gpio.pinMode(btn_pin, gpio.INPUT)
#循环运行
def loop():
while(1):
# 读取GPIO0的状态
if gpio.pinRead(btn_pin) :
gpio.digitalWrite(led_pin, gpio.HIGH) #灭灯
else :
gpio.digitalWrite(led_pin, gpio.LOW) #亮灯
def main():
setup()
loop()
main()
保存后运行:
$ python btn.py
根据上面的接口图,将GPIO0接地,查看LED7的状态;再将GPIO0接3.3V,查看LED7的状态,是否满足程序设计?