新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 月度开发者:使用DragonBoard 410c开发轻量化Python 实现小型嵌入式单片机运行高级语言Python

月度开发者:使用DragonBoard 410c开发轻量化Python 实现小型嵌入式单片机运行高级语言Python

作者:时间:2017-10-11来源:网络收藏

人们说包装虽小但东西好。也许他们应该说“微包装”(小组件)。本月,我们的月度开发者是Paul Sokolovsky。他正在进行的项目要求用到单片机(MCU)和缩微版软件,以实现高度可便携性。为完成这项工作,Paul使用了DragonBoard 410c进行开发和测试。

本文引用地址:http://www.eepw.com.cn/article/201710/365542.htm

“许多项目是要求可扩展的——扩展为多核心、多台服务器甚至云环境。然而,我们的项目“MicroPython” 是关于轻量化Python并能在小型嵌入式单片机系统上运行流行的高级语言Python的项目,用户可以快速、轻松地完成原型设计、开发物联网及其它应用。但是,MicroPython并不单单针对单片机,它具有良好的移植性及可配置性,目的是打开Python语言创新应用的潘多拉之盒。”

Paul Sokolovsky

Paul是MicroPython团队的两名成员之一,他在土耳其安塔利亚工作。他与项目发起人——英国的Damien George一起合作。据Paul讲,Damien是最开始想到这个疯狂的点子的人,即在单片机上运行Python。他还成功发起了Kickstarter众筹活动(吸引了将近1400名支持者),构建运行MicroPython的Cortex-M4开发板。当时,Paul正在研究各种小型脚本语言,解决自身的物联网/家庭自动化需求,那时还没有考虑过重写Python以便运行在小型系统上。Paul 说服Damien在网上(GitHub)发布源码。现在,他与Damien一起承担这一项目的维护任务。( 此视频展示了在适用于物联网的嵌入式单片机开发板上运行MicroPython)

Paul在MicroPython项目的一部分工作会使用到DragonBoard 410c板,“它始终在我的工作台上占据一席之地,它执行着各种开发与测试工作。”

Paul说:“我从GitHub pull最新的更新,这一任务因DragonBoard内置Wi-Fi而变得更加方便。然后,我利用DragonBoard Linaro AArch64工具链构建代码,检查64位ARMv8架构在编译时出现的问题。接着我再运行各种MicroPython测试套件,这个测试套件运行使用“大Python”和“微Python”(MicroPython)编写的各种Python代码,检查结果是否匹配。”

例如,Paul最近作了一项测试,以确定MicroPython物理内存访问API与DragonBoard的配合情况。然后,他利用这些成果制作了一组如何访问DragonBoard GPIO的示例。

“我希望像我们这样的项目能向初入行者展示DragonBoard很容易上手,为他们学习DragonBoard更高级的功能铺平道路,”Paul说。

我们最近采访了Paul,更多地了解了他的工作和他对开源开发的见解。以下为访谈实录:

Q:你们公司文化有哪些与众不同的地方?有什么传统惯例吗?

A:我们这个项目并不是第一个将Python或其它高级语言带入单片机的项目,所以我们是站在前人的肩膀上,要争取做到更好。至于传统惯例,我们对于专业管理的软件项目有一套例行动作——每日代码审查、需遵循的代码风格和惯例、需编写的单元测试——诸如此类的事情。

Q:您能和我们分享公司的一件趣事吗?

A:Damien和我并没有见过面——这应该是开源世界经常发生的趣事了!

Q:您和Damien的工作灵感从何而来?

A:我们从用户和贡献者身上获得灵感。实际上,要想在自己的闲暇时间积极维护一个开源项目不是件易事。您开始为项目贡献代码,专注于项目,反而“忘记”了自己本身的任务;唯一可行的办法是,您始终对自己说:“我负责项目的核心工作,因为我最了解它,所以最好由我来做这项工作。我只是希望其他人利用这个项目做出一些我想做或觉得有趣/有用的东西。”这样的话,真得很令人高兴!

Q:您在技术领域的偶像是谁?

A:Adam Dunkels. 我认为他是物联网之父。他向我展示了即使用很少的代码也能实现一些奇迹般的功能,即使是在CPU 数千兆赫和内存数个GB的时代,这些奇迹在现代世界仍能派上用场。他开发的ConTIki OS是第一个物联网操作系统(早在“物联网”之词问世之前就出现了),为之开发的uIP和lwIP TCP/IP堆栈,现在已经成为行业领先的嵌入式TCP/IP堆栈。

Q:您喜欢嵌入式和物联网开发的哪些方面呢?

A:有人说许多开源项目都是在解决自身问题中诞生。而物联网是这方面更具参与性——几乎每个人都会使用到灯,您可以控制它在您靠近时打开(并且只在特定时间);或者如果接下来几个小时不用就关掉加热器。能够解决生活中的小事,使生活更加舒适,并且是按您喜欢的方式解决,是物联网有趣和有意义的地方。

Q:您喜欢DragonBoard 410c的哪些方面?

A:我办公桌的抽屉里放了很多开发板,但只有DragonBoard 410c稳稳地占据了我办公桌的一角,执行各种开发和测试任务。它配备了一款现代化的CPU,有Wi-Fi、蓝牙4.0和GPS。Wi-Fi在日常工作中非常有用,BT4.0和GPS对于物联网项目也大有帮助。但硬件的强大只是一部分。

我发现支持更为重要,这包括软件、文档和社区支持。..DragonBoard的相关文档十分全面,并且还在持续完善。还有,96boards.org社区也在成长中,这里可以讨论各种问题,也会见识到各种最新项目。

Q:您对其他开发者有什么建议吗?

A:请珍惜开源开发。就像路网一样——大部分时间里您可以免费通行,但道路维护需要付出极大的努力。请通过提交补丁或帮助其他用户来回馈开源世界。如果您从中赚了钱,请考虑赞助或雇用人员开展工作。

要了解更多关于MicroPython的信息,请在Twitter关注他们。您可以在GitHub上关注Paul的工作。



关键词: DragonBoard410c python

评论


相关推荐

技术专区

关闭