《电子技术应用》
您所在的位置:首页 > 模拟设计 > 业界动态 > 奇思妙想,工程师尝试将Pythons塞进MCU

奇思妙想,工程师尝试将Pythons塞进MCU

2019-06-22
关键词: Pythons MCU

 

1561082945803178.png

 这名开发人员正在将Python塞入微控制器

  目前,Python是最流行的编程语言之一。它以大量的实用程序库而闻名,而且作为一种动态编程语言,Python程序的调试速度比那些必须在执行前进行编译的程序更快。Instagram、谷歌、声田(Spotify)和YouTube等公司都在使用Python。

  在Python继续统治桌面和云领域的同时,微型Python(MicroPython)和电路Python(CircuitPython)两个阵营正在为以硬件为中心的嵌入式项目开发解释语言版本,如基于微控制器的小产品。从传统上来说,嵌入式硬件严格的计算约束条件有利于编译语言,但更强大的微控制器正在改变这种局面。

  开源硬件公司阿德弗里特工业公司的斯科特?肖克罗夫特(Scott Shawcroft)领导了电路Python的开发。阿德弗里特工业公司的首席执行官利莫?弗里德(Limor Fried)是本刊编辑顾问委员会的成员,但她没有参与本文的编写。

  肖克罗夫特说:“(阿德弗里特工业公司的)目标用户是那些从未编写过程序的人。”他还解释道,电路Python能够让简单项目的运行更容易。“我喜欢人们直接参与。”

  肖克罗夫特说,他十几岁时就对编程产生了兴趣,他是“第一代通过Web进入涉足编程的人”。在攻读计算机工程学位期间,肖克罗夫特曾在知识共享组织(Creative Commons)和谷歌实习。2009年,他加入了谷歌地图团队,之后在那里工作了6年。2015年他从谷歌离职,成立了一家无人机飞行控制器公司。“2016年我们进行了一次小规模生产,大概有10人购买了我们的产品。”肖克罗夫特笑着说。

  在每周的视频直播系列节目《表演与讲述》(Show and Tell,一档分享个人项目的真人秀节目)中,肖克罗夫特引起了阿德弗里特工业公司创意总监菲利普?托罗内(Phillip Torrone)的注意。“我在节目的最后说道:‘我需要一份工作!’” 肖克罗夫特说。

  托罗内与肖克罗夫特取得了联系,希望将当时已有两年历史的微型Python——物理学家达明?乔治(Damien George)开发的一个精简版Python——移植到一种特殊的微控制器上。

  “我没有听说过微型Python,但把Python放在硬件上的想法立刻吸引了我。”肖克罗夫特说,“利莫说完成这项工作大约需要3周,但我只花了一半的时间,因为开始以后我就停不下来了。”

  阿德弗里特工业公司同意为肖克罗夫特安排全职工作,他的工作是对微型Python进行开发。因此,微型Python的创建者乔治开始收到阿德弗里特工业公司提交的大量代码,乔治“对我们的介入和改变有些担忧”,肖克罗夫特说。

  在与乔治讨论技术方面的问题时,阿德弗里特工业公司意识到他们对该语言未来的看法与乔治不同。他们不赞成在微型Python的性能和易用性之间进行取舍,肖克罗夫特想把重点放在Python库上,希望微型Python能够成为以Arduino微控制器系列为核心的编译软件生态系统的替代选择。

  “乔治主张为C核心用户服务,而且他坚信Python的速度能够很快。”肖克罗夫特解释道,“但他们根本不是阿德弗里特工业公司的目标用户群。”因此,阿德弗里特工业公司决定另起炉灶,于2017年年中正式推出电路Python。

  电路Python社区自诞生以来一直发展稳定。肖克罗夫特工作中最大的挑战就是管理这个蓬勃发展的社区。“作为一个开源维护者,如果有人要求你实现这个功能、完成那个效果,而且态度和方式很不客气,很自以为是,你该怎么办?”肖克罗夫特说。

  一套正式的规范会有帮助。肖克罗夫特说:“这是现代所有民用开源项目的一条重要底线,你必须捍卫这条底线。我们的这条底线就曾发挥过作用。”

  肖克罗夫特说,对于那些有兴趣为电路Python语言做贡献的人来说,关键在于实践。“编写大量代码,并尽可能多地参与阿德弗里特工业公司所创建的这类社区。”他说,“我过去会说你必须热爱它,其实这样说并不公平,因为如果你喜欢这种语言,你就会自然而然地想要去实践。”


本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。