CAN总线
本教程介绍如何通过 CAN 总线控制 Aotenjo One 板并运行闭环角度控制。
如果您还没有设置CAN总线,请参阅Aotenjo One CAN总线教程以获取详细的接线和配置说明。
什么是CAN总线?
CAN 总线(控制器局域网)是一种强大的车辆总线标准,旨在允许微控制器和设备在没有主机的情况下相互通信。由于其可靠性和效率,它被广泛应用于汽车和工业应用。
为什么将 CAN 总线与 Aotenjo 一起使用?
将 CAN 总线与 Aotenjo 板结合使用具有以下几个优点:
- 稳健的通信:CAN 总线设计用于应对电气噪声干扰,使其成为电机控制应用的理想选择。
- 多设备支持:多个 Aotenjo One 板可以连接到单个 Aotenjo Master 控制板,从而实现多电机控制系统。
- 实时控制:CAN 总线可实现实时通信,这对于精确的电机控制和反馈至关重要。
- 可扩展性:轻松将更多 Aotenjo One 板添加到您的系统中,无需对接线或软件进行重大更改。
- 降低接线复杂性:CAN总线采用两线差分信号系统,与传统串口通信方法相比,减少了所需的接线量。
何时开启 CAN 终端开关
仅在 CAN 总线两个物理末端的控制板上启用终端电阻,以减少信号反射并确保可靠通信。位于两端之间的控制板应将终端开关保持在 OFF 位置。
下图中,Aotenjo Master 位于 CAN 总线的末端,因此应将其 CAN 终端开关设为 ON。
如下图所示,当 Aotenjo Master 位于 CAN 总线的中间时,应将其 CAN 终端开关设为 OFF。总线两端控制板的终端开关应保持为 ON。
准备工作
本教程使用以下硬件:
- Aotenjo One 控制板 单片机:STM32G431CBU6 版本:Aotenjo One V1.4
- Aotenjo Master 控制板 单片机:STM32G431CBU6 版本:Aotenjo Master V1.1
- 沿直径方向充磁的圆片磁铁(Aotenjo One 附带)
- ST-LINK V2 克隆版
- BlackPill STM32 板
- BE4108 75T云台电 机
- 电源(12V)
您需要 ST-LINK V2 克隆版来将固件上传到开发板。您可以以低于 5 美元的价格购买廉价的 ST-LINK V2 克隆版。
配置开发环境
VSCode 与 PlatformIO
您可以从 VSCode 扩展市场安装 PlatformIO。
STM32CubeProgrammer
您需要它来将固件烧录到开发板。
克隆代码仓库
git clone https://github.com/aotenjo-xyz/master.git
cd master
git checkout v1.0
快速入门
-
将 Aotenjo Master 控制板连接到 ST-LINK V2 编程器。
ST-LINK V2 <-> Aotenjo Master3.3V <---> 3.3VGND <---> GNDSWDIO <---> SWDIOSWCLK <---> SWCLKRST <---> NRST信息
与 BlackPill 不同,STM32G4 系列还需要将控制板的 NRST 引脚连接到 ST-LINK V2 编程器。
或者,您可以在上传过程中按住Aotenjo Master 控制板上的NRST按钮来达到相同的效果。
:::
2. 将 ST-LINK V2 编程器连接到计算机。
3. 在 VSCode 中打开项目文件夹。
4. 单击左侧栏上的 PlatformIO 选项卡,然后单击 Upload 按钮将固件上传到开发板。
-
断开 ST-LINK V2 编程器,然后在 Aotenjo Master 和 Aotenjo One 板之间连接用于电源的 JST XH 电缆和用于 CAN 总线的 JST PH 电缆。
-
通过 USB 将 Aotenjo Master 板连接到计算机。
-
单击左侧边栏上的 PlatformIO 选项卡,然后单击
Monitor按钮以打开串口监视器。
-
打开电源,电机开始旋转,初始化FOC(磁场定向控制)。
-
在串口监视器中输入以下命令并按回车键:
M06.28
M0 电机将完成一整圈并停止在初始位置。您可以通过更改弧度值来调整目标角度。
您还可以输入负值,例如M0-6.28,以相反方向旋转电机。
要读取 M0 电机的当前角度,请输入:
M0P
要将电机置于睡眠模式,请使用以下命令:
ESTOP
这正是我们使用 CAN 总线与 Aotenjo Master 和 Aotenjo One 板进行通信来控制绕线机的方式! 希望您喜欢使用 Aotenjo 构建您的项目!