mblock是如何让Arduino工做的(上)

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

Arduino code by block

mblock

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

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

原理分析

它是如何工做的?为何它经过访问网页版本,而后能直接将积木程序转换为可执行代码。
mlink 在这个过程当中起到了关键性做用,本地启动的 mlink 是在本地起了一个 websocket 服务。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 链接,这一步具体作了什么?
  • 代码又是以什么形式上传到设备上去的?

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

末了

大体有了想法,可是对于 mblock 的整个逻辑仍是有一些没有理解到,还须要继续深刻研究一下才能完善。编辑器

相关文章
相关标签/搜索