mblock是如何让Arduino工作的

lgmyxbjfu
发布于 2020-11-9 18:25
浏览
0收藏

从官网原版 DEMO 到 用熟悉的语言来写 DEMO ,如何用更容易让小朋友理解的方式来实现这个 DEMO 呢?今天开始陆续研究这整个过程如何实现。
在这之前了解过一些方案,例如 s4a 等一些其它方案,没有深入了解,从界面等方面来看基本都是基于 Scratch 2 来做的开发,Scratch 3 优化的更漂亮些来,有没有基于 Scratch 3 的解决方案呢?本文暂时以自己看到的内容加上自己的理解,后续按照实际的研究情况更新。

mblock是如何让Arduino工作的-鸿蒙开发者社区

mblock
无意之间发现了 mblock ,在 Scratch 的基础上做了一些二次开发,选择设备模块,然后基于设备定制了一些元素,方便用户更直接的使用设备。

 •  编辑器内选择设备 Arduino
 •  系统内安装 mlink 驱动程序
 •  启动 mlink
 •  编辑器内连接
 •  ☑️ 显示全部可连接设备
 •  选择设备端口 /dev/tty.usbmodem14101
 •  连接成功
 •  积木编程
 •  上传到设备

 

原理分析
它是如何工作的?为什么它通过访问网页版本,然后能直接将积木程序转换为可执行代码。
mlink 在这个过程中起到了关键性作用,本地启动的 mlink 是在本地起了一个 websocket 服务。

 •  在第四步中连接的时候实际上是建立了一个与 mlink 的服务连接 ws://127.0.0.1:55278/socket.io/?EIO=3&transport=websocket&sid=-XJBr-WPFDcGSJH6AAAF
 •  在选择设备前,一直在发心跳命令查询设备端口 getDevices
 •  选择设备端口以后,发送了一个 open 命令,这一步编辑器已经与 Arduino 建立了连接
 •  上传设备操作实际上是建立了一个 wss://arduinoserver.makeblock.com/socket.io/?EIO=3&transport=websocket&sid=xDKoLUykR3DtjL5DAG1O 连接,这一步具体做了什么?
 •  代码又是以什么形式上传到设备上去的?

 

这里还有一些疑问需要继续深入研究一下协议层面的内容

 

末了


大致有了想法,但是对于 mblock 的整个逻辑还是有一些没有理解到,还需要继续深入研究一下才能完善。

分类
标签
已于2020-11-9 18:25:51修改
收藏
回复
举报
回复
    相关推荐