Python在嵌入式系统中的崛起

Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。

根据IEEE Spectrum的统计,Python在2017年的顶级编程语言中排名第一。Python从去年开始持续上升,两度跃到排名第一的位置。虽然在Web和Enterprise应用中python稳居第一的位置,但是在基于Python的嵌入式开发平台(如Zerynth和MicroPython)中,python还需要大力发展。
1.jpg上面的排名并不奇怪,现今绝大多数的嵌入式代码仍然是用C编写的。专家和熟练的C程序员认为这理所当然,他们说:“C语言生成一个更快,更紧凑,更可靠的代码”。但是 ,如果你用汇编语言代替C语言,就会理解20年前那代程序员到底在说什么了。
为什么在嵌入式应用中使用python?
如果你用Google搜一下“嵌入式系统中的python”会找到许多类似下面的文章:
    1、python比C语言更好!
    2、嵌入式系统中python和C/C++的对比
    3、嵌入式系统中Python的地位
    4、未来嵌入式系统的编程语言还会是C语言吗?
    5、python对嵌入式系统的发展意义

我们可以用下面的一段话来总结上面的内容:
“如果一个问题可以在Python中解决,那么也可以在C中解决,反之不一定成立。但是,如果问题可以在Python中解决,那么:
——解决方案(源代码)将比相应的C代码简单
——更加可靠
——也许更重要的是,可“可重复写”(这一点容易被忽视)“

C / C ++编码速度慢,容易出错,而且经常是不可读的,但Python以其可写性,减少错误和可读性而闻名。由于这些原因,最近的一项研究表明,Python不仅仅是介绍性CS程序和业余兴趣开发人员最受欢迎的语言,它也是嵌入式计算中增长最快的语言。有大量的专业人士熟练使用Python“潜在地”为物联网中的“下一件大事”开发软件,而且将会在短时间内发布新的惊人的嵌入式应用程序。
为什么要使用Zerynth作为基于Python的嵌入式应用程序
Zerynth超越了专业的嵌入式开发人员,为高级程序员,产品设计师和IoT开发人员提供了一套完整的高品质嵌入式开发工具来创建交互式连接式的解决方案。
Zerynth允许使用任何32位微控制器设计嵌入式应用程序和IoT连接设备,来连接到任何云基础架构,而且可以实现Python和C 语言的混合编程。
初学者容易上手

2.png

一个词来形容:简单!与其他用于微控制器的Python实现不同,Zerynth不需要从不同的Web源复制/粘贴令人毛骨悚然的脚本。不需要拖放任何文件夹或FTP中的任何文件。无需在PC上安装Python,无需安装Putty或特殊驱动程序。使用Zerynth,您只需点击几下即可使您的设备在Python中编程!
在本教程中可以看到如何使用Zerynth编程NodeMCU板,您只需要按照如下步骤来即可:
    1、下载安装Zerynth  Studio
    2、连接,注册并虚拟化ESP8266主板
    3、克隆一个例子,并将其上传到主板

只需遵循上面这些非常简单的步骤,您就可以使用Python编程设备,而不必使用复杂的低级语言(如C或C ++)。对于新手编程的初学者来说,这是一个很好的选择。
对于高级用户,Zerynth允许在同一个项目中混合使用Python和C代码。这种“混合”编程在项目需要关键任务的低级代码时非常强大,同时保持Python对非关键部分的灵活性和可读性。使用Zerynth,你可以同时拥有开发速度和运行时速度!你可以在官方文档中了解有关Zerynth-C语言界面的更多信息。
一次编码,多种场景使用
Zerynth虚拟机是Zerynth堆栈的核心元素,提供了一个真正的硬件抽象层,允许在大多数32位微控制器(嵌入式和IoT解决方案的核心)上重用代码。
3.png硬件的独立性对许多方面至关重要:
    1、对于产品设计师来说,由于在从原型转换为生产过程中无需重写代码,因此可缩短上市时间;
    2、对于系统集成商来说,它更容易集中在集成部分,并选择更适合项目的主板,而不需要担心低级功能和可编程性;
    3、对于嵌入式生产者来说,它加速了新的嵌入式硬件的采用,并向庞大的Python程序员社区开放。

Zerynth虚拟机的开发是使Python可以在嵌入式世界中使用。为了做到这一点,Python的一些功能被丢弃,因为它们太占用资源,而一些非Python功能被引入,因为它们在嵌入式设置中更具功能。可以参看官方文档中Zerynth和Python之间的区别列表(不完整)
你可以用Zerynth做什么
与其他IoT开发平台不同,Zerynth提供了一个完整的“生态系统”工具,可以让您从固件开发到云连接,这些都得益于大量的库链接。
需要灵感吗? Zerynth Academy网站部分提供了一系列教程,指导您使用Zerynth Stack开发Python中的嵌入式和IoT解决方案。你将学习:
    1、如何使用Zerynth在Python中编程ESP8266,这是用于IoT和嵌入式应用的常用微控制器
    2、如何使用Zerynth和Arduino MKR1000来启用IoT Security;
    3、如何创建一个使用Zerynth在Python中编程并连接到The Things Network的LoRa网络;
    4、如何使用Zerynth和Matplotlib(一种非常受欢迎的Python绘图库)来获取和可视化LoRa节点的传感器数据;
    5、如何在Python中使用Zerynth程序为Hexiwear,最受欢迎的可穿戴式IoT开发平台之一
    6、如何使用Zerynth在Python中为Nordic的nRF52832编程,这是支持蓝牙低能耗(BLE)的蓝牙5-ready SoC。

您还可以在此链接或Zerynth Studio的左侧面板上直接找到有用的示例列表。
超越Arduino和树莓派
如上所述,在无人机,机器人或其他项目的Python中,学生和业余爱好者经常拥有树莓派或Arduino背景。
Zerynth提供基于微处理器的一些优势,如树莓派:
    1、使用python编程,必要的话可以和c语言混合
    2、支持多线程

以及基于微控制器的电路板的巨大优势:
    1、相对于微处理器电路板的功耗更低
    2、降低原型设计阶段的硬件成本
    3、在工业化阶段硬件成本极低

而且拥有60k-80k的闪存以及3-5k的RAM.
应用广泛
Zerynth已被公司和专业团队用于在不同行业建立惊人的IoT和嵌入式解决方案:如零售,商业制冷,废物管理,智能设备等等,这些都可以在“Built with Zerynth”中看到。

英文原文:https://www.zerynth.com/blog/the-rise-of-python-for-embedded-systems/
译者:咋家