学习目标
本次课程我们主要学习如何通过Python编程实现,当按下micro:bit A按键时,点阵显示门移动的方向(向左),蜂鸣器短鸣笛,安保自动门关闭;当按下micro:bit B按键时,点阵显示门移动的方向(向右),蜂鸣器短鸣笛,安保自动门打开。
积木搭建
积木搭建步骤详见资料中【组装课程】--【安保自动门】的安装图纸或者积木安装画册。
舵机接线
积木舵机接线插入Super:bit扩展板S1接口,舵机橙色接线插入S1的黄色引脚处。
如下图所示:
!注意事项:
第一次进行与积木舵机相关的课程时,我们需要先将舵机上的齿轮拆下,把本次课程的程序上传至micro:bit;然后打开Super:bit扩展板电源开关,等待积木舵机转至初始位置;接着,我们可以关闭电源,调整安保自动门处于打开状态,如下图所示,再装上舵机齿轮。(若之前已经使用过安保自动门与舵机相关程序,可跳过此步骤)
代码与解析
本次课程的程序如下图所示。
首先从microbit导入本节课需要用到的库:superbit库专用于superbit扩展板;music库用语播放音调。
superbit.servo270(superbit.S1, 90):初始化使得积木舵机转动到90°左右.也就是开门;
while True: 无限循环
display.show(Image.HEART) 点阵显示爱心图案
if button_a.is_pressed() is True and button_b.is_pressed() is False:
display.show(Image.ARROW_W)
music.play('B6:8')
superbit.servo270(superbit.S1, 0)
elif button_a.is_pressed() is False and button_b.is_pressed() is True:
display.show(Image.ARROW_E)
music.play('C3:4')
superbit.servo270(superbit.S1, 90)
在无限循环中判断microbit主板上的A,B按键是否被按下。当按下micro:bit A按键时,点阵显示门移动的方向(向左),蜂鸣器短鸣笛,安保自动门关闭;当按下micro:bit B按键时,点阵显示门移动的方向(向右),蜂鸣器短鸣笛,安保自动门打开。
编写及下载程序
1.打开Mu软件,在编辑窗口输入代码。注意!所有的英文与符号都应该在英文状态下输入,使用Tab键(制表键)进行缩进,最后一行以空白程序结尾。
2.点击大拇指‘Check’按钮,检查一下我们的代码是否有错误。如果某一行出现光标或者下划线,表示语法错误,请检查并修改,如果没有错误,左下方会提示检测没有问题。
3.点击‘REPL’按钮,检查是否下载了Superbit库,如果没有请参考【课前准备】-->【Python编程环境介绍】-->【添加Superbit Python库文件】。
4.程序编写完成之后,用microUSB数据线连接电脑和microbit主板,请点击‘Flash’按钮,将程序下载到micro:bit主板上。(需要再次点击‘REPL’按钮,关闭导入库文件功能,才可以正常下载程序)。
5.如果出现下载失败的问题,请确认microbit是否通过microUSB数据线与电脑正常连接,并且已经导入了Superbit的Python库。
实验现象
程序下载成功以后,micro:bit点阵会显示笑脸。打开电源开关,当按下micro:bit A按键时,点阵显示门移动的方向(向左),蜂鸣器短鸣笛,安保自动门关闭;当按下micro:bit B按键时,点阵显示门移动的方向(向右),蜂鸣器短鸣笛,安保自动门打开。
如果需要重新开始请按下micro:bit主板背后的复位键。