Open jinsonli opened 2 years ago
感谢反馈,如果能够把舵机调试流程封装成工具或者代码,可以提交pr我帮你合入仓库~
好的。 我有空弄一下。
舵机烧完程序记得用热熔胶固定一下哦避免短路,热熔胶加热就会融化所以不是一次性的固定方式可以放心整。
想请教一下,ServoDrive-fw文件夹中的代码是怎么运行的? 1).ioc文件应该只配置了芯片,用CubeMX生成的代码中不存在关于i2c和pid的代码,烧入芯片的时候这部分代码怎么处理? 2)有关i2c和pid等的代码在UserApp中,这一部分代码用cmake编译之后还要烧入芯片吗?两份代码会不会冲突? 本科和硕士都是做上位机开发的,对单片机编程不够了解,如果能描述一下ServoDrive-fw的处理过程那就太感谢了,还望赐教一下
所有代码都需要的,你用CubeMX生成的如果是keil工程那需要自己把其余代码文件添加进去,CubeMX是不知道你自己的代码在哪里的
你好,也就是说,需要一个个在舵机源码里先定义配置地址,再烧录进舵机控制MCU里吗
所有代码都需要的,你用CubeMX生成的如果是keil工程那需要自己把其余代码文件添加进去,CubeMX是不知道你自己的代码在哪里的
谢谢指点,现在发现问题主要是之前手欠cubemx保存了一次工程,没找到Main()的调用。。。所以我就纳闷我以为cubemx的main和Main都是运行入口来着
你好,也就是说,需要一个个在舵机源码里先定义配置地址,再烧录进舵机控制MCU里吗
两种方式: 1)是你说的可以单独给每个舵机板子定义一个地址(在代码里默认写好) 2)是舵机的代码是统一的。上电后默认I2C地址是12(或者随机一个),然后由主控通过 SetID函数来改变舵机控制板的I2C地址(掉电会存储这个地址)。 方式(1)烧写麻烦,舵机多了容易糊涂。方式(2)的好处是每个舵机烧写固件一样。
Dude . Make a channel and me/us how to code ? Your are soo cool man i relay like your project 😍😍😍😍
And how do you know which controller/prosser to use ?
Which software i should use ?
你好,也就是说,需要一个个在舵机源码里先定义配置地址,再烧录进舵机控制MCU里吗
两种方式: 1)是你说的可以单独给每个舵机板子定义一个地址(在代码里默认写好) 2)是舵机的代码是统一的。上电后默认I2C地址是12(或者随机一个),然后由主控通过 SetID函数来改变舵机控制板的I2C地址(掉电会存储这个地址)。 方式(1)烧写麻烦,舵机多了容易糊涂。方式(2)的好处是每个舵机烧写固件一样。
兄弟,谢谢回复, 我在主程main里 调用 setid( joint[0].id=12,0x02)重新设置舵机ID,但舵机依旧不动,可否把你得具体调试流程知会一下,谢谢
能否分享一下舵机的F030和F070 MDK源码?感谢 @jinsonli
介绍下怎么刷fw?
介绍下怎么刷fw?
用STLINK, JLINK 的 SWD模式都可以。
能否分享一下舵机的F030和F070 MDK源码?感谢 @jinsonli 传了,暂时没有做优化,能自己编译和做点调试。 后面优化了再合到主线去。
大佬想请教一下,我在打开.ioc后修改了IDE为MDK-ARM,确保路径无中文后generate code,但是期间遇到了一些问题。 首先是代码生成,按理说用cubeMX生成的代码应该都是单片机的配置代码,common_inc.h的引用和Main等函数调用应该是后面写进去的,为啥一生成就有? 然后是代码的编译问题,我直接编译这个工程,keil5会报错,找不到main_1.o。 我怀疑是keil5的cpp支持没有开,加了这样一句,未果。 问题的截图我附在这一楼,还望大佬指点
Which software i should use ?
Code and firmware of servo driver board has been uploaded.
感谢分享~上面提到I2C卡死的问题,应该是STM32F4主设备的for循环里忘了加1ms的延时?如果指令发送不间断频率过高的话可能会引起卡死
@FrankXu626522 你参考一下我上传的两个 MDK工程。 MDK工程用CUBE 生成后没法直接编译的, 需要将UserAPP/ 和 Ctrl 下的代码加入, 并且添加 目录,还可能需要解决一下编译环境造成的编译错误。 如果对MDK不熟悉的话, 建议使用 SW4STM32,稚晖君已经写好的 Cmake直接就可以编译。
@FrankXu626522 你参考一下我上传的两个 MDK工程。 MDK工程用CUBE 生成后没法直接编译的, 需要将UserAPP/ 和 Ctrl 下的代码加入, 并且添加 目录,还可能需要解决一下编译环境造成的编译错误。 如果对MDK不熟悉的话, 建议使用 SW4STM32,稚晖君已经写好的 Cmake直接就可以编译。
好的,我研究一下,谢谢TAT
单个舵机已经调试完成,这时候直接打开release的上位机就能连上了吗?
@FrankXu626522 你参考一下我上传的两个 MDK工程。 MDK工程用CUBE 生成后没法直接编译的, 需要将UserAPP/ 和 Ctrl 下的代码加入, 并且添加 目录,还可能需要解决一下编译环境造成的编译错误。 如果对MDK不熟悉的话, 建议使用 SW4STM32,稚晖君已经写好的 Cmake直接就可以编译。
看了一下你的MDK,用HAL库写的?
单个舵机已经调试完成,这时候直接打开release的上位机就能连上了吗?
不行,我试过
那release的上位机要怎么连接呢?
感谢分享~上面提到I2C卡死的问题,应该是STM32F4主设备的for循环里忘了加1ms的延时?如果指令发送不间断频率过高的话可能会引起卡死
大佬,有一个小问题,您做得STUDIO 怎么使用呢,我舵机调好了几个,连上sensorboard,烧录好固件,启动您的studio,做好动作序列,点play舵机一点反应没有呢。是不是我少做了几步?谢谢
先单独测试每个模块没问题(屏幕显示和USB通信用Test文件夹里的工程、舵机都单独测试好了),然后需要接上所有6个舵机才行;先连接机器人,再打开studio,三档开关打到模型优先就可以动了,是实时同步的
先单独测试每个模块没问题(屏幕显示和USB通信用Test文件夹里的工程、舵机都单独测试好了),然后需要接上所有6个舵机才行;先连接机器人,再打开studio,三档开关打到模型优先就可以动了,是实时同步的
谢谢,明白了,我并联两个舵机,互相干扰:两个一起得话结果一个也动不了,只能连接一个,奇怪了。
先单独测试每个模块没问题(屏幕显示和USB通信用Test文件夹里的工程、舵机都单独测试好了),然后需要接上所有6个舵机才行;先连接机器人,再打开studio,三档开关打到模型优先就可以动了,是实时同步的
谢谢,明白了,我并联两个舵机,互相干扰:两个一起得话结果一个也动不了,只能连接一个,奇怪了。
你的可以了?为啥我单独测试都没问题,打开studio没反应a
先单独测试每个模块没问题(屏幕显示和USB通信用Test文件夹里的工程、舵机都单独测试好了),然后需要接上所有6个舵机才行;先连接机器人,再打开studio,三档开关打到模型优先就可以动了,是实时同步的
大佬!在lowlevel设置角度没问题,打开release的unity没反应啊 ,请问这可能是啥问题呀?
先单独测试每个模块没问题(屏幕显示和USB通信用Test文件夹里的工程、舵机都单独测试好了),然后需要接上所有6个舵机才行;先连接机器人,再打开studio,三档开关打到模型优先就可以动了,是实时同步的
大佬!在lowlevel设置角度没问题,打开release的unity没反应啊 ,请问这可能是啥问题呀?
用unity打开工程可以了!好像少个字体,是不是release的有点问题呀
字体在LargeFiles文件夹里面
ok!
请问一下,如果可以用STLINK Utility烧写程序 是不是就说明驱动板没有问题了? 但是我用手头的f103调试却不能动可能是什么原因呢?
请问一下,如果可以用STLINK Utility烧写程序 是不是就说明驱动板没有问题了? 但是我用手头的f103调试却不能动可能是什么原因呢?
舵机默认是失能状态,需要先发送命令使能舵机,然后才能控制转动,你可以先用示波器或逻辑分析仪看一下i2c总线上能不能在0x00节点叫到舵机
请问一下,如果可以用STLINK Utility烧写程序 是不是就说明驱动板没有问题了? 但是我用手头的f103调试却不能动可能是什么原因呢?
舵机默认是失能状态,需要先发送命令使能舵机,然后才能控制转动,你可以先用示波器或逻辑分析仪看一下i2c总线上能不能在0x00节点叫到舵机
好的好的 十分感谢
Hello 我用QT做了一个舵机调试工具,自己用了还可以。给有需要的朋友试试看好不好用。 前提: 1.USB驱动是OK的。 2.主控刷入我提供的舵机设置固件 3.不要用广播地址给多个舵机通讯。 资料和视频放到 最上面去了, 有一个压缩包。 后面我合入仓库里去。视频10M限制,压缩的比较厉害。
很棒,可以提交到Software/Tools里面。(最好在同目录下加上README使用说明哈)
很棒,可以提交到Software/Tools里面。(最好在同目录下加上README使用说明哈)
好嘞,我整下一起提交
很棒,可以提交到Software/Tools里面。(最好在同目录下加上README使用说明哈)
好嘞,我整下一起提交
另外提个建议,可以把舵机最大最小值的标定也加上(也就是ADC和机械角度的关系)
很棒,可以提交到Software/Tools里面。(最好在同目录下加上README使用说明哈)
好嘞,我整下一起提交
另外提个建议,可以把舵机最大最小值的标定也加上(也就是ADC和机械角度的关系)
是哦,现在舵机这块还不够细腻。 我到时候把舵机固件也加几个接口,还有舵机的 自动负反馈功能也可以一起弄下。
Hello 我用QT做了一个舵机调试工具,自己用了还可以。给有需要的朋友试试看好不好用。 前提: 1.USB驱动是OK的。 2.主控刷入我提供的舵机设置固件 3.不要用广播地址给多个舵机通讯。 资料放到 最上面去了, 有一个压缩包。 后面我合入仓库里去。
这个不错,学习 一下
Hello 正在复刻的朋友们,分享一点简单的经验。
1)舵机第一次调试时,会默认初始化本地I2C地址为12,并且在收到主控的Enable信号前不会有动作。 2】舵机第一次连接主控时,【需要一个个配置地址】,一次只连一个,在主控用0X00地址发送 SetId指令。 比如:头部舵机配置为0X02,断电重启,用主控测试能否用0X02连接到舵机。 然后再插第二个舵机。one by one. 3)4.3g舵机用默认PD参数,和默认50%扭矩限制,能正常控制, 但是9g舵机(底座那个),需要把扭矩限制调到0.7以上,P参数调大一点,控制效果会好一点。 4)舵机的程序,我发现偶尔会有I2C卡死收不到中断的问题。后来我把控制函数从中断中拿出来,在Main While里200hz执行会明显有提升。不知道其他朋友们有没有遇到过。我用MDK编译了两个固件,有需要的朋友可以下载试试。(F030F4P6便宜很多)
ServoDrive-f030f4p6.zip ServoDrive-f070f4p6.zip ServoDrive-fw-f030.zip ServoDrive-f70.zip 舵机调试工具.zip
ce7852a7f6c44d335e95db5f3323c53b.1.mp4 default.mp4 请问底盘那个 9G舵机 内部结构与 4.3G的不同,没有电位器,大佬你是如何改造的? 谢谢
@wenFrankieeee 差不多的。 黄色的这个就是电位器。
大佬,软件一直是disconnect连接不上为什么啊
我们这边得问题是, Unity 上位机 无法操作舵机(unity所有功能均失效),用SDK 调用舵机角度设置也失效,但是单独调试舵机,包括6机联调 (90度往复旋转)可以6舵机同步往复运动。
042芯片可以刷030的驱动吗?
我们这边得问题是, Unity 上位机 无法操作舵机(unity所有功能均失效),用SDK 调用舵机角度设置也失效,但是单独调试舵机,包括6机联调 (90度往复旋转)可以6舵机同步往复运动。
还没解决么。。。
Hello 正在复刻的朋友们,分享一点简单的经验。
1)舵机第一次调试时,会默认初始化本地I2C地址为12,并且在收到主控的Enable信号前不会有动作。 2】舵机第一次连接主控时,【需要一个个配置地址】,一次只连一个,在主控用0X00地址发送 SetId指令。 比如:头部舵机配置为0X02,断电重启,用主控测试能否用0X02连接到舵机。 然后再插第二个舵机。one by one. 3)4.3g舵机用默认PD参数,和默认50%扭矩限制,能正常控制, 但是9g舵机(底座那个),需要把扭矩限制调到0.7以上,P参数调大一点,控制效果会好一点。 4)舵机的程序,我发现偶尔会有I2C卡死收不到中断的问题。后来我把控制函数从中断中拿出来,在Main While里200hz执行会明显有提升。不知道其他朋友们有没有遇到过。我用MDK编译了两个固件,有需要的朋友可以下载试试。(F030F4P6便宜很多)
ServoDrive-f030f4p6.zip ServoDrive-f070f4p6.zip ServoDrive-fw-f030.zip ServoDrive-f70.zip 舵机调试工具.zip
https://user-images.githubusercontent.com/26651232/162994102-32392a3b-a457-4b8b-8df6-09171ec1ca41.mp4
https://user-images.githubusercontent.com/26651232/161782442-d4913d0d-0e90-4456-a408-60e7ad14adda.mp4