铁路交通灯
铁路交通灯
时长
7个步骤,每个大约15-30分钟。
步骤 1:光传感器
我们将使用光传感器来检测火车是否经过。通过检测火车的阴影来达到这个目的。 让我们先将下面的代码下载到我们的micro:bit,探索光传感器的工作原理。
现在按下按钮A, micro:bit会显示一个数字。这个数字说明落在LED屏幕上的光量(是的,LED屏幕也可以用来检测光)。如果你收到的数字是255或0,这就说明光传感器正在初始化,因此你需要再次按下按钮A。
步骤 2:场景
注意:如果你没有一辆火车,你也可以用一辆车,甚至是用你的手来创造出一个影子。 检测一个影子可能有点难。为了成功检测影子,我们需要在火车的另一边放一盏明亮的台灯,台灯的高度不需要太高。一盏台灯就行。除此之外,我们并不想要太多来自其他光源的光,所以你可能需要关上窗帘或百叶窗以及使吸顶灯变暗。
现在,你可以看到火车的阴影足够大,可以将你的micro:bit放入其中。确保micro:bit平放在桌面上,并记录下在有阴影的地方和没有阴影的地方所测量到的光量。在亮处的光量应该是在暗处的2倍。
步骤 3: 检测火车
我们想在火车经过的时候,点亮micro:bit左上角的LED灯。为此,你需要选择一个阈值。这个值大概是在步骤2中你记录下的两个数字之间的一个数。例如,阴影处的亮度是20,亮处的亮度是60,那么你应该用40来作为阈值。
将下面的积木块添加到你的程序中,使micro:bit屏幕左上角的LED成为检测火车的指示灯。将40替换成你的阈值。
现在来试一试吧!如果即便是在没有火车经过情况下,LED也被点亮了,那么你应该试着降低一下你的阈值。如果当火车经过的时候,LED没有被点亮,那么你应该试着增加阈值。
注意:如果你无法使它可靠地运行,你可以继续下面的步骤,并用一个按钮关闭这个交通指示灯。
步骤 4:制作交通灯
我们需要以下材料来制作交通灯:
- 一块硬纸板(回收而来)
- 两颗红色的LED灯(最好是5mm,带有漫射光和较长的引脚)
- 一个大致匹配LED灯的3V的电阻
- 鳄鱼夹
- 胶水
- 胶布
这个视频展示了如何制作灯杆。
简单概括如下:
- 用硬纸板制作灯杆
- 在灯杆底部放置一个电阻,并在其上方并联两颗LED灯。这两颗LED灯放置的方向应该相反。
- 用鳄鱼夹来完成电路。
- 现在将电路连接到micro:bit上3V和GND的引脚。其中一颗LED灯现在应该被点亮了。
- 将鳄鱼夹对调,则另一颗LED灯被点亮。
步骤 5:让交通灯闪烁
现在我们将给micro:bit编程,让LED灯闪烁起来,就像一个铁路交通灯一样。为了达到这个目的,我们将把上一步中的LED灯连接到micro:bit上的引脚P1和P2。
通过给其中一个引脚写入数字1,另一个引脚写入数字0(数字1代表3V,数字0代表GND),我们可以点亮其中一颗LED灯。通过将0和1对调,另一颗LED灯则会被点亮。现在用下面的程序来使LED灯不停地闪烁。
步骤 6:编程
为了制作一个安全铁路交通灯,我们想让交通灯在火车经过之后继续闪烁5次。这就意味着我们的程序需要记住还需要闪烁多少次。为了实现它,我们使用了一个叫做flashes_remaining
的变量。当检测到火车时,我们将这个变量设置成5,并且每次闪烁之后,我们将这个变量减1,直到它变成0,则闪烁停止。
我们也想在按钮B被按下的时候,手动关闭交通灯。首先,删除步骤5中的无限循环积木块。然后,添加下面的代码:
现在,当按钮B被按下,LED灯将会闪烁5次。你可以继续添加积木块到步骤3中的检测火车的程序,使LED灯在检测到火车的时候开始闪烁。
步骤 7:添加栅栏
制作栅栏,你需要:
- 一个SG90 9g舵机(夹有鳄鱼夹)
- 一根吸管(最好是白色的)
- 一些红色的胶布(做装饰)
操作指引
- 将舵机粘在灯杆上。
- 在舵机上方粘上一条硬纸板,将其固定住。
- 用胶布将吸管站到舵机上。
- 将下面的指导代码添加到你的程序的右侧。
- 将舵机连接到micro:bit上3V,GND和P0引脚,正如仿真器上所示的一样。
开启栅栏
关闭栅栏
祝你好运,玩得愉快!
关于作者
这个项目的作者是Johan Gorter @JohanGorter。