月度开发者:使用DragonBoard 410c开发轻量化Python 实现小型嵌入式单片机运行高级语言Python
人们说包装虽小但东西好。也许他们应该说“微包装”(小组件)。本月,我们的月度开发者是Paul Sokolovsky。他正在进行的项目要求用到单片机(MCU)和缩微版软件,以实现高度可便携性。为完成这项工作,Paul使用了DragonBoard 410c进行开发和测试。
“许多项目是要求可扩展的——扩展为多核心、多台服务器甚至云环境。然而,我们的项目“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:我办公桌的抽屉里放了
DragonBoard410c python 相关文章:
- 利用Python语言实现实验室自动化(03-23)
- python移植到arm平台(11-09)
- 对比Ruby和Python的垃圾回收(09-12)
- 学习Python编程的11个资源(09-12)
- 基于FPGA+Python的定点平方根实现(04-09)
- Windows CE 进程、线程和内存管理(11-09)