loop222
码龄6年
关注
提问 私信
  • 博客:966,732
    问答:9
    966,741
    总访问量
  • 63
    原创
  • 12,668
    排名
  • 2,694
    粉丝
  • 215
    铁粉
  • 学习成就

个人简介:单片机,硬件设计

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:河南省
  • 加入CSDN时间: 2018-06-20
博客简介:

loop222的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    6
    当前总分
    2,838
    当月
    41
个人成就
  • 获得1,313次点赞
  • 内容获得374次评论
  • 获得8,184次收藏
  • 代码片获得1,215次分享
创作历程
  • 5篇
    2024年
  • 21篇
    2023年
  • 11篇
    2022年
  • 20篇
    2021年
  • 3篇
    2020年
  • 1篇
    2019年
  • 2篇
    2018年
成就勋章
TA的专栏
  • ODrive
    14篇
  • 使用说明书
    5篇
  • simpleFOC
    34篇
  • VESC
    4篇
兴趣领域 设置
  • 嵌入式
    单片机
  • 硬件开发
    硬件工程
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

零点校准说明

ABZ编码器必须每次上电后零点校准,此处不要打勾,否则上电提示故障。注意,电机必须校准成功,才能上电后进入闭环模式。注意,校准时电机不能带负载,否则校准容易出错。
原创
发布博客 2024.10.06 ·
444 阅读 ·
5 点赞 ·
0 评论 ·
4 收藏

设置参数说明

位置梯形轨迹:“梯形轨迹速度限制”限制了电机的最大速度,“梯形轨迹加速斜率”控制电机速度上升斜率,参数越大上升曲线越陡峭,“梯形轨迹减速斜率”控制电机速度下降斜率,参数越小下降曲线越平缓。驱动板接入电脑后会虚拟为串口,点击“刷新”,选择对应的com,点击“连接设备”,软件左下角会提示“连接成功”。根据需要设置对应的保护,使能可以选择“可恢复”和“不可恢复”,“可恢复”的保护,恢复后电机失能,需要重新发送指令进入闭环状态。注意,重启后,USB通信需先点击“断开连接“再”连接设备“,才能与驱动器再次通信。
原创
发布博客 2024.10.06 ·
1362 阅读 ·
6 点赞 ·
0 评论 ·
9 收藏

JC系列CAN通信说明

①、错误信息②、串口波特率③、CAN波特率④、电机类型:0=HighCurrent,1=Gimbal。⑤、编码器类型:⑥、控制模式⑦、保护使能⑧、校准结果。
原创
发布博客 2024.10.05 ·
1107 阅读 ·
15 点赞 ·
0 评论 ·
14 收藏

JC4805快速入门

JC4805快速入门
原创
发布博客 2024.10.05 ·
848 阅读 ·
28 点赞 ·
0 评论 ·
20 收藏

JC2804快速入门

JC2804机电一体,快速入门
原创
发布博客 2024.10.05 ·
833 阅读 ·
21 点赞 ·
0 评论 ·
8 收藏

ODrive移植keil(九)—— 抗齿槽效应算法

在永磁电机中,即使定子中没有电流通过,也会存在一个电磁转矩,这个转矩叫齿槽力矩(Cogging Torque)。用手转动电机,会感觉到它从当前点“跳跃”并“稳定”在另一个点,电机有“一格一格”的顿挫感(俗称颗粒感)。当电机低速转动时,表现为“一顿一顿”,当电机高速转动时,电机的振动和噪声会更大。某疆早期的2312电机齿槽效应非常大,后来的电机齿槽效应明显变小了。5008电机的齿槽效应小,改善效果不明显,用齿槽效应大的电机测试,改善效果还是很明显的。
原创
发布博客 2023.12.08 ·
5148 阅读 ·
42 点赞 ·
3 评论 ·
57 收藏

ODrive移植keil(八)—— 闭环控制

