跳到主要内容

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。

准备工作​

本教程使用以下硬件:

您需要 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

快速入门​

  1. 将 Aotenjo Master 控制板连接到 ST-LINK V2 编程器。

    ST-LINK V2 <-> Aotenjo Master
    3.3V <---> 3.3V
    GND <---> GND
    SWDIO <---> SWDIO
    SWCLK <---> SWCLK
    RST <---> NRST
    信息

与 BlackPill 不同,STM32G4 系列还需要将控制板的 NRST 引脚连接到 ST-LINK V2 编程器。 或者,您可以在上传过程中按住Aotenjo Master 控制板上的NRST按钮来达到相同的效果。 ::: 2. 将 ST-LINK V2 编程器连接到计算机。 3. 在 VSCode 中打开项目文件夹。 4. 单击左侧栏上的 PlatformIO 选项卡,然后单击 Upload 按钮将固件上传到开发板。

  1. 断开 ST-LINK V2 编程器,然后在 Aotenjo Master 和 Aotenjo One 板之间连接用于电源的 JST XH 电缆和用于 CAN 总线的 JST PH 电缆。

  2. 通过 USB 将 Aotenjo Master 板连接到计算机。

  3. 单击左侧边栏上的 PlatformIO 选项卡,然后单击 Monitor 按钮以打开串口监视器。 PlatformIO 监视器

  4. 打开电源,电机开始旋转,初始化FOC(磁场定向控制)。

  5. 在串口监视器中输入以下命令并按回车键:

    M06.28

M0 电机将完成一整圈并停止在初始位置。您可以通过更改弧度值来调整目标角度。 您还可以输入负值,例如M0-6.28,以相反方向旋转电机。

要读取 M0 电机的当前角度,请输入:

M0P

要将电机置于睡眠模式,请使用以下命令:

ESTOP

这正是我们使用 CAN 总线与 Aotenjo Master 和 Aotenjo One 板进行通信来控制绕线机的方式! 希望您喜欢使用 Aotenjo 构建您的项目!