13712浏览
查看: 13712|回复: 8

[教程] Mind+下的掌控板和micro:bit gamepad 遥控手柄通信的方法之一

[复制链接]
本帖最后由 Jacken 于 2019-4-20 16:25 编辑

Mind+下的掌控板和micro:bit gamepad 遥控手柄通信的方法之一图3

一、前言
      在研究一些关于多块micro:bit(下称bit)通信协作的项目时发现由于bit性能限制,一些功能无法更好的实现,手头上刚好有一块掌控板,了解到掌控板的性能会比bit高一点,所以萌生了将bit与掌控板进行通信协作,看是否能解决我项目中遇到的性能问题,说做就做~~找了下DF的掌控板教程,发现里面有一篇是关于互联网手表的教程,受此启发,就有了这篇成果,希望对小伙伴们有所帮助!



二、材料清单


我是借助DF的iot平台的,所以所需材料有:
Micro:bit gamepad 遥控手柄X1
Micro:bit主控板X2(一块用在micro:bit gamepad 遥控手柄上,一块用在Micro:Mate扩展板上做通信中转站)
Gravity: UART OBLOQ - IoT物联网模块X1
Micro:Mate扩展板X1(亦可用其他有排针的bit扩展板提代)
线材若干~

三、注册DF的IOT平台账号

1、打开IOT平台https://iot.dfrobot.com.cn/index.html ,通过右上角进行账号注册(有账号的直接登陆)

2、创建一个新的IOT设备,如下图:
Mind+下的掌控板和micro:bit gamepad 遥控手柄通信的方法之一图1Mind+下的掌控板和micro:bit gamepad 遥控手柄通信的方法之一图2


四、对micro:bit gamepad 遥控手柄编写脚本

micro:bit gamepad 遥控手柄需要和另一块作为通信中转站的bit板进行相互通信,所以这里需要打开bit的无线通信并设置相同信道(我这里设置为7)

1、建立bit板之间的通信:
Mind+下的掌控板和micro:bit gamepad 遥控手柄通信的方法之一图4