定点运算早就存在,但是ST采用定点运算配合它的电机库,极大的推广了这一技术,我觉得目前市面上只要是定点运算的电机驱动器,应该都会受到ST的影响,或者直接就师承ST。发送指令“C”,3秒钟后电机“嘀”一声,然后正转8个电角度,反转8个电角度,同时串口打印校准参数。如果限速,电机只能达到限制转速。发送指令“C”,3秒钟后电机“嘀”一声,然后正转8个电角度,反转8个电角度,同时串口打印校准参数。发送指令“C”,3秒钟后电机“嘀”一声,然后正转8个电角度,反转8个电角度,同时串口打印校准参数。
原创
发布博客 2023.10.19 ·
4712 阅读 ·
12 点赞 ·
4 评论 ·
29 收藏

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 ·
3974 阅读 ·
12 点赞 ·
5 评论 ·
34 收藏

ODrive移植keil(六)—— 测量电阻电感和电流环PI参数整定

最初移植的时候,我也用函数指针实现中断中的函数运行,但是发现函数指针太不直观了,非常容易被忽视和忘记更改指针,所以用了标志位的方法,不高级但却实用。发送指令“C”(不需要回车换行),3秒钟后电机“嘀”一声,校准完毕,打印测量结果,同时打印整定后的电流环PI参数。在ODrive代码中,设定了测量电流 I,根据检测到的电流不断调整 U,大概3秒钟,最终稳定电流到设定值,电阻电感测量的相关代码在motor.c文件中,可自行查看,上面也讲过了原理,所以就不再细说,
原创
发布博客 2023.10.12 ·
2827 阅读 ·
2 点赞 ·
0 评论 ·
19 收藏

ODrive移植keil(五)—— 开环控制和电流变换

如果转速设置太大,电机会振动,可以调高 target_voltage_ 以达到更大的转速,但是注意电机电流,注意发热。ODrive的程序架构,也是我在基本移植完代码后才焕然大悟的,如果事先有架构意识,不至于看代码的时候那么痛苦。Park变换的θ是当前读出的角度,而Park逆变换是下次FOC计算时的角度(当前角度+估算的下次转过的角度),3、Uq设置太大,电机发热严重,Uq设置太小,电机没劲转不动或者转不快,所以一定要根据电机相电阻设置大小,4、θ不是当前的角度,是目标角度,就是下次计算时的角度。
原创
发布博客 2023.10.11 ·
3162 阅读 ·
5 点赞 ·
1 评论 ·
15 收藏

ODrive移植keil(四)—— PWM触发ADC采样

ADC以DMA的方式转换,代码单独执行这个操作是没问题,但在初始化阶段随着片内外设配置的增加,或者代码执行顺序的变换,就会发生错位。网上找到过很多解释错位原因以及改正办法,但从来都没有彻底解决过这个问题,此次移植又遇到了这个问题,曾经的解决办法测试一遍后都失效了,最后发现用TIM2更新触发的方式不再错位。ADC1多通道规则转换时,如果使用DMA方式,经常会发生AD值错位的现象,比如第一个AD值的高字节放入的是低字节的数据,而低字节是第二个AD值的高字节数据,以此类推,转换值全部失效。
原创
发布博客 2023.09.16 ·
4674 阅读 ·
3 点赞 ·
1 评论 ·
33 收藏

ODrive移植keil(三)—— USB虚拟串口和快速正弦余弦运算

但是我实际的测试,从软件中断退出后仍然会执行第二个更新中断,并且我觉得在软件中断中等待第二次更新中断,很浪费时间,所以就没有使用这个方案。以上测试证明了USB虚拟串口移植成功,但在实际应用中,只需要USB收发数据,不需要USART2,所以屏蔽掉相关配置。单片机的USB通信,一般都是以虚拟串口的方式实现,ODrive使用自定义的接口,所以才需要用zadig驱动。DSP库优化后的运算,运算时间大约261520 us,精度在0.000001f,我本来是打算描述下移植的细节的,但是隔的时间太久了,已经记不清细节,
原创
发布博客 2023.09.15 ·
2131 阅读 ·
3 点赞 ·
0 评论 ·
4 收藏

