现在的位置: 首页评测>正文

简单、方便、快速开发嵌入式实时系统——用MicroPython就对了

2018年02月23日 作者: 1 13,862+ 0

嵌入式实时系统正变得越来越复杂,不仅需要你深入了解微控制器本身,还需要你了解各种传感器、算法、互联网协议以及各种终端应用。随着产品的更新迭代加快,更短的开发周期和更多的功能这两者看似矛盾的对立面却成了产品升级换代最关键的因素,工程师需要找到既能够加速产品设计的方法,同时最好又能够将原本的代码移植到新的产品中,省事实力——这就需要一个集成强大、丰富功能且灵活的开发平台。

市面上也有不少厂商推出一系列的专用微控制器用于加速开发过程,但这些解决方案基本是将工程师与所使用的微控制器厂商绑在了一块,如果需要将代码从一个平台移植到另一个平台,那可能会耗费大量时间和成本,得不偿失。但随着MicroPython的出现,一切都变得与众不同了,这是目前业界可以接受并广泛采用的解决方案之一。MicroPython可以运行在不同厂商、不同微控制器产品上,并且还是开源的,这让工程师可以随时根据自己的需求使用和定制,摆脱单一厂商、单一微控制器的束缚,极其灵活方便。

MicroPython是基于Python3的精简且高效的编程语言,其中包括一小部分优化过、可以在微控制器和受限环境中运行的Python标准库。MicroPython一开始是kick-starter上的一个众筹项目,如今不仅获得资助,而且成长良好。截止到目前,已经有不少嵌入式硬件成功移植了Micropython,如pyboard、esp8266、WiPy、Espruino Pico、STM32F4 Discovery等,并且已经成功应用于多个行业项目,如工业、物联网等。

如何选择运行MicroPython的微控制器

MicroPython可以运行在多种不同的微控制器上,如果一款微控制器具备足够的RAM、闪存和性能来运行解释器,那么MicroPython几乎可以移植到任何一款微控制器上。所以,如果要选择运行MicroPython的微控制器,工程师应该要注意以下几个关键点:

  • 至少256KB的闪存
  • 至少16KB的RAM
  • 至少有一个80 MHz的CPU时钟

以上是通常情况下的建议,但这是可变化的,工程师可以根据他们的应用需求以及他们到底想要花费多少时间来定制MicroPython内核来使上面的条件发生变化,比如工程师可以将MicroPython修改到能运行在远远小于256 KB闪存的微控制器上。以上的建议主要是为工程师提供最佳体验,并为他们的应用程序代码提供更新、增加新功能等操作的“成长”空间。

MicroPython已经有不少移植到不同微控制器上的案例,你可以从这些案例中开始学习,更进一步的话,你可以根据现有的案例举一反三,将MicroPython移植到新的平台上。下图则是MicroPython的源代码主目录结构。

develop-real-time-fig1

可以看到现在MicroPython支持的几种不同的微控制器产品:

  • ARM系列微控制器
  • 德州仪器的 CC3200
  • Adafruit的 ESP8266
  • Microchip的16位PIC单片机
  • 意法半导体的STM32系列微控制器

根目录中列出的每个文件夹都很重要,其中包含了该微控制器系列的一般驱动程序和支持文件,每个文件夹下都可能有几个不同的开发板或处理器。例如,stmhal文件夹支ST的STM32F429 Discovery Board、STM32 IoT Discovery Node (STM32L)以及Adafruit的STM32F405 pyboard等产品;而ESP8266文件夹包含了一些对ESP8266 WiFi模块支持的板子。

能运行MicroPython的开发板价格很多都很便宜,工程师完全可以购买多个开发板来反复验证项目中采用MicroPython的可行性,同时也能了解实际项目的应用程序到底需要多大的RAM,Flash以及处理能力的需求。

另外,值得一提的是工程师编写的MicroPython应用程序代码不一定必须存储在微控制器的内部Flash中,虽然MicroPython内核需要位于微控制器的Flash上,但应用程序代码可以放在外部存储上,比如microSD。使用外部存储可以有效降低对微控制器内部Flash的需求,一定程度上大大降低了整个系统成本。

文章分页: 1 2 3 4

发表评论
评论 ( 1 )
收起评论
  • ceshi12345

    学习资料,非常感谢。

    2018年02月26日  11:31:19

相关文章

只要一块单片机就能成为智能家庭,你相信吗?

一提到智能家庭,大家可能首先想到的是各种大佬级公司搞的牛逼产品,或者说是创新产品。想想就觉得很复杂,有的用工控机,有的用树莓派,还有的用arduino,不管用什么,都绕不过服务器进行控...

Intel做梦都能笑醒——从拆解中看大疆“晓”Spark上的人工智能技术

DJI大疆作为全球无可争议的民用无人机领域领导者,每代产品都受到了消费者、摄影爱好者的极大关注,而不久前在纽约发布的掌上无人机“晓”Spark可谓是征服无人机领域的最后一片净土,带来了前...

想说要你不容易——小米6为什么没采用高通最新的QC4.0快充技术?

小米6发布已经一个多月了,但至今仍是一机难求的状态,目前来看,想要让产量满足需求量还将持续好长一段时间。OK,这些我们don't care,今天主要来聊聊小米6中一件非常有趣的事情——为什么没...

靠塞尔达传说荒野之息拯救的任天堂Switch真的很烂?

在索尼PS4、微软Xbox360大行其道的今天,在游戏主机讲究硬件配置的时代,任天堂Switch的发售因为早早暴露的“Low”配置并没有受到多大的欢迎,但是,在塞尔达传说:荒野之息发布之后,神转折开...

准备挖C/C++墙角的MicroPython到底值不值得学?——pyboard评测

提到MicroPython,可能大家首先想到的会是Python,那这两者有何联系又有何区别呢? Python是我们常见的计算机程序设计语言,是一款比较容易上手的脚本语言,主要用于上层应用的开发,但它...