Python很实用,但脚本语言通常是为PC应用程序的资源而设计的。然而,嵌入式应用程序通常需要处理更少的问题。Adafruit的CircuitPython是专门为嵌入式开发项目设计的Python变体。
Python是一种解释性的、交互式的、面向对象的语言,它将卓越的编程性能与清晰结构化的语法相结合。它以其易读性和可读性以及更简单的语法而闻名。所有这些都有助于降低编程错误的风险,简化代码重用,从而加速软件开发。
然而,该语言的一个缺点是,Python是为PC和更大的机器开发的,具有足够的RAM、巨大的海量存储,以及带有键盘、大型显示器和鼠标的全面用户界面。它不适用于嵌入式编程。但是,随着micropython的推出,Python 3编程语言在2014年实现了精简高效的实现,该语言专门针对微控制器的有限资源进行了优化。
认识到MicroPython作为一种嵌入式编程语言的能力,促使开源社区针对特定的单片机和开发类型对其进行了定制,以支持严肃的微控制器开发。
MicroPython的起源
与C和C++一样,Python最初是为了在大型计算机上运行而开发的。因此,在嵌入式开发中,该语言需要太多的资源来编程微控制器。出于这个原因,澳大利亚程序员和物理学家达米恩·乔治开发了一个名为MicroPython的Python版本,该版本也可以在微控制器的有限资源下运行。Arduino开发类型是MicroPython的早期应用目标。
MicroPython的交互特性基于其命令界面。这被正式称为REPL(Read Eval Print Loop)窗口,通常通过将主机PC连接到微控制器开发卡的串行连接进行操作。REPL接口与20世纪70年代和80年代Basic的命令行接口非常相似。它接受用户输入(单个表达式或语句),对其求值,然后通过REPL窗口向用户返回结果,或执行嵌入语句中的命令。
REPL接口可用于查询变量、切换I/O线或向连接的外围块发送字符串。一旦按下Enter键,该行立即被解释和执行。这就是解释编程语言的本质。
MicroPython的功能有助于探索性编程和故障排除,是MicroPython的一个方面,它使编程语言对初学者和有经验的程序员都很友好。与Arduino IDE的经典周期(包括编辑、编译、下载和运行)相比,REPL接口支持更短的开发周期。即使是经验丰富的嵌入式开发人员,也可以从使用MicroPython的REPL接口交互实验新型外设中获益。
CircuitPython对开发类型的支持
每个微控制器都有一组独特的外围设备,每个开发类型进一步补充了这一列表。这些外围设备需要支持库。这适用于Arduino IDE和MicroPython。此外,还有许多附加外设,如Adafruit的可寻址NeoPixel RGB LED Strip 1655,它们也需要库支持。
为了获得更好的支持,Adafruit开发了自己版本的MicroPython和CircuitPython,以满足公司各种高性价比微控制器开发卡的特定要求。此外,该公司还将其庞大的Arduino集合中的许多外围库转换为CircuitPython的库,CircuitPython已经为CircuitPython提供了大量且数量不断增长的库。
通过使用Python为嵌入式开发人员带来的好处
Python编程语言为程序员提供了许多优点,如交互式编程、实验和调试。它有一个简化的语法,更类似于人类语言,消除了变量的声明或键入以及复杂的标点符号。MicroPython是Python 3的变体,允许用Python编程微控制器。
如图所示,Adafruit从MicroPython派生出编程语言CircuitPython,用于直接硬件支持,以进一步简化实验并加速语言学习和软件开发。CircuitPython已经支持基于Microchip的SAMD21微控制器的各种经济高效的微控制器开发卡和基于Nordic Semiconductor的BLE功能nRF微控制器的其他嵌入式开发方式。