树莓派自定义“灯带函数”
2021-07-07牟晓东
牟晓东
眾所周知,函数是程序设计语言的“基石”,即“组织好的、可重复使用的、用来实现单一或相关功能的代码段”。Python本身提供了功能丰富的“内置函数”,可以在命令行模式中输入“dir (__builtins__)”命令进行查看,例如求绝对值函数、求最大值和最小值函数,还包括input输入和print输出函数等(如图1)。

此时,可以直接在命令行交互模式下使用内置函数,比如输入“abs(-7)”来求解-7的绝对值,回车后就会返回数值7;输入“max(0,6,-99,28)”求解四个数中的最大值,就会返回数值28。另外,Python还支持用户根据自己的不同需求进行自定义函数操作,比如编写一个能够同时求解二数之和、之差的函数sum_sub():
def sum_sub(a,b):
return(a+b,a-b)
输入“sum_sub(8,5)”进行测试,回车后就会返回两个结果:13和3(如图2)。

在开源硬件编程中使用Python可以灵活地控制各种周边硬件,从而实现更为丰富的功能。我们在树莓派中使用Python进行函数的自定义编写,控制灯带模仿现实生活中十字路口的红绿灯,分别是单函数“带参”的红绿灯带和双函数“无参”的红绿灯带。
1.准备工作
将可编程ws281x灯带通过古德微扩展板的18号接口与树莓派连接,注意灯带的三根引线分别标注+5V、GND和Din,不要接反。
在树莓派中通过Python编程控制灯带需要安装rpi_ws281x库模块,因此需要通过“Windows的远程桌面”连接树莓派。在控制终端命令行模式中输入命令:“sudo pip3 install rpi_ws281x adafruit-circuitpython-neopixel”,回车后等待进度条到达100%后会有“Successfully installed”的提示(如图3)。

2.Python单函数“带参”控制红绿灯带
(1)首先,以“ws”为别名导入rpi_ws281x库:“import rpi_ws281x as ws”,再导入time库中的sleep函数:“from time import sleep”;接着,设置灯带中激活的“灯珠”数量LED_COUNT值为60:“LED_COUNT = 60”,灯带接入的端口号LED_PIN是18号:“LED_PIN = 18”,并且创……
