SimpleFOC图形上位机SimpleFOC Stuido的使用

本文档详述了如何安装和使用SimpleFOC上位机进行电机控制,包括上位机安装、硬件程序配置、软件操作步骤以及解决连接问题。关键点在于正确配置电机参数并确保串口通信正常,避免因参数错误导致电机无法响应。
摘要由CSDN通过智能技术生成

1.前言

1.1.上位机安装

下载地址
根据github上的readme.md文件安装即可。其实需要做一件事,就是进如下载的文件夹,运行pip install -r "requirements.txt"命令,要安装的文件作者已经全部去写在里面了,一键安装即可。

1.2.注意事项

这个上位机是使用串口实时打印的,并且处于主循环中,其优先级与motor.loopFOC函数相同,所以会很大程度上影响电机的控制,控制应用中一定不能用,调参可以用。

2.SimpleFOC硬件端程序

以位置控制程序为例,程序实例如下:

#include <SimpleFOC.h>

// magnetic sensor instance - SPI
MagneticSensorSPI sensor = MagneticSensorSPI(AS5147_SPI, 10);   //SPI编码器,AS5047,AS5048A是一样的
// BLDC motor & driver instance
BLDCMotor motor = BLDCMotor(14);     // 电机极对数
BLDCDriver3PWM driver = BLDCDriver3PWM(9, 5, 6, 8);     // 电机ABC相PWM引脚,使能引脚


float target_angle = 0;      // 初始目标角度为0
Commander command = Commander(Serial);    
void doTarget(char* cmd) { command.scalar(&target_angle, cmd); }    // 串口控制指令:目标值
void onMotor(char* cmd){ command.motor(&motor,cmd); }      // 串口控制指令:电机


void setup() {
  // 编码器设置
  sensor.init();
  motor.linkSensor(&sensor);

  // 驱动设置
  driver.voltage_power_supply = 12;
  driver.init();
  motor.linkDriver(&driver);

  // 选择调制方式为SVPWM
  motor.foc_modulation = FOCModulationType::SpaceVectorPWM;

  // 控制模式为角度模式
  motor.controller = MotionControlType::angle;
  
  // PID参数
  motor.PID_velocity.P = 0.3;
  motor.PID_velocity.I = 10;
  motor.PID_velocity.D = 0;
  motor.P_angle.P = 0.5;
  
  //其他参数
  motor.voltage_limit = 6;    //最大电压
  motor.velocity_limit = 20;   //最大速度,rad/s
  motor.LPF_velocity.Tf = 0.01;  //速度的滤波时间常数

  // 串口设置
  Serial.begin(115200);
  motor.useMonitoring(Serial);  //使用串口监视器
  //初始化
  motor.init();
  motor.initFOC();

  // 添加串口命令
  command.add('T', doTarget, "target angle");
  command.add('M',onMotor,"my motor"); 
  
  Serial.println(F("Motor ready."));
  Serial.println(F("Set the target angle using serial terminal:"));
  _delay(1000);
}

void loop() {  
  // main FOC algorithm function
  // the faster you run this function the better
  // Arduino UNO loop  ~1kHz
  // Bluepill loop ~10kHz 
  motor.loopFOC();

  // Motion control function
  // velocity, position or voltage (defined in motor.controller)
  // this function can be run at much lower frequency than loopFOC() function
  // You can also use motor.move() and set the motor.target in the code
  motor.move(target_angle);

  // function intended to be used with serial plotter to monitor motor variables
  // significantly slowing the execution down!!!!
  motor.monitor();    //使用simpleFOC Studio上位机设置的时候,这句一定要打开。但是会影响程序执行速度
  
  // user communication
  command.run();
}

3.软件操作

3.1.打开软件

进入下载的文件夹,运行python simpleFOCStudio.py启动上位机

3.2.添加页面

在这里插入图片描述

3.3.连接电机

tree view页面布局为例:
在这里插入图片描述

3.4.功能使用

在这里插入图片描述

3.5.参数配置生成代码

在这里插入图片描述

基本上就这些功能。最关键的是最开始的连接下位机SimpleFOC的操作,连接上了剩下的就很简单了。

4.中间遇到的问题

一开始能连上,串口数据也有回传,但是发送目标位置指令电机就是没有反应,发热还很大。当时很懵逼,搞了好久也没弄好。
直到我直接使用Arduino IDE的串口,才发现电机PP校准失败了,因为我的电机14极对数,而示例是11极对数,我忘了改。
因此,使用这个上位机连接上SimpleFOC后,一定要检查一下串口回传的初始化信息是否正常!

USB上位机通信软件Visual Studio 是一个功能强大的集成开发环境(Integrated Development Environment,IDE),它主要用于开发Windows平台上的应用程序。Visual Studio具有丰富的功能和强大的调试工具,可以让开发者更加高效地进行软件开发。 在使用USB上位机进行通信时,Visual Studio可以提供以下功能: 1. USB通信接口:Visual Studio可以通过USB接口与上位机进行通信。通过使用USB串口编程技术,开发者可以建立与上位机之间的稳定连接,并实现数据的传输和交互。 2. 数据处理:Visual Studio提供了丰富的数据处理工具,开发者可以利用这些工具对从上位机接收到的数据进行解析、处理和展示。例如,可以通过Visual Studio编写代码来解析传感器数据、图形化显示实时数据等。 3. 用户界面设计:Visual Studio具有强大的图形界面设计工具,可以帮助开发者设计出直观、易用的用户界面。开发者可以通过拖拽控件、编写事件处理程序等方式,快速实现与上位机的交互界面。 4. 调试和错误处理:Visual Studio内置了强大的调试器,可以帮助开发者快速找到并修复程序中的Bug。当与上位机通信出现问题时,开发者可以依靠Visual Studio的调试工具进行问题排查和解决。 5. 扩展性:Visual Studio是一个高度可定制的开发环境,开发者可以通过安装扩展、编写插件等方式来扩展其功能。因此,如果需要对USB上位机通信软件进行特定的定制化开发,可以利用Visual Studio提供的扩展机制来实现。 总之,USB上位机通信软件Visual Studio是一个功能强大、灵活可定制的开发环境,可以帮助开发者实现与上位机的稳定通信,并提供丰富的数据处理和界面设计功能。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值