8. 案例06 蓝牙控制#

基于motor:bit小车,使用手持移动设备通过蓝牙操控小车前进后退转弯。

8.1. 使用材料#


  • 1 x motor:bit套件

  • 1 x bitty controller

8.2. 背景知识#


  • 蓝牙( Bluetooth® ):是一种无线技术标准,可实现固定设备、移动设备和楼宇个人域网之间的短距离数据交换(使用2.4—2.485GHz的ISM波段的UHF无线电波),蓝牙可连接多个设备,克服了数据同步的难题。

  • Bittysoftware:提供与BBC micro:bit等设备配合使用的智能手机应用程序及工具。

蓝牙事件信息#

每从蓝牙接收到一条数据会引发一个事件,根据事件信息表来判断发生事件后如何处理。

事件分为事件发生来源,和事件值。需要根据事件来源获取事件,根据事件值判断发生了什么事件。

下图为D-Pad控制手柄事件表。

../../_images/hrxqpWo.jpg

8.3. 软件环境#


  • 使用任意一款常用浏览器打开微软Makecode在线积木块编程。

8.4. 操作步骤#


步骤 1:准备APP#

  1. 安卓设备:在Google play下载bitty controller应用软件;

../../_images/G5QfQbn.jpg

  1. IOS 设备:在 APP store 下载bitty controller应用软件。

../../_images/TMzv3zK.png

  • APP界面如图所示:

../../_images/ZvHqv7T.png

注意: 因IOS系统限制,在IOS系统下连接蓝牙需要使用其他软件。

请参见:《IOS系统下连接micro:bit操作手册》

步骤2:设置蓝牙模式#

开启micro:bit的蓝牙模式,需要同时按下按键A+B然后按一下reset键,5X5点阵会显示 PAIRING MODE! 和一个特殊符号,特殊符号每个microbit都不同,为蓝牙的特殊标识符。

../../_images/ceES90z.jpg

在IOS设备或者Android设备配对连接蓝牙后,micro:bit点阵显示屏显示一个对勾√。

../../_images/5luUYc7.jpg

步骤3:添加Package#

在MakeCode的代码抽屉中点击高级,查看更多代码选项。

../../_images/motor_bit_case_01.png

为了给蓝牙和Robit编程,我们需要添加一个代码库。在代码抽屉底部找到“扩展”,并点击它。这时会弹出一个对话框。搜索“bluetooth”和“motorbit”,然后点击下载这两个代码库。

../../_images/motor_bit_case_02.png

../../_images/motor_bit_case_06_03.png

注意:如果你得到一个提示说一些代码库因为不兼容的原因将被删除,你可以根据提示继续操作,或者在项目菜单栏里面新建一个项目。

步骤4:编写积木块程序#

初始化时显示EF-motorbit标题,在蓝牙连接时在点阵LED显示T,断开蓝牙连接显示F。

同时为了防止误操作导致不良后果,在蓝牙连接和断开的时候设置电机转速为0。

../../_images/motor_bit_case_06_04.png

设置事件发生积木块,事件发生来源为MES_DPAD_CONTROLLER_ID,也就是手机APP的手柄控制板。

事件信息为MICROBIT_EVT_ANY,获取所有信息。

如果事件信息为MES_DPAD_BUTTON_A_DOWN,查询蓝牙事件信息表,得知信息为左方向键上箭头按下,故设置运行状态为1(前进状态),同时设置左右轮电机全速前进。

如果信息事件为MES_DPAD_BUTTON_A_UP,查询蓝牙事件信息表,得知信息为左方向键上箭头抬起,故设置运行状态为0(停止状态),同时设置左右轮电机全部停止。

../../_images/motor_bit_case_06_05.png

在flag为1前进状态下的时候,如果事件信息为MES_DPAD_BUTTON_3_DOWN,查询蓝牙事件信息表,得知信息为右方向键右按钮按下,故右转

在flag为1前进状态下的时候,如果事件信息为MES_DPAD_BUTTON_4_DOWN,查询蓝牙事件信息表,得知信息为右方向键左按钮按下,故左转。

如果在flag为1前进状态下的时候,收到的事件信息不为以上两种,则设置速度为100全速前进。

../../_images/motor_bit_case_06_06.png

步骤5:蓝牙连接#

将micro:bit设置为蓝牙模式后,连接蓝牙,在APP中点击scan获取micro:bit板。

../../_images/rLS50GM.png

点击获取到的micro:bit板,进入手柄模式,如下图所示。

../../_images/gHhTTr9.png

尽情操控吧!

温馨提示: bitty controller详细操作请参考官方网站

程序#

请参考程序连接:https://makecode.microbit.org/_7iy1xf0jj83a

你也可以通过以下网页直接下载程序。

--- **注意:** 速度设计过低时可能影响电机转动。

8.5. 结论#


蓝牙连接点阵显示T,断开连接显示F。

控制板左方向键上按键控制小车前进,右方向键左右按键控制转向。

8.6. 思考#


如果要倒车和倒车时候左右转弯该如何编写代码?

8.7. 常见问题#