- 博客(64)
- 收藏
- 关注

原创 SimpleFOC、ODrive和VESC 教程链接汇总
一、SimpleFOC系列教程SimpleFOC(一)—— 简介(附有文件下载链接)SimpleFOC(二)—— 快速入门 (开环控制)SimpleFOC(三)—— AS5600角度读取SimpleFOC(四)—— 闭环控制SimpleFOC(五)—— 双电机控制SimpleFOC(六)—— PowerShield和AS5047PSimpleFOC(七)——STM32(Bluepill)的应用SimpleFOC(八)—— 理论+实践 深度分析SVPWMSimpleFOC(九)——
2021-11-10 13:48:16
92848
18
原创 JC4805控制各种电机的操作演示
JC4805驱动板 购买链接:https://item.taobao.com/item.htm?电机 购买链接:https://item.taobao.com/item.htm?以下配置参数适用本店的 2204电机、2808电机、5010电机、5008电机;JC4805的驱动电流有限,只能控制轮毂电机小负载运行,如果编码器不同,选择对应型号。
2025-03-29 15:11:59
393
原创 校准电机说明
ABZ编码器必须每次上电后零点校准,此处不要打勾,否则上电提示故障。注意,电机必须校准成功,才能上电后进入闭环模式。注意,校准时电机不能带负载,否则校准容易出错。
2024-10-06 10:35:44
1565
1
原创 设置参数说明
位置梯形轨迹:“梯形轨迹速度限制”限制了电机的最大速度,“梯形轨迹加速斜率”控制电机速度上升斜率,参数越大上升曲线越陡峭,“梯形轨迹减速斜率”控制电机速度下降斜率,参数越小下降曲线越平缓。驱动板接入电脑后会虚拟为串口,点击“刷新”,选择对应的com,点击“连接设备”,软件左下角会提示“连接成功”。根据需要设置对应的保护,使能可以选择“可恢复”和“不可恢复”,“可恢复”的保护,恢复后电机失能,需要重新发送指令进入闭环状态。注意,重启后,USB通信需先点击“断开连接“再”连接设备“,才能与驱动器再次通信。
2024-10-06 10:31:34
2362
原创 JC系列CAN通信说明
①、错误信息②、串口波特率③、CAN波特率④、电机类型:0=HighCurrent,1=Gimbal。⑤、编码器类型:⑥、控制模式⑦、保护使能⑧、校准结果。
2024-10-05 18:21:39
1738
原创 ODrive移植keil(九)—— 抗齿槽效应算法
在永磁电机中,即使定子中没有电流通过,也会存在一个电磁转矩,这个转矩叫齿槽力矩(Cogging Torque)。用手转动电机,会感觉到它从当前点“跳跃”并“稳定”在另一个点,电机有“一格一格”的顿挫感(俗称颗粒感)。当电机低速转动时,表现为“一顿一顿”,当电机高速转动时,电机的振动和噪声会更大。某疆早期的2312电机齿槽效应非常大,后来的电机齿槽效应明显变小了。5008电机的齿槽效应小,改善效果不明显,用齿槽效应大的电机测试,改善效果还是很明显的。
2023-12-08 09:00:23
7310
4
原创 ODrive移植keil(八)—— 闭环控制
定点运算早就存在,但是ST采用定点运算配合它的电机库,极大的推广了这一技术,我觉得目前市面上只要是定点运算的电机驱动器,应该都会受到ST的影响,或者直接就师承ST。发送指令“C”,3秒钟后电机“嘀”一声,然后正转8个电角度,反转8个电角度,同时串口打印校准参数。如果限速,电机只能达到限制转速。发送指令“C”,3秒钟后电机“嘀”一声,然后正转8个电角度,反转8个电角度,同时串口打印校准参数。发送指令“C”,3秒钟后电机“嘀”一声,然后正转8个电角度,反转8个电角度,同时串口打印校准参数。
2023-10-19 17:28:23
7366
7
原创 ODrive移植keil(七)—— 插值算法和偏置校准
ENCODER_cpr 为接口对应的cpr,比如AS5047P的ABZ接口cpr=4000,SPI接口的cpr=16384,注意区分。读取后的角度为原始数据,再在encoder_update() 中处理,数据处理包含了两部分:锁相环和插值,目前支持四种编码器:ABZ、AS5047P、MT6701、MA730,本例以ABZ信号为例,发送指令“P”(不需要回车换行),同时用手转动电机,查看角度打印,使用SPI接口,SPI读出角度为绝对值,更容易找到规律,
2023-10-14 18:10:02
5595
5
原创 ODrive移植keil(六)—— 测量电阻电感和电流环PI参数整定
最初移植的时候,我也用函数指针实现中断中的函数运行,但是发现函数指针太不直观了,非常容易被忽视和忘记更改指针,所以用了标志位的方法,不高级但却实用。发送指令“C”(不需要回车换行),3秒钟后电机“嘀”一声,校准完毕,打印测量结果,同时打印整定后的电流环PI参数。在ODrive代码中,设定了测量电流 I,根据检测到的电流不断调整 U,大概3秒钟,最终稳定电流到设定值,电阻电感测量的相关代码在motor.c文件中,可自行查看,上面也讲过了原理,所以就不再细说,
2023-10-12 10:31:43
3962
2
原创 ODrive移植keil(五)—— 开环控制和电流变换
如果转速设置太大,电机会振动,可以调高 target_voltage_ 以达到更大的转速,但是注意电机电流,注意发热。ODrive的程序架构,也是我在基本移植完代码后才焕然大悟的,如果事先有架构意识,不至于看代码的时候那么痛苦。Park变换的θ是当前读出的角度,而Park逆变换是下次FOC计算时的角度(当前角度+估算的下次转过的角度),3、Uq设置太大,电机发热严重,Uq设置太小,电机没劲转不动或者转不快,所以一定要根据电机相电阻设置大小,4、θ不是当前的角度,是目标角度,就是下次计算时的角度。
2023-10-11 10:57:06
4424
1
原创 ODrive移植keil(四)—— PWM触发ADC采样
ADC以DMA的方式转换,代码单独执行这个操作是没问题,但在初始化阶段随着片内外设配置的增加,或者代码执行顺序的变换,就会发生错位。网上找到过很多解释错位原因以及改正办法,但从来都没有彻底解决过这个问题,此次移植又遇到了这个问题,曾经的解决办法测试一遍后都失效了,最后发现用TIM2更新触发的方式不再错位。ADC1多通道规则转换时,如果使用DMA方式,经常会发生AD值错位的现象,比如第一个AD值的高字节放入的是低字节的数据,而低字节是第二个AD值的高字节数据,以此类推,转换值全部失效。
2023-09-16 18:08:18
6210
1
原创 ODrive移植keil(三)—— USB虚拟串口和快速正弦余弦运算
但是我实际的测试,从软件中断退出后仍然会执行第二个更新中断,并且我觉得在软件中断中等待第二次更新中断,很浪费时间,所以就没有使用这个方案。以上测试证明了USB虚拟串口移植成功,但在实际应用中,只需要USB收发数据,不需要USART2,所以屏蔽掉相关配置。单片机的USB通信,一般都是以虚拟串口的方式实现,ODrive使用自定义的接口,所以才需要用zadig驱动。DSP库优化后的运算,运算时间大约261520 us,精度在0.000001f,我本来是打算描述下移植的细节的,但是隔的时间太久了,已经记不清细节,
2023-09-15 17:07:40
2834
原创 ODrive移植keil(二)—— ODrive的程序架构
本节及之后的教程将把odrive移植到keil环境下,为了降低移植难度,同时也为了让大家更容易学习掌握移植后的代码,本次移植,只移植电机的核心控制功能,实现常用的一些功能。这部分代码会让人看得很无助,因为所有的代码都在此时执行,比如最下面的开环控制,都已经闭环了难道它还在运行,它运行的意义是什么?ADC1的规则通道转换所有闲杂的ADC,比如温度检测,不需要时效,软件触发后将一直在后台转换;国外的电机驱动技术领先国内这是不争的事实,“洋务运动”一直都在,只是在不同的领域不同的范围,
2023-09-07 11:16:30
7389
10
原创 ODrive移植(一)—— 国产替代方案(VScode版移植)
官方网站:https://odriverobotics.com/github网站:https://github.com/odriverobotics/ODrive官方使用说明:https://docs.odriverobotics.com/v/latest/guides/getting-started.html,在左下角选择对应的版本,比如ODrive-V3.6的当前最新版本是0.5.6,
2023-09-01 17:51:00
14162
9
原创 VESC操作入门(三)——PPM输入控制和ADC输入控制
注意操作时动作要慢,不要快速的上下划动摇杆,电机转速突变容易产生高压反电动势,本人的12V小功率开关电源就这样被击穿了。因为上面测试PPM时使用了带AS5047P编码器的电机,固件中默认使能了SPI接口,所以需要重新烧写不支持SPI接口的固件,本人测试用的10K和20K电位器接入ADC引脚后都不起作用,直到使用4.7K电位器,引脚电压才可以被改变,vesc可用于电动滑板车,所以AD引脚应该接的是一个转把,本人查找资料,发现电动车转把不是电位器,此时操作摇杆就可以控制电机转动,向上电机正转,向下电机反转。
2023-06-02 18:01:12
5122
2
原创 SmartKnob移植ESP32和STM32——棘轮手感
SmartKnob 利用电机模拟机械旋钮的效果,且模式灵活多变,自带高级感,据说宝马的车内旋钮就是这样的。github网址:https://github.com/scottbez1/smartknob。
2023-05-17 14:01:02
7443
4
原创 VESC操作入门(二)——双轮毂电机控制和CAN通信
要想让两个电机同时转动,需要在1000ms内连续发送两个指令,手工操作CAN盒的方式肯定达不到。只能通过代码的方式,而能够在最短的时间内实现这个功能的代码,非arduino莫属。VESC中会限制电机的最小速度,修改了限制后,虽然可以设置更小的速度,但是电机有抖动,尝试修改了PID,作用不大,电机齿槽效应导致的抖动,PID无能为力。VESC和ODrive的CAN通信类似,都只有简单的指令,大部分操作都需要通过USB事先配置好。VESC的CAN波特率默认500K,默认使能,接线既可使用,不需要任何配置。
2023-05-04 18:30:58
7708
6
原创 ODrive的梯形轨迹
实际应用中,需要电机又快又稳的转到指定位置,梯形轨迹(INPUT_MODE_TRAP_TRAJ)本质上是一个分段函数的轨迹规划,是一个先加速,再匀速,再减速的三段函数的过程。2804电机100kv,12V电源,最高速度为1200RPM = 20 转/秒。AS5047P_SPI接口,电源电压12V,24V都可以。1.1.2、位置模式,梯形轨迹。1.1.1、速度模式。
2023-04-20 16:55:23
2445
原创 ODrive的CAN通信
读取当前电压值(MSG_GET_VBUS_VOLTAGE)cmd_ID=0x17,msgID = node_ID | cmd_ID = 0x057,发送后没有反应,看代码需要rtr为1,打勾。设置Axis请求状态(MSG_SET_AXIS_REQUESTED_STATE)cmd_ID = 0x07,Adress=(node_ID
2023-04-20 16:21:45
4862
2
原创 ODrive运放电路的分析和替代方案
下图第80行,max_unity_gain_current = 边缘 x 波动 x 采样电阻导数 = 0.9 x 1.35 x 2000 = 2430,下图第81行,requested_gain = 2430 / 电流采样范围,代码通过设置的电流采样范围,计算出需要的放大倍数。如果电流采样范围设置120A,放大倍数为20倍,如果电流采样范围设置240A,放大倍数为10倍,如果电流采样范围设置30A,放大倍数为80倍,如果电流采样范围设置60A,放大倍数为40倍,ODrive的采样电阻为0.5mΩ,
2023-04-18 16:45:55
5909
2
原创 SimpleFOC移植STM32(九)—— ABZ编码器电机
ABZ或者ABI,叫法不同但指的都是同一种编码器,也叫增量式编码器。ABZ编码器最大的优点就是接口统一,兼容性好。不像SPI接口的磁编码器,不同厂家的芯片甚至同一厂家的不同型号,通信协议各不相同,换个编码器就要重新写代码。光电编码器的信号输出有开漏和推挽多种形式,不确定信号类型情况下,在单片机接口上最好能接 上拉电阻,光电编码器的工作电压一般为5V,接3.3V后不工作。驱动板103没有5V电源输出。磁编码器输出的ABZ信号一般为推挽输出,有一定的驱动能力,所以有没有上拉电阻不重要。
2023-04-10 18:06:49
13024
3
原创 SimpleFOC移植STM32(八)—— 霍尔电机
假如霍尔电机是2对极,那么cpr=12,示意图刚好相当于一个钟表,假如当前电机的电角度在12点,q轴如上图,电机的转矩将一直保持这个状态,直到触发到下一个霍尔跳变,代码检测到新的角度,产生新的矢量q1并持续到下一个状态,所以simpleFOC对霍尔电机的控制效果等同于六步换相法。当然SimpleFOC提供了一个最简单的控制方法,保证电机能够转起来,你不要一看它的控制效果不好扭头就走,你知道了原理下一步就可以把ODrive的角度插值法移植过来,电机就可以实现ODrive的效果,是不是很简单。
2023-04-07 18:15:18
7975
2
原创 VESC简介与国产替代方案
官方网站:https://vesc-project.com/github网站:https://github.com/vedderb在上面1.3节中,本杰明说了“与软件不同,硬件布局不是非常可重用的”。不同功率的板子,硬件设计差别一定非常大,而软件可以很容易修改和重用。代码架构反映了本杰明的这一想法,即固件要容易修改和重用。一般我们写代码,会用一个头文件做全局宏定义。
2023-03-20 16:06:46
15776
3
原创 ESP32的CAN通信
上面的库里都提到了MCP2515,所以简单介绍下。在Arduino中,考虑到跨平台的兼容性,这个芯片被拿出来频繁使用。在一些没有CAN外设的单片机上,比如UNO上古老的MEGA328P就没有CAN功能,还必须使用MCP2515。MCP2515简单来说是一个把SPI接口转换为CAN接口的转换芯片,在单片机普遍没有集成CAN外设的年代,他可以做为外挂实现CAN通信。
2023-03-20 16:05:39
16800
26
原创 ODrive的操作演示——控制AS5047P、霍尔电机和轮毂电机
应该跟ODrive的电源是通过M0的DRV8301降压有关,或者单片机和两路DRV8301通过SPI通信,导致SPI复用过多。SPI接M0端子,进入闭环后电机稍微动一下就报错,查看错误:ENCODER_ERROR_ABS_SPI_COM_FAIL,本店改版后的ODrive,使用单独的电源芯片,并且SPI接口没有过多复用,不存在这个问题,M0/M1都能很好的转动。本文主要是结合本店的驱动器和电机,通过配置的参数,快速实现对电机的控制。用M1接口控制好点,但是转速不能过高,否则也报错。
2022-05-24 11:34:32
19196
6
原创 SimpleFOC之ESP32(七)—— 霍尔电机
目录一、霍尔电机介绍二、ESP32drive控制霍尔电机2.1、原理图2.2、读霍尔角度2.3、控制霍尔电机三、ESP32drive-D控制霍尔电机3.1、原理图3.2、读霍尔角度3.3、控制霍尔电机 SimpleFOC教程目录:请点击 一、霍尔电机介绍霍尔电机就是带霍尔传感器的直流无刷电机,下图 霍尔有两种安装方式,120度和60度,120度安装方式的稍微常见一些,下图 主要应用于车轮,特别是电动自行车,几乎都是霍尔电机,下图如果是做机器人底盘,霍尔电机是个很好的选择;如果是
2022-01-31 15:30:12
20251
6
原创 SimpleFOC之ESP32(十)—— ESP-NOW和力矩反馈
目录说明一、ESP-NOP1.1、简介 SimpleFOC教程目录:请点击 说明一 开始并没打算做ESP32的产品和教程,在B站无意中看到了老外的触觉控制(Haptic Control),觉得非常炫酷,甚是心动。仔细研究了Dagor这个项目,国内貌似没有销售这个产品,板子上用的TI芯片正缺货,我就想能不能用分立元件搭建电路,实现同样的功能,凭借十几年的经验我觉得应该可以拿下。过程还算顺利,两个月做了四版PCB,实现了Dagor的全部功能。这个产品借鉴了老外的创意,参考了老外的代码,只能算半个原
2022-01-29 18:00:23
12563
5
原创 SimpleFOC之ESP32(九)—— WIFI、UDP和TCP
目录说明 SimpleFOC教程目录:请点击 说明你一般是怎么看教程的,是不是直接往下翻,找到接线图和代码比划一番结束,所以你也看不到这段话是不是!这让我想起了电影《卧虎藏龙》里碧眼狐狸偷了武功秘籍,但是不识字只能看图比划,而她的徒弟识字,不仅看图还读了心经所以武功超越了师父。文字往往才是核心技术,图片不过是外在的表现形式。simpleFOC的官方代码到上一篇就结束了,网上相关的教程也很少提到无线通信这块。电机控制是个很硬件的技术,无论是硬件设计还是嵌入式编程;而无线通信因为协议的复杂性,更适
2022-01-28 12:00:20
13678
3
原创 SimpleFOC之ESP32(五)—— 电流闭环控制Lowside
目录说明一、原理说明1.1、为什么要采样电流1.2、电流检测方式 LowsideCurrent1.3、运放电路设计二、硬件介绍2.1、原理图2.2、准备清单2.3、硬件连接三、程序演示3.1、打开示例3.2、修改代码3.3、验证上传3.4、串口发送指令3.5、观察电机运行 SimpleFOC教程目录:请点击 说明本文教程只适配ESP32drive,注意区分电流采样模式。 一、原理说明1.1、为什么要采样电流 FOC(Field-Oriented Control),即磁场定向控制,磁
2022-01-25 14:51:54
12137
6
原创 SimpleFOCStudio安装使用说明及PID调试
目录说明一、SimpleFOCStudio安装1.1、为什么要采样电流 SimpleFOC的教程比较多,做了一个总链接,欢迎点击阅读:SimpleFOC教程链接汇总 说明一、SimpleFOCStudio安装1.1、为什么要采样电流
2022-01-23 14:05:25
14095
原创 SimpleFOC移植STM32(六)—— 双电机控制和力矩反馈
目录一、说明二、硬件介绍1.1、原理图 SimpleFOC的教程比较多,总链接方便查找阅读:SimpleFOC教程链接汇总 一、说明二、硬件介绍1.1、原理图
2022-01-11 14:33:28
15068
3
原创 SimpleFOC之ESP32(六)—— 双电机控制
目录一、硬件介绍1.1、原理图1.2、准备清单1.3、硬件连接二、代码演示2.1、I2C接口说明2.2、速度模式2.3、其它模式 SimpleFOC的教程比较多,做了一个总链接,欢迎点击阅读:SimpleFOC教程链接汇总 一、硬件介绍1.1、原理图1.2、准备清单序号名称数量1ESP32-DevKitC12simpleFOCShield V2.0.323云台电机24USB线1512V电源16杜邦线若干Sim
2021-11-20 18:10:37
13671
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人