嵌入式系统简单入门(一)——什么是MicroPython?
2022-03-08 1223

随着 Python 成为占主导地位的编程语言,MicroPython 在嵌入式系统领域变得越来越流行,特别是在流行的 ESP32 和 Raspberry PI 基金会刚刚发布的基于 RP2040 微控制器的 Pico 模块中。

作为一个不会写一行代码的班农,大部分时间都感觉自己很有限,发誓一定要找个好时机学习一门编程语言。国庆7天假期潜心研究MicroPython,在自己设计的Pico扩展学习板上实现了板子上外设的全部功能:

  • 花式灯光——单色、RGB三色、各种组合,还可以通过按钮和传感器控制

  • OLED屏幕显示文字、图像和波形

  • 音频信号被采集并显示在OLED屏幕上——制作炫酷的波形显示

  • 用板上的蜂鸣器播放“我和我的国家”

  • 移植别人的代码来生成任意波形 - 改变波形、改变频率、改变幅度等



在这7天的“探索”中,给我印象最深的是MicroPython的嵌入式系统上手是多么的容易——丰富的开源资源,各种形式的参考资料,比如视频课程、文字案例等。

MicroPython 确实是一种很棒的编程语言——面向对象、灵活、简单、优雅!

我个人的学习受益于别人的分享(开源),而传递知识最好的方式就是分享自己所学、所学。因此,我打算推出基于Pico的Micro Python嵌入式编程教程,一个月后正式上线。当然, 前期将有15节PCB设计直播课程,带领你自己设计一块Pico学习板。毕竟,在免费印板、免费送货的便利环境下,基于一块Pico核心板,未来每个人都可以设计PCB做出各种有趣的应用。 学习如何设计 PCB 对于嵌入式系统工程师来说也是一个优势。

今后将会有一系列与本课程相关的技术文章。今天是第一个:

1.什么是MicroPython

MicroPython 是一种小型开源 Python 编程语言解释器,运行在小型嵌入式开发板上。 使用 MicroPython,您可以编写干净、简单的 Python 代码来控制硬件,而无需使用 C 或 C ++(用于编程的 Arduino)等复杂的底层语言。


MicroPython 徽标

Python 编程语言的简单性使 MicroPython 成为编程和硬件初学者的理想选择。 MicroPython 功能非常齐全,支持大多数 Python 语法,因此即使是经验丰富的 Python 老手也会发现使用 MicroPython 熟悉且有趣。

除了易于使用之外,MicroPython 还具有一些区别于其他嵌入式系统的独特功能:

使用交互式解释器:REPL(读取读取-评估评估-打印打印-循环) - 这允许您连接到开发板并让它执行代码,而无需编译或上传 - 非常适合快速学习和实验硬件!

丰富的软件库 - 与常规 Python 编程语言一样,MicroPython 内置了大量库来支持许多任务。例如,通过 MicroPython 的内置库,可以轻松解析来自 Web 服务的 JSON 数据、使用正则表达式搜索文本,甚至进行网络套接字编程。

可扩展性 - 对于高级用户,MicroPython 可以使用低级 C/C++ 函数进行扩展,因此您可以在需要时将富有表现力的高级 MicroPython 代码与更快的低级代码混合在一起。

MicroPython 是 Python 3 语言的变体。它是剑桥大学 Darrien P. George 博士的创意,他于 2013 年与众筹团队合作开发了一款支持 microPython 的硬件开发板,名为 PyBoard。MicroPython1.0 已在 Python 会议上发布( 2014 年,George 博士还建立了 Micro Python.org 网站(www.micropython.org)来支持 MicroPython 和 Pyboard。


MicroPython.Org 官方徽标

MicroPython.Org PyBoard,基于STM32控制器。


2.MicroPython能做什么?

MicroPython 旨在快速高效地创建嵌入式系统控制程序。 嵌入式系统可以简单地定义为任何需要使用微控制器来满足工程需求的项目。 典型的嵌入式系统通常使用传感器,有时还使用机电执行器来与微控制器连接。它们可以连接到人机界面设备以方便交互,但更加自动化,可以独立操作或远程访问云。

就像 Arduino 板一样,MicroPython 可以控制硬件和连接的设备——您可以控制 GPIO 引脚闪烁、读取开关等; 可以驱动可以驱动服务器和LED的PWM信号; 模拟传感器可以通过模数转换器读取和读取。与 I2C 或 SPI 设备通信也很容易。您甚至可以在某些主板上找到网络和 WiFi 支持。 MicroPython 甚至还有用于控制其他硬件的库,例如 NeoPixels 和 LED 灯条、微型 OLED 显示器等。 总之,MicroPython 可以做很多事情!

MicroPython 有哪些限制?

MicroPython 的限制非常少,几乎 Arduino 能做的任何事情都可以通过 MicroPython 板完成。 然而,值得注意的是,MicroPython 代码的速度并不快,并且可能比类似的 Arduino 或其他基于 C/C++ 的低级代码需要更多的内存,尽管这通常并不重要,因为速度和内存差异不够大,无法满足需要。影响大多数应用程序。 请注意,对时间或性能至关重要的代码可能无法在 MicroPython 中运行。 例如,完全使用软件来驱动IO引脚来在MicroPython中实现一些高速串行通信协议可能不是最好的想法。 然而,有一些方法可以混合 MicroPython 和低级 C/C++ 代码,这样我们就可以两全其美 - 主要逻辑是干净且易于理解的 MicroPython 代码,而性能关键部分是用更快的低级代码。

MicroPython 语言实现了大部分核心 Python 3 语言,但 MicroPython 并未实现整个 Python 3 标准库。 Python 以其丰富的标准库而闻名,但试图将如此大的库压缩到只有千字节内存的小板上是不可能的。 相反,MicroPython 实现了一些较小版本的 Python 标准库,提供了出色的开发体验。


免责声明:本文转载自《电子森林》,本文仅代表作者个人观点,不代表萨克威及业界观点,仅供转载分享,支持保护知识产权,转载请注明原始出处以及作者,如有侵权,请联系我们删除。



whatsapp

WhatsApp

Whatsapp:+8618073002950