2、编写控制脚本,我这手柄上的脚本是用来控制小车的,这里我也使用了Mind多线程功能(这些不是本教程重点
其实很简单,就是你按下什么键,需要发送什么内容到通信中转站的bit上,编写进去即可~~
Mind+下的掌控板和micro:bit gamepad 遥控手柄通信的方法之一图5

3、编写完成,将程序上传到micro:bit gamepad 遥控手柄上的bit主控板中。

五、对通信中转站的bit编写脚本

1、将iot模块、bit主板和Micro:Mate扩展板进行连接~~如下图:
Mind+下的掌控板和micro:bit gamepad 遥控手柄通信的方法之一图6

2、与遥控手柄建立通信:
Mind+下的掌控板和micro:bit gamepad 遥控手柄通信的方法之一图7

3、从扩展的通信模块里添加QBLOQ物联网模块:
Mind+下的掌控板和micro:bit gamepad 遥控手柄通信的方法之一图9

4、对IOT模块进行初始化设置:(下图中的“引脚绿线和蓝线”的接口根据自己插的接口选择,最后的那个选择硬串口就可以~)
Mind+下的掌控板和micro:bit gamepad 遥控手柄通信的方法之一图19

敲黑板!!!
点开上图那个设置图标后,上面的WIFI就是填写你家wifi名称和密码就可以,不支持5Gwifi~~至于中文wifi名我就不知道能不能支持啦~~~
下方的物联网平台参数,是这样的:
上图的数字1、2、3的位置分别填写的是IOT平台刚创建的那个设备的topic、id和密码,对应位置如下图:
Mind+下的掌控板和micro:bit gamepad 遥控手柄通信的方法之一图8
在设置好iot参数后,千万千万不要去手痒痒点击上图左侧的“重新生成”,否则需要重新设置相应的id和密码~~

5、测试iot连接状态
设置好后,我们可以测试iot和平台的连接是否成功,在bit中写入下面这样的脚本,然后打开iot平台对应设备的“发送消息”就能看到最新消息~~
其实在iot连接成功后,其实在路由器的后台可以看到对应的设备~~
注意:经过测试,iot模块需要通过扩展板供电才能正常运转,连接成功后iot板子会显示绿灯,反之会显示红灯
Mind+下的掌控板和micro:bit gamepad 遥控手柄通信的方法之一图10
Mind+下的掌控板和micro:bit gamepad 遥控手柄通信的方法之一图11

6、编写通信中转信号处理
记得先删除刚才的测试脚本!!!
对于遥控手柄发送过来的信息,中转bit需要进行处理下才能发送到iot平台(因为我遥控手柄发送的是汉字信息所以需要处理,如果发送的是字母信息可以直接发送到iot平台。)经测试,DF的iot平台不支持接收中文(汉字)字符。
Mind+下的掌控板和micro:bit gamepad 遥控手柄通信的方法之一图12
7、将程序上传到通信中转站的bit上,并将其改为扩展板供电。

六、对掌控板进行编程


1、添加掌控板扩展和MQTT、WIFI扩展
Mind+下的掌控板和micro:bit gamepad 遥控手柄通信的方法之一图14
Mind+下的掌控板和micro:bit gamepad 遥控手柄通信的方法之一图13

2、这里需要分两步,第一步是将掌控板连接wifi~~第二步是通过MQTT服务将掌控板连接到IOT平台,具体看图:
Mind+下的掌控板和micro:bit gamepad 遥控手柄通信的方法之一图15
Mind+下的掌控板和micro:bit gamepad 遥控手柄通信的方法之一图16

上图的MQTT初始化参数设置详情请看下图:
下图中,物联网平台选择Easy Iot,id、密码和topic跟上面中转站的一样,填写编号对应位置的信息进去即可!

Mind+下的掌控板和micro:bit gamepad 遥控手柄通信的方法之一图17
Mind+下的掌控板和micro:bit gamepad 遥控手柄通信的方法之一图20

题外话:上方脚本多次出现“屏幕显示为全黑”这块指令,目的是清空屏幕内容~~

3、从iot平台读取消息,并处理
成功连接到iot平台后,掌控板屏幕会有提示~~接下来就是对消息进行接收和转化处理了~~脚本和前面通信中转站的发信脚本差不多。
Mind+下的掌控板和micro:bit gamepad 遥控手柄通信的方法之一图18

4、将程序上传到掌控板。

七、结语

      通过三块主控板的接力,我们实现了bit和掌控板之间的间接通信,在实际体验中,如果网络通畅的情况下,几乎感觉不到延迟。至于bit和掌控板通信后可以做啥~~那就留给大家去发挥啦!

八、提个建议

      micro:bit gamepad 遥控手柄如果可以增加几个排针接口,我相信遥控手柄的扩展性和可玩性将会提升超大一个档次!


截图201904201255443550.png

汤果  初级技神

发表于 2019-4-20 13:55:10

教程学习了!感觉如果有两块掌控板,应该也可以通过Easy IoT直接通信了呢!这样还可以省掉一块开发板
回复

使用道具 举报

Jacken  初级技师
 楼主|

发表于 2019-4-20 14:36:11

汤果 发表于 2019-4-20 13:55
教程学习了!感觉如果有两块掌控板,应该也可以通过Easy IoT直接通信了呢!这样还可以省掉一块开发板{:5_17 ...

对,如果有两个掌控板,直接一个接到遥控手柄上就可以了~~~就不需要这么麻烦了!主要是目前手头只有一块掌控板,才萌生了这么个想法
回复

使用道具 举报

sunkf  高级技师 来自手机

发表于 2019-4-20 18:12:29

Jacken 发表于 2019-4-20 13:40
一、前言
      在研究一些关于多块micro:bit(下称bit)通信协作的项目时发现由于bit性能限制,一些功能 ...

不错,有2块掌控就更加方便了
回复

使用道具 举报

gada888  版主

发表于 2019-4-23 15:04:00

可以弄一下遥控车了。
回复

使用道具 举报

gray6666  初级技神

发表于 2019-4-24 10:14:50

高大上,学习了。。。。。。。
回复

使用道具 举报

zzy  见习技师

发表于 2019-4-24 13:01:37

学习了
回复

使用道具 举报

Mary  高级技师

发表于 2022-3-8 16:35:21

受教了,谢谢这么详细的教程。
回复

使用道具 举报

赤星三春牛!  初级技神

发表于 2022-3-8 21:15:10

学习了     
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail