第1部分 硬件介绍
1.1 硬件清单
序号 | 品名 | 数量 |
---|---|---|
1 | SimpleFOCShield V2.0.2 主板 | 1 |
2 | ARDUINO UNO主板 | 1 |
3 | MKS SF2804电机 | 1 |
4 | AS5600传感器 | 1 |
5 | AS5600_A(3pin)连接线 | 1 |
6 | 杜邦线 | 4 |
7 | 直流24V 1A电源适配器 | 1 |
8 | USB 线 | 1 |
硬件清单如下图所示:
1.2 硬件连接
-
SimpleFOCShield V2.0.2主板与Arduino UNO主板叠接。
-
USB线一端连接Arduino UNO主板,另一端连接PC;
-
24V电源适配器连接主板DC接口,上电后PWR指示灯亮。
-
电机三根相线连接至SimpleFOCShield V2.0.2主板TB_M1的3个接口。
-
AS5600传感器Analog接口:
序号 | SimpleFOCShield V2.0.2主板 | AS5600传感器 |
---|---|---|
1 | A1 | OUT |
2 | 5V | 5V |
3 | GNG | GND |
Analog接口硬件连接如下图所示:
- AS5600传感器I2C接口:
AS5600传感器与SimpleFOCShield V2.0.2主板连接关系如下表格所示。
序号 | SimpleFOCShield V2.0.2主板 | AS5600传感器 |
---|---|---|
1 | SCL | SCL |
2 | SDA | SDA |
3 | 5V | 5V |
4 | GNG | GND |
I2C接口硬件连接如下图所示:
第2部分 AS5600传感器测试
2.1 Analog接口测试
-
打开Aruino IDE。打开示例,文件 -> 示例-> Simple FOC -> utils -> sensor_test -> magnetic_sensors -> magnetic_sensor_analog_example, 如下图1,2,3,4,5,6,7所示。
-
analog示例程序如下图所示。
-
连接开发板后,点击上传,并等待上传完成,如下图1,2所示。
-
打开串口监视器,可以监测电机的位置以及转速,如下图1,2所示。
-
转动电机,可以发现电机位置与转速发生改变,如下图3所示。
正转一圈约数值增加6.28(2π),反转一圈数值减少6.28(2π)。
2.2 I2C接口测试
-
打开示例:文件->示例-> Simple FOC -> utils -> sensor_test -> magnetic_sensors -> magnetic_sensor_i2c_example,如下图1,2,3,4,5,6,7所示。
-
I2C示例程序如下图所示。
-
连接开发板后,点击上传,并等待上传完成。
-
打开串口监视器,可以监测电机的位置以及转速,如下图1,2所示。
-
转动电机,可以发现电机位置与转速发生改变,如下图3所示。
正转一圈约数值增加6.28(2π),反转一圈数值减少6.28(2π)。
第3部分 闭环控制测试
3.1 闭环位置测试
-
打开示例:文件 -> 示例 -> Simple FOC -> motion_control -> position_motion_control -> magnetic_sensor -> angle_control,如下图1,2,3,4,5,6,7所示。
-
修改文件,如下图1,2,3,4,5所示。
第13行,用“//”屏蔽,如下图1所示。
如果用I2C接口则需要:第15行,删除“//”,取消屏蔽,如下图1所示。
如果用Analog接口则需要:第17行,删除“//”,取消屏蔽。
第20行,BLDCMotor motor = BLDCMotor(7);如下图2所示。
第41行,driver.voltage_power_supply = 24;如下图3所示。
第57行,motor.PID_velocity.I = 2;如下图4所示。
第60行,motor.voltage_limit = 1; 如下图5所示。
-
连接开发板后,上传代码,并等待上传完成。
-
打开串口监视器,等待完成初始化,如下图1所示。
-
输入位置信息 T62.8,并点击发送,如下图1,2所示。
正转一圈约数值增加6.28(2π),反转一圈数值减少6.28(2π)。
-
可观察到电机转动约10圈,并返回位置信息,如下图3所示。
-
输入不同位置信息,可观察电机转动,并停在不同位置。
-
用手拨动电机会发现有阻力,松手后电机会返回原先的位置。
3.2 闭环速度测试
-
打开示例:文件 -> 示例 -> Simple FOC -> motion_control -> velocity_motion_control -> magnetic_sensor -> velocity_control,如下图1,2,3,4,5,6,7所示。
-
修改文件,如下图所示。
第16行,用“//”屏蔽,如下图1所示:
如果用I2C接口需要:第18行,删除“//”,取消屏蔽,如下图1所示。
如果用Analog接口需要:第19行,删除“//”,取消屏蔽。
第22行,BLDCMotor motor = BLDCMotor(7);如下图2所示。
第43行,driver.voltage_power_supply = 24;如下图3所示。
第56行,motor.PID_velocity.I = 2;如下图4所示。
第59行,motor.voltage_limit = 1; 如下图5所示
-
连接开发板后,上传代码,并等待上传完成。
-
打开串口监视器,等待完成初始化,如下图1所示。
-
输入速度信息 T2,并点击发送,如下图1,2所示。
-
可观察到电机会以2圈/秒的转速转动,并返回转速信息,如下图3所示。
-
输入不同转速信息,可观察电机以不同转速转动。
第4部分 电流感测测试
电流感测测试需要接I2C接口。
为了方便观察电流变化,电机需要进入闭环模式。
测试代码为闭环位置控制示例与电流感测示例合并所生成。
电流感测代码可以在Q群732557609下载。如下图所示。
解压后文件如下图所示。
-
打开下载好的程序文件,如下图所示。
-
连接开发板后,点击上传,并等待上传完成。
-
打开串口监视器,可以监测电机的A相、B相的电流以及电流幅值,如下图所示。
-
拨动电机A相电流、B相电流、电流幅值瞬间发生改变,如下图所示。
Makerbase SimpleFOC 第二课 基本测试 到此结束。
请继续关注后续课程。
欢迎加入 创客基地 电机控制Q群 讨论电机控制相关问题:732557609
欢迎光临 创客基地 B站 了解技术资料:
https://space.bilibili.com/393688975
欢迎光临 创客基地 淘宝店 采购产品:
https://makerbase.taobao.com/