前言

周末偶然了解到zerynth. 最初以为zerynth只是micropython的分支,搜了一堆资料后,发现并非如此。

本文将梳理zerynth与micropython的差异,并记录如何使用Zerynth StudioNodeMCU v2编程。

比较

硬件社区有不少人对zerynth与micropython之间的差异感兴趣,zerynth团队积极在此类问题下答复。按照zerynth联合创始人floyd的说法:

  • Zerynth是针对嵌入式环境优化的Python虚拟机的实现,在实时操作系统(ChibiOS和FreeRTOS)之上运行。因此,删除了一些Python功能,并添加了一些更适合嵌入式的功能。
  • 我们将虚拟机切换为闭源模型。所有其余的(IDE;工具链;云组件等)将在MIT或Apache许可下保持开源。

Giacomo在Zerynth Vs Micropython帖子中给出了更具体的回答:

  • 占用空间较小
    • Zerynth只需要60k-80kB的flash和3-5kB的RAM
    • micropython则至少需要256k的flash和16k的RAM
  • Zerynth具有用于多线程的RTOS
  • Zerynth支持C-Python编程
  • Zerynth有一个基于命令行工具链的跨平台IDE
    • 提供了一个易于使用的界面来编写和调试嵌入式Python。MicroPython没有官方IDE;
    • Zerynth基于命令行工具链,方便开发者创建自动化任务。
  • Zerynth旨在成为嵌入式和物联网世界的完整中间件
    • Zerynth路线图包括开发模块以允许主要云服务提供商(Microsoft Azure,Amazon AWS,IBM Bluemix等)的设备管理和数据收集。也支持高级调试技术(Python断点,代码注释,操作码执行操作码,JTAG支持……) 最后,Giacomo提到Zerynth更专注在微型系统,可以将其视为Micro MicroPython。

Zerynth旨在成为嵌入式和物联网世界的完整中间件很能代表Zerynth的目标,它们的主页上也主要强调这点,而micropython则致力于构建开源生态和基础设施。这是我的看法。

体验Zerynth Studio

我最初试着在Mac下开发调试,和大多情况一样,最终逃避到Ubuntu16.04。Mac不是开发硬件的好平台。坑多,我真是受够了。我不知道作为硬件黑客沃兹尼亚克是怎么看待如今的这个操作系统的。

下载Zerynth Studio, 选择linux安装包,并下载离线数据包(国内网络你懂的)。具体安装方式在这里

安装完成之后,就可以开始为NodeMCU v2编程了(Zerynth支持NodeMCU v2,我手头恰好有一块这个板子)。

为NodeMCU v2编程

NodeMCU是一个开源物联网平台,包括一个在ESP8266上运行的固件,带有Espressif Non-OS SDK,以及基于ESP-12模块的硬件。4MB flash,80MHz,大约50k可用RAM和Wifi收发器。

淘宝上售价十几二十块钱。

官方的入门教程比较完备,由于入门教程不是针对NodeMCU v2,所以你最好也顺带读一下NodeMCU v2

跟着文档基本不会有什么问题.

其中port的权限需要开启,文档里都有提及,我用了简单粗暴的方法: sudo chmod 666 /dev/ttyUSB0.

Uplink之后,点击open console按钮,就可以看到代码运行之后,输出的信息了:

完成。

结论

micropython目前对ble的支持不好,目前的进度是nrf52 port被micropython的分支CircuitPython 4.0支持,所以希望试试Zerynth,结果Zerynth中差别也不大,支持nrf52,不支持esp32。

总的来说,Zerynth对我吸引力不大。我依然会选择micropython,选择开放的生态。

参考