1963| 0
|
第10课.拔河比赛 |
10.拔河比赛 星火课程团队 欢迎来到树莓派课堂。拔河比赛是我们经常玩的一个体育项目,人数相等的双方对拉一根粗绳以比较力量的对抗性,这个比赛既是双方的力量对决也是双方合作默契的对决,这节课我们就借助灯带模拟一下拔河比赛。 知识点: 1.临界值 2.函数的使用 所需硬件: 树莓派主板、古德微扩展板、灯带 1.临界值 首先我们来了解一下什么是临界值。临界值是指物体从一种物理状态转变到另外一种物理状态时,某一物理量所要满足的条件,相当于数学中常说的驻点。 在编程时往往需要注意临界值,并加以处理。简单来说我们可以把临界值看作一个触发条件,当达到临界值时,可能需要做一些特殊的处理。 比如说,在我们用灯带制作的拔河比赛中,临界状态是指以一种颜色完全点亮灯带时,另一种颜色开始覆盖前一种颜色并逐个点亮灯带,两种颜色互换时便是我们这个程序的临界值,我们用“加减转换标志”来表示临界值。 2. 设计原理 需要控制的LED灯的个数为目标最大值,比赛的红蓝双方以“目标位置”为界左边靠近输入端的是红灯,靠近输出端的是蓝灯,如果目标位置小于目标最大值那么继续向前依次点亮红灯,蓝色的灯逐渐被红色的灯取代,如果目标位置等于目标最大值达到临界值即此时灯带全部显示红灯,那么从目标最大值开始依次向前点亮蓝色的灯,红色的灯逐渐被蓝色的灯取代。 3. 硬件连接 灯带连接到扩展板18号接口 4. 编写程序 首先新建变量“目标位置”、“目标最大值”和“加减转换标志”,并分别赋值“目标位置”、“目标最大值”为0和60。初始化灯带,首先判断是否处于临界状态,如果“目标位置”等于0赋值“加减转换标志”为1,如果“目标位置”等于“目标最大值”赋值“加减转换标志”为0。如果“加减转换标志”为1,赋值“目标位置”等于“目标位置”加1,灯带从0到“目标位置”点亮红色,从“目标位置”到“目标最大值”点亮蓝色,否则赋值“目标位置”等于“目标位置”减1,灯带从0到“目标位置”点亮红色,从“目标位置”到“目标最大值”点亮蓝色。 首先找到函数模块,函数有两种: 1无返回值函数 2有返回值函数 本课我们使用第一种无返回值函数,将函数积木拖拽到编辑区,重新命名函数名,我们在命名函数时,需要注意做到函数名尽可能要“见文知义”。在本课中函数时用来控制灯带的,所以我们起名为“灯带控制”。此时在函数模块中出现了“灯带控制”积木, 把之前程序中重复的部分拖到“灯带控制”函数中,删除原程序中的程序段,把“灯带控制”积木拖入到程序中,主程序是不是简单了许多呢? 大家看一下我们的主程序能否继续利用函数瘦身呢?聪明的你可能已将有答案了,没错,我们还可以对红框部分利用函数把主程序继续简化。 新建一个函数名为“更新目标位置”把更新目标位置的程序拖进去,在主程序中使用“更新目标位置”积木。具体程序如下: 我们用灯带模拟的拔河比赛是两队都一输输到底的情况,如果要在开始端和结束端个保留一个灯,该如何编写程序呢?聪明的你赶紧挑战一下吧,以下是参考程序,这节到这里,下节再见。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed