1.MIT cheetah源码业务层逻辑简介
2.FOC(电机矢量控制)的电机电机“大地图”(算法架构)
3.自己写的圆弧插补代码,可放在板子上步进电机没办法动啊,编程编程求大神帮忙看看哪里有问题?
4.st电机库5.0完全开源了。源码源码这对电机控制软件工程师有何影响?电机电机
5.Arduino 控制 28BYJ-48 步进电机详解
MIT cheetah源码业务层逻辑简介
MIT Cheetah机器人源码揭示了其业务层逻辑的全面体系结构。自从MIT公开了Cheetah Mini的编程编程完整资料,包括主控源代码、源码源码ps动作源码电机驱动源代码、电机电机控制板硬件PCB设计以及本体结构资料后,编程编程这款腿部型机器人的源码源码研发在国内受到了广泛关注,从而催生了多个基于此平台的电机电机机器人研发团队。 整体系统由个电机驱动单元、编程编程一个数据转接板SPIne、源码源码一台主控电脑、电机电机一个手柄以及一个缺省状态的编程编程IMU组成。个电机驱动单元通过CAN总线和数据转接板SPIne连接,源码源码分别控制着Cheetah腿部的关节电机,每条腿由三个关节组成。SPIne模块由两个STM芯片构成,负责主控数据的分发到驱动以及驱动反馈数据的打包。主控部分采用开源ethercat协议栈soem,支持两种通信方式:spi通信频率为Hz,ethercat通信频率为Hz。目前推测SPIne上可能仅支持spi通信。主控部分是答题辅助源码一个计算机,通过USB连接手柄,实现手动控制,并包含上位机软件及仿真器代码,用于配置主控单元的控制参数和下发指令信息。 主控部分业务逻辑主要通过多态设计实现多种控制类型,包括MIT_Controller、MiniCheetahSpi_Controller、JPos_Controller等。用户可根据已有功能模块继承基类RobotController,在Cheetah Software/user目录下创建自定义控制器。JPos_Controller提供参考示例,算法完整实现则需参考MIT_Controller模块调用。 程序运行模式分为仿真模式和实际控制模式,通过main_helper函数进行加载启动。HardwareBridge实现加载实际控制程序流程,从Cheetah3HardwareBridge.run()开始,执行控制器硬件初始化、配置参数加载以及算法功能模块初始化,随后启动多个任务,包括可视化线程、日志线程、手柄通信线程、IMU通信线程、驱动源码分析关节电机通信线程和周期回调主控线程。 主控线程周期回调执行关键操作,包括更新数据、步态规划、外部输入转换、状态机运行以及控制数据更新。具体操作如下:更新数据:通过运动学和雅可比计算,将电机传回的关节角度和角速度信息转换为机器人腿部末端的速度和位置信息。
步态规划:对机器人步态进行规划,内容涉及算法细节,后续将单独分析。
外部输入转换:将外部指令转换为机器人本体的位姿控制信息,包括机器人位姿和位姿速度,共计组外部控制量。
状态机运行:执行机器人集成动作的状态机,进行动力学、步态规划、MPC控制等核心算法计算,周期性更新legController中command信息,通过调用legController中的updateCommand更新电机控制相关通信数据寄存器。
控制数据更新:将机器人控制核心的输出控制数据写入相关寄存器,通过spi接口输入到电机驱动,控制电机运行。eos io 源码
对于仿真部分,由于需要接入罗技F手柄才能进行仿真。因未配备手柄,源代码被相应修改,以便实现仿真运行。FOC(电机矢量控制)的“大地图”(算法架构)
一套专注于永磁同步电机(PMSM)和BLDC电机矢量控制的软件教程旨在帮助初学者深入了解FOC算法。教程不仅介绍了理论知识,还提供了一个模块化设计的驱控板方案,支持ABZ编码器、BLDC方波、霍尔FOC和无感FOC控制,适合不同电机类型和传感器配置。其核心目标是通过详细解释,让学习者形成类似游戏“大地图”的全局理解,提升电机控制技能,避免陷入大量无效学习资料的困扰。
软件功能上,它通过RS与上位机通信,实时接收指令并反馈状态。设计上注重安全性,如指令限幅和异常值滤波。软件架构包括系统初始化、参数设置、vc 源码 排班定时器管理、串口通讯、信号采集处理和控制模块。其中,定时器定时器模块用以控制流程,与上位机交互则通过串口通讯,采集的信号则用于闭环调节,确保电机稳定运行。
硬件部分,方案包括主控板、驱动板、电源板、编码器板等,以及一套详细的接口设计,确保了对多种电机控制功能的全面支持,如速度、位置、电流控制,以及多种通信接口的集成。教程还提供了丰富的代码资源,包括双路霍尔、无感和绝对编码器FOC的源码,以及与上位机的通信代码,使得学习者能直接参与到实际的控制实现中。
教程不仅提供代码,还包含一对一指导、远程调试和经验分享,旨在确保学习者不仅掌握理论,还能实操应用。通过全面的教程和丰富的资源,学习者可以快速掌握FOC算法,对电机控制有更深入的认识。
自己写的圆弧插补代码,可放在板子上步进电机没办法动啊,求大神帮忙看看哪里有问题?
1,先不管源代码,你可以直接发送脉冲,电机这个时候不懂,OK。呢么使用万用表测量一下步进电机的驱动器脉冲口电压(直流V就可以测出来),一般驱动器脉冲口有V、V、5V的几种规格,一般如果脉冲过来的话可以直接测出来的;
2、如果没有脉冲就要看下源代码的,你的呢个线程是发送脉冲的线程,可以直接加一个断点,这样可以直接看出来是否发送的有脉冲。
st电机库5.0完全开源了。这对电机控制软件工程师有何影响?
st电机库5.0的全面开源,对电机控制软件工程师来说,是重大利好。开源意味着可以免费获取完整的源代码,使用LL库的直观性和便捷性提升编程效率。软件工程师们无需再为获取源代码而担忧,只需注册并申请,小时内即可收到批准邮件,这极大地加快了项目进程。百度云分享链接提供了方便的访问途径,方便工程师们下载和使用。
然而,对于电机控制领域的老工程师们而言,开源的冲击尤为显著。伺服行业和电动汽车等高端应用领域要求极高,如电机参数辨识、惯量辨识等复杂功能,这些核心知识难以轻易通过开源代码获取。真正的技术创新往往需要工程师投入大量时间与精力,这些成果不愿公开,因此,开源虽然降低了入门门槛,吸引了更多新人进入电机控制领域,但并未改变高端领域技术壁垒的实质。
开源软件的普及,使得低端需求的市场更加饱和,相应产品价格下滑。而对专业度要求更高的领域,技术门槛依然存在,芯片厂商的开源代码仅能提供基础框架,真正实现高级功能仍需专业工程师深入研究。ST的开源代码,虽能为新入行者提供便利,但真正理解并利用其代码的工程师,相对于只懂得基本FOC的人,已展现出了更高的专业水平。在理解并运用开源代码的过程中,工程师不仅能够提升自身技能,也能对电机控制领域有更深入的理解。
Arduino 控制 BYJ- 步进电机详解
在探索Arduino控制BYJ-步进电机的过程中,我深入研究了其控制逻辑和stepper函数的用法,以纠正网络上广泛存在的错误信息。BYJ-步进电机的驱动特性是关键,它有4个独立可通电的定子电磁线圈,采用1-2相励磁单极驱动,即交替使用1相和2相通电。
电机工作原理是,单相励磁时,线圈通电后转子相应转动,而双相励磁则是两个线圈同时通电。BYJ-电机的步距角为5.°,但因为包含减速齿轮箱,实际每一步只转0.°。要控制电机转一周,理论上的步数是°除以步距角,再乘以减速比,大约需要步。
然而,使用Arduino的stepper函数时,要注意它默认采用双拍(每步4步),而规格书描述的是单双拍(每步8步)。这导致了在未调整前,代码执行错误,电机转了两圈。通过查看stepper函数源代码,我发现了这个差异,并修正了参数,将步距角调整为.°,对应的步数变为步。测试结果显示,电机成功转动一圈,耗时约秒。
进阶部分,我修改了Stepper.cpp文件,支持1-2相励磁模式,以匹配BYJ-步进电机。通过这个定制版本的stepper函数,可以更准确地控制电机。以下是关键代码和运行效果的展示: