3.Micro:bit手柄控制

您当前位置: 首页 > Superkit积木套件 > 4.Python课程

3.Microbit手柄控制.rar  点击下载

学习目标 

本次课程我们主要学习如何通过Python编程实现,micro:bit手柄控制安保自动门。

积木搭建

积木搭建步骤详见资料中【组装课程】--安保自动门】的安装图纸或者积木安装画册。

电机接线

积木舵机接线插入Super:bit扩展板S1接口,舵机橙色接线插入S1的黄色引脚处。

如下图所示:

image.png

代码与解析

安保自动门的程序请详见.py文件。

image.png 

首先从microbit导入本节课需要用到的库:superbit用于superbit扩展板neopixel用于控制RGB灯;radio用于micro:bit的无线通讯功能。

 image.png

display.show(Image.HEART):在microbit点阵上显示爱心图案

np = neopixel.NeoPixel(pin12, 4)RGB灯初始化设置,一共有4RGB灯,连接在microbit主板的P12引脚上面(可查询硬件接口手册得知);

superbit.servo270(superbit.S1, 90):初始化舵机设置成90度;

radio.on():打开无线功能,因为无线功能比较耗电和占内存,所以默认关闭的,也可以使用radio.off()关闭无线功能;

radio.config(group=1):配置无线组=1,这样做其他设置了无线组=1microbit设备就可以互相通讯了,默认是0,可以选择的组为0~255,设置的组值需要与手柄设置的一致,否则无法正常通讯;

superbit.servo270(superbit.S1, 90):初始化使得舵机转动到90°,也就是开门。

image.png

....

主循环中判断变脸王接收到手柄发送的命令,控制变脸王的运动状态以及RGB灯的颜色。

incoming = radio.receive():接收无线传输过来的数据,并且保存到incoming变量中;如果incoming‘up’则让变脸王面罩打开‘down’则让变脸王面罩闭合;如果incomingleft则让点阵显示鸭子的图案right则让点阵显示奶牛的图案

如果incoming‘R’则车RGB亮红灯‘G’则让车RGB亮绿灯,‘B’让车RGB亮蓝灯,‘Y’则车RGB亮黄灯。

注意:

incoming的值需要与手柄发送的值对应,只有相同的值才可以接收并执行命令。 

手柄的程序请详见.py文件。

image.png 

首先从microbit导入本节课需要用到的库:ghanle用于micro:bit手; radio用于micro:bit的无线通讯功能。

image.png 

display.show(Image.HEART):在microbit点阵上显示爱心图案

radio.on():打开无线功能,因为无线功能比较耗电和占内存,所以默认关闭的,也可以使用radio.off()关闭无线功能;

radio.config(group=1):配置无线组=1,这样做其他设置了无线组=1microbit设备就可以互相通讯了,默认是0,可以选择的组为0~255,设置的组值需要与手柄设置的一致,否则无法正常通讯;

image.png 

如果检测ghandle.rocker(ghandle.up)True,则表示手柄的摇杆往上推,让无线发送‘up’命令,并且显示一个向上的图标;

如果检测ghandle.rocker(ghandle.down)True,则表示手柄的摇杆往下推,让无线发送‘down’命令,并且显示一个向下的图标;

如果检测ghandle.rocker(ghandle.left)True,则表示手柄的摇杆往左推,让无线发送‘left’命令,并且显示一个向左的图标; 

如果检测ghandle.rocker(ghandle.right)True,则表示手柄的摇杆往右推,让无线发送‘right’命令,并且显示一个向右的图标;

如果检测ghandle.rocker(ghandle. pressed)True,则表示手柄的摇杆被按下,让无线发送‘pressed’命令,并且显示‘X’图标;

遥控没有操作发送‘stop’并清除显示;

image.png 

接下来检测按键,对应B1(红色),B2(绿色),B3(蓝色),B4(黄色)发送R’,‘G’,‘B’,‘Y’命令。

编写及下载程序


1.打开Mu软件,在编辑窗口输入代码注意!所有的英文与符号都应该在英文状态下输入,使用Tab键(制表键)进行缩进,最后一行以空白程序结尾。

2.点击大拇指‘Check’按钮,检查一下我们的代码是否有错误。如果某一行出现光标或者下划线,表示语法错误,请检查并修改,如果没有错误,左下方会提示检测没有问题。

image.pngimage.png 

3.点击‘REPL’按钮,检查是否下载了Superbit 库,如果没有请参考课前准备-->Python编程环境介绍】-->添加Superbit Python库文件】

image.png 

4.程序编写完成之后,用microUSB数据线连接电脑和microbit主板,请点击‘Flash’按钮,将程序下载到micro:bit主板上。需要再次点击‘REPL’按钮关闭导入库文件功能,才可以正常下载程序)。

image.png 

5.如果出现下载失败的问题,请确认microbit是否通过microUSB数据线与电脑正常连接,并且已经导入SuperbitPython

实验现象

将手柄的程序.py文件需要下载到手柄的micro:bit主板上。打开安保自动门的电源开关,我们可以看到micro:bit点阵上显示一个笑脸图案;

将安保自动门的程序.py文件需要下载到安保自动门的micro:bit主板上。打开手柄的电源开关,我们可以看到micro:bit点阵上会初始化显示一个爱心图案,然后会清除显示,表示手柄处于默认状态没有发送任何数据。

两者会自动完成配对,接下来我们就可以开始遥控安保自动门了。

手柄功能如下所示。

image.png