如何控制BLDC云台电机的速度、扭矩和角度
由于运行平稳、扭矩高且控制精准,BLDC电机越来越受欢迎。在本指南中,我们将探讨如何使用SaraKIT控制BLDC电机,并将其与其他常用电机类型——如步进电机和伺服电机进行对比。在本项目中,我将展示控制BLDC云台电机是多么简单,同时讨论基于伺服电机或步进电机的解决方案的优缺点。此外,我还说明了带解码器和不带解码器的云台电机在控制方式上的差异。带有解码器的云台电机采用磁场定向控制(FOC)算法进行控制。
详情
本示例展示了如何在 C++/Python 中使用场向量控制(FOC)算法(或不使用)来控制 BLDC 摄像机电机的速度、扭矩和角度。
《开源 PCB SaraKIT 中 BLDC 电机(云台)的使用指南:步进电机、伺服电机与 BLDC 电机的对比》
由于运行平稳、扭矩高且控制精确,BLDC 电机越来越受欢迎。在本指南中,我们将探讨如何使用 SaraKIT 进行 BLDC 电机的应用,并将其与其他常用电机如步进电机和伺服电机进行比较。
在本视频中,我将演示控制 BLDC 云台电机是多么简单,并讨论基于伺服电机或步进电机的解决方案的优缺点。同时,我还展示了带解码器和不带解码器的云台电机在控制上的差异。
带有解码器的云台电机采用场向量控制(FOC)算法进行控制。本文所呈现的简明知识来源于互联网上的多种资料,例如适用于 Arduino 系统的“简易场向量控制 BLDC 驱动器”。在未来的视频中,我们将展示如何使用云台控制来制作自平衡机器人、遥控车、精确的平移/俯仰摄像机控制,或基于Amazon Alexa、Google Home或ChatGPT创建语音助手,这些助手无需持续调用“Alexa…”等关键词,只需简单地识别该关键词即可。
Pascal和C++代码示例适用于Raspberry Pi 4 CM4版本。当在项目中使用电机时,SaraKIT至少需要12-24VDC 20W电源,因此建议使用相应更大的电源。对于移动设备,我们推荐通过专用PD 12V线缆连接PowerBank(PD2.0 PD3.0快速充电及QC4带USB-C输出),或者通过USB-C PD触发模块Pd 12V连接USB线缆。
lib/SaraKIT/devices.hpp中的部分bldc电机功能:
以速度和扭矩将电机motorID旋转指定角度。角度可输入为度数(360度为一圈)或弧度(一圈为2π,即2×3.14=6.28):
BLDCMotor_MoveToAngle(uchar motorId, float angle, float speed, uchar torque, bool degrees);
以速度和扭矩将电机motorID旋转指定角度:
BLDCMotor_MoveToAngle(uchar motorId, float angle, float speed, uchar torque, bool degrees)
通过知道轮子的直径,我们可以移动车辆若干厘米或米:
BLDCMotor_DriveMeters(uchar motorId, float centimeters, float speed, uchar torque, float WhellDiameter);
我们也可以像直流电机一样通过增加功率来驱动电机旋转(旋转速度取决于施加的扭矩,扭矩越大,电机转得越快):
BLDCMotor_MoveContinuousTorque(uchar motorId, int8_t direction, uchar torque);
还可以以特定速度驱动电机旋转:
BLDCMotor_MoveContinuousVelocity(uchar motorId, int8_t direction, uchar torque, float speed, bool degrees);
如果使用没有编码器的电机,建议在不进行运动时让其进入休眠模式,否则会因不必要的运行而过热。可通过以下函数确定达到该状态的时间和扭矩值:
BLDCMotor_IdleTorque(uchar motorId, uchar torque, unsigned short torqueMs);
获取当前发动机位置:
Encoder_Get(EncoderId).angle;
当前速度:
Encoder_Get(EncoderId).velocity;
或者无需编码器的情况:
printf("%.2f", BLDCMotor_GetInfo(motorId, 2, false).fdata1);
更多内容请参见 lib/SaraKIT/devices.hpp
电机控制示例代码:
SaraKIT 是一个开源项目,基于 Raspberry Pi CM4 的扩展板,支持高级语音控制和精确的电机控制。它配备三个高灵敏度麦克风,可实现5米范围内的声音定位,用于语音识别;两个独立的BLDC电机控制器,为云台电机提供安静、快速且精准的控制;通过柔性电缆连接两个摄像头的CSI接口;并集成两个加速度计、一个陀螺仪以及一个温度传感器。
本文编译自hackster.io





