第九章 2.4G通信:Chapter 9 of KitiBot for Micro:bit

第九章 2.4G通信

我们常用的对讲机就是2.4g的,2.4g是一种便宜而传播距离比较远的方案。如果要做这个2.4g实验,你需要两块Micro:bit,另外还需要Joystick for micro:bit遥控手柄扩展板。

首先添加radio软件包,注意2.4G和蓝牙不能一起使用,所以添加radio软件包后不能再添加bluetooth软件包


这次我们用的是的2.4g无线通讯积木块,实际2.4g这种高大上的功能,已经被简化成很简单的积木块。 主要分三类

发送积木块

接受积木块

初始化积木块

注意:相互之间通讯的板子,一定要设置到在一个无线组里面,不然没法收到。


第一节



一个Micro:bit按A键或者B键,对应另外一块板子就会显示A和B。

第二节


前面一节我们已经学会了如何使用2.4G通讯了,这一节我们来学习如何使用2.4G遥控机器人。我们使用Joystick for micro:bit遥控手柄扩展板来遥控机器人。Joystick for micro:bit是专为Micro:bit设计的游戏手柄扩展板,板载可充电电池,一个摇杆按键,四个彩色按键。

要使用Joystick for micro:bit首先需要添加WSJoyStick库,依次点击高级->添加包,或者点击齿轮->添加包。然后在弹出的对话框中,单击搜索框将网址:https://github.com/waveshare/JoyStick 复制进去


WSJoyStick可用的积木如下,JoyStickInit 为初始化积木,需要开机时调用这个积木才能识别按键状态。Key P Press积木为判断按键是否按下,DIR dir NONE 积木为判断摇杆的方向。


下面我们写Joystick的发送程序。在前一节程序的基础上修改,将不需要的部分取电,开机时添加JoyStick初始化积木。在无限循环中添加判断摇杆方向是否为向上,如果为向上则发送字符串“U”,同时点阵屏显示向上的图标。

这里需要注意的是,程序用“如果为...执行...”循环积木判断摇杆方向为向上。这样的目的是为了等待按键松开,如果松开则发送字符串“N”,同时清除点阵屏幕。以为我们只需要摇杆按下时只需发一次信息,松开时再发一次信息。如果不添加等待积木就会是按下按下时不断的发送信息。



同理其他按键也是类似的操作。


摇杆按键,向上,向下,向左,向右分别发送字符"U","D","L","R".当摇杆按键松开时发送字符“N”。

下面我们来写机器人的接收程序。接收程序就比较简单了,当接受到字符时根据字符控制机器人做出相应的动作。"U","D","L","R"分别控制机器人前进,后退,左转,右转。当接收到“N”时停止转动。


第三节

添加舵机控制

发送程序,添加右边四个彩色按键控制,当按键按下时,分别发送“1”,“2”“3”“4”,按键松开时发送“N”。



接收程序和蓝牙控制程序类似,添加step变量表示转动角度,pos变量表示当前角度。当step不为0时,表示有按键按下,改变舵机角度pos并转动到对应的位置。当step不为0时表示按键松开,停止转动。


第四节

添加RGB LED控制,

发送程序不需修改,只是在接收程序中添加RGB LED控制即可。

程序和蓝牙控制程序类似,只是接收的信号改为2.4G而已。


第五节

添加姿态控制。

前面几节都是通过按键遥控,按键按下是时通过2.4G发送信号控制机器人。从传感器一节我们已经知道micro:bit 板子上集成了加速度计,可以识别micro:bit的姿态。我们可以利用加速度传感器不需要按键就可以控制机器人运动了。

接收程序不需要修改,只需要在发送程序添加上姿态控制就可以了。


当Jostick中的micro:bit倾斜时,机器人会沿倾斜的方向运动,micro:bit水平状态时,小车停止。