开环控制
本教程介绍如何使用开环控制运行 BLDC 电机。
准备工作
本教程使用以下硬件:
- Aotenjo One 控制板 单片机:STM32G431CBU6 版本:Aotenjo One V1.4
- ST-LINK V2 克隆版
- BlackPill STM32 板
- BE4108 75T云台电机
- 电源(12V)
您需要 ST-LINK V2 克隆版来将固件上传到开发板。您可以以低于 5 美元的价格购买廉价的 ST-LINK V2 克隆版。
USB 转串口适配器
由于 Aotenjo One 开发板没有 USB 端口,因此您需要一个 USB 转串口适配器才能通过串行方式与开发板进行通信。 本教程使用 BlackPill STM32 开发板作为 USB 转串口适配器。也可以使用现成的 USB 转串口适配器,或其他支持此功能的开发板。
您可以使用以下开发板作为 USB 转串口适配器:
- BlackPill STM32 板
- BluePill STM32 板
- ESP32-DevKitC

如果您不确定如何使用BlackPill STM32板作为USB转串口适配器,您可以参考串口通信教程。
确保您的 BLDC 电机内阻大于 10Ω;否则,可能会烧毁控制板。
测量方法请参阅如何测量内阻
配置开发环境
VSCode 与 PlatformIO
您可以从 VSCode 扩展市场安装 PlatformIO。
STM32CubeProgrammer
您需要它来将固件烧录到开发板。
克隆代码仓库
git clone https://github.com/aotenjo-xyz/one.git
cd one
开环控制的示例代码位于examples/openloop目录中,因此如果您使用Linux或macOS,请运行以下命令将示例代码复制到src目录中 :
rm src/*
cp examples/open_loop/main.cpp src/
cp examples/open_loop/platformio.ini platformio.ini
对于 Windows,您可以手动复制文件。
快速入门
-
将 Aotenjo One 板连接到 ST-LINK V2 编程器。
ST-LINK V2 <-> Aotenjo One3.3V <---> 3.3VGND <---> GNDSWDIO <---> SWDIOSWCLK <---> SWCLKRST <---> NRST信息
与 BlackPill 不同,STM32G4 系列还需要将控制板的 NRST 引脚连接到 ST-LINK V2 编程器。
或者,您可以在上传过程中按住Aotenjo One板上的NRST按钮来达到相同的效果。
:::
2. 将 ST-LINK V2 编程器连接到计算机。
3. 在 VSCode 中打开项目文件夹。
4. 单击左侧栏上的 PlatformIO 选项卡,然后单击 Upload 按钮将 固件上传到开发板。
-
断开ST-LINK V2编程器,然后将电源和BlackPill STM32板连接到Aotenjo One板。最后,将 BlackPill STM32 板连接到您的计算机。
Power Supply <-> Aotenjo One12V <---> VCCGND <---> GNDAotenjo One <-> Blackpill STM32TX <---> PA3 (RX)RX <---> PA2 (TX)GND <---> GNDBlackpill STM32 <-> ComputerUSB <---> USB
6. 单击左侧边栏上的 PlatformIO 选项卡,然后单击 Monitor 按钮以打开串口监视器。

- 打开电源,在串口监视器中输入以下命令并回车:
T1
电机此时应以恒定速度旋转。T1 用于设置目标速度,修改其中的数值即可调整转速。
例如,输入 T6.28 将目标速度设置为 6.28 rad/s — 这意味着电机每 秒完成一整圈。
您还可以输入负值,例如T-6.28,以相反方向旋转电机。

以下视频展示了实际运行效果:
使用 Commander 控制电机
代码使用SimpleFOC库来控制电机,因此您可以使用Commander接口来控制电机。 以下是一些有用的命令:
T<value>:设置目标速度(以rad/s为单位)L<value>:设置目标电压(单位:V)?:获取可用命令
如果您在串口监视器中输入?,您将看到可用命令的列表:
T:target velocity
L:target voltage
您可以通过在串口监视器中输入T来查看当前目标速度,并通过在串口监视器中输入L来查看当前目标电压。
