python简介

python是一门编程语言,可以在linux、windows、MacOS等系统运行,关于Python的更多详细介绍请访问Python官网。Raspnerry pi也能运行python程序,而且提供了丰富的软件模块,可以调用这些模块快速实现你的项目。其中RPi.GPIO是控制GPIO的python软件包,在2015.05.27以后的Jessie版本Raspbian镜像中已经预安装了RPi.GPIO包,你可以直接使用,我们后续的课程中会用这个RPi.GPIO库对Raspberry pi GPIO编程,关于RPi.GPIO访问这里了解更多。

python IDLE

Raspian镜像已经预安装了python,而且有IDLE,IDLE是python集成开发环境,可以在里面编程程序,集成了很多功能,如调试、运行等。可以从桌面左上角的applications menu:处打开IDLE。

可以看到有两个版本python2和Python3,Python2是老版本,python3是新版本,推荐使用新版本,因为用Python3写的程序有些无法在Python2上运行。关于IDLE更多介绍请看这里

点亮LED

我们将在IDLE中编写一个Python程序控制LED闪烁。

1 )工作原理

将LED灯接到Raspberry Pi的一个GPIO口,程序向GPIO口写高低电平控制LED灯闪烁

2 )电路连接图

暂无

3 ) 打开IDLE,点击File->New File中打开一个新窗口

现在就可以在新打开的窗口中写代码

import RPi.GPIO as GPIO
import time

# set GPIO 0 as LED pin
LEDPIN = 17

import是python  as的关键字,表示导入RPi.GPIO作为Raspberry Pi的GPIO,import  time意思是导入time模块,程序中用到了time模块中的延时函数,所以需要导入。接着把LEDPIN定义为GPIO 0,也就是BCM编码的17,可以用 gpio readall命令查看这种编码方式对应的编号。

#print message at the begining ---custom function
def print_message():
    print ('|*********************************|')
    print ('|            blink LED            |')
    print ('|   -------------------------     |')
    print ('|      LED connect to GPIO        |')
    print ('|                                 |')
    print ('|      LED will blink at 500ms    |')
    print ('|   -------------------------     |')
    print ('|                                 |')
    print ('|                          OSOYOO |')
    print ('**********************************\n')
    print ('Program is running...')
    print ('Please press Ctrl+C to end the program...')

def表示定义一个函数,print_message是一个自定义(自己编写的)函数,这个函数在会向屏幕打印信息。关于如何定义函数请查看这里 了解更多信息。

#setup function for some setup---custom function
def setup():
    GPIO.setwarnings(False)
    #set the gpio modes to BCM numbering
    GPIO.setmode(GPIO.BCM)
    #set LedPin's mode to output,and initial level to LOW(0V)
    GPIO.setup(LEDPIN,GPIO.OUT,initial=GPIO.LOW)

GPIO.setmode(GPIO.BCM)函数设定GPIO为BCM编码方式编码方式;GPIO.setup(LedPin,GPIO.OUT,initial=GPIO.LOW)函数将LedPin设定为输出模式并且初始电平为低电平。

#main function
def main():
    #print info
    print_message()
    while True:
       GPIO.output(LEDPIN,GPIO.HIGH)
       print('...LED ON\n')
       time.sleep(0.5)
       
       GPIO.output(LEDPIN,GPIO.LOW)
       print('LED OFF...\n')
       time.sleep(0.5)
       pass
    pass

这是main函数,在main函数中将LEDPIN脚电平在高低电平之间来回切换,让LED闪烁,同时向 屏幕打印LED状态信息。

编写完程序按Ctrl+S保存,默认保存在/home/pi下,当然你可以修改成你想要的路径,按照文件名.后缀格式保存,文件随意命令,后缀要么.py要么是.pyw。例如下图中我把我的程序命名成了pythontest.py

完整的python远程代码可以运行下面的命令获取到

wget http://osoyoo.com/driver/pi3_start_learning_kit_lesson_4/pythontest.py

保存完成后按F5或点击Run->Run Module  F5就可以运行你的程序了

也可以在命令行运行下面命令运行代码

cd   ~

sudo  python  ./pythontest.py

运行上面命令执行程序,会看到LED不停闪烁,同时屏幕上打印出LED状态。