STM32双课程:MicroPython与Arduino

2026 年 10 月 20 日,Elektor 介绍了两门由 Clemens Valens 开发的 Elektor Academy Pro 课程:MicroPython for STM32 与 Arduino for STM32。两门课程都以 STM32 Nucleo 板为平台介绍嵌入式编程,但采用不同的技术路径。

让 LED 闪烁听起来未必刺激,但通常正是嵌入式开发的乐趣起点。掌握输出控制后,学习者可以继续尝试传感器、电机、显示器,并最终构建能对外部世界作出响应的项目。

每门课程均可通过 Elektor Academy Pro 学习平台访问在线课程,并包含 Clemens Valens 编写的印刷手册、可下载的项目文件、带 USB 线的 STM32 NUCLEO-F411RE 开发板以及元件套件。套件包括 LED、电阻、电位器、开关、传感器、显示器、继电器模块、伺服电机、面包板和跳线。两门课程都提供动手示例和迷你项目,帮助学员探索课程中涉及的概念。

新课程扩展了 Elektor 的 Embedded Programming Series。该系列于今年早些时候以五门课程起步,目前覆盖 ESP32、Raspberry Pi Pico、STM32 和 Arduino;根据平台不同,课程使用 C/C++ 或 MicroPython。无论偏好 Python,还是更习惯 Arduino,这两门课程都提供了探索 STM32 微控制器能力的实践途径。

MicroPython for STM32:实验、测试与学习

MicroPython 的吸引力之一是可以快速试用想法:不需要每次修改后都编译并上传程序,而是可以直接输入命令并观察结果。在 MicroPython for STM32 中,Clemens 使用 Thonny IDE 及其交互式 Python shell(REPL)介绍这种方法。

课程从 MicroPython 基础开始,引导学习者设置 STM32 NUCLEO-F411RE 板。随后练习介绍数字输入/输出(digital I/O)、模拟输入(analog inputs)、PWM(脉宽调制)、串行通信、I²C、SPI、定时器(timers)和中断(interrupts)。学员还会学习用电位器调节 LED 亮度、与外部设备通信,以及使用传感器和执行器。

配套手册探讨机器控制、报警系统、机器人和家庭自动化。其中一个示例使用光敏电阻(LDR)、电位器和继电器构建自动照明控制器;程序还使用迟滞(hysteresis),防止光照水平接近设定阈值时继电器反复切换。这个示例说明,相对简单的电路也能引入实际嵌入式应用中的重要概念。

Arduino for STM32:熟悉工具,更多可能

如果已经用过 Arduino,可能会问:为什么还要学习另一个开发环境来实验 STM32?好消息是不一定需要。在 Arduino for STM32 中,Clemens 展示如何使用 Arduino IDE 和 C/C++ 为 STM32 Nucleo 板编程。

课程先说明如何安装 STM32 板支持并编写第一个程序,然后介绍数字和模拟 I/O、通信协议、定时器、中断,以及使用传感器和执行器的技巧。随着练习推进,示例不再局限于单个元件,包括电机控制电路、伺服电机应用,甚至一个结合电机速度、方向、制动和转向的模型车控制器概念。

一个特别有用的补充是调试内容。Clemens 讲解如何设置断点(breakpoints)、单步执行程序并检查变量(inspect variables)。当项目变得复杂、问题又不明显时,这些技能很有价值。C/C++ 课程还包括使用 Wokwi 进行在线电路仿真,让学员在虚拟环境中实验电路和代码。课程适合已经了解 Arduino 的人,也会介绍入门所需的关键 C/C++ 概念。

从在线课程到实际应用

这两门课程的有趣之处在于,它们用同一块开发板覆盖了相当大的范围。两者都以 STM32 NUCLEO-F411RE 作为参考平台,并探索许多相同的基础内容:学员从基本输入/输出开始,再进入定时、通信、传感器和控制系统。后面的示例展示这些构建模块如何组合起来。例如,日光控制灯涉及读取模拟传感器、比较数值、处理按钮和控制继电器;模型车控制器则把 PWM、电机控制和伺服定位结合起来。

并非每个应用都以可直接构建的完整项目形式呈现。有些是示例或概念,读者可以进一步开发,从而为实验留下空间。两门课程都包含动手示例和迷你项目,以强化课程中介绍的概念。随附元件用于演示示例应用,可下载的项目文件则为每个模块提供额外材料。手册 MicroPython for STM32 和 Arduino for STM32 也可单独购买,方便更喜欢只使用印刷材料的读者。

该选哪门 STM32 课程?

选择取决于工作方式偏好。MicroPython 尤其便于实验:其交互环境可以快速测试想法,可读性强的语法对初学者或已熟悉 Python 的人很有吸引力。Arduino 则采用不同路径:其 C/C++ 编程环境提供了另一种使用 STM32 硬件的方式,可能特别吸引有 Arduino 经验的人。

性能差异也值得考虑。MicroPython 让实验更容易,但解释执行的代码通常比编译后的 C/C++ 占用更多内存、运行更慢。对于时序和性能至关重要的应用,这些差异可能很重要。

同时提供两门课程的价值在于,它们展示了如何用不同工具处理相同的嵌入式概念。编程语言会变,但理解如何读取传感器、管理定时或控制电机仍然同样重要。有兴趣开始使用 STM32 的读者,可在 Elektor Store 了解 MicroPython for STM32 Programming Course 和 Arduino for STM32 Programming Course。

新人专享大礼包