ODrive移植keil(二)—— ODrive的程序架构

本节及之后的教程将把odrive移植到keil环境下,为了降低移植难度,同时也为了让大家更容易学习掌握移植后的代码,本次移植,只移植电机的核心控制功能,实现常用的一些功能。这部分代码会让人看得很无助,因为所有的代码都在此时执行,比如最下面的开环控制,都已经闭环了难道它还在运行,它运行的意义是什么?ADC1的规则通道转换所有闲杂的ADC,比如温度检测,不需要时效,软件触发后将一直在后台转换;国外的电机驱动技术领先国内这是不争的事实,“洋务运动”一直都在,只是在不同的领域不同的范围,
原创
发布博客 2023.09.07 ·
5249 阅读 ·
9 点赞 ·
4 评论 ·
39 收藏

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 ·
10696 阅读 ·
11 点赞 ·
5 评论 ·
52 收藏

VESC操作入门(三)——PPM输入控制和ADC输入控制

注意操作时动作要慢,不要快速的上下划动摇杆,电机转速突变容易产生高压反电动势,本人的12V小功率开关电源就这样被击穿了。因为上面测试PPM时使用了带AS5047P编码器的电机,固件中默认使能了SPI接口,所以需要重新烧写不支持SPI接口的固件,本人测试用的10K和20K电位器接入ADC引脚后都不起作用,直到使用4.7K电位器,引脚电压才可以被改变,vesc可用于电动滑板车,所以AD引脚应该接的是一个转把,本人查找资料,发现电动车转把不是电位器,此时操作摇杆就可以控制电机转动,向上电机正转,向下电机反转。
原创
发布博客 2023.06.02 ·
4115 阅读 ·
5 点赞 ·
1 评论 ·
17 收藏

SmartKnob移植ESP32和STM32——棘轮手感

SmartKnob 利用电机模拟机械旋钮的效果,且模式灵活多变,自带高级感,据说宝马的车内旋钮就是这样的。github网址:https://github.com/scottbez1/smartknob。
原创
发布博客 2023.05.17 ·
6032 阅读 ·
11 点赞 ·
4 评论 ·
60 收藏

VESC操作入门(二)——双轮毂电机控制和CAN通信

要想让两个电机同时转动,需要在1000ms内连续发送两个指令,手工操作CAN盒的方式肯定达不到。只能通过代码的方式,而能够在最短的时间内实现这个功能的代码,非arduino莫属。VESC中会限制电机的最小速度,修改了限制后,虽然可以设置更小的速度,但是电机有抖动,尝试修改了PID,作用不大,电机齿槽效应导致的抖动,PID无能为力。VESC和ODrive的CAN通信类似,都只有简单的指令,大部分操作都需要通过USB事先配置好。VESC的CAN波特率默认500K,默认使能,接线既可使用,不需要任何配置。
原创
发布博客 2023.05.04 ·
5826 阅读 ·
6 点赞 ·
6 评论 ·
36 收藏

ODrive的梯形轨迹

实际应用中,需要电机又快又稳的转到指定位置,梯形轨迹(INPUT_MODE_TRAP_TRAJ)本质上是一个分段函数的轨迹规划,是一个先加速,再匀速,再减速的三段函数的过程。2804电机100kv,12V电源,最高速度为1200RPM = 20 转/秒。AS5047P_SPI接口,电源电压12V,24V都可以。1.1.2、位置模式,梯形轨迹。1.1.1、速度模式。
原创
发布博客 2023.04.20 ·
1885 阅读 ·
1 点赞 ·
0 评论 ·
6 收藏

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 ·
3699 阅读 ·
8 点赞 ·
2 评论 ·
30 收藏

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 ·
5022 阅读 ·
2 点赞 ·
2 评论 ·
31 收藏
加载更多