牟晓东
我们在使用电脑时,可以在播放音乐的同时进行文字编辑和PPT制作,其实这种同时运行多个软件的能力,就是系统的“多线程”——“并发执行”运行机制。它可以直接理解为“同时”、“并行”,多个线程任务同时在运行但相互间几乎没有干扰。几乎所有的编程语言都提供有“多线程”编程方式,比如在Python中是通过threading模块来创建线程和调用方法来实现多线程的,但对于很多初学者(比如中学生)而言这是有一定难度的。如果用树莓派+古德微的“积木”图形化硬件编程的话,理解和使用起来就显得容易得多,而且可以解决许多单纯使用单线程较难解决的问题,在此以实现“不同频”闪烁LED灯阵和“双向”警报器为例。
一、 “不同频”闪烁LED灯阵
1. 实验目的及器材连接
通过多线程运行方式控制四支LED灯同时闪烁,但各自的频率不同:第一支亮0.1秒、再灭0.1秒,第二支亮0.2秒、再灭0.2秒,第三支亮0.5秒、再灭0.5秒,第四支亮1秒、再灭1秒。
先将古德微扩展板正确插入树莓派(注意四周均匀小心用力),再将红绿黄蓝四支异色LED灯分别插入到5号、6号、12号和16号插孔(注意LED灯的长脚为正极、短脚为负极),最后给树莓派通电启动系统。
2. 实验步骤
(1)在浏览器中访问古德微机器人平台(http://www.gdwrobot.cn),登录后点击“设备控制”进入“积木”编程界面并进行“连接设备”操作。
建立四个子线程,名称分别为LED5、LED6、LED12和LED16(注意既不能使用中文命名也区分英文大小写),分别对应四个同名的子函数,每个子函数分别控制对应的LED灯进行亮灭交替——通过设置不同的等待时间来实现不同的闪烁频率。各自的亮、灭等待时间分别为0.1秒、0.2秒、0